Saltar ao contido

Rede neural artificial

Na Galipedia, a Wikipedia en galego.
Revisión feita o 25 de abril de 2023 ás 13:52 por O Breixo (conversa | contribucións) (Tradución de parte do artigo en inglés: en:Artificial neural network)
Unha rede neural artificial é un grupo de nodos interconectados, inspirados nunha simplificación das neuronas nun cerebro. Aquí, cada nodo circular representa unha neurona artificial e unha frecha representa unha conexión dende a saída dunha neurona artificial ata a entrada doutra.

As redes neurais artificiais (RNAs),[1][2] xeralmente chamadas simplemente redes neurais, son sistemas informáticos inspirados nas redes neurais biolóxicas que constitúen os cerebros animais.[3]

Unha RNA baséase nunha colección de unidades ou nodos conectados chamados neuronas artificiais, que modelan de forma vaga as neuronas nun cerebro biolóxico. Cada conexión, como as sinapses dun cerebro biolóxico, pode transmitir un sinal a outras neuronas. Unha neurona artificial recibe sinais e logo procésaos e pode sinalar as neuronas conectadas a ela. O "sinal" nunha conexión é un número real, e a saída de cada neurona calcúlase mediante algunha función non lineal da suma das súas entradas. As conexións chámanse enlaces ou edges en inglés. As neuronas e os enlaces adoitan ter un peso ou weight que se axusta a medida que avanza a aprendizaxe. O peso aumenta ou diminúe a intensidade do sinal nunha conexión. As neuronas poden ter un límite tal que só se envía un sinal se o sinal agregado cruza ese límite.

Normalmente, as neuronas están agregadas en capas. Diferentes capas poden realizar diferentes transformacións nas súas entradas. Os sinais viaxan dende a primeira capa (a capa de entrada) ata a última capa (a capa de saída), posiblemente despois de atravesar as capas varias veces.

Adestramento

As redes neurais aprenden (ou son adestradas) procesando exemplos, cada un dos cales contén unha "entrada" e un "resultado" coñecidos, formando asociacións ponderadas por probabilidade entre ambos, que se almacenan dentro da estrutura de datos da propia rede. O adestramento dunha rede neural a partir dun exemplo dado adoita realizarse determinando a diferenza entre a saída procesada da rede (a miúdo unha predición) e unha saída obxectivo. Esta diferenza é o erro. A rede axusta entón as súas asociacións ponderadas segundo unha regra de aprendizaxe e utilizando este valor de erro. Os sucesivos axustes farán que a rede neural produza unha saída cada vez máis semellante á saída de destino. Despois dun número suficiente destes axustes, a formación pódese finalizar en función de determinados criterios. Esta é unha forma de aprendizaxe supervisada.

Estes sistemas "aprenden" a realizar tarefas considerando exemplos, xeralmente sen ser programados con regras específicas para tarefas. Por exemplo, no recoñecemento de imaxes, poden aprender a identificar imaxes que conteñan gatos analizando imaxes de exemplo que foron etiquetadas manualmente como "gato" ou "sen gato" e utilizando os resultados para identificar gatos noutras imaxes. Fan isto sen ningún coñecemento previo dos gatos, por exemplo, que teñen pelaxe, rabo, bigotes e caras de gato. Pola contra, xeran automaticamente características de identificación a partir dos exemplos que procesan.

Historia

Rede neural lineal

O tipo máis sinxelo de rede neural prealimentada (feed-forward neural network FNN en inglés) é unha rede lineal, que consiste nunha única capa de nodos de saída; as entradas son alimentadas directamente ás saídas mediante unha serie de pesos (weights). A suma dos produtos dos pesos e das entradas calcúlase en cada nodo. Os erros cuadráticos medios entre estas saídas calculadas e uns valores obxectivo determinados redúcense ao mínimo creando un axuste aos pesos. Esta técnica é coñecida desde hai máis de dous séculos como o método de mínimos cadrados lineais ou regresión linear. Legendre (1805) e Gauss (1795) utilizaron como medio para atopar un bo axuste lineal aproximado a un conxunto de puntos para a predición do movemento planetario.[4][5][6][7][8]

