Saltar ao contido

Rede neural recorrente

Na Galipedia, a Wikipedia en galego.
Rede neural recorrente
Esquema simple dunha rede neural recorrente.

As redes neurais recorrentes (RNN) son unha clase de redes neurais artificiais para o procesamento secuencial de datos. A diferenza das redes neurais de avance, que procesan datos nun só paso, as RNN procesan datos en varios pasos de tempo, polo que son adecuadas para modelar e procesar texto, voz e series cronolóxicas.[1]

O bloque fundamental dunha RNN é a unidade recorrente. Esta unidade mantén un estado oculto, esencialmente unha forma de memoria, que se actualiza en cada paso de tempo en función da entrada actual e do estado oculto anterior. Este bucle de retroalimentación permite que a rede aprenda das entradas pasadas e incorpore ese coñecemento ao seu procesamento actual.

As primeiras redes neurais recorrentes sufriron o problema do esvaecemento do gradiente, limitando a súa capacidade para aprender dependencias que estaban a unha distancia considerable. Isto resolveuse coa invención das redes de memoria a longo e curto prazo (LSTM, das súas siglas en inglés, Long Short-Term Memory) en 1997, que se converteu na arquitectura estándar para as RNN.

Este tipo de redes aplicáronse a tarefas como o recoñecemento de escritura manual,[2] o recoñecemento da fala,[3] o procesamento da linguaxe natural e a tradución automática neural.[4]

Antes das redes LSTM

[editar | editar a fonte]

Unha orixe das redes neurais recorrentes foi a mecánica estatística. O modelo de Ising foi desenvolvido por Wilhelm Lenz[5] e Ernst Ising[6] na década de 1920[7] como un simple modelo mecánico estatístico de imáns en equilibrio. En 1963, o físico Roy J. Glauber estudou como evolucionaba no tempo modelo de Ising, como un proceso cara ao equilibrio (dinámica de Glauber), engadindo esa compoñente do tempo.[8] En 1972, Shun'ichi Amari propuxo modificar os pesos dun modelo de Ising pola regra de aprendizaxe de Hebbian, como modelo de memoria asociativa, engadindo a compoñente de aprendizaxe.[9] Esta foi popularizada como a rede Hopfield, en 1982.[10]

Outra orixe das redes neurais recorrentes foi a neurociencia. A palabra recorrente úsase para describir estruturas de tipo bucle en anatomía. En 1901, Ramón y Cajal observou "semicírculos recorrentes" no córtex cerebeloso formados por fibras paralelas, células de Purkinje e células granulares.[11][12] En 1933, Lorente de Nó descubriu "conexións recíprocas e recorrentes" polo método de Golgi, e propuxo que os bucles excitadores explican certos aspectos do reflexo vestíbulo-ocular.[13][14] Durante a década de 1940, varias persoas propuxeron a existencia de retroalimentación no cerebro, o que contrastaba coa comprensión anterior do sistema neural como unha estrutura puramente de retroalimentación cara adiante. O psicólogo Donald O. Hebb considerou o "circuíto reverberante" como unha explicación para a memoria a curto prazo.[15] O artigo de McCulloch e Pitts (1943), que propuxo o modelo de neuronas McCulloch-Pitts, considerou redes que contiñan ciclos. A actividade actual de tales redes pode verse afectada por actividades que se realizaron hai moito tempo.[16] Ambos investigadores estaban interesados en bucles pechados como posibles explicacións para, por exemplo, a epilepsia e a causalxia.[17] A inhibición recorrente propúxose en 1946 como un mecanismo de retroalimentación negativa no control motor. Os bucles de retroalimentación neural foron un tema común de discusión nas conferencias de Macy.[18]

Minsky e Papert sinalaron que as redes recorrentes poden despregarse no tempo nunha rede retroalimentación cara adiante en capas (páx. 354[19]).

No rexurdir das redes neurais nos anos 80, as redes recorrentes foron estudadas de novo. Ás veces chamábanse redes iteradas.[20] Dous primeiros traballos influentes foron a rede Jordan (1986) e a rede Elman (1990), que aplicou redes neurais recorrentes para estudar a psicoloxía cognitiva. En 1993, un sistema de compresor de historia neural resolveu unha tarefa de "aprendizaxe moi profunda" que requiría máis de 1000 capas nunha RNN despregada no tempo.[21]

Artigo principal: LSTM.

As redes de memoria a longo e curto prazo foron inventadas por Hochreiter e Schmidhuber en 1995, e estableceron rexistros de precisión en múltiples dominios de aplicacións.[22] Converteuse na opción predeterminada para a arquitectura de RNN.

Ao redor do 2006, as redes LSTM comezaron a revolucionar o recoñecemento de voz, superando os modelos tradicionais en determinadas aplicacións de fala.[23] Ademais, tamén melloraron o recoñecemento de voz de gran vocabulario [3] e a síntese de texto a voz[24] e utilizáronse na busca por voz de Google e no ditado en dispositivos Android.[24]

Estas redes bateron récords de mellora da tradución automática,[25] do modelado lingüístico e do procesamento de linguaxe multilingüe. Combinadas coas redes neurais convolucionais (CNN) melloraron o subtitulado automático en imaxes.

Un modelo importante que utiliza redes LSTM xurdiu da idea da transdución de secuencias codificador-descodificador desenvolveuse a principios da década do 2010.[26] Unha arquitectura seq2seq emprega dúas RNN, normalmente LSTM, un codificador e un descodificador, para a transdución de secuencias, como a tradución automática. Convertéronse no estado da arte na tradución automática, e foron fundamentais no desenvolvemento do mecanismo de atención e dos transformadores.

Configuracións

[editar | editar a fonte]

Un modelo baseado en RNN pódese dividir en dúas partes: configuración e arquitectura. Pódense combinar varias redes neurais recorrentes nun fluxo de datos e o propio fluxo de datos é a configuración. Cada RNN en si pode ter calquera arquitectura, incluíndo LSTM, GRU, etc.

RNN estándar

[editar | editar a fonte]
Rede neural recorrente básica comprimida (esquerda) e desdobrada (dereita).

As redes neurais recorrentes teñen moitas variantes. Falando en abstracto, unha RNN é unha función de tipo , onde:

  • é o vector de entrada;
  • é o vector oculto;
  • é o vector de saída;
  • son parámetros da rede neural.

É dicir, é unha rede neural que converte unha entrada nunha saída , co vector oculto desenvolvendo o papel de memoria, é dicir, un rexistro parcial de tódolos pares entrada-saída anteriores. En cada paso, transforma a entrada nunha saída e modifica a súa memoria para axudarlle a realizar mellor o procesamento futuro.

A ilustración pode ser enganosa para moitos porque as topoloxías usuais de redes neurais adoitan organizarse en capas e o debuxo dá esa aparencia. Non obstante, o que parecen ser capas son, en realidade, diferentes pasos no tempo, desdobrados para producir a aparencia de capas.

RNN amoreada

[editar | editar a fonte]
RNN amoreada.

Unha RNN amoreada, ou RNN profunda, está composta por varias redes neurais recorrentes amoreadas unhas enriba das outras. Matematicamente, estrutúrase do seguinte xeito

  1. A capa 1 ten un vector oculto , parámetros , e converte.
  2. A capa 2 ten un vector oculto , parámetros , e converte.
  3. ...
  4. Capa Fallou a conversión do código (SVG (MathML pódese activar mediante un complemento do navegador): Resposta non válida ("Math extension cannot connect to Restbase.") desde o servidor "http://localhost:6011/gl.wikipedia.org/v1/":): {\displaystyle n } ten un vector oculto , parámetros Fallou a conversión do código (SVG (MathML pódese activar mediante un complemento do navegador): Resposta non válida ("Math extension cannot connect to Restbase.") desde o servidor "http://localhost:6011/gl.wikipedia.org/v1/":): {\displaystyle \theta_n} , e converteFallou a conversión do código (SVG (MathML pódese activar mediante un complemento do navegador): Resposta non válida ("Math extension cannot connect to Restbase.") desde o servidor "http://localhost:6011/gl.wikipedia.org/v1/":): {\displaystyle f_{\theta_n} : (x_{n-1, t}, h_{n, t}) \mapsto (x_{n, t}, h_{n, t+1}) } .

Cada capa funciona como unha RNN autónoma e a secuencia de saída de cada capa utilízase como secuencia de entrada á capa superior. Non hai límite conceptual para a profundidade da RNN.

Bidireccional

[editar | editar a fonte]
RNN bidireccional.

