Um algoritmo que utiliza as técnicas de AM que apresenta um maior número de refe- rências na literatura e é bem utilizado em estudos para problemas do mundo real é o
2. Aprendizado de Máquina 15 algoritmo Multi-Layer Perceptron (MLP) (Haykin, 2001). Por causa de sua metodologia de funcionamento, esse algoritmo pode ser classificado na categoria de Redes Neurais. Isso se deve ao fato de que esse tipo de algoritmo se baseia e simula os neurônios en- contrados no cérebro humano. Esse algoritmo é composto por nós simples, chamados de neurônios, unidades ou nodos, que são interligados entre si para formar uma rede de neurônios artificiais, assim originando o termo "rede neural".
O primeiro modelo de um neurônio artificial foi apresentado por McCulloch (McCul- loch and Pitts, 1943), e de acordo com esse modelo cada neurônio dessa estrutura recebe como entrada um vetor de entrada (X1, X2, ..., Xp) e um vetor de peso (W1, W2, ..., Wp),
onde p é a quantidade de características, ou atributos, que existe no conjunto de dados. Es- ses valores de entrada são combinados usando uma função f(a), para produzir um estado de ativação do neurônio (Figura 2.1).
Figura 2.1: Modelo do primeiro neurônio que foi proposto por McCulloch (McCulloch and Pitts, 1943).
A primeira rede neural que foi utilizada com o propósito de resolver problemas de classificação de padrões foi proposta por Rosenblatt (Rosenblatt, 1958). Essa rede uti- lizava apenas uma camada de neurônios, onde os pesos podiam ser ajustados durante o treinamento dessa rede. Essa rede foi denominada de rede percetron com uma camada.
A rede percetron é o tipo mais antigo de redes neurais, que como mencionado ante- riormente, era formado por apenas uma única camada de saída, que está conectada por pesos às entradas. A soma do produto entre os pesos e as entradas alimenta cada neurônio de saída, e se o resultado desta operação exceder um determinado limiar (geralmente 0), o neurônio coloca o valor um (1) na saída; e caso o resultado seja inferior ao limiar, o neurô- nio coloca o valor menos um (-1). Neurônios com esse comportamento são chamados de neurônios de McCulloch-Pitts ou neurônios com limiar.
A principal limitações de uma rede perceptron de uma camada é que esse tipo de rede é capaz de aprender somente problemas linearmente separáveis. Um conjunto é dito linearmente separável se for possível separar os padrões de classes diferentes contidos no
2. Aprendizado de Máquina 16 espaço de entrada por um hiperplano (Figura 2.2, mostra um exemplo onde duas classes podem ser separados no espaço por uma linha reta) (Minsky and Papert, 1969). Por esse motivo, foi criada uma forma de disponibilizar perceptrons em múltiplas camadas, criando assim uma camada intermediária entre as camadas de entrada e saída, sendo estes modelos capazes de resolver problemas não-lineares (Figura 2.3). Com a inserção de pelo menos uma camada intermediária essa rede foi denominada de Multi-Layer Percetron (MLP).
Figura 2.2: Exemplo de um problema linearmente separável.
Figura 2.3: Modelo de uma rede neural perceptron com uma camada intermediária, capaz de calcular um problema não-linearmente separável.
Descrevendo com maiores detalhes, um modelo MLP é um sistema de neurônios artifi- ciais ligados por conexões sinápticas e apresentam múltiplas camadas, onde cada camada apresenta uma função específica. Essas camadas podem ser divididas em três grupos: a camada de entrada é onde a rede recebe estímulos do meio externo por meio de um conjunto de dados; nas camadas intermediárias ou ocultas são feitas a maior parte dos
2. Aprendizado de Máquina 17 processamentos dessa rede, e funcionam como extratoras de características através de co- nexões ponderadas, e são uma codificação das características apresentadas nos padrões de entrada permitindo que a rede crie sua própria representação do problema; e a camada de saída, onde são recebidos os estímulos das camadas intermediárias e assim constroí-se uma resposta que será apresentada ao usuário (Figura 2.4).
Figura 2.4: Modelo de uma rede neural Multi-Layer Perceptron.
A maioria dos modelos de redes neurais possui alguma regra de treinamento, onde os pesos de suas conexões são ajustados de acordo com os padrões apresentados. Em outras palavras, elas aprendem através de padrões. Em 1986 foi apresentado, para a classe de redes neurais de multicamadas, um algoritmo de treinamento denominado backpropaga-
tion (Rumelhart et al., 1986). O tipo de rede neural multicamada usada com o algoritmo backpropagation é geralmente denominada de rede Multi-Layer Perceptron com back- propagation (Rumelhart et al., 1986). Essa rede é um modelo que realiza o treinamento
através de padrões, e utilizam pares (entrada, saída desejada) para ajustar os pesos da rede por meio de um mecanismo de correção de erros e também apresenta uma seqüência de dois passos para o treinamento. Primeiro, um padrão é apresentado à camada de entrada da rede e segue-se o funcionamento normalmente, ou seja, o padrão flui através da rede por todas as camadas internas, até que uma resposta seja produzida pela camada de saída. No segundo passo, a saída obtida é comparada à saída desejada para esse padrão particu- lar. Se não estiver correto, o erro é calculado e propagado a partir da camada de saída até a camada de entrada, e os pesos das conexões vão sendo modificados, conforme o erro é retro-propagado.
Apesar de ser um algoritmo amplamente utilizado na área de AM, as redes neurais artificiais apresentam uma dificuldade que é vista pela maioria dos pesquisadores. Essa dificuldade se dá pelo motivo de que as redes neurais são vistas como uma espécie de "caixa-preta", ou seja, executa operações de alguma maneira obscura, difícil de ser apren-
2. Aprendizado de Máquina 18 dida teoricamente e não permite interpretação a partir de análise visual. Além disso, outra dificuldade encontrada em redes neurais é a questão da determinação do valor de alguns parâmetros obrigatórios como o caso de determinar o número de neurônios nas camadas intermediárias das redes MLP, o tipo da função de ativação que será utilizado e o valor da taxa de aprendizado.
No entanto, diversos trabalhos recentes têm revelado que as redes neurais artificiais podem ser consideradas como uma maneira alternativa ou estendida de implementar vá- rias técnicas convencionais de classificação de padrões que vêm sendo usadas há décadas. Além de apresentar uma série de vantagens, como tolerância a dados ruidosos2e a capaci-
dade de representar qualquer função, sendo linear ou não, ainda apresenta a capacidade de lidar com padrões de entrada representados por vetores de alta dimensão, e consegue lidar com valores de atributos contínuos ou discretos. Maiores detalhes sobre o funcionamento de uma rede neural e suas outras implementações podem ser vistos em Canuto (Canuto, 2001).