Arquitecturas de rede recorrentes

Wilhelm Lenz e Ernst Ising crearon e analizaron o modelo de Ising (1925),[9] que é esencialmente unha rede neural recorrente (recurrent neural network RNN) sen aprendizaxe que consta de elementos similares ás neuronas.[7] En 1972, Shun'ichi Amari fixo esta arquitectura adaptativa.[10][7] A súa RNN foi popularizada por John Hopfield en 1982.[11]

Perceptróns e primeiras redes neuronais

Warren McCulloch e Walter Pitts[12] (1943) tamén consideraron un modelo computacional de non-aprendizaxe para redes neurais.[13] A finais da década de 1940, D. O. Hebb[14] creou unha hipótese de aprendizaxe baseada no mecanismo da plasticidade neural que se coñeceu como teoría hebbiana. Farley e Wesley A. Clark[15] (1954) utilizaron primeiro máquinas computacionais, entón chamadas "calculadoras", para simular unha rede hebbiana. En 1958, o psicólogo Frank Rosenblatt inventou o perceptrón, a primeira rede neural artificial implementada,[16][17][18][19] financiada pola Oficina de Investigación Naval dos Estados Unidos.[20]

Algúns din que a investigación se estancau seguindo a Minsky e Papert (1969),[21] que descubriron que os perceptróns básicos eran incapaces de procesar o circuíto exclusivo e que os ordenadores carecían da potencia suficiente para procesar redes neurais útiles. Non obstante, cando saíu este libro, xa se coñecían métodos para adestrar perceptróns multicapa (MLP).

Primeiro deep learning

O primeiro MLP deep learning foi publicado por Alexey Grigorevich Ivakhnenko e Valentín Lapa en 1965, como o método de agrupamento para o manexo de datos.[22][23][24] O primeiro MLP de deep learning adestrado por descenso de gradiente estocástico[25] foi publicado en 1967 por Shun'ichi Amari. En experimentos informáticos realizados por un dos alumnos de Amari, un MLP de cinco capas con dúas capas modificables aprendeu representacións internas útiles para clasificar clases de patróns non linealmente separables.

Retropropagación

O algoritmo de retropropagación é unha aplicación eficiente da regra da cadea de Leibniz (1673) a redes de nodos diferenciables. Tamén se coñece como o modo inverso de diferenciación automática ou acumulación inversa, debido a Seppo Linnainmaa (1970). O termo "erros de propagación inversa" foi introducido en 1962 por Frank Rosenblatt, pero non tiña unha implementación deste procedemento, aínda que Henry J. Kelley e Bryson tiñan unha programación dinámica baseada precursores continuos da retropropagación xa en 1960 no contexto da teoría do control. En 1973, Dreyfus utilizou a retropropagación para adaptar os parámetros dos controladores en proporción aos gradientes de erro. En 1982, Paul Werbos aplicou a retropropagación aos MLPs de xeito que se converteu no estándar. En 1986 Rumelhart, Hinton e Williams demostraron que a retropropagación aprendeu interesantes representacións internas de palabras como vectores de características cando se adestraba para predicir a seguinte palabra nunha secuencia.

Mapas autoorganizados

Os mapas autoorganizados (SOMs) foron descritos por Teuvo Kohonen en 1982. Os SOM son redes neurais de inspiración neurofisiolóxica que aprenden representacións de baixa dimensión de datos de alta dimensión á vez que preservan a estrutura topolóxica dos datos. Adestran mediante a aprendizaxe competitiva.

Rede neurais convolucionais (CNNs)

A arquitectura da rede neural convolucional (CNN), con capas convolucionais e capas de compresión, foi introducida por Kunihiko Fukushima en 1980. Chamouno neocognitron. En 1969, tamén introduciu a función de activación ReLU (unidade lineal rectificada). O rectificador converteuse na función de activación máis popular para as CNN e as redes neurais de deep learning en xeral. As CNN convertéronse nunha ferramenta esencial para a visión artificial.