Unha RNN bidireccional está composta por dúas redes neurais recorrentes, unha procesando a secuencia de entrada nunha dirección e outra na dirección oposta. Matematicamente, estrutúrase do seguinte xeito:

A RNN cara adiante procesa nunha dirección:

Fallou a conversión do código (SVG (MathML pódese activar mediante un complemento do navegador): Resposta non válida ("Math extension cannot connect to Restbase.") desde o servidor "http://localhost:6011/gl.wikipedia.org/v1/":): {\displaystyle f_{\theta}(x_0, h_0) = (y_0, h_{1}), f_{\theta}(x_1, h_1) = (y_1, h_{2}), \dots}

Mentres que a RNN cara atrás procesa na dirección oposta:

Fallou a conversión do código (SVG (MathML pódese activar mediante un complemento do navegador): Resposta non válida ("Math extension cannot connect to Restbase.") desde o servidor "http://localhost:6011/gl.wikipedia.org/v1/":): {\displaystyle f'_{\theta'}(x_N, h_N') = (y'_N, h_{N-1}'), f'_{\theta'}(x_{N-1}, h_{N-1}') = (y'_{N-1}, h_{N-2}'), \dots}

As dúas secuencias de saída concaténanse para dar a saída total: .

A RNN bidireccional permite que o modelo procese unha porción tanto no contexto do que veu antes como do que veu despois. Ao amorear varias redes neurais recorrentes bidireccionais, o modelo pode procesar unha porción de forma cada vez máis contextual. O modelo ELMo (2018) é unha rede LSTM bidireccional amoreada que toma os caracteres como entradas e produce incrustacións a nivel de palabra.

Codificador-descodificador

[editar | editar a fonte]
Un descodificador sen codificador.
RNN de codificador-descodificador sen mecanismo de atención.
RNN de codificador-descodificador con mecanismo de atención.

Pódense executar dúas redes neurais recorrentes nunha configuración de codificador-descodificador. A RNN que xoga o papel de codificador procesa unha secuencia de entrada nunha secuencia de vectores ocultos, e a RNN que xoga o papel de descodificador procesa a secuencia de vectores ocultos nunha secuencia de saída, cun mecanismo de atención opcional. Isto utilizouse para construír tradutores automáticos neurais de última xeración entre o ano 2014 e o ano 2017. Este foi un paso fundamental para o desenvolvemento dos transformadores, creados en 2017.[27]

Unha RNN pode procesar datos con máis dunha dimensión. PixelRNN procesa datos con moitas direccións posibles.[28] Por exemplo, a dirección fila por fila procesa unha cuadrícula Fallou a conversión do código (SVG (MathML pódese activar mediante un complemento do navegador): Resposta non válida ("Math extension cannot connect to Restbase.") desde o servidor "http://localhost:6011/gl.wikipedia.org/v1/":): {\displaystyle n \times n} de vectores na seguinte orde:

Fallou a conversión do código (SVG (MathML pódese activar mediante un complemento do navegador): Resposta non válida ("Math extension cannot connect to Restbase.") desde o servidor "http://localhost:6011/gl.wikipedia.org/v1/":): {\displaystyle x_{1, 1}, x_{1, 2}, \dots, x_{1, n}, x_{2, 1}, x_{2, 2}, \dots, x_{2, n}, \dots, x_{n, n}}

A diagonal BiLSTM usa dúas redes LSTM para procesar a mesma reixa. Unha procésaa desde a esquina superior esquerda ata a parte inferior dereita, de xeito que procesa dependendo do seu estado oculto e do estado da cela na parte superior e no lado esquerdo: e Fallou a conversión do código (SVG (MathML pódese activar mediante un complemento do navegador): Resposta non válida ("Math extension cannot connect to Restbase.") desde o servidor "http://localhost:6011/gl.wikipedia.org/v1/":): {\displaystyle h_{i, j-1}, c_{i, j-1}} . A outra procésaa dende a esquina superior dereita ata a parte inferior esquerda.

Arquitecturas

[editar | editar a fonte]

Totalmente recorrente

[editar | editar a fonte]
Unha RNN totalmente conectada con 4 neuronas.

As redes neurais totalmente recorrentes (FRNN, das súas siglas en inglés, Fully Recurrent Neural Networks) conectan as saídas de tódalas neuronas ás entradas de tódalas neuronas. Noutras palabras, é unha rede totalmente conectada . Esta é a topoloxía de rede neural máis xeral, porque tódalas demais topoloxías pódense representar configurando algúns pesos de conexión a cero para simular a falta de conexións entre esas neuronas.

Unha rede de Elman simple, onde Fallou a conversión do código (SVG (MathML pódese activar mediante un complemento do navegador): Resposta non válida ("Math extension cannot connect to Restbase.") desde o servidor "http://localhost:6011/gl.wikipedia.org/v1/":): {\displaystyle \sigma_h = \tanh, \sigma_y = \text{Identity} } .

Rede de Hopfield

[editar | editar a fonte]

A rede de Hopfield é unha RNN na que tódalas conexións entre capas teñen o mesmo tamaño. Require entradas estacionarias e, polo tanto, non é unha RNN xeral, xa que non procesa secuencias de patróns. Non obstante, garante que vai converxer. Se as conexións se adestran mediante a aprendizaxe de Hebbian, a rede de Hopfield pode funcionar coma unha memoria sólida de contido direccional, resistente á alteración da conexión.

Redes de Elman e Redes de Jordan

[editar | editar a fonte]
A rede de Elman.

Unha rede de Elman é unha rede de tres capas (disposta horizontalmente como x, y e z na ilustración) coa adición dun conxunto de unidades de contexto (u na ilustración). A capa media (oculta) está conectada a estas unidades de contexto fixadas cun peso de un.[29] En cada paso de tempo, aplícase unha regra de aprendizaxe. As conexións posteriores fixas gardan unha copia dos valores anteriores das unidades ocultas nas unidades de contexto (xa que se propagan sobre as conexións antes de que se aplique a regra de aprendizaxe). Así, a rede pode manter unha especie de estado, o que lle permite realizar tarefas como a predición de secuencias que están máis alá do poder dun perceptrón multicapa estándar.

Matematicamente, unha rede de Elman pódese representar do seguinte xeito:[30]

Fallou a conversión do código (SVG (MathML pódese activar mediante un complemento do navegador): Resposta non válida ("Math extension cannot connect to Restbase.") desde o servidor "http://localhost:6011/gl.wikipedia.org/v1/":): {\displaystyle \begin{align} h_t &= \sigma_h(W_{h} x_t + U_{h} h_{t-1} + b_h) \\ y_t &= \sigma_y(W_{y} h_t + b_y) \end{align} }

Denotando como:

  • Fallou a conversión do código (SVG (MathML pódese activar mediante un complemento do navegador): Resposta non válida ("Math extension cannot connect to Restbase.") desde o servidor "http://localhost:6011/gl.wikipedia.org/v1/":): {\displaystyle x_t} o vector de entrada
  • o vector de capa oculta
  • o vector de saída
  • , e as matrices e vector de parámetros
  • e Fallou a conversión do código (SVG (MathML pódese activar mediante un complemento do navegador): Resposta non válida ("Math extension cannot connect to Restbase.") desde o servidor "http://localhost:6011/gl.wikipedia.org/v1/":): {\displaystyle \sigma_y} as funcións de activación

En canto ás redes de Jordan, son similares ás de Elman. As unidades de contexto aliméntanse dende a capa de saída en lugar da capa oculta. As unidades de contexto nunha rede de Jordan tamén se denominan capa de estado.

Matematicamente, unha rede de Jordan pódese representar do seguinte xeito:

As redes de Elman e Jordan tamén se coñecen como "Redes simples recorrentes" (SRN, das súas siglas en inglés, Simple recurrent networks), por teren unha conexión recorrente.

Memoria a longo e curto prazo

[editar | editar a fonte]
Unidade de memoria a longo e curto prazo.

A memoria a longo e curto prazo (LSTM) é a arquitectura de RNN máis utilizada. Foi deseñada para resolver o problema do esvaecemento do gradiente. A LSTM é normalmente aumentada por portas recorrentes chamadas portas esquecidas.[31] A LSTM evita que os erros de retropropagación desaparezan ou exploten. Pola contra, os erros poden retroceder a través dun número ilimitado de capas virtuais despregadas no espazo. É dicir, unha rede LSTM pode aprender tarefas que requiren lembranzas de eventos que sucederon miles ou mesmo millóns de pasos discretos de tempo antes. Pódense desenvolver topoloxías tipo LSTM específicas para o problema que se estea a tratar.[32] As redes LSTM funcionan incluso tendo grandes atrasos entre eventos significativos e poden xestionar sinais que mesturan compoñentes de baixa e alta frecuencia.

