Perceptron multicamadas
A perceptron multicamadas (MLP) é uma rede neural semelhante à perceptron, mas com mais de uma camada de neurônios em alimentação direta [1]. Tal tipo de rede é composta por camadas de neurônios ligadas entre si por sinapses com pesos. O aprendizado nesse tipo de rede é geralmente feito através do algoritmo de retro-propagação do erro [2], mas existem outros algoritmos para este fim, como a Rprop[3].
À exceção dos nós de entrada, a cada neurônio da rede é associado um valor de entrada, calculado a partir das sinapses de entrada[2] e opcionalmente por um valor denominado "viés" (bias). A saída de um neurônio é o resultado de uma função não-linear[1] aplicada à sua entrada, denominada de função de ativação. Exemplos de funções de ativação comumente utilizadas são a tangente hiperbólica e a função sigmóide[2].
Quando Redes Neurais Artificiais de uma só camada são utilizadas os padrões de treinamento apresentados à entrada são mapeados diretamente em um conjunto de padrões de saída da rede, ou seja não é possível a formação de uma representação interna. Neste caso, a codificação proveniente do mundo exterior deve ser suficiente para implementar esse mapeamento.[4]
Tal restrição implica que padrões de entrada similares resultem em padrões de saída similares, o que leva o sistema à incapacidade de aprender importantes mapeamentos. Como resultado, padrões de entrada com estruturas similares, fornecidos do mundo externo, que levem a saídas diferentes não são possíveis de serem mapeados por redes sem representações internas, isto é, sem camadas intermediárias. Um exemplo clássico deste caso é a função ou-exclusivo (XOR).
Minsky e Papert analisaram matematicamente o Perceptron e demostraram que redes de uma camada não são capazes de solucionar problemas que não sejam linearmente separáveis. Como não acreditavam na possibilidade de se construir um método de treinamento para redes com mais de uma camada, eles concluíram que as redes neurais seriam sempre suscetíveis a essa limitação.
Contudo, o desenvolvimento do algoritmo de treinamento backpropagation[5], por Rumelhart, Hinton e Williams em 1986, precedido por propostas semelhantes ocorridas nos anos 70 e 80, mostrou que é possível treinar eficientemente redes com camadas intermediárias, resultando no modelo de Redes Neurais Artificiais mais utilizado atualmente, as redes MLP, treinadas com o algoritmo backpropagation[5].
Nessas redes, cada camada tem uma função específica. A camada de saída recebe os estímulos da camada intermediária e constrói o padrão que será a resposta. As camadas intermediárias funcionam como extratoras de características, seus pesos são uma codificação de características apresentadas nos padrões de entrada e permitem que a rede crie sua própria representação, mais rica e complexa, do problema.[4]
Se existirem as conexões certas entre as unidades de entrada e um conjunto suficientemente grande de unidades intermediárias, pode-se sempre encontrar a representação que irá produzir o mapeamento correto da entrada para a saída através das unidades intermediária.
Como provou Cybenko, a partir de extensões do Teorema de Kolmogoroff, são necessárias no máximo duas camadas intermediárias, com um número suficiente de unidades por camada, para se produzir quaisquer mapeamentos. Também foi provado que apenas uma camada intermediária é suficiente para aproximar qualquer função contínua.
Teoria
Função de ativação
Se um perceptron multicamada tem um função de ativação linear em todos os neurônios, isto é, uma função linear, que mapeia as entradas para a saída de cada neurônio, em seguida, ele é facilmente comprovado com álgebra linear que qualquer número de camadas pode ser reduzida para a norma modelo de entrada-saída de duas camadas (ver perceptron ). O que faz um perceptron multicamada ser diferente é que alguns neurônios usam uma função de ativação não-linear.
As duas principais funções de ativação utilizados em aplicações atuais são:

