right|thumb|Em uma rede feedforward, a informação se move sempre em uma única direção; ela nunca volta.
Uma rede neural feedforward (ou rede neural de alimentação direta) é uma rede neural artificial na qual a informação flui em uma única direção – as entradas são multiplicadas por pesos para obter as saídas (das entradas para a saída). Isso contrasta com uma rede neural recorrente, na qual os loops (ciclos) permitem que a informação de estágios de processamento posteriores retroalimente estágios anteriores. A multiplicação feedforward é essencial para a retropropagação (backpropagation),Rosenblatt, Frank. x. Principles of Neurodynamics: Perceptrons and the Theory of Brain Mechanisms. Spartan Books, Washington DC, 1961Rumelhart, David E., Geoffrey E. Hinton, and R. J. Williams. "Learning Internal Representations by Error Propagation ". David E. Rumelhart, James L. McClelland, and the PDP research group. (editors), Parallel distributed processing: Explorations in the microstructure of cognition, Volume 1: Foundation. MIT Press, 1986. porque a retroalimentação (feedback), onde as saídas retornam precisamente para as mesmas entradas para modificá-las, forma um loop infinito que não é possível diferenciar por meio da retropropagação. Essa nomenclatura parece ser um ponto de confusão entre alguns cientistas da computação e cientistas de outras áreas que estudam as redes cerebrais.
Fundamentos matemáticos Função de ativação As duas funções de ativação historicamente comuns são ambas sigmoides, e são descritas por
A primeira é uma tangente hiperbólica cujos valores variam entre -1 e 1, enquanto a outra é a função logística, que tem um formato semelhante, mas varia entre 0 e 1. Aqui, é a saída do -ésimo nó (neurônio) e é a soma ponderada das conexões de entrada. Funções de ativação alternativas foram propostas, incluindo as funções retificadora e softplus. Funções de ativação mais especializadas incluem as funções de base radial (usadas em redes de base radial, outra classe de modelos de redes neurais supervisionadas).
Em desenvolvimentos recentes do aprendizado profundo (deep learning), a unidade linear retificada (ReLU) é utilizada com maior frequência como uma das formas possíveis de superar os problemas numéricos relacionados às sigmoides.
Aprendizado 400px
O aprendizado ocorre alterando os pesos das conexões após cada dado ser processado, com base na quantidade de erro na saída em comparação com o resultado esperado. Este é um exemplo de aprendizado supervisionado e é executado através da retropropagação.
Podemos representar o grau de erro em um nó de saída no -ésimo ponto de dados (exemplo de treinamento) por , onde é o valor alvo desejado para o -ésimo ponto de dados no nó , e é o valor produzido no nó quando o -ésimo ponto de dados é fornecido como entrada.
Os pesos dos nós podem então ser ajustados com base em correções que minimizam o erro na saída global para o -ésimo ponto de dados, dado por
Usando a descida de gradiente, a alteração em cada peso é
onde é a saída do neurônio anterior , e é a taxa de aprendizado, que é selecionada para garantir que os pesos convirjam rapidamente para uma resposta, sem oscilações. Na expressão anterior, denota a derivada parcial do erro em relação à soma ponderada das conexões de entrada do neurônio .
A derivada a ser calculada depende do campo local induzido , que também varia. É fácil demonstrar que, para um nó de saída, essa derivada pode ser simplificada para
onde é a derivada da função de ativação descrita acima, a qual não varia por si mesma. A análise é mais complexa para a alteração dos pesos em um nó oculto, mas é possível demonstrar que a derivada relevante é
Isso depende da alteração nos pesos dos -ésimos nós, que representam a camada de saída. Portanto, para alterar os pesos da camada oculta, os pesos da camada de saída se alteram de acordo com a derivada da função de ativação, e assim esse algoritmo representa uma retropropagação da função de ativação.
História
Linha do tempo Por volta de 1800, Legendre (1805) e Gauss (1795) criaram a rede feedforward mais simples, a qual consiste em uma única camada de pesos com funções de ativação lineares. Ela foi treinada através do método dos mínimos quadrados para minimizar o erro quadrático médio, técnica também conhecida como regressão linear. Legendre e Gauss a utilizaram para a previsão do movimento planetário a partir de dados de treinamento.Merriman, Mansfield. A List of Writings Relating to the Method of Least Squares: With Historical and Critical Notes. Vol. 4. Academy, 1877. Em 1943, Warren McCulloch e Walter Pitts propuseram o neurônio artificial binário como um modelo lógico das redes neurais biológicas. Em 1958, Frank Rosenblatt propôs o modelo do perceptron multicamadas, consistindo em uma camada de entrada, uma camada oculta com pesos aleatórios que não aprendiam, e uma camada de saída com conexões capazes de aprender. R. D. Joseph (1960) menciona um dispositivo semelhante ao perceptron ainda mais antigo: "Na verdade, Farley e Clark, do MIT Lincoln Laboratory, antecederam Rosenblatt no desenvolvimento de um dispositivo semelhante ao perceptron." Contudo, "eles abandonaram o assunto." Em 1960, Joseph também discutiu os perceptrons multicamadas com uma camada oculta adaptativa. Rosenblatt (1962) citou e adotou essas ideias, creditando também o trabalho de H. D. Block e B. W. Knight. Infelizmente, esses esforços iniciais não levaram a um algoritmo de aprendizado funcional para unidades ocultas, ou seja, ao aprendizado profundo. Em 1965, Alexey Grigorevich Ivakhnenko e Valentin Lapa publicaram o Método de agrupamento para manipulação de dados (GMDH), o primeiro algoritmo funcional de aprendizado profundo, um método para treinar redes neurais arbitrariamente profundas. Baseia-se no treinamento camada por camada por meio de análise de regressão. As unidades ocultas supérfluas são podadas com o uso de um conjunto de validação separado. Como as funções de ativação dos nós são polinômios de Kolmogorov-Gabor, essas foram também as primeiras redes profundas a possuir unidades ou "portas" multiplicativas. Esse método foi usado para treinar uma rede neural de oito camadas em 1971. Em 1967, Shun'ichi Amari relatou a primeira rede neural multicamadas treinada pelo método do gradiente estocástico, a qual foi capaz de classificar classes de padrões não linearmente separáveis. O aluno de Amari, Saito, conduziu os experimentos computacionais, usando uma rede feedforward de cinco camadas com duas camadas de aprendizado. Em 1970, Seppo Linnainmaa publicou a forma moderna da retropropagação em sua tese de mestrado (1970). G.M. Ostrovski et al. a republicaram em 1971.Ostrovski, G.M., Volin,Y.M., and Boris, W.W. (1971). On the computation of derivatives. Wiss. Z. Tech. Hochschule for Chemistry, 13:382–384. Paul Werbos aplicou a retropropagação em redes neurais em 1982 (sua tese de doutorado de 1974, reimpressa em um livro de 1994, ainda não descrevia o algoritmo). Em 1986, David E. Rumelhart et al. popularizaram a retropropagação, mas não citaram o trabalho original. Em 2003, o interesse nas redes de retropropagação retornou devido ao sucesso do aprendizado profundo aplicado à modelagem de linguagem por Yoshua Bengio e coautores.
Regressão linear
Perceptron
Se for utilizado um limiar (threshold), ou seja, uma função de ativação linear, a unidade de limiar linear resultante é chamada de perceptron. (Frequentemente, o termo é usado para se referir a apenas uma dessas unidades.) Múltiplas unidades não-lineares paralelas têm a capacidade de aproximar qualquer função contínua de um intervalo compacto de números reais para o intervalo [-1,1], apesar do poder computacional limitado de uma unidade única com uma função de limiar linear.
thumb|upright=1.3|Rede neural de duas camadas capaz de calcular o XOR. Os números nos neurônios representam seus limiares explícitos. Os números junto às setas indicam os pesos das entradas. Se o limite de 2 for cumprido, um valor de 1 é utilizado na multiplicação pelo peso para a camada seguinte. Se o limite não for alcançado, utiliza-se 0. A camada de entradas inferior nem sempre é considerada uma camada real da rede neural. Os perceptrons podem ser treinados por um algoritmo de aprendizado simples que é geralmente chamado de regra delta. Ele calcula os erros entre a saída calculada e os dados de amostragem de saída, utilizando essa informação para criar um ajuste aos pesos e implementando, assim, uma forma de descida de gradiente.
Perceptron multicamadas A expressão perceptron multicamadas (MLP, do inglês multilayer perceptron) é um termo equivocado dado a uma rede neural artificial feedforward moderna, constituída por neurônios totalmente conectados (daí o sinônimo, algumas vezes utilizado, de rede totalmente conectada (FCN)), frequentemente com um tipo não-linear de função de ativação e organizada em pelo menos três camadas, notável por ser capaz de distinguir dados que não são linearmente separáveis.Cybenko, G. 1989. Approximation by superpositions of a sigmoidal function Mathematics of Control, Signals, and Systems, 2(4), 303–314.
Outras redes feedforward thumb|upright=1.3|Exemplo de avanço (feed forward) em uma rede neural convolucional 1D Exemplos de outras redes feedforward incluem as redes neurais convolucionais e as redes de função de base radial, as quais utilizam uma função de ativação diferente.
Ver também Controle preditivo Rede neural recorrente (rede neural com retroalimentação) Rede de Hopfield Rprop
Ligações externas Feedforward neural networks tutorial Feedforward Neural Network: Example Feedforward Neural Networks: An Introduction
Categoria:Arquiteturas de redes neurais