Ir para o conteúdo

Rede neural feedforward

Origem: Wikipédia, a enciclopédia livre.
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).[1] Isso contrasta com uma rede neural recorrente, na qual ciclos permitem que a informação de estágios de processamento posteriores retroalimente estágios anteriores.[2] A propagação direta calcula as ativações da rede da entrada para a saída, enquanto a retropropagação permite calcular derivadas do erro em relação aos parâmetros usando a regra da cadeia.[3][4][5][6][7] Redes neurais recorrentes também podem ser treinadas por retropropagação através do tempo, que desdobra as conexões recorrentes em sucessivas etapas temporais.[2] 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.[8]

Na realidade, essas texturas e contornos não seriam representados por nós individuais, mas por padrões de pesos associados a múltiplos nós.[10]

Fundamentos matemáticos

[editar | editar código]

Função de ativação

[editar | editar código]

As duas funções de ativação historicamente comuns são ambas sigmoides, e são descritas por[10]

y(vi)=tanh⁡(vi)  e  y(vi)=(1+e−vi)−1.

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, yi é a saída do i-ésimo nó (neurônio) e vi é 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).[10]

No contexto da aprendizagem profunda (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.[2]

Aprendizado

[editar | editar código]
Esquema de um neurônio artificial.

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.[10]

Podemos representar o grau de erro em um nó de saída j no n-ésimo ponto de dados (exemplo de treinamento) por ej(n)=dj(n)−yj(n), onde dj(n) é o valor alvo desejado para o n-ésimo ponto de dados no nó j, e yj(n) é o valor produzido no nó j quando o n-ésimo ponto de dados é fornecido como entrada.[10]

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 n-ésimo ponto de dados, dado por[10]

ℰ(n)=12∑nó de saída jej2(n).

Usando a descida de gradiente, a alteração em cada peso wij é[10]

Δwji(n)=−η∂ℰ(n)∂vj(n)yi(n)

onde yi(n) é a saída do neurônio anterior i, e η é a taxa de aprendizado, cuja escolha influencia a velocidade e a estabilidade da convergência dos pesos. Na expressão anterior, ∂ℰ(n)∂vj(n) denota a derivada parcial do erro ℰ(n) em relação à soma ponderada vj(n) das conexões de entrada do neurônio i.[10]

A derivada a ser calculada depende do campo local induzido vj, que também varia. É possível demonstrar que, para um nó de saída, essa derivada pode ser simplificada para[10]

−∂ℰ(n)∂vj(n)=ej(n)ϕ′(vj(n))

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 é[10]

−∂ℰ(n)∂vj(n)=ϕ′(vj(n))∑k−∂ℰ(n)∂vk(n)wkj(n).

Isso depende da alteração nos pesos dos k-é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.[10]

História

[editar | editar código]

Linha do tempo

[editar | editar código]
  • 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.[11][12][13][14][15]
  • Em 1943, Warren McCulloch e Walter Pitts propuseram o neurônio artificial binário como um modelo lógico das redes neurais biológicas.[16]
  • 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.[17] R. D. Joseph (1960)[18] menciona um dispositivo semelhante ao perceptron ainda mais antigo:[13] "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[18] também discutiu os perceptrons multicamadas com uma camada oculta adaptativa. Rosenblatt (1962)[19]:seção 16 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 manipulação de dados de grupo (GMDH), o primeiro algoritmo funcional de aprendizado profundo, um método para treinar redes neurais arbitrariamente profundas.[2][20][21] 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.[13] Esse método foi usado para treinar uma rede neural de oito camadas em 1971.[2]
  • Em 1967, Shun'ichi Amari relatou [22] 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.[13]
  • Em 1970, Seppo Linnainmaa publicou a forma moderna da retropropagação em sua tese de mestrado (1970).[23][24][13] G.M. Ostrovski et al. a republicaram em 1971.[25][26] Paul Werbos aplicou a retropropagação em redes neurais em 1982[6][27] (sua tese de doutorado de 1974, reimpressa em um livro de 1994,[28] ainda não descrevia o algoritmo[26]). Em 1986, David E. Rumelhart et al. popularizaram a retropropagação, mas não citaram o trabalho original.[29][7][2]
  • 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.[30]

Regressão linear

[editar | editar código]

Perceptron

[editar | editar código]

Quando se utiliza uma função de ativação de limiar (threshold), 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.[31]

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.[31]

Perceptron multicamadas

[editar | editar código]

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.[32]

Outras redes feedforward

[editar | editar código]
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 empregam arquiteturas ou funções de ativação diferentes.[2][10]

Ver também

[editar | editar código]

Referências

  1. ↑ Zell, Andreas (1994). Simulation Neuronaler Netze [Simulation of Neural Networks] (em alemão) 1.ª ed. [S.l.]: Addison-Wesley. p. 73. ISBN 3-89319-554-8
  2. 1 2 3 4 5 6 7 Schmidhuber, Jürgen (1 de janeiro de 2015). «Deep learning in neural networks: An overview». Neural Networks (em inglês). 61: 85–117. ISSN 0893-6080. PMID 25462637. arXiv:1404.7828Acessível livremente. doi:10.1016/j.neunet.2014.09.003
  3. ↑ Linnainmaa, Seppo (1970). The representation of the cumulative rounding error of an algorithm as a Taylor expansion of the local rounding errors (Mestrado) (em finlandês). University of Helsinki. p. 6–7
  4. ↑ Kelley, Henry J. (1960). «Gradient theory of optimal flight paths». ARS Journal. 30 (10): 947–954. doi:10.2514/8.5282
  5. ↑ Rosenblatt, Frank. Principles of Neurodynamics: Perceptrons and the Theory of Brain Mechanisms. Spartan Books, Washington DC, 1961.
  6. 1 2 Werbos, Paul (1982). «Applications of advances in nonlinear sensitivity analysis» (PDF). System modeling and optimization. [S.l.]: Springer. pp. 762–770. Consultado em 2 de julho de 2017. Cópia arquivada (PDF) em 14 de abril de 2016
  7. 1 2 Rumelhart, David E., Geoffrey E. Hinton, and R. J. Williams. "Learning Internal Representations by Error Propagation Arquivado em 2022-10-13 no Wayback Machine". 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.
  8. ↑ Achler, T. (2023). «What AI, Neuroscience, and Cognitive Science Can Learn from Each Other: An Embedded Perspective». Cognitive Computation (em inglês). doi:10.1007/s12559-023-10194-9
  9. ↑ Imagem de Mikael Häggström, MD. Referência: Ferrie, C.; Kaiser, S. (2019). Neural Networks for Babies. [S.l.]: Sourcebooks. ISBN 1-4926-7120-7
  10. 1 2 3 4 5 6 7 8 9 10 11 12 Haykin, Simon (1998). Neural Networks: A Comprehensive Foundation 2 ed. [S.l.]: Prentice Hall. ISBN 0-13-273350-1
  11. ↑ Merriman, Mansfield. A List of Writings Relating to the Method of Least Squares: With Historical and Critical Notes. Vol. 4. Academy, 1877.
  12. ↑ Stigler, Stephen M. (1981). «Gauss and the Invention of Least Squares». Ann. Stat. 9 (3): 465–474. doi:10.1214/aos/1176345451Acessível livremente
  13. 1 2 3 4 5 Schmidhuber, Jürgen (2022). «Annotated History of Modern AI and Deep Learning». arXiv:2212.11279Acessível livremente [cs.NE]
  14. ↑ Bretscher, Otto (1995). Linear Algebra With Applications 3.ª ed. Upper Saddle River, NJ: Prentice Hall
  15. ↑ Stigler, Stephen M. (1986). The History of Statistics: The Measurement of Uncertainty before 1900. Cambridge: Harvard. ISBN 0-674-40340-1
  16. ↑ McCulloch, Warren S.; Pitts, Walter (1 de dezembro de 1943). «A logical calculus of the ideas immanent in nervous activity». The Bulletin of Mathematical Biophysics (em inglês). 5 (4): 115–133. ISSN 1522-9602. doi:10.1007/BF02478259
  17. ↑ Rosenblatt, Frank (1958). «The Perceptron: A Probabilistic Model For Information Storage And Organization in the Brain». Psychological Review. 65 (6): 386–408. PMID 13602029. doi:10.1037/h0042519
  18. 1 2 Joseph, R. D. (1960). Contributions to Perceptron Theory, Cornell Aeronautical Laboratory Report No. VG-11 96--G-7, Buffalo. [S.l.: s.n.]
  19. ↑ Rosenblatt, Frank (1962). Principles of Neurodynamics. [S.l.]: Spartan, New York
  20. ↑ Ivakhnenko, A. G. (1973). Cybernetic Predicting Devices. [S.l.]: CCM Information Corporation
  21. ↑ Ivakhnenko, A. G.; Grigorʹevich Lapa, Valentin (1967). Cybernetics and forecasting techniques. [S.l.]: American Elsevier Pub. Co.
  22. ↑ Amari, Shun'ichi (junho de 1967). «A Theory of Adaptive Pattern Classifiers». IEEE Transactions on Electronic Computers. EC-16 (3): 299–307. ISSN 0367-7508. doi:10.1109/PGEC.1967.264666
  23. ↑ Linnainmaa, Seppo (1970). The representation of the cumulative rounding error of an algorithm as a Taylor expansion of the local rounding errors (Mestrado) (em finlandês). University of Helsinki. p. 6–7
  24. ↑ Linnainmaa, Seppo (1976). «Taylor expansion of the accumulated rounding error». BIT Numerical Mathematics. 16 (2): 146–160. doi:10.1007/bf01931367
  25. ↑ 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.
  26. 1 2 Schmidhuber, Juergen (25 de outubro de 2014). «Who Invented Backpropagation?». IDSIA, Switzerland. Consultado em 14 de setembro de 2024. Cópia arquivada em 30 de julho de 2024
  27. ↑ James A. Anderson e Edward Rosenfeld, ed. (2000). Talking Nets: An Oral History of Neural Networks (em inglês). [S.l.]: The MIT Press. ISBN 978-0-262-26715-1. doi:10.7551/mitpress/6626.003.0016. Cópia arquivada em 1 de outubro de 2026
  28. ↑ Werbos, Paul J. (1994). The Roots of Backpropagation : From Ordered Derivatives to Neural Networks and Political Forecasting. New York: John Wiley & Sons. ISBN 0-471-59897-6
  29. ↑ Rumelhart, David E.; Hinton, Geoffrey E.; Williams, Ronald J. (outubro de 1986). «Learning representations by back-propagating errors». Nature (em inglês). 323 (6088): 533–536. Bibcode:1986Natur.323..533R. ISSN 1476-4687. doi:10.1038/323533a0. Cópia arquivada em 26 de outubro de 2026
  30. ↑ Bengio, Yoshua; Ducharme, Réjean; Vincent, Pascal; Janvin, Christian (março de 2003). «A neural probabilistic language model». The Journal of Machine Learning Research. 3: 1137–1155. Cópia arquivada em 3 de dezembro de 2024
  31. 1 2 Auer, Peter; Burgsteiner, Harald; Maass, Wolfgang (2008). «A learning rule for very simple universal approximators consisting of a single layer of perceptrons» (PDF). Neural Networks. 21 (5): 786–795. PMID 18249524. doi:10.1016/j.neunet.2007.12.036. Consultado em 8 de setembro de 2009. Arquivado do original (PDF) em 6 de julho de 2011
  32. ↑ Cybenko, George (1989). «Approximation by superpositions of a sigmoidal function». Mathematics of Control, Signals, and Systems. 2 (4): 303–314. doi:10.1007/BF02551274

Ligações externas

[editar | editar código]