em que a primeira função é uma tangente hiperbólica que varia entre -1 e 1, e esta última, a função logística , é semelhante em forma, mas varia de 0 a 1.
Camadas
O perceptron multicamada consiste em três ou mais camadas (uma camada de entrada e uma camada de saída com um ou mais camadas ocultas). Uma vez que um MLP é uma rede totalmente conectada, cada nó em uma camada se conecta, com um certo peso, em um nó da camada seguinte. Algumas pessoas não incluem a camada de entrada ao contar o número de camadas.
Backpropagation
Backpropagation é um método comum de formação de redes neurais artificiais utilizados em conjunto com um método de otimização. O método calcula a inclinação de uma função de perda em relação a todos os pesos da rede. O gradiente é alimentado para o método de otimização que, por sua vez utiliza-o para atualizar os pesos, numa tentativa de minimizar a perda de função.
Durante o treinamento com o algoritmo backpropagation, a rede segue de dois passos:
- Um padrão é apresentado à camada de entrada da rede, produzindo uma resposta na camada de saída.
- A saída obtida é comparada à saída desejada para esse padrão particular. Se esta não estiver correta, o erro é calculado.
O erro é propagado a partir da camada de saída até a camada de entrada, e os pesos das conexões das unidades das camadas internas vão sendo modificados conforme o erro.
O treinamento das redes MLP com backpropagation [5]pode demandar um tempo de treinamento longo.
Terminologia
O termo "perceptron multicamadas" muitas vezes causa confusão. Argumenta-se que o modelo não é o único perceptron que tem várias camadas. Em vez disso, ele contém muitos perceptrons que são organizados em camadas, levando alguns a acreditar que um termo mais adequado poderia, portanto, ser "rede perceptron multicamadas". Além disso, esses "perceptrons" não são realmente perceptrons em sentido mais estrito, como verdadeiros perceptrons são um caso especial de neurônios artificiais que usam uma função de ativação limite, como a função de Heaviside, ao passo que os neurônios artificiais em um perceptron multicamadas são livres para assumir qualquer função de ativação arbitrária. Consequentemente, ao passo que um verdadeiro perceptron executa classificação binária, um neurônio em um perceptron multicamadas é livre de a efetuar classificação ou de regressão, dependendo de sua função de ativação.
Os dois argumentos apresentados acima pode ser conciliada com o nome de "perceptron multicamadas" se "perceptron" é simplesmente interpretado como significando um classificador binário, independente da aplicação mecanicista específica de um perceptron clássica. Neste caso, a totalidade da rede pode, efetivamente, ser considerado como um classificador binário com múltiplas camadas. Além disso, o termo "perceptron multicamadas" agora não especifica a natureza das camadas; As camadas são livres para ser composta por neurônio artificiai geral e não especificamente perceptron. Esta interpretação do termo "perceptron multicamadas" evita o afrouxamento da definição de "perceptron" para significar um neurônio artificial em geral.
Aplicações
Perceptrons multicamadas usando um algoritmo backpropagation, é o algoritmo padrão para qualquer aprendizado supervisionado[6], processo de reconhecimento de padrões e objeto de investigação em cursos de neurociência computacional e processamento distribuído em paralelo . Eles são úteis na pesquisa em termos de sua capacidade de resolver problemas estocásticos, que muitas vezes permite obter soluções aproximadas para extremamente complexos problemas como aproximação de fitness .
MLPs são funções de aproximação universal como mostrou o teorema de Cybenko, para que eles possam ser usados para criar modelos matemáticos por análise de regressão.Como a classificação[7] é um caso particular de regressão quando a variável resposta é categórica[8] , MLPs também são bons algoritmos classificadores.
MLPs foram uma solução de aprendizagem de máquina popular na década de 1980, encontrando aplicações em diversos campos, como reconhecimento de voz ,reconhecimento de imagem e de tradução automática de software, mas desde a década de 1990 enfrentou forte concorrência do muito mais simples (e relacionados ) apoiar máquinas de vetores . Mais recentemente, tem havido algum interesse renovado em redes de retropropagação devido aos sucessos de aprendizagem profunda[9] .
Limitações
As redes neurais que utilizam backpropagation[5], assim como muitos outros tipos de redes neurais artificiais, podem ser vistas como "caixas pretas", na qual quase não se sabe porque a rede chega a um determinado resultado, uma vez que os modelos não apresentam justificativas para suas respostas. Neste sentido, muitas pesquisas vêm sendo realizadas visando a extração de conhecimento de redes neurais artificiais, e na criação de procedimentos explicativos, onde se tenta justificar o comportamento da rede em determinadas situações.
Uma outra limitação refere-se ao tempo de treinamento de redes neurais utilizando backpropagation[5], que tende a ser muito lento. Algumas vezes são necessários milhares de ciclos para se chegar à níveis de erros aceitáveis, principalmente se estiver sendo simulado em computadores seriais, pois a CPU deve calcular as funções para cada unidade e suas conexões separadamente, o que pode ser problemático em redes muito grandes, ou com grande quantidade de dados. Muitos estudos estão sendo realizados para implementação de redes neurais em computadores paralelos, além de construção de chips neurais como Intel 80170NX Eletronically Trainable ANN ou placas aceleradoras como BrainMaker Accelerator Board CNAPS.
É muito difícil definir a arquitetura ideal da rede de forma que ela seja tão grande quanto o necessário para conseguir obter as representações necessárias, ao mesmo tempo pequena o suficiente para se ter um treinamento mais rápido. Não existem regras claras para se definir quantas unidades devem existir nas camadas intermediárias, quantas camadas, ou como devem ser as conexões entre essas unidades. Para resolver este tipo de problema, Algoritmos Genéticos poderiam ser utilizados para encontrar automaticamente boas arquiteturas de redes neurais, eliminando muitas armadilhas associadas às abordagens de engenharia humana.
Referências
- ↑ a b Norvig, Peter; Russel, Stuart (2004). Inteligência Artificial 2 ed. [S.l.]: Elsevier. ISBN 9788535211771
- ↑ a b c Haykin, Simon (2001). Redes Neurais. Princípios e prática 2 ed. [S.l.]: Bookman. ISBN 9788573077186
- ↑ Riedmiller, Martin; Braun, Heinrich (1993). «A direct adaptative method for faster backpropagation learning: the RPROP algorithm». IEEE International Conference on Neural Networks (em inglês): 586-591. ISBN 0780309995
- ↑ a b «Redes Neurais Artificiais». conteudo.icmc.usp.br. Consultado em 14 de outubro de 2016
- ↑ a b c d e «Backpropagation». Wikipedia (em inglês). 1 de outubro de 2016
- ↑ «Supervised learning». Wikipedia, the free encyclopedia (em inglês). 19 de setembro de 2016
- ↑ «Statistical classification». Wikipedia, the free encyclopedia (em inglês). 10 de outubro de 2016
- ↑ «Categorical variable». Wikipedia, the free encyclopedia (em inglês). 10 de agosto de 2016
- ↑ «Deep learning». Wikipedia, the free encyclopedia (em inglês). 10 de outubro de 2016