miniatura|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), xeralmente chamadas simplemente redes neurais, son modelos informáticos utilizados dentro das disciplinas de intelixencia artificial e aprendizaxe automática inicialmente inspirados nas redes neurais biolóxicas dos cerebros animais.

Unha RNA baséase nunha colección de nodos conectados chamados neuronas artificiais, que modelan de forma vaga as neuronas do cerebro biolóxico. Cada conexión, como a sinapse dun cerebro biolóxico, pode transmitir sinais as demais neuronas. Unha neurona artificial recibe sinais e logo procésaos podendo despois sinalar as neuronas que teña conectadas. O "sinal" é un número real, e a saída de cada neurona calcúlase mediante algunha función non linear 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 do enlace. As neuronas tamén poden ter un límite de maneira que só se envía un sinal se o sinal engadido pasa o límite asignado.

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 (de entrada) ata a última capa (de saída), posiblemente despois de atravesar as capas varias veces.

Adestramento As redes neurais 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 ou bigotes. Pola contra, xeran automaticamente características de identificación a partir dos exemplos que procesan.

Historia

Rede neural lineal miniatura|Unha rede neural prealimentada dunha soa capa. O tipo máis sinxelo de rede neural prealimentada (feed-forward neural network FNN) é 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.

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

Perceptróns e primeiras redes neurais Warren McCulloch e Walter Pitts (1943) tamén consideraron un modelo computacional de non-aprendizaxe para redes neurais. A finais da década de 1940, D. O. Hebb 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 (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, financiada pola Oficina de Investigación Naval dos Estados Unidos.

Algúns din que o desenvolvemento estancou despois de Minsky e Papert (1969), 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. O primeiro MLP de deep learning adestrado por descenso de gradiente estocástico 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 ideados 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, Jürgen 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, Jürgen 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 doutra. 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. utilizaron 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. O StyleGAN (2018) de Nvidia consegue 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 maneira piramidal.

Transformadores e as súas variantes En 1992, Jürgen Schmidhuber tamén publicou unha alternativa ás RNNs o 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 "atención é todo o que precisas". Combinao 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.

O problema de desvanecemento de gradiente