WOT

Thursday, October 27, 2016

Explicación de términos clave del aprendizaje profundo

Nota: Este artículo es una traducción del original que aparece en el sitio de KDnuggets: Deep Learning Key Terms, Explained

Muchas gracias por permitir su publicación en español.

Explicación de términos clave del aprendizaje profundo
  
        


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.

Por Matthew Mayo, KDnuggets.
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.
Deep neural network
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.
Data Science Puzzle
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.
Biological neuron
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.
A few activation functions
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.
Gradient descent
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.

Convolution
Cortesía de: Stanford

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.
LSTM
Cortesía de: Christopher Olah

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

No comments:

Post a Comment