Moitas aplicacións usan pilas de LSTM,[33] o que se chama LSTM profundo. A rede LSTM pode aprender a recoñecer linguaxes sensibles ao contexto (a diferenza dos modelos anteriores baseados en modelos de Markov ocultos) e conceptos similares.[34]

Unidade recorrente pechada

[editar | editar a fonte]
Unidade recorrente pechada.

As unidades recorrentes pechadas (GRU, polas súas siglas en inglés, Gated Recurrent Unit), introducidas en 2014, foron deseñadas como unha simplificación da LSTM. Utilízanse na súa forma completa e en varias variantes simplificadas. Teñen menos parámetros que as LSTM, xa que carecen de porta de saída.[35]

No modelado de música polifónica e no modelado de sinal de fala, por exemplo, o seu rendemento foi similar ao da memoria a longo e curto prazo. Non parece haber unha diferenza de rendemento particular entre LSTM e GRU.[36]

Memoria asociativa bidireccional

[editar | editar a fonte]

Introducida por Bart Kosko,[37] unha rede de memoria asociativa bidireccional (BAM, polas súas siglas en inglés, Bidirectional Associative Memory) é unha variante dunha rede de Hopfield que almacena datos asociativos como un vector. A bidireccionalidade provén de pasar información a través dunha matriz e a súa transposición. Normalmente prefírese a codificación bipolar á codificación binaria dos pares asociativos. Recentemente, optimizáronse os modelos BAM estocásticos que usan o paso de Markov para aumentar a estabilidade da rede, ademais de pola súa relevancia para as aplicacións do mundo real.[38]

Unha rede BAM ten dúas capas, onde calquera delas pode ser dirixida como entrada para lembrar unha asociación e producir unha saída na outra capa.[39]

Estado de eco

[editar | editar a fonte]

As redes de estado de eco (ESN, das súas siglas en inglés, Echo State Networks) teñen unha capa oculta aleatoria pouco conectada. Os pesos das neuronas de saída son a única parte da rede que pode ser adestrada. As ESN son boas para reproducir certas series temporais.[40] Unha variante para aumentar as neuronas coñécese como máquina de estado líquido.[41]

Recursividade

[editar | editar a fonte]

Unha rede neural recursiva[42] créase aplicando o mesmo conxunto de pesos de forma recursiva sobre unha estrutura diferenciable atravesando a estrutura en orde topolóxica. Tales redes normalmente tamén son adestradas polo modo inverso de diferenciación automática.[43] Poden procesar representacións distribuídas da estrutura, como termos lóxicos. Un caso especial de redes neurais recursivas é unha RNN cuxa estrutura corresponde a unha cadea linear. Estas redes aplicáronse ao procesamento da linguaxe natural.

Máquinas de Turing neurais

[editar | editar a fonte]

As máquinas de Turing neurais son un método de estender redes neurais recorrentes acoplándoas a recursos de memoria externos cos que interactúan. O sistema combinado é análogo a unha máquina de Turing ou a arquitectura Von Neumann, mais é diferenciable de extremo a extremo, o que lle permite ser adestrado de forma eficiente co método do descenso do gradiente.

As computadoras neurais diferenciables son unha extensión das máquinas de Turing neurais, que permiten o uso de cantidades difusas de cada enderezo de memoria e un rexistro da cronoloxía.[44]

Os autómatas de empuxe de redes neurais son similares ás Máquinas de Turing neurais, pero as cintas substitúense por pilas analóxicas diferenciables que se poden adestrar. Deste xeito, son similares en complexidade aos recoñecedores de gramáticas libres de contexto.[45]

As redes neurais recorrentes son Turing completas e poden executar programas arbitrarios para procesar secuencias arbitrarias de entradas.[46]

Adestramento

[editar | editar a fonte]

Teacher forcing

[editar | editar a fonte]
RNN de codificador-descodificador sen mecanismo de atención. A forza do profesor móstrase en vermello.

Unha RNN pode ser adestrada nun modelo condicionalmente xerativo de secuencias, tamén coñecido como autorregresión.

Concretamente, considérese o problema da tradución automática, é dicir, dada unha secuencia Fallou a conversión do código (SVG (MathML pódese activar mediante un complemento do navegador): Resposta non válida ("Math extension cannot connect to Restbase.") desde o servidor "http://localhost:6011/gl.wikipedia.org/v1/":): {\displaystyle (x_1, x_2, \dots, x_n)} de palabras inglesas, o modelo ten que producir unha secuencia Fallou a conversión do código (SVG (MathML pódese activar mediante un complemento do navegador): Resposta non válida ("Math extension cannot connect to Restbase.") desde o servidor "http://localhost:6011/gl.wikipedia.org/v1/":): {\displaystyle (y_1, \dots, y_m)} de palabras galegas. Debe resolverse mediante un modelo seq2seq.

Durante o adestramento, a parte do codificador do modelo inxeriría primeiro Fallou a conversión do código (SVG (MathML pódese activar mediante un complemento do navegador): Resposta non válida ("Math extension cannot connect to Restbase.") desde o servidor "http://localhost:6011/gl.wikipedia.org/v1/":): {\displaystyle (x_1, x_2, \dots, x_n)} . Logo, a parte do descodificador comezaría a xerar unha secuencia Fallou a conversión do código (SVG (MathML pódese activar mediante un complemento do navegador): Resposta non válida ("Math extension cannot connect to Restbase.") desde o servidor "http://localhost:6011/gl.wikipedia.org/v1/":): {\displaystyle (\hat y_1, \hat y_2, \dots, \hat y_{l})} . O problema é que se o modelo comete un erro dende o principio, sexa Fallou a conversión do código (SVG (MathML pódese activar mediante un complemento do navegador): Resposta non válida ("Math extension cannot connect to Restbase.") desde o servidor "http://localhost:6011/gl.wikipedia.org/v1/":): {\displaystyle \hat y_2} , entón é probable que as porcións posteriores tamén sexan erros. Isto fai que sexa ineficiente que o modelo obteña un sinal de aprendizaxe, xa que o modelo aprendería principalmente a cambiar cara a Fallou a conversión do código (SVG (MathML pódese activar mediante un complemento do navegador): Resposta non válida ("Math extension cannot connect to Restbase.") desde o servidor "http://localhost:6011/gl.wikipedia.org/v1/":): {\displaystyle y_2} , pero non os demais.

O teacher forcing fai que o descodificador utilice a secuencia de saída correcta para xerar a seguinte entrada na secuencia. Así, por exemplo, veríase Fallou a conversión do código (SVG (MathML pódese activar mediante un complemento do navegador): Resposta non válida ("Math extension cannot connect to Restbase.") desde o servidor "http://localhost:6011/gl.wikipedia.org/v1/":): {\displaystyle (y_1, \dots, y_{k})} para xerar Fallou a conversión do código (SVG (MathML pódese activar mediante un complemento do navegador): Resposta non válida ("Math extension cannot connect to Restbase.") desde o servidor "http://localhost:6011/gl.wikipedia.org/v1/":): {\displaystyle \hat y_{k+1}} .

Descenso do gradiente con RNN

[editar | editar a fonte]

O descenso do gradiente é un algoritmo de optimización iterativo de primeira orde para atopar o mínimo dunha función. Nas redes neurais, pódese usar para minimizar o termo de erro cambiando cada peso en proporción á derivada do erro con respecto a ese peso, sempre que as funcións de activación non lineares sexan diferenciables.

O método estándar para adestrar unha RNN por descenso do gradiente é o algoritmo de retropropagación a través do tempo (BPTT, das súas siglas en inglés, BackPropagation through time), que é un caso especial do algoritmo xeral de retropropagación. Unha variante máis cara computacionalmente chámase Real-Time Recurrent Learning (RTRL),[47] que é un exemplo de diferenciación automática. A diferenza do algoritmo de retropropagación a través do tempo, este algoritmo é local no tempo pero non local no espazo.

Neste contexto, ser local no espazo significa que o vector de peso dunha unidade pode actualizarse usando só a información almacenada nas unidades conectadas e na propia unidade, de xeito que a complexidade de actualización dunha única unidade é linear na dimensión do vector de peso. Ser local no tempo significa que as actualizacións teñen lugar continuamente e dependen só do paso de tempo máis recente e non de varios pasos de tempo nun horizonte temporal determinado, coma no algoritmo de retropropagación a través do tempo. As redes neurais biolóxicas parecen ser locais tanto no tempo como no espazo.[48]

