Nota: Este artículo es una traducción del original que aparece en el sitio de KDnuggets: Deep Learning Key Terms, Explained
Evidentemente esto es sólo una pequeña parte de la terminología del aprendizaje profundo, y muchos conceptos adicionales, desde básicos a avanzados, esperan su exploración a medida que aprenda más sobre el campo líder en investigación de aprendizaje automático en la actualidad.
Muchas gracias por permitir su publicación en español.
Explicación de términos clave
del aprendizaje profundo
Etiquetas Backpropagation, Convolutional
Neural Networks, Deep
Learning,Explained, Key
Terms, LSTM, Neural
Networks, Perceptron, Recurrent
Neural Networks
Adquiera los conocimientos para iniciarse en redes neuronales
artificiales y en aprendizaje profundo con este conjunto de 14 definiciones que
tratan lo esencial de conceptos clave relacionados con ambos temas.
El término aprendizaje profundo es relativamente
nuevo, aunque su existencia es anterior al enorme repunte que han experimentado
últimamente las búsquedas online. El aprendizaje profundo disfruta actualmente
de un auge en lo que se refiere a la investigación y a la industria,
principalmente debido a los increíbles éxitos cosechados en diferentes áreas, y
consiste en el proceso de aplicación de las tecnologías de redes neuronales
profundas, es decir las arquitecturas de redes neuronales con múltiples capas ocultas,
para la resolución de problemas. El aprendizaje profundo es un proceso, que
como en la minería de datos, emplea arquitecturas de redes neuronales
profundas, las cuales son determinados tipos de algoritmos que forman parte del
aprendizaje automático.
El aprendizaje profundo ha conseguido un gran número
de éxitos en los últimos tiempos. A la luz de lo que hemos comentado, es
importante tener algunas cosas en cuenta, al menos en mi opinión:
·
El aprendizaje profundo no es la panacea, no es
una solución única que se aplica con facilidad a todos los problemas que existen
·
No es el famoso algoritmo maestro: el aprendizaje profundo no desplazará al resto de
algoritmos del aprendizaje automático y tampoco a las técnicas empleadas por la
ciencia de datos, o, al menos, todavía no ha demostrado que pueda ser así.
·
Es conveniente no tener grandes expectativas: Aunque recientemente se han conseguido grandes avances en
todo tipo de problemas de clasificación, en particular en la visión artificial,
en el procesamiento del lenguaje natural, así como en otras áreas, en su actual
fase, el aprendizaje profundo no puede resolver problemas muy complejos, como
por ejemplo 'conseguir la paz mundial'.
·
El aprendizaje profundo puede
proporcionar una gran cantidad de datos al mundo científico en forma de
procesos y herramientas auxiliares para ayudar a resolver problemas, y cuando
se observa bajo esa perspectiva, es una
aportación muy valiosa al panorama de la ciencia de datos.
Como se muestra en la imagen
superior, el aprendizaje profundo es a la minería de datos como las redes
neuronales (profundas) son al aprendizaje automático (procesos frente a
arquitecturas). También es notable el hecho de que actualmente las redes
neuronales profundas están estrechamente vinculadas con la inteligencia
artificial, hasta tal punto que las 2 están tan entrelazadas que casi son sinónimos (sin embargo, no son la misma
cosa, y la inteligencia artificial tiene muchos otros algoritmos y técnicas a
su alcance aparte de las redes neuronales). Hay que tener en cuenta también la
conexión entre el aprendizaje profundo / redes neuronales profundas y la visión
por computador, el procesamiento del lenguaje natural y los modelos
generativos, campos que tienen una importancia especial dado los grandes
avances que han experimentado recientemente, impulsados por los procesos de
aprendizaje profundo y por las tecnologías de redes neuronales.
Sabiendo todo esto, vamos a echar un vistazo a
algunos de los términos relacionados con el aprendizaje profundo, con un
enfoque conciso y purista de las definiciones.
Como se definió anteriormente, el
aprendizaje profundo es el proceso de aplicación de las tecnologías de redes
neuronales profundas a la resolución de problemas. Las redes neuronales
profundas son redes neuronales con al menos una capa oculta (véase más
adelante). Como en el caso de la minería de datos, el aprendizaje profundo es
un proceso que emplea arquitecturas de redes neuronales profundas, que son
clases especiales de algoritmos dentro del aprendizaje automático.
La arquitectura de la máquina de aprendizaje por la
que el aprendizaje profundo se lleva a cabo, se inspiró originalmente en el
cerebro biológico (en particular en las neuronas). En realidad, las redes
neuronales artificiales (la variedad no profunda) han existido desde hace mucho
tiempo, y tradicionalmente han sido capaces de resolver ciertos tipos de
problemas. Sin embargo, hace relativamente poco tiempo, las arquitecturas de
redes neuronales se idearon de forma que incluían capas ocultas de neuronas
(más allá de las sencillas capas de entrada y salida), y este nivel adicional
de complejidad es lo que permite el aprendizaje profundo, y proporciona un
conjunto de herramientas con mayor capacidad para resolver problemas.
En realidad las arquitecturas de las RNAs varían
considerablemente entre sí, y por lo tanto no existe una definición definitiva
de redes neuronales. Las 2 características que se citan de forma general en
todas las RNAs son la disposición de conjuntos de pesos adaptativos, y la
capacidad de aproximar a funciones no lineales las señales de entradas a las
neuronas.
Se ha conseguido mucho de la decisiva relación entre
entre las redes neuronales biológicas y artificiales. Revistas divulgativas
propagan la idea de que las RNA son de alguna manera una réplica exacta de lo
que está pasando en el cerebro humano (o cualquier otro cerebro biológico).
Esto es a todas luces impreciso; sobre esto sólo se puede decir que las
primeros redes neuronales artificiales se inspiraron en la biología. La
relación abstracta entre las 2 no es más importante que la comparación
abstracta entre la composición y la funcionalidad de los átomos y el sistema
solar.
Dicho esto sobre su relación, nos
da la oportunidad de ver cómo
trabajan las neuronas biológicas a muy alto nivel, aunque solo sea para
inspirarnos en el desarrollo de las RNA.
Los principales componentes de la neurona biológica
que nos pueden interesar son:
·
El núcleo, que contiene información genética (es decir DNA)
·
El cuerpo celular, que procesa las activaciones de la entrada y las
convierte en activaciones de salida
·
Las dendritas, que reciben activaciones de otras
neuronas
·
Los axones, que transmiten activaciones a
otras neuronas
·
Las terminaciones de los axones que junto con las dendritas vecinas,
forman las sinapsis entre las neuronas
Sustancias químicas llamadas
neurotransmisores se difunden a través de la hendidura sináptica entre la
terminación de un axón y una dendrita próxima, dando lugar a lo que se conoce
como neurotransmisión. La operación esencial de la neurona es que cuando llega
una activación a través de una dendrita, dicha activación se procesa y, a
continuación se retransmite a un axón a través de sus terminaciones, atraviesa
la hendidura sináptica y llega a un cierto número de dendritas de neuronas
receptoras, en las que se repite el proceso.
El perceptrón es un sencillo clasificador binario lineal.
Los perceptrones toman las entradas y los pesos asociados a las mismas (que
representan la importancia relativa de cada entrada), y las combinan para
producir una salida, que luego se utiliza para proceder a una clasificación.
Los perceptrones llevan con nosotros mucho tiempo, ya que sus primeras
implemetaciones datan de la década de 1950, y el primero de ellos participó en
las primeras implementaciones de RNA.
Un perceptrón multicapa (PMC) consiste en la
aplicación de varias capas adyacentes de perceptrones totalmente conectadas,
formando una red neuronal de conexión hacia adelante (véase más abajo). Este
perceptrón multicapa tiene la característica adicional de tratar con funciones
de activación no lineales, característica que no poseen los perceptrones
individuales.
Las redes neuronales de conexión hacia adelante son
la forma más simple de la arquitectura de red neuronal, en las que las
conexiones son no cíclicas. En la red neuronal artificial original, la
información en una red de conexión hacia adelante avanza en una sola dirección
desde los nodos de entrada, atraviesa sus capas ocultas, y llega a los nodos de
salida; no se producen ciclos. Las redes de conexión hacia adelante difieren de
las típicas arquitecturas de red recurrentes (ver más abajo), en las que las
conexiones forman un ciclo dirigido.
En contraste con las redes neuronales de conexión
hacia adelante vistas más arriba, las conexiones de las redes neuronales
recurrentes forman un ciclo dirigido. Este flujo bidireccional permite la
representación interna del estado en función del tiempo, lo que a su vez,
permite que la secuencia de procesamiento, y, la secuencia de notas,
proporcione las capacidades necesarias para el reconocimiento tatno de la voz
como de la escritura.
En las redes neuronales, la función de activación
proporciona los límites de decisión de la salida mediante la combinación de
entradas ponderadas en la red. Las funciones de activación varían desde la
función de identidad (lineal) a la sigmoide (logística, o de paso suave) y a la
hiperbólica (tangente) y a otras más complejas. Con el fin de emplear la propagación
hacia atrás (ver más abajo), la red debe utilizar funciones de activación que
se sometan a la operación de diferenciación.
La definición más concisa y elemental de
propagación hacia atrás que he conocido nunca ha sido la de un científico de
datos, Mikio L. Braun, que dió la siguiente respuesta en Quora, y que reproduzco de forma literal para no manchar su sencilla
perfección:
La propagación hacia atrás es simplemente la
disminución del gradiente de los errores individuales. Se trata de comparar las
predicciones de la red neuronal con la salida deseada y luego calcular el
gradiente de los errores con respecto a los pesos de la red neuronal. Esto le
da al usuario una dirección a seguir en el espacio de pesos de los parámetros
en el que el error va disminuyendo.
Voy a dejar las cosas así.
Cuando se entrena una red neuronal, se debe evaluar
la exactitud de la salida de la red. Como sabemos la salida correcta que se
espera de los datos de entrenamiento, se puede comparar la salida de
entrenamiento. La función de coste mide la diferencia entre las salidas reales
y las de entrenamiento. Una función de coste cero entre las salidas reales y
las esperadas significaría que la red ha estado entrenando todo lo posible;
esto sería claramente ideal.
Por lo tanto, ¿qué mecanismo ajusta la función de
coste con el objetivo de minimizarla?
La disminución del gradiente es un algoritmo de
optimización que se utiliza para encontrar los mínimos locales de las
funciones. Si bien esto no garantiza un mínimo global, la disminución del
gradiente es especialmente útil para aquellas funciones que son difíciles de
resolver analíticamente para encontrar soluciones precisas, tales como reducir
las derivadas a cero y resolverlas.
Como se mencionó anteriormente,
en el contexto de las redes neuronales, la
disminución del gradiente estocástico se utiliza para hacer los ajustes previstos
a los parámetros de la red con el objetivo de minimizar la función de coste, así
que durante la fase de entrenamiento, las salidas reales de la red están,
después de cada iteración, más cerca de las salidas esperadas. Esta
minimización iterativa emplea una operación de cálculo, a saber, la
diferenciación. Después de la etapa de entrenamiento, los pesos de la red
reciben actualizaciones según el gradiente de la función de coste y los pesos
actuales de la red, por lo que los resultados del siguiente paso de
entrenamiento pueden estar un poco más cerca de ser los correctos (según lo
medido por la función de coste). La retropropagación (propagación hacia atrás
de errores) es el método utilizado para distribuir estas actualizaciones por la
red.
La retropropagación utiliza la regla de la cadena para calcular los
gradientes (mediante la operación de diferenciación), y en las capas en
dirección hacia la parte 'frontal' (entrada) de una red neuronal de n capas
habría que multiplicar cada pequeña cantidad del valor del gradiente n veces
para tener el valor actualizado. Esto significa que el gradiente disminuiría de
manera exponencial, lo que supone un problema con valores grandes de n, ya que
las capas delanteras necesitarían progresivamente más tiempo para entrenar con
eficacia.
Generalmente asociadas a la visión por computador y reconocimiento de imágenes, las redes neuronales
convolucionales (RNC) emplean el concepto matemático de convolución para imitar a la red de conexiónes neuronales del cortex
visual biológico.
En primer lugar, la
convolución, como bellamente la ha descrito
Denny Britz, puede considerarse como una
ventana corrediza sobre la representación matricial de una imagen (ver más
abajo). Esto permite la imitación aproximada de la imbricación de las partes
del campo visual biológico.
La implementación de este concepto en la arquitectura
de una red neuronal da por resultado un conjunto de neuronas dedicadas al
procesamiento de secciones de una
imagen, al menos cuando se emplea en la visión por computador. Cuando se
utiliza en algún otro dominio, como el procesamiento del lenguaje natural, se
puede emplear el mismo enfoque, dado que de entrada (palabras, frases, etc.)
podría estar dispuesta en matrices y se procesa de manera similar.
Una red con memoria a corto y largo plazo (MCLP) es
una red neuronal recurrente que está optimizada para aprender y actuar sobre
los datos en función del tiempo, y que entre eventos relevantes pueden
transcurrir lapsos de tiempo de duración indefinida o desconocida. Su
arquitectura particular permite la persistencia, proporcionando 'memoria' a las
RNA. Los recientes avances en el reconocimiento de la escritura a mano y el
reconocimiento automático de voz se han beneficiado de las redes MCLP.
Evidentemente esto es sólo una pequeña parte de la terminología del aprendizaje profundo, y muchos conceptos adicionales, desde básicos a avanzados, esperan su exploración a medida que aprenda más sobre el campo líder en investigación de aprendizaje automático en la actualidad.
Artículos relacionados