A rede neural con retardo de tempo (TDNN) de Alex Waibel (1987) combinou convolucións e repartición de peso e retropropagación. En 1988, Wei Zhang et al. aplicou a retropropagación a unha CNN (un Neocognitron simplificado con interconexións convolucionais entre as capas de características da imaxe e a última capa totalmente conectada) para o recoñecemento do alfabeto. En 1989, Yann LeCun et al. adestrou a unha CNN para recoñecer os códigos postais escritos a man no correo. En 1992, o max-pooling para CNN foi introducido por Juan Weng et al. para axudar coa invariancia de menor desprazamento e tolerancia á deformación para axudar ao recoñecemento de obxectos 3D. LeNet-5 (1998), unha CNN de 7 niveis de Yann LeCun et al., que clasifica os díxitos, foi aplicada por varios bancos para recoñecer números escritos a man en cheques dixitalizados en imaxes de 32 x 32 píxeles.

A partir de 1988, o uso de redes neurais transformou o campo da predición da estrutura das proteínas, en particular cando as primeiras redes en cascada foron adestradas en perfís (matrices) producidos por aliñamentos de secuencias múltiples.

Na década de 1980, a retropropagación non funcionaba ben para o deep learning das FNN e RNN. Para superar este problema, Juergen Schmidhuber (1992) propuxo unha xerarquía de RNNs adestradas previamente un nivel cada vez mediante a aprendizaxe autosupervisada. Usa codificación preditiva para aprender representacións internas en múltiples escalas de tempo. Isto pode facilitar substancialmente o deep learning posterior. A xerarquía RNN pode colapsarse nun único RNN, destilando unha rede chunker de nivel superior nunha rede de automatización de nivel inferior. En 1993, un chunker resolveu unha tarefa de deep learning cuxa profundidade superaba os 1000.

Redes adversarias xerativas

En 1991, Juergen Schmidhuber tamén publicou redes neurais adversarias que compiten entre si en forma de xogo de suma cero, onde a ganancia dunha rede é a perda da outra rede. A primeira rede é un modelo xenerativo que modela unha distribución de probabilidade sobre patróns de saída. A segunda rede aprende mediante o descenso en gradiente a predicir as reaccións do medio a estes patróns. Isto chamóuselle "curiosidade artificial".

En 2014, Ian Goodfellow et al. utilizou este principio nunha rede adversaria xerativa (GAN). Aquí a reacción ambiental é 1 ou 0 dependendo de se a saída da primeira rede está nun conxunto dado. Isto pódese usar para crear deepfakes realistas. StyleGAN (2018) de Nvidia conséguese unha excelente calidade de imaxe baseado no Progressive GAN de Tero Karras, Timo Aila, Samuli Laine e Jaakko Lehtinen. Aquí o xerador GAN crece de pequena a grande escala de forma piramidal.

Transformadores e as súas variantes

En 1992, Juergen Schmidhuber tamén publicou unha alternativa ás RNNs que agora se chama transformador lineal ou transformador con auto-atención linealizada. Aprende focos internos de atención: unha rede neural prealimentada aprende mediante un descenso de gradientes a controlar os pesos rápidos doutra rede neural a través de produtos externos de patróns de activación autoxerados FROM e TO (que agora se denominan key e value para auto-atención).

O transformador moderno foi introducido por Ashish Vaswani et. al. no seu artigo de 2017 "Attention Is All You Need". Combina isto cun operador softmax e unha matriz de proxección. Os transformadores convertéronse cada vez máis no modelo de elección para o procesamento da linguaxe natural. Moitos modelos modernos de grandes linguaxes como ChatGPT, GPT-4 e BERT utilízano. Os transformadores tamén se usan cada vez máis na visión por ordenador.