Para calcular recursivamente as derivadas parciais, RTRL ten unha complexidade temporal de Fallou a conversión do código (SVG (MathML pódese activar mediante un complemento do navegador): Resposta non válida ("Math extension cannot connect to Restbase.") desde o servidor "http://localhost:6011/gl.wikipedia.org/v1/":): {\displaystyle O(\text{numero de pesos ocultos} \times \text{numero de pesos})} por paso de tempo para calcular as matrices xacobianas, mentres que BPTT só ten orde por paso de tempo, polo custo de almacenar tódalas activacións cara adiante dentro do horizonte temporal dado. Existe un híbrido en liña entre BPTT e RTRL con complexidade intermedia,[49] xunto con variantes para tempo continuo.[50]

Un problema importante co descenso do gradiente para as arquitecturas RNN estándar é que os gradientes do erro desaparecen exponencialmente rápido co tamaño do desfase de tempo entre eventos importantes. LSTM combinado cun método de aprendizaxe híbrido BPTT/RTRL intenta superar estes problemas.[22] Este problema tamén se resolve na rede neural recorrente independente (IndRNN), reducindo o contexto dunha neurona ao seu propio estado pasado, onde a información entre neuronas pódese explorar nas capas seguintes. Pódense aprender memorias de diferentes rangos, incluída a memoria a longo prazo, sen o problema de que o gradiente desapareza e explote.

O algoritmo en liña chamado retropropagación causal recursiva (CRBP, polas súas siglas en inglés, Causal Recursive BackPropagation), implementa e combina paradigmas BPTT e RTRL para redes localmente recorrentes.[51] Funciona coa maioría das redes localmente recorrentes. O algoritmo CRBP pode minimizar o termo de erro global. Este feito mellora a estabilidade do algoritmo, proporcionando unha visión unificadora das técnicas de cálculo de gradientes para redes recorrentes con retroalimentación local.

Unha aproximación ao cálculo da información do gradiente en redes neurais recorrentes con arquitecturas arbitrarias baséase na derivación esquemática de grafos de fluxo de sinal.[52] Este esquema usa o algoritmo por lotes BPTT, baseado no teorema de Lee para os cálculos da sensibilidade da rede.[53] Foi proposto por Wan e Beaufays, mentres que a súa versión rápida en liña foi proposta por Campolucci, Uncini e Piazza.[53]

Clasificación temporal conectiva

[editar | editar a fonte]

A clasificación temporal conectiva (CTC)[54] é unha función de perda especializada para adestrar redes neurais recorrentes para problemas de modelado de secuencias onde o tempo é variable.[55]

Métodos de optimización global para RNN

[editar | editar a fonte]

O adestramento dos pesos nunha rede neural pódese modelar como un problema de optimización global non linear. Pódese formar unha función obxectivo para avaliar a aptitude ou o erro dun vector de peso particular. En primeiro lugar, os pesos na rede establécense segundo o vector de peso. A continuación, avalíase a rede en función da secuencia de adestramento. Normalmente, a diferenza da suma dos cadrados entre as predicións e os valores obxectivo especificados na secuencia de adestramento úsase para representar o erro do vector de peso actual. Pódense empregar técnicas de optimización global arbitrarias para minimizar esta función obxectivo.

O método de optimización global máis común para adestrar redes neurais recorrentes son os algoritmos xenéticos, especialmente en redes non estruturadas.[56]

Inicialmente, o algoritmo xenético está codificado cos pesos da rede neural dun xeito predefinido onde un xene do cromosoma representa un enlace de peso. Toda a rede represéntase como un único cromosoma. A función de fitness avalíase do seguinte xeito:

  • Cada peso codificado no cromosoma está asignado ao enlace de peso respectivo da rede.
  • O conxunto de adestramento preséntase á rede que propaga os sinais de entrada cara adiante.
  • O erro cadrático medio devólvese á función de fitness.
  • Esta función dirixe o proceso de selección xenética.

Moitos cromosomas conforman o que che chama poboación. Mentres tanto, moitas redes neurais diferentes van evolucionando ata que se cumpre un criterio de parada. As tres seguintes condicións son esquemas de parada comúns:

  • Cando a rede neural aprendeu unha determinada porcentaxe dos datos de adestramento.
  • Cando se cumpre o valor mínimo do erro cadrático medio.
  • Cando se alcance o número máximo de xeracións de formación.

A función de fitness avalía o criterio de parada xa que recibe o erro cuadrático medio recíproco de cada rede durante o adestramento. Polo tanto, o obxectivo do algoritmo xenético é maximizar a función de fitness, reducindo o erro cadrático medio.

Pódense usar outras técnicas de optimización globais (e/ou evolutivas) para buscar un bo conxunto de pesos, como o recocido simulado ou a optimización do enxame de partículas.

Outras arquitecturas

[editar | editar a fonte]

RNN independente (IndRNN)

[editar | editar a fonte]

A rede neural recorrente independente (IndRNN) aborda os problemas de esvaecemento e explosión do gradiente na RNN tradicional totalmente conectada. Cada neurona dunha capa só recibe o seu propio estado pasado como información de contexto (en lugar de conectividade total con todas as outras neuronas desta capa) e, polo tanto, as neuronas son independentes da historia das outras. A retropropagación do gradiente pódese regular para evitar que o gradiente desapareza e explote, e tamén para manter a memoria a longo ou curto prazo. A información entre neuronas é explorada nas capas seguintes. A IndRNN pódese adestrar de forma robusta con funcións non lineares non saturadas como ReLU. As redes profundas pódense adestrar usando conexións de salto.

Compresor de historia neural

[editar | editar a fonte]

O compresor do historial neural é unha pila non supervisada de RNN. A nivel de entrada, aprende a predicir a súa próxima entrada a partir das entradas anteriores. Só as entradas imprevisibles dalgunhas RNN na xerarquía convértense en entradas para a RNN de nivel superior, que só ás veces volve calcular o seu estado interno. Así, cada RNN de nivel superior estuda unha representación comprimida da información da RNN seguinte. Isto faise de xeito que a secuencia de entrada poida ser reconstruída con precisión a partir da representación do nivel máis alto.

O sistema minimiza a lonxitude da descrición ou o logaritmo negativo da probabilidade dos datos.[57] A RNN de máis alto nivel pode usar a aprendizaxe supervisada para clasificar facilmente secuencias profundas con longos intervalos entre eventos importantes.

É posible destilar a xerarquía das redes neurais recorrentes en dúas RNN: o fragmentador "consciente" (nivel superior) e o automatizador "subconsciente" (nivel inferior). Unha vez que o fragmentador aprendeu a predicir e comprimir entradas que son imprevisibles polo automatizador, este último pode verse obrigado na seguinte fase de aprendizaxe a predicir, ou imitar a través de unidades adicionais, as unidades ocultas do fragmentador que cambia máis lentamente. Isto facilita que o automatizador aprenda adecuadamente. Á súa vez, isto axuda ao automatizador a facer previsibles moitas das súas entradas, antes impredicibles, de forma que o fragmentador poida centrarse nos eventos imprevisibles restantes.[56]

No 1992, un modelo xenerativo superou parcialmente o problema do esvaecemento do gradiente da diferenciación automática ou da retropropagación en redes neurais. No ano seguinte, un sistema deste tipo resolveu unha tarefa de "Aprendizaxe moi profunda" que requiría máis de 1000 capas posteriores nunha RNN desenvolvida no tempo.

RNN de segunda orde

[editar | editar a fonte]

As redes neurais recorrentes de segunda orde usan pesos de orde superior, Fallou a conversión do código (SVG (MathML pódese activar mediante un complemento do navegador): Resposta non válida ("Math extension cannot connect to Restbase.") desde o servidor "http://localhost:6011/gl.wikipedia.org/v1/":): {\displaystyle w{}_{ijk}} , en lugar dos pesos estándar, Fallou a conversión do código (SVG (MathML pódese activar mediante un complemento do navegador): Resposta non válida ("Math extension cannot connect to Restbase.") desde o servidor "http://localhost:6011/gl.wikipedia.org/v1/":): {\displaystyle w{}_{ij}} , e os estados poden ser un produto. Isto permite unha conversión directa a unha máquina de estados finitos, tanto en adestramento como en estabilidade e representación.[58] A memoria a longo e curto prazo é un exemplo diso, pero non ten tales cartografías formais nin probas de estabilidade.

Rede neural recorrente xerárquica

[editar | editar a fonte]

