Existen muchas variantes de redes neuronales (NN) en el aprendizaje automático (ML), pero se dividen en dos categorías principales:
- Redes neuronales de avance : Existen varios tipos de redes neuronales de avance. Suponiendo que [math] f_ {i} (x_ {i}, w_ {i}) [/ math] representa una operación de capa donde [math] x_ {i} [/ math] = entrada para la capa [math] i [/ math ], [math] w_ {i} [/ math] = pesos para la capa [math] i [/ math]. La red neuronal de alimentación directa se puede representar como [matemática] f_3 (f_2 (f_1 (x, w_1), w_2), w_3) [/ matemática] para una red de 3 capas. Ejemplos de las redes neuronales de avance son:
- Redes neuronales multicapa totalmente conectadas. Los perceptrones multicapa (MLP) se encuentran aquí.
- Redes neuronales convolucionales (convNet): que consisten en capas de convoluciones alternas y capas de submuestreo. Se utilizan principalmente como detectores de características entrenables. Con las propiedades de distribución de peso de los filtros entrenables, los parámetros de convNet son dramáticamente menores en comparación con los tipos NN completamente conectados.
- Redes neuronales recurrentes (RNN): son para procesar señales temporales, es decir, señales que varían con el tiempo, como en el reconocimiento de voz. La salida para tales redes depende no solo de la entrada actual sino también del estado anterior. [matemáticas] s_ {t} = \ varphi_ {s} (w ^ {T} x_ {t} + w_ {f} ^ {T} s_ {t-1}) [/ matemáticas] y [matemáticas] y_ {t } = \ varphi_ {o} (w_ {o} ^ {T} s_ {t}) [/ math] para el RNN de vainilla. Hay varias variantes de RNN como:
- Redes de memoria a corto y largo plazo (LSTM). El LSTM consta de una celda de memoria analógica, las compuertas de lectura, escritura y olvido de la celda para que la red LSTM pueda recordar estados durante mucho más tiempo y para resolver el problema inherente de gradiente de explosión / desaparición del modelo RNN de vainilla.
- Unidad recurrente cerrada (GRU): es básicamente la versión simplificada del LSTM.
- Redes neuronales convolucionales recurrentes (RCNN): una extensión natural de la convNet de avance con conexiones recurrentes entre núcleos de filtro.
Las redes neuronales de tipo feedforward son las mejores para el procesamiento de información espacialmente relacionado, ya que tales convNets se usan ampliamente en la clasificación / reconocimiento de imágenes, mientras que los tipos RNN son para el procesamiento de información temporal, como en el reconocimiento de voz. Además, los RNN se están completando, lo que significa que pueden aprender literalmente cualquier función de mapeo o función de cálculo, aunque esto es solo teoría, en realidad es difícil darse cuenta de eso.
También tenemos las llamadas redes neuronales aumentadas de memoria que se basan en las redes neuronales de tipo feedforward o RNN, pero también están conectadas a un bloque de memoria. El LSTM y GRU son en realidad redes de memoria cuando lo piensas, aunque su uso de la memoria es solo para recordar estados pasados.
- Tenemos una serie de N palabras, ¿cómo podríamos clasificarlas con O (N) complejidad de tiempo?
- ¿Cuál será la complejidad temporal de la relación de recurrencia T (n-1) + T (n-2) + c?
- ¿Cuál es el enfoque algorítmico para resolver el problema de hackerrank Substring Diff?
- ¿Aprender la construcción del compilador mejora la habilidad / visión de resolución de problemas de programación? ¿Si es así, cómo? ¿O por qué no?
- Dada una lista enlazada circular, ¿cómo encuentro la secuencia más larga de nodos de valor no repetido?
Las redes de memoria llevan esto un poco más allá, intentan aprender información relevante de los datos de entrenamiento y la almacenan en la memoria y luego usan esa información durante la inferencia. Las versiones más avanzadas de tales redes de memoria son la máquina neural turing (NTM) y la computadora neural diferenciable (DNC) de DeepMind. La memoria es crucial para resolver problemas relacionados con la IA, como las tareas que requieren razonamiento.
Espero que esto ayude.