Notas

  1. Hardi Shah. "A Full Overview of Artificial Neural Networks (ANN)". learn.g2.com (en inglés). 
  2. Hardesty, Larry (2017). "Explained: Neural networks". Massachisetts Institute of Technology. 
  3. Yang, Z.R; Yang, Z. (2014). Comprehensive Biomedical Physics. Karolinska Institute. ISBN 978-0-444-53633-4. 
  4. Merriman, Mansfield (1877). A List of Writings Relating to the Method of Least Squares. Harvard University. ISBN 978-1166426859. 
  5. Stigler, Stephen M. (1981). "Gauss and the Invention of Least Squares". Project Euclid 9 (3): 465–474. doi:10.1214/aos/1176345451. 
  6. Bretscher, Otto. Linear Algebra with Applications. Pearson. ISBN 978-0321796943. 
  7. 7,0 7,1 7,2 Schmidhuber, Juergen (2022). "Annotated History of Modern AI and Deep Learning". Cornell University. arXiv:2212.11279. 
  8. Stigler, Stephen M. (1986). The History of Statistics: The Measurement of Uncertainty before 1900. Cambridge: Harvard. ISBN 0-674-40340-1. 
  9. Brush, Stephen G. (1967). "History of the Lenz-Ising Model". Reviews of Modern Physics 39 (4): 883–893. Bibcode:1967RvMP...39..883B. doi:10.1103/RevModPhys.39.883. 
  10. Amari, Shun-Ichi (1972). "Learning patterns and pattern sequences by self-organizing nets of threshold elements". IEEE Transactions (21): 1197–1206. ISSN 1557-9956. doi:10.1109/T-C.1972.223477. 
  11. Hopfield, J. J. (1982). "Neural networks and physical systems with emergent collective computational abilities". Proceedings of the National Academy of Sciences 79 (8): 2554–2558. Bibcode:1982PNAS...79.2554H. doi:10.1073/pnas.79.8.2554. 
  12. McCulloch, Warren; Pitts, Walter (1943). "A Logical Calculus of Ideas Immanent in Nervous Activity". Bulletin of Mathematical Biophysics 5 (4): 115–133. doi:10.1007/BF02478259. 
  13. Kleene, S.C. (1956). "Representation of Events in Nerve Nets and Finite Automata". Annals of Mathematics Studies. Princeton University Press (34): 3–41. 
  14. The Organization of Behavior. Wiley. 1949. ISBN 978-1-135-63190-1. 
  15. Farley, B.G.; Clark, W.A. (1954). "Simulation of Self-Organizing Systems by Digital Computer". IRE Transactions on Information Theory 4 (4): 76–84. doi:10.1109/TIT.1954.1057468. 
  16. Haykin, Simon (2008). Neural Networks and Learning Machines, 3rd edition. McMaster University, Pearson. ISBN 978-0131471399. 
  17. Rosenblatt, F. (1958). "The Perceptron: A Probabilistic Model For Information Storage And Organization in the Brain". Psychological Review 65 (6): 386–408. doi:10.1037/h0042519. 
  18. Werbos, Paul John (1975). Beyond Regression: New Tools for Prediction and Analysis in the Behavioral Sciences. Harvard University. 
  19. Rosenblatt, Frank (1957). "The Perceptron—a perceiving and recognizing automaton" (PDF). Cornell Aeronautical Laboratory. Report 85-460-1. 
  20. Olazaran, Mikel (1996). "A Sociological Study of the Official History of the Perceptrons Controversy". Social Studies of Science 26 (3): 611–659. JSTOR 285702. doi:10.1177/030631296026003005. 
  21. Minsky, Marvin; Papert, Seymour (1969). Perceptrons: An Introduction to Computational Geometry. MIT Press. ISBN 978-0-262-63022-1. 
  22. Schmidhuber, Juergen (2015). "Deep Learning in Neural Networks: An Overview". Neural Networks 61: 85–117. PMID 25462637. arXiv:1404.7828. doi:10.1016/j.neunet.2014.09.003. 
  23. Ivakhnenko, A. G. (1973). Cybernetic Predicting Devices. CCM Information Corporation. 
  24. Ivakhnenko, A. G. (1967). Cybernetics and Forecasting Techniques. American Elsevier Publishing Company. ISBN 9780444000200. ISSN 0076-9908. 
  25. Robbins, H.; Monro, S. (1951). "A Stochastic Approximation Method". The Annals of Mathematical Statistics 22 (3): 400. doi:10.1214/aoms/1177729586.