As redes neurais recorrentes xerárquicas (HRNN, das súas siglas en inglés, Hierarchical Recurrent Neural Networks) conectan as súas neuronas de varias maneiras para descompoñer o comportamento xerárquico en subprogramas útiles.[59] Tales estruturas xerárquicas da cognición están presentes nas teorías da memoria presentadas polo filósofo Henri Bergson, cuxas visións filosóficas inspiraron modelos xerárquicos.[60]

As redes neurais recorrentes xerárquicas son útiles na previsión, axudando a predicir os compoñentes desagregados da inflación do índice de prezos ao consumidor (IPC). O modelo HRNN aproveita a información dos niveis máis altos da xerarquía do IPC para mellorar as predicións de nivel inferior. A avaliación dun conxunto de datos substancial do índice CPI-U dos Estados Unidos demostra o rendemento superior do modelo HRNN en comparación con varios métodos establecidos de predición da inflación.[61]

Rede perceptrón multicapa recorrente

[editar | editar a fonte]

Xeralmente, unha rede perceptrón multicapa recorrente (rede RMLP, das súas siglas en inglés, Recurrent Multilayer Perceptron Network) consta de subredes en cascada, onde cada unha contén varias capas de nodos. Cada subrede é de propagación cara adiante excepto a última capa, que pode ter conexións de retroalimentación. Cada unha destas subredes está conectada só mediante conexións de propagación cara adiante.[62]

Modelo de varias escalas de tempo

[editar | editar a fonte]

Unha rede neural recorrente en varias escalas de tempo é un modelo computacional baseado en neuronas que pode simular a xerarquía funcional do cerebro mediante a autoorganización dependendo da conexión espacial entre as neuronas e de distintos tipos de actividades neurais, cada unha con distintas propiedades de tempo.[63] Con actividades neurais tan variadas, as secuencias continuas de calquera conxunto de comportamentos están segmentadas en primitivas reutilizables, que á súa vez se integran de forma flexible en diversos comportamentos secuenciais. A aprobación biolóxica deste tipo de xerarquía foi discutida na teoría da memoria e predición da función cerebral de Hawkins no seu libro Sobre a intelixencia. Tal xerarquía tamén concorda coas teorías da memoria formuladas polo filósofo Henri Bergson, que foron incorporadas a un modelo deste tipo.[64]

Redes memristivas

[editar | editar a fonte]

Greg Snider de HP Labs describe un sistema de computación cortical con nanodispositivos memristivos.[65] Os memristores (resistencias de memoria) están implementados por materiais de película delgada nos que a resistencia está axustada electricamente mediante o transporte de ións ou vacantes de osíxeno dentro da película. O proxecto SyNAPSE de DARPA financiou IBM Research e HP Labs, en colaboración co Departamento de Sistemas Cognitivos e Neurais (CNS) da Universidade de Boston, para desenvolver arquitecturas neuromórficas que puideran estar baseadas en sistemas memristivos. As redes memristivas son un tipo particular de redes neurais físicas que teñen propiedades moi similares ás redes (Little-)Hopfield, xa que teñen dinámica continua, capacidade de memoria limitada e relaxación natural mediante a minimización dunha función que é asintótica do modelo de Ising. Neste sentido, a dinámica dun circuíto memristivo ten a vantaxe en comparación cunha rede Resistor-Condensador de ter un comportamento non linear máis interesante. Dende este punto de vista, as redes memristivas analóxicas de enxeñaría representan un tipo peculiar de enxeñaría neuromórfica na que o comportamento do dispositivo depende do cableado ou da topoloxía do circuíto. A evolución destas redes pódese estudar analiticamente utilizando variacións da ecuación CaravelliTraversa–Di Ventra.[66]

Tempo continuo

[editar | editar a fonte]

Unha rede neural recorrente en tempo continuo (CTRNN, das súas siglas en inglés Continuous-Time Recurrent Neural Network) usa un sistema de ecuacións diferenciais ordinarias para modelar os efectos sobre unha neurona das entradas de entrada. Normalmente son analizados pola teoría de sistemas dinámicos. Moitos modelos RNN en neurociencia son de tempo continuo.[67]

Para unha neurona Fallou a conversión do código (SVG (MathML pódese activar mediante un complemento do navegador): Resposta non válida ("Math extension cannot connect to Restbase.") desde o servidor "http://localhost:6011/gl.wikipedia.org/v1/":): {\displaystyle i} na rede con activación , a taxa de cambio de activación vén dada por:

Fallou a conversión do código (SVG (MathML pódese activar mediante un complemento do navegador): Resposta non válida ("Math extension cannot connect to Restbase.") desde o servidor "http://localhost:6011/gl.wikipedia.org/v1/":): {\displaystyle \tau_{i}\dot{y}_{i}=-y_{i}+\sum_{j=1}^{n}w_{ji}\sigma(y_{j}-\Theta_{j})+I_{i}(t)}

Onde:

  • é a constante de tempo do nodo postsináptico.
  • Fallou a conversión do código (SVG (MathML pódese activar mediante un complemento do navegador): Resposta non válida ("Math extension cannot connect to Restbase.") desde o servidor "http://localhost:6011/gl.wikipedia.org/v1/":): {\displaystyle y_{i}} é a activación do nodo postsináptico.
  • Fallou a conversión do código (SVG (MathML pódese activar mediante un complemento do navegador): Resposta non válida ("Math extension cannot connect to Restbase.") desde o servidor "http://localhost:6011/gl.wikipedia.org/v1/":): {\displaystyle \dot{y}_{i}} é a taxa de cambio de activación do nodo postsináptico.
  • Fallou a conversión do código (SVG (MathML pódese activar mediante un complemento do navegador): Resposta non válida ("Math extension cannot connect to Restbase.") desde o servidor "http://localhost:6011/gl.wikipedia.org/v1/":): {\displaystyle w{}_{ji}} é o peso da conexión do nodo presináptico ao nodo postsináptico.
  • Fallou a conversión do código (SVG (MathML pódese activar mediante un complemento do navegador): Resposta non válida ("Math extension cannot connect to Restbase.") desde o servidor "http://localhost:6011/gl.wikipedia.org/v1/":): {\displaystyle \sigma(x)} é a función sigmoide de x, por exemplo, .
  • é a activación do nodo presináptico.
  • é o nesgo do nodo presináptico.
  • Fallou a conversión do código (SVG (MathML pódese activar mediante un complemento do navegador): Resposta non válida ("Math extension cannot connect to Restbase.") desde o servidor "http://localhost:6011/gl.wikipedia.org/v1/":): {\displaystyle I_{i}(t)} é a entrada (se existe) ao nodo.

As CTRNN aplicáronse á robótica evolutiva, onde se utilizaron para abordar a visión, a cooperación[68] e o comportamento cognitivo mínimo.[69]

Nótese que, segundo o teorema de mostraxe de Shannon, as redes neurais recorrentes en tempo discreto poden verse como redes neurais recorrentes en tempo continuo onde as ecuacións diferenciais transformáronse en ecuacións diferenciais equivalentes.

Estas redes son, de feito, redes neurais recursivas cunha estrutura particular: a dunha cadea linear. Mentres que as redes neurais recursivas operan en calquera estrutura xerárquica, xuntando representacións fillas e representacións nais, as redes neurais recorrentes operan na progresión linear do tempo, convertendo o paso de tempo anterior e unha representación oculta na representación do paso de tempo actual.

Dende unha perspectiva de series temporais, as RNN poden aparecer como versións non lineares de filtros de resposta de impulso finito, de resposta de impulso infinito e como un modelo esóxeno autorregresivo non linear.[70] Por exemplo, as redes neurais recorrentes teñen unha resposta de impulso infinita, mentres que as redes neurais convolucionais teñen unha resposta de impulso finita . Ambas clases de redes presentan un comportamento dinámico temporal.[71] Unha rede recorrente de impulso finito é un grafo acíclico dirixido que se pode desenrolar e substituír por unha rede neural estritamente de avance, mentres que unha rede recorrente de impulso infinito é un grafo cíclico dirixido que non se pode desenrolar.

O efecto da aprendizaxe baseada na memoria para o recoñecemento de secuencias tamén se pode implementar mediante un modelo de base máis biolóxica que utiliza o mecanismo de silenciamento exhibido nas neuronas cunha actividade de picos de frecuencia relativamente alta.[72]

Pódense engadir estados almacenados adicionais e o almacenamento baixo control directo pola rede tanto ás redes de impulso infinito como ás redes de impulso finito. Outra rede ou grafo tamén pode substituír o almacenamento se incorpora atrasos de tempo ou ten bucles de retroalimentación. Estes estados controlados denomínanse estados con porta ou memoria con porta e forman parte das redes de memoria a longo e curto prazo (LSTM) e das unidades recorrentes con porta. Isto tamén se denomina Rede Neural de Propagación cara adiante (FNN, das súas siglas en inglés, Feedback Neural Network).

