Rede neural artificial

[miniatura|Unha rede neural artificial é un grupo de nodos interconectados, inspirados nunha simplificación das [Neurona|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.

### 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. a redes de nodos diferenciables. 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.

### 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. Chamouno neocognitron. En 1969, tamén introduciu a función de activación ReLU (unidade lineal rectificada). 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.

### 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. 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). Combinao cun operador softmax e unha matriz de proxección. 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 
A tese de Sepp Hochreiter (1991) foi denominada "un dos documentos máis importantes da historia da aprendizaxe automática" polo seu supervisor Jürgen Schmidhuber. e propuxo conexións residuais recorrentes para resolvelo. Isto levou ao método de *deep learning* chamado memoria longa a curto prazo (LSTM), publicado en Neural Computation (1997). As redes neurais recorrentes LSTM poden aprender tarefas de "*very deep learning*" con longos camiños de asignación de créditos que requiren memorias de eventos que ocorreron miles de pasos de tempo antes. A *"vanilla LSTM"* con porta de esquecemento foi introducida en 1999 por Felix Gers, Schmidhuber e Fred Cummins. LSTM converteuse na rede neural máis citada do século XX. Sete meses despois, Kaiming He, Xiangyu Zhang; Shaoqing Ren e Jian Sun gañaron a competición ImageNet 2015 cunha variante de *Highway network* de porta-aberta ou sen porta chamada rede neural residual. Esta converteuse na rede neural máis citada do século XXI.

Os primeiros éxitos das redes neurais incluíron a predición do mercado de valores e en 1995 un vehículo practicamente autónomo.

Geoffrey Hinton *et al.* (2006) propuxeron aprender unha representación de alto nivel utilizando capas sucesivas de variables latentes binarias ou de valor real cunha máquina de Boltzmann restrinxida para modelar cada capa. En 2012, Andrew Ng e Jeff Dean crearon unha rede que aprendeu a recoñecer conceptos de nivel superior, coma gatos, só mirando imaxes sen etiquetas. O adestramento previo sen supervisión e o aumento da potencia de computación das GPU e a computación distribuída permitiron o uso de redes máis grandes, particularmente en problemas de recoñecemento visual e de imaxe, que se coñeceu como "*deep learning*".

Dan Ciresan e colegas (2010) demostraron que a pesar do problema de desvanecemento de gradiente, as GPU fan que a retropropagación sexa factible para redes neurais prealimentadas de moitas capas. Entre 2009 e 2012, os ANNs comezaron a gañar premios en concursos de recoñecemento de imaxes, achegándose ao rendemento a nivel humano en varias tarefas, inicialmente no recoñecemento de patróns e recoñecemento da escritura. Por exemplo, a memoria longa a curto prazo bidireccional e multidimensional (LSTM) de Alex Graves *et al.* gañou tres concursos de recoñecemento de caligrafía en 2009 sen ningún coñecemento previo sobre as tres linguas que ían aprender.

Ciresan e os seus colegas crearon os primeiros recoñecedores de patróns en lograr un rendemento similar ao humano en puntos de referencia como o recoñecemento de sinais de tráfico (IJCNN 2012).

## Notas