Bibliotecas

[editar | editar a fonte]

O seguinte pseudocódigo (baseado na linguaxe de programación Python) ilustra a funcionalidade dunha rede neural recorrente.[73]

def RNN_forward(x, lonxitude_secuencia, rede_neural, tamano_oculto):
  oculto = zeros(size=tamano_oculto) # inicializar con ceros para cada serie temporal
  y_pred = zeros(size=lonxitude_secuencia)
  for i in range(lonxitude_secuencia):
    y_pred[i], oculto = rede_neural(x[i], oculto) # actualizar o estado oculto
  return y_pred

As bibliotecas modernas ofrecen implementacións optimizadas para o tempo de execución da funcionalidade anterior ou permiten acelerar o ciclo lento mediante a compilación en tempo de execución.

Aplicacións

[editar | editar a fonte]

As aplicacións das redes neurais recorrentes inclúen:

  • Tradución automática [25]
  • Control de robot [74]
  • Predición de series temporais[75]
  • Recoñecemento de voz [23]
  • Síntese de voz [76]
  • Interfaces cerebro-ordenador [77]
  • Detección de anomalías de serie temporal
  • Modelo de texto a vídeo [78]
  • Aprendizaxe do ritmo [79]
  • Composición musical [80]
  • Aprendizaxe da gramática[34]
  • Recoñecemento de escritura[81]
  • Recoñecemento da acción humana[82]
  • Detección de homoloxía de proteínas[83]
  • Predición da localización subcelular das proteínas[84]
  • Varias tarefas de predición no ámbito da xestión de procesos de negocio[85]
  • Predición nas vías de atención médica[86]
  • Predicións de interrupcións de plasma de fusión en reactores (código de Rede Neural Recorrente de Fusión)[87]
  1. Tealab, Ahmed (2018-12-01). "Time series forecasting using artificial neural networks methodologies: A systematic review". Future Computing and Informatics Journal 3 (2): 334–340. ISSN 2314-7288. doi:10.1016/j.fcij.2018.10.003. 
  2. Graves, Alex; Liwicki, Marcus; Fernández, Santiago; Bertolami, Roman; Bunke, Horst; Shmidhuber, Jürgen (2009). "A Novel Connectionist System for Improved Unconstrained Handwriting Recognition" (PDF). IEEE Transactions on Pattern Analysis and Machine Intelligence 31: 855–868. PMID 19299860. doi:10.1109/tpami.2008.137. 
  3. 3,0 3,1 Sak, Hasim; Senior, Andrew; Beaufays, Françoise (2014). "Long Short-Term Memory recurrent neural network architectures for large scale acoustic modeling" (PDF). Google Research. 
  4. Abiodun, Oludare Isaac; Jantan, Aman; Omolara, Abiodun Esther; Dada, Kemi Visctoria; Mohamed, Nachaat Abdelatif; Arshad, Humaira (1 de novembro do 2018). "State-of-the-art in artificial neural network applications: A survey". Heliyon 4 (11): e00938. Bibcode:2018Heliy...400938A. ISSN 2405-8440. PMC 6260436. PMID 30519653. doi:10.1016/j.heliyon.2018.e00938. 
  5. Lenz, W. "21". Beiträge zum Verständnis der magnetischen Eigenschaften in festen Körpern. pp. 613–615. 
  6. Ising, E. "31". Beitrag zur Theorie des Ferromagnetismus. pp. 253–258. 
  7. Brush, Stephen G. (1967). "History of the Lenz-Ising Model". Reviews of Modern Physics 39: 883–893. Bibcode:1967RvMP...39..883B. doi:10.1103/RevModPhys.39.883. 
  8. Glauber, Roy J. (Febreiro do 1963). "Time-Dependent Statistics of the Ising Model". Journal of Mathematical Physics 4: 294–307. doi:10.1063/1.1703954. 
  9. Amari, S. (Novembro do 1972). "Learning Patterns and Pattern Sequences by Self-Organizing Nets of Threshold Elements". IEEE Transactions on Computers C–21: 1197–1206. ISSN 0018-9340. doi:10.1109/T-C.1972.223477. 
  10. Hopfield, J. J. (1982). "Neural networks and physical systems with emergent collective computational abilities". Proceedings of the National Academy of Sciences 79: 2554–2558. Bibcode:1982PNAS...79.2554H. PMC 346238. PMID 6953413. doi:10.1073/pnas.79.8.2554. Consultado o free. 
  11. Espinosa-Sánchez, Juan Manuel; Gómez-Mrín, Alex; de Castro, Fernando (5 de xullo do 2023). "The Importance of Cajal's and Lorente de Nó's Neuroscience to the Birth of Cybernetics". The Neuroscientist (en inglés). ISSN 1073-8584. PMID 37403768. doi:10.1177/10738584231179932. 
  12. Ramón y Cajal, Santiago. Histologie du système nerveux de l'homme & des vertébrés II. p. 149. 
  13. de Nó, R. Lorente (1 de agosto do 1933). "Vestibulo-Ocular Reflex Arc". Archives of Neurology and Psychiatry 30: 245. ISSN 0096-6754. doi:10.1001/archneurpsyc.1933.02240140009001. 
  14. Larriva-Sahd, Jorge A. (3 de decembro de 2014). "Some predictions of Rafael Lorente de Nó 80 years later". Frontiers in Neuroanatomy 8: 147. ISSN 1662-5129. PMC 4253658. PMID 25520630. doi:10.3389/fnana.2014.00147. Consultado o free. 
  15. "reverberating circuit". Oxford Reference. Consultado o 27-07-2024. 
  16. McCulloch, Warren S.; Pitts, Walter (Decembro do 1943). "A logical calculus of the ideas immanent in nervous activity". The Bulletin of Mathematical Biophysics 5: 115–133. ISSN 0007-4985. doi:10.1007/BF02478259. 
  17. Arbib, Michael A (Decembro do 2000). "Warren McCulloch's Search for the Logic of the Nervous System". Perspectives in Biology and Medicine 43: 193–216. ISSN 1529-8795. PMID 10804585. doi:10.1353/pbm.2000.0001. 
  18. Renshaw, Birdsey (1 de maio do 1946). "Central Effects of Centripetal Impulses in Axons of Spinal Ventral Roots". Journal of Neurophysiology 9: 191–204. ISSN 0022-3077. PMID 21028162. doi:10.1152/jn.1946.9.3.191. 
  19. Rumelhart, D. E., Hinton, G. E. & Williams, R. J. "Learning internal representations by error propagation" in Parallel Distributed Processing: Explorations in the Microstructure of Cognition. Vol. 1: Foundations (eds Rumclhart, D. E. & McClelland, J. L.) 318-362 (MIT, Cambridge, 1986).
  20. Rumelhart, David E.; Hinton, Geoffrey E.; Williams, Ronald J. (Outubro de 1986). "Learning representations by back-propagating errors". Nature (en inglés) 323: 533–536. ISSN 1476-4687. doi:10.1038/323533a0. 
  21. Schmidhuber, Jürgen (1993). Habilitation thesis: System modeling and optimization. 
  22. 22,0 22,1 Hochreiter, Sepp; Schmidhuber, Jürgen (11 de xaneiro do 1997). "Long Short-Term Memory". Neural Computation 9: 1735–1780. PMID 9377276. doi:10.1162/neco.1997.9.8.1735. 
  23. 23,0 23,1 Fernández, Santiago; Graves, Alex; Schmidhuber, Jürgen (2007-09-09). "An application of recurrent neural networks to discriminative keyword spotting". Proceedings of the 17th international conference on Artificial neural networks. ICANN'07 (Berlin, Heidelberg: Springer-Verlag): 220–229. ISBN 978-3-540-74693-5. doi:10.5555/1778066.1778092. 
  24. 24,0 24,1 "Google voice search: faster and more accurate". research.google (en inglés). Consultado o 03-09-2024. 
  25. 25,0 25,1 Sutskever, Ilya; Vinyals, Oriol; Le, Quoc V. (2014). "Sequence to Sequence Learning with Neural Networks" (PDF). Electronic Proceedings of the Neural Information Processing Systems Conference 27. Bibcode:2014arXiv1409.3215S. arXiv:1409.3215. 
  26. Cho, Kyunghyun; van Merrienboer, Bart; Gulcehre, Caglar; Bahdanau, Dzmitry; Bougares, Fethi; Schwenk, Holger; Bengio, Yoshua (3 de xuño do 2014). "Learning Phrase Representations using RNN Encoder-Decoder for Statistical Machine Translation". arXiv. doi:10.48550/ARXIV.1406.1078. 
  27. Vaswani, Ashish; Shazeer, Noam; Parmar, Niki; Uszkoreit, Jakob; Jones, Llion; Gomez, Aidan N; Kaiser, L ukasz; Polosukhin, Illia (2017). "Attention is All you Need". Advances in Neural Information Processing Systems 30. 
  28. Oord, Aäron van den; Kalchbrenner, Nal; Kavukcuoglu, Koray (11 de xuño do 2016). "Pixel Recurrent Neural Networks". Proceedings of the 33rd International Conference on Machine Learning: 1747–1756. 
  29. Cruse, Holk (2006). Neural Networks as Cybernetic Systems (PDF). Brains, Minds & media. ISBN 3131021810. 
  30. Elman, Jeffrey L. (1990). "Finding Structure in Time". Cognitive Science 14 (2): 179–211. doi:10.1016/0364-0213(90)90002-E. 
  31. Gers, Felix A.; Scharaudolph, Nicol N.; Schmidhuber, Jürgen (2002). "Learning Precise Timing with LSTM Recurrent Networks" (PDF). Journal of Machine Learning Research 3: 115–143. 
  32. Bayer, Justin; Wierstra, Daan; Togelius, Julian; Schmidhuber, Jürgen (14 de setembro do 2009). "Evolving Memory Cell Structures for Sequence Learning (PDF). Lecture Notes in Computer Science 5769. Lecture Notes in Computer Science. pp. 755–764. ISBN 978-3-642-04276-8. doi:10.1007/978-3-642-04277-5_76. 
  33. Fernández, Santiago; Graves, Alex; Schmidhuber, Jürgen (2007). "Sequence labelling in structured domains with hierarchical recurrent neural networks". Proceedings of the 20th International Joint Conference on Artificial Intelligence, Ijcai 2007: 774–779. 
  34. 34,0 34,1 Gers, Felix A.; Schmidhuber, Jürgen (2001). "LSTM Recurrent Networks Learn Simple Context Free and Context Sensitive Languages" (PDF). IEEE Transactions on Neural Networks 12: 1333–40. PMID 18249962. doi:10.1109/72.963769. Arquivado dende o orixinal (PDF) o 10 de xullo de 2020. Consultado o 03 de setembro de 2024. 
  35. Britz, Denny (27 de outubro do 2015). "Recurrent Neural Network Tutorial, Part 4 – Implementing a GRU/LSTM RNN with Python and Theano – WildML". Wildml.com. Consultado o 18-05-2016. 
  36. Chung, Junyoung; Gulcehre, Caglar; Cho, KyungHyun; Bengio, Yoshua (2014). "Empirical Evaluation of Gated Recurrent Neural Networks on Sequence Modeling". arXiv. 
  37. Kosko, Bart (1988). "Bidirectional associative memories". IEEE Transactions on Systems, Man, and Cybernetics 18: 49–60. doi:10.1109/21.87054. 
  38. Rakkiyappan, Rajan; Chandrasekar, Arunachalam; Lakshmanan, Subramanian; Park, Ju H. (2 de xaneiro do 2015). "Exponential stability for markovian jumping stochastic BAM neural networks with mode-dependent probabilistic time-varying delays and impulse control". Complexity 20: 39–65. Bibcode:2015Cmplx..20c..39R. doi:10.1002/cplx.21503. 
  39. Rojas, Raúl (1996). Neural networks: a systematic introduction. Springer. p. 336. ISBN 978-3-540-60505-8. 
  40. Jaeger, Herbert; Haas, Harald (2 de abril do 2004). "Harnessing Nonlinearity: Predicting Chaotic Systems and Saving Energy in Wireless Communication". Science 304: 78–80. Bibcode:2004Sci...304...78J. PMID 15064413. doi:10.1126/science.1091277. 
  41. Maass, Wolfgang; Natschläger, Thomas; Markram, Henry (2002). "Real-time computing without stable states: a new framework for neural computation based on perturbations" (PDF). Neural Computation 14 (11): 2531–2560. PMID 12433288. doi:10.1162/089976602760407955. 
  42. Goller, Christoph; Küchler, Andreas (1996). Learning task-dependent distributed representations by backpropagation through structure 1. p. 347. ISBN 978-0-7803-3210-2. doi:10.1109/ICNN.1996.548916. 
  43. Griewank, Andreas; Walther, Andrea (2008). Evaluating Derivatives: Principles and Techniques of Algorithmic Differentiation (2ª ed.). SIAM. ISBN 978-0-89871-776-1. 
  44. Graves, Alex; Wayne, Greg; Reynolds, Malcolm; Harley, Tim; Danihelka, Ivo; Grabska-Barwinska, Agnieszka; Gómez Colmenarejo, Sergio; Grefenstette, Edward; Ramalho, Tiago (12 de outubro do 2016). "Hybrid computing using a neural network with dynamic external memory". Nature 538: 471–476. Bibcode:2016Natur.538..471G. ISSN 1476-4687. PMID 27732574. doi:10.1038/nature20101. 
  45. Sun, Guo-Zheng; Giles, C. Lee; Chen, Hsing-Hen (1998). The Neural Network Pushdown Automaton: Architecture, Dynamics and Training. Lecture Notes in Computer Science. pp. 296–345. ISBN 978-3-540-64341-8. doi:10.1007/bfb0054003. 
  46. Hyötyniemi, Heikki (1996). "Turing machines are recurrent neural networks". Proceedings of STeP '96/Publications of the Finnish Artificial Intelligence Society: 13–24. 
  47. Williams, Ronald J. (1 de febreiro do 2013). Chauvin, ed. Gradient-based learning algorithms for recurrent networks and their computational complexity. Psychology Press. ISBN 978-1-134-77581-1. 
  48. Principe, José C.; Euliano, Neil R.; Lefebvre, W. Curt (2000). Neural and Adaptive Systems: Fundamentals Through Simulations (en inglés). Wiley. ISBN 978-0-471-35167-2. 
  49. Greenwald, John; Dec. 15, Princeton Plasma Physics Laboratory on; 2017; A.m, 9:40. "Artificial intelligence helps accelerate progress toward efficient fusion reactions". Princeton University (en inglés). 
  50. Schmidhuber, Jurgen (1989-01). "A Local Learning Algorithm for Dynamic Feedforward and Recurrent Networks". Connection Science (en inglés) 1 (4): 403–412. ISSN 0954-0091. doi:10.1080/09540098908915650. 
  51. Campolucci, Paolo; Uncini, Aurelio; Piazza, Francesco; Rao, Bhaskar D. (1999). ""On-Line Learning Algorithms for Locally Recurrent Neural Networks". IEEE Transactions on Neural Networks 10: 253–271. PMID 18252525. doi:10.1109/72.750549. 
  52. "IEEE Transactions on Neural Networks publication information". IEEE Transactions on Neural Networks 17 (2): c2–c2. 2006-03. ISSN 1045-9227. doi:10.1109/tnn.2006.872642. 
  53. 53,0 53,1 Campolucci, Paolo; Uncini, Aurelio; Piazza, Francesco (2000). "A Signal-Flow-Graph Approach to On-line Gradient Calculation". Neural Computation 12: 1901–1927. PMID 10953244. doi:10.1162/089976600300015196. 
  54. Graves, Alex; Fernández, Santiago; Gomez, Faustino; Schmidhuber, Jürgen (2006-06-25). "Connectionist temporal classification: labelling unsegmented sequence data with recurrent neural networks". Proceedings of the 23rd international conference on Machine learning. ICML '06 (New York, NY, USA: Association for Computing Machinery): 369–376. ISBN 978-1-59593-383-6. doi:10.1145/1143844.1143891. 
  55. Hannun, Awni (2017-11-27). "Sequence Modeling with CTC". Distill (en inglés) 2 (11): e8. ISSN 2476-0757. doi:10.23915/distill.00008. 
  56. 56,0 56,1 Schmidhuber, Jürgen (Marzo do 1992). "Learning Complex, Extended Sequences Using the Principle of History Compression". Neural Computation (en inglés) 4 (2): 234–242. ISSN 0899-7667. doi:10.1162/neco.1992.4.2.234. 
  57. Schmidhuber, Juergen (2015-11-28). "Deep Learning". Scholarpedia (en inglés) 10 (11): 32832. ISSN 1941-6016. doi:10.4249/scholarpedia.32832. 
  58. Omlin, Christian W.; Giles, C. Lee (1996-11-01). "Constructing deterministic finite-state automata in recurrent neural networks". J. ACM 43 (6): 937–972. ISSN 0004-5411. doi:10.1145/235809.235811. 
  59. Paine, Rainer W.; Tani, Jun (2005-09). "How Hierarchical Control Self-organizes in Artificial Adaptive Systems". Adaptive Behavior (en inglés) 13 (3): 211–225. ISSN 1059-7123. doi:10.1177/105971230501300303. 
  60. "A Bergson-Inspired Adaptative Time Constant for the Multiple Timescales Recurrent Neural Network Model". ResearchGate. 
  61. Barkan, Oren; Benchimol, Jonathan; Caspi, Itamar; Cohen, Eliya; Hammer, Allon; Koenigstein, Noam (2023-07-01). "Forecasting CPI inflation components with Hierarchical Recurrent Neural Networks". International Journal of Forecasting 39 (3): 1145–1162. ISSN 0169-2070. doi:10.1016/j.ijforecast.2022.04.009. 
  62. Tutschku, Kurt (Xuño do 1995). Recurrent Multilayer Perceptrons for Identification and Control: The Road to Applications 118. Institute of Computer Science Research Report. 
  63. Alnajjar, Fady; Yamashita, Yuichi; Tani, Jun (2013-02-18). "The hierarchical and functional connectivity of higher-order cognitive mechanisms: neurorobotic model to investigate the stability and flexibility of working memory". Frontiers in Neurorobotics 7: 2. ISSN 1662-5218. PMC 3575058. PMID 23423881. doi:10.3389/fnbot.2013.00002. 
  64. "A Bergson-Inspired Adaptive Time Constant for the Multiple Timescales Recurrent Neural Network Model". ResearchGate. Outubro 2018. 
  65. "SciDAC Review - HARDWARE: Cortical Computing with Memristive Nanodevices". web.archive.org. 16-05-2016. Arquivado dende o orixinal o 16-05-2016. Consultado o 06-09-2019. 
  66. Caravelli, F.; Traversa, F. L.; Di Ventra, M. (2017-02-28). "Complex dynamics of memristive circuits: Analytical results and universal slow relaxation". Physical Review E 95 (2): 022140. doi:10.1103/PhysRevE.95.022140. 
  67. Grossberg, Stephen (2013-02-22). "Recurrent neural networks". Scholarpedia (en inglés) 8 (2): 1888. ISSN 1941-6016. doi:10.4249/scholarpedia.1888. 
  68. Quinn, Matt (2001). Kelemen, Jozef; Sosík, Petr, eds. "Evolving Communication without Dedicated Communication Channels". Advances in Artificial Life (en inglés) (Berlin, Heidelberg: Springer): 357–366. ISBN 978-3-540-44811-2. doi:10.1007/3-540-44811-X_38. 
  69. Beer, Randall D. (1997-06-01). "The dynamics of adaptive behavior: A research program". Robotics and Autonomous Systems. Practice and Future of Autonomous Agents 20 (2): 257–289. ISSN 0921-8890. doi:10.1016/S0921-8890(96)00063-2. 
  70. Siegelmann, Hava T. (1995). Computational Capabilities of Recurrent NARX Neural Networks (en inglés). University of Maryland. 
  71. Miljanovic, Milos (Marzo do 2012). "Comparative analysis of Recurrent and Finite Impulse Response Neural Networks in Time Series Prediction" (PDF). Indian Journal of Computer and Engineering 3. 
  72. Hodassman, Shiri; Meir, Yuval; Kisos, Karin; Ben-Noam, Itamar; Tugendhaft, Yael; Goldental, Amir; Vardi, Roni; Kanter, Ido (2022-09-29). "Brain inspired neuronal silencing mechanism to enable reliable sequence identification". Scientific Reports 12: 16003. ISSN 2045-2322. PMC 9523036. PMID 36175466. doi:10.1038/s41598-022-20337-x. 
  73. Chollet, Francois; Kalinowski, Tomasz; Allaire, J. J. (2022-09-13). Deep Learning with R, Second Edition (en inglés). Simon and Schuster. ISBN 978-1-63835-078-1. 
  74. Chollet, Francois; Kalinowski, Tomasz; Allaire, J. J. (2022-09-13). Deep Learning with R, Second Edition (en inglés). Simon and Schuster. ISBN 978-1-63835-078-1. 
  75. Chollet, Francois; Kalinowski, Tomasz; Allaire, J. J. (2022-09-13). Deep Learning with R, Second Edition (en inglés). Simon and Schuster. ISBN 978-1-63835-078-1. 
  76. Anumanchipalli, Gopala K.; Chartier, Josh; Chang, Edward F. (2019-04). "Speech synthesis from neural decoding of spoken sentences". Nature 568 (7753): 493–498. ISSN 0028-0836. PMC 9714519. PMID 31019317. doi:10.1038/s41586-019-1119-1. 
  77. Moses, David A.; Metzger, Sean L.; Liu, Jessie R.; Anumanchipalli, Gopala K.; Makin, Joseph G.; Sun, Pengfei F.; Chartier, Josh; Dougherty, Maximilian E.; Liu, Patricia M. (2021-07-15). "Neuroprosthesis for Decoding Speech in a Paralyzed Person with Anarthria". The New England journal of medicine 385 (3): 217–227. ISSN 0028-4793. PMC 8972947. PMID 34260835. doi:10.1056/NEJMoa2027540. 
  78. "Papers with Code - DeepHS-HDRVideo: Deep High Speed High Dynamic Range Video Reconstruction". paperswithcode.com (en inglés). Consultado o 13-10-2022. 
  79. Gers, Felix A.; Schraudolph, Nicol N.; Schmidhuber, Jürgen (2002). "Learning precise timing with LSTM recurrent networks" (PDF). Journal of Machine Learning Research 3: 115–143. 
  80. Eck, Douglas; Schmidhuber, Jürgen (2002). Dorronsoro, José R., ed. "Learning the Long-Term Structure of the Blues". Artificial Neural Networks — ICANN 2002 (en inglés) (Berlin, Heidelberg: Springer): 284–289. ISBN 978-3-540-46084-8. doi:10.1007/3-540-46084-5_47. 
  81. Graves, Alex; Schmidhuber, Jürgen (2009). "Offline Handwriting Recognition with Multidimensional Recurrent Neural Networks". Advances in Neural Information Processing Systems 22: 545–552. 
  82. Baccouche, Moez; Mamalet, Franck; Wolf, Christian; Garcia, Christophe; Baskurt, Atilla (2011). Salah, Albert Ali; Lepri, Bruno, eds. "Sequential Deep Learning for Human Action Recognition". Human Behavior Understanding (en inglés) (Berlin, Heidelberg: Springer): 29–39. ISBN 978-3-642-25446-8. doi:10.1007/978-3-642-25446-8_4. 
  83. "Fast model-based protein homology detection without alignment". academic.oup.com. doi:10.1093/bioinformatics/btm247. 
  84. Thireou, Trias; Reczko, Martin (Xullo do 2007). "Bidirectional Long Short-Term Memory Networks for Predicting the Subcellular Localization of Eukaryotic Proteins". IEEE/ACM Transactions on Computational Biology and Bioinformatics 4: 441–446. PMID 17666763. doi:10.1109/tcbb.2007.1015. 
  85. Tax, Niek; Verenich, Ilya; La Rosa, Marcello; Dumas, Marlon (2017). Dubois, Eric; Pohl, Klaus, eds. "Predictive Business Process Monitoring with LSTM Neural Networks". Advanced Information Systems Engineering (en inglés) (Cham: Springer International Publishing): 477–492. ISBN 978-3-319-59536-8. doi:10.1007/978-3-319-59536-8_30. 
  86. Choi, Edward; Bahadori, Mohammad Taha; Schuetz, Andy; Stewart, Walter F.; Sun, Jimeng (2016-12-10). "Doctor AI: Predicting Clinical Events via Recurrent Neural Networks". Proceedings of the 1st Machine Learning for Healthcare Conference (en inglés) (PMLR): 301–318. 
  87. Greenwald, John; Dec. 15, Princeton Plasma Physics Laboratory on; 2017; A.m, 9:40. "Artificial intelligence helps accelerate progress toward efficient fusion reactions". Princeton University (en inglés). Consultado o 12-06-2023. 

Véxase tamén

[editar | editar a fonte]

Outros artigos

[editar | editar a fonte]