Wiki

Clone wiki

dl4ni / deep_learning

Deep Learning

Hasta hace relativamente poco, la mayoría de técnicas de aprendizaje computacional y procesamiento de señales ha estado explotando arquitecturas poco profundas. Estas arquitecturas, a lo sumo, contienen una o dos capas de transformaciones no lineales. Ejemplos de tales arquitecturas poco profundas se encuentran en los modelos de mezcla de Gaussianas (GMMs) [1], sistemas dinámicos lineales o no lineales, campos aleatorios condicionales (CRFs) [2], modelos de máxima entropía (MaxEnt) [3], máquinas de vectores de soporte (SVMs) [4], regresión logística, regresión por kernels, perceptrones multicapa (MLPs) [5] con una única capa oculta, incluyendo las máquinas de aprendizaje extremo (ELMs) [6]. Por ejemplo, las SVMs usan modelo de separación lineal de patrones con a lo sumo una capa de transformación de los atributos de entrada. Este tipo de arquitecturas ha demostrado ser muy efectivo resolviendo problemas simples o bien definidos, pero su limitado poder representacional y de modelado puede ocasionar dificultades cuando se trata de aplicaciones del mundo real, más complicadas, donde intervienen señales naturales, como la voz o imágenes reales.

Por otro lado, los mecanismos humanos de procesamiento de la información (por ejemplo, la visión o el oído) sugieren la necesidad de arquitecturas profundas para poder extraer estructuras complejas y construir representaciones internas a partir de entradas sensoriales muy ricas. El sistema visual humano es jerárquico por naturaleza, principalmente en la parte relacionada con la percepción, pero también en la parte relativa a la “generación” [7]. Es normal pensar que se puede avanzar en el estado del arte técnico, al procesar este tipo de señales (imágenes), si se implementan arquitecturas más profundas.

La mayoría de los métodos de aprendizaje computacional actuales funcionan bien debido al diseño por un humano de la representación del problema y de los atributos de entrada. Cuando el aprendizaje computacional se aplica sólo a los atributos de entrada en bruto, se convierte simplemente en un problema de optimización de los pesos (parámetros del modelo) para hacer la mejor predicción final. Se puede considerar que el aprendizaje profundo es la unión del aprendizaje de una representación del problema con el aprendizaje computacional. Se trata de aprender la predicción final conjuntamente con una serie de buenos atributos, a través de múltiples niveles de complejidad creciente y la abstracción.

Desde el año 2006, el aprendizaje profundo estructurado, o más comúnmente llamado aprendizaje profundo o aprendizaje jerárquico, ha emergido como una nueva área de investigación en aprendizaje computacional [8,9]. Durante los últimos años, las técnicas desarrolladas a partir de la investigación del aprendizaje profundo ya están impactando en una amplia gama de trabajos de procesamiento de señales e información, ampliando el alcance incluyendo aspectos clave de aprendizaje de máquinas y la inteligencia artificial.

Históricamente, el concepto de aprendizaje profundo se originó a partir de la investigación de redes neuronales artificiales. MLP con muchas capas ocultas, que a menudo son llamados redes neuronales profundas (DNNs), son buenos ejemplos de los modelos con una arquitectura de profundidad. La retropropagación (BP), popularizada en la década de 1980, ha sido un algoritmo conocido para el aprendizaje de los parámetros de estas redes.

Desafortunadamente BP por sí solo no funciona bien en la práctica más que para el aprendizaje de redes con más de un pequeño número de capas ocultas (ver una revisión y análisis en [8,10]). La presencia generalizada de óptimos locales y otros problemas de optimización en la función objetivo no convexa de las redes profundas son la principal fuente de dificultades en el aprendizaje. BP se basa en la información del gradiente local y por lo general comienza en algunos puntos aleatorios iniciales. A menudo queda atrapado en óptimos locales pobres cuando se utiliza el modo por lotes o incluso el algoritmo descenso de gradiente estocástico. La gravedad aumenta significativamente a medida que la profundidad de las redes aumenta. Esta dificultad es parcialmente responsable de alejar la mayor parte de la investigación de aprendizaje automático y procesamiento de señales de redes neuronales a los modelos de poca profundidad, con funciones de pérdida convexas (por ejemplo, SVMs, CRFs, y modelos MaxEnt), para los cuales el óptimo global se puede obtener de manera eficiente a costa de una reducción de potencia de modelado, aunque se ha seguido trabajando en redes neuronales con escala e impacto limitados [11].

La dificultad de la optimización asociada con los modelos de aprendizaje profundo se redujo de forma empírica cuando un algoritmo de aprendizaje no supervisado, razonablemente eficiente, fue presentado en dos artículos de gran relevancia [9,12]. En estos documentos, una clase de modelos generativos profundos, llamado red de creencia profundas (DBN, Deep Belief Network), fue presentado. Una DBN se compone de una pila de máquinas de Boltzmann restringidas (RBMs). Un componente central del DBN es un algoritmo voraz de aprendizaje capa por capa que optimiza los pesos de la DBN con complejidad lineal en tiempo según el tamaño y la profundidad de las redes (el número de capas). Con cierta sorpresa, la inicialización de los pesos de un MLP con un DBN correspondientemente configurado a menudo produce resultados mucho mejores que con que los pesos aleatorios.

Como tales, las MLP con muchas capas ocultas, o redes neuronales profundas (DNN), que se entrenan con el pre­entrenamiento no supervisado con DBN seguido de un ajuste fino con retropropagación también es conocido en la literatura como DBNs [13]. Más recientemente, los investigadores han tenido más cuidado en distinguir DNNs de DBNs, y cuando DBN se utiliza para inicializar el entrenamiento de un DNN, la red resultante es a veces llamada DBN­DNN [14]. Este procedimiento voraz inicializa los pesos de la red neuronal completa en cuencas de atracción que conducen a mejores óptimos locales [15].

Independientemente del desarrollo de RBMs, en 2006 se publicaron dos modelos profundos alternativos sin supervisión, no probabilísticos y no generativos. Uno es una variante de autoencoder con entrenamiento voraz por capas al igual que el entrenamiento de DBNs [16]. El otro es un modelo basado en energía con aprendizaje no supervisado de representaciones esparcidas sobre­completas [17]. Ambos pueden ser utilizados eficazmente para pre­entrenar una red neuronal profunda, al igual que el DBN [18]. Si bien esto comenzó una nueva ola de entusiasmo acerca de los modelos profundos, ahora han sido reemplazados por modelos de gran tamaño, puramente supervisados de redes neuronales en la visión por ordenador [19].

Además de proveer buenos puntos de inicialización, el DBN viene con otras propiedades atractivas. En primer lugar, el algoritmo de aprendizaje hace un uso eficaz de los datos no etiquetados. En segundo lugar, se puede interpretar como un modelo generativo probabilístico. En tercer lugar, el problema de exceso de ajuste, que se observa a menudo en los modelos con millones de parámetros tales como DBNs, y el problema de falta de ajuste, que se produce a menudo en redes profundas, puede ser aliviado con eficacia por la etapa de pre­formación generativa.

Usando capas ocultas con muchas neuronas en DNNs mejoran de forma significativa el poder de modelado de la DNN y se crea muchas configuraciones casi óptimas. Incluso si el aprendizaje de los parámetros queda atrapado en un óptimo local, la DNN resultante puede rendir bastante bien ya que la probabilidad de tener un mínimo local pobre es menor que cuando se usa un número pequeño de neuronas en el red. El uso de redes neuronales profundas requiere una gran potencia computacional durante el proceso de entrenamiento y esta es una de las razones por las que no es hasta hace pocos años que los investigadores han empezado a explorar este tipo de redes neuronales profundas.

Hay diferentes algortimos de aprendizaje y no­linealidades que han contribuido al éxito de las DNNs. Los algoritmos de descenso estocástico del gradiente (SGD) son los más eficientes cuando el conjunto de entrenamiento es grande y redundante como es el caso de la mayoría de las aplicaciones [20]. Recientemente, se ha comprobado que el SGD es efectivo para ser paralelizado sobre muchas máquinas de forma asíncrona [21] o sobre múltiples GPUs usando retropropagación [22].Además, el SGD a veces permite que el entrenamiento se salte óptimos locales gracias a los gradientes que se estiman a partir de una muestra pequeña de los datos. Otros métodos de aprendizaje, como los libres de Hessiano [23] o los métodos de los subespacios de Krylov [24], han demostrado una habilidad similar.

Para el problema de optimización (altamente no­convexo) del aprendizaje de las DNNs, es obvio que mejores técnicas de inicialización de los parámetros conllevarán mejores modelos ya que la optimización parte de esos modelos iniciales. Lo que no era obvio hasta hace poco, sin embargo, es cómo inicializar las DNNs de forma efectiva y eficiente y cómo el uso de grandes cantidades de datos de entrenamiento podría aliviar el problema del aprendizaje [8,9,12,16,25]. La técnica de inicialización de parámetros de las DNNs que atrajo más la atención es la del pre­entrenamiento no supervisado presentado en [9,12].

El procedimiento de pre­entrenamiento de DBN no es el único que permite la efectiva inicialización de las DNNs. Una aproximación alternativa no supervisada que funciona igual de bien es pre­entrenar las DNNs capa a capa considerando cada par de capas como un “de­noising autoencoder” regularizado al forzar el valor 0 en un conjunto aleatorio de los nodos de entrada [8]. Otra alternativa es usar autoencoders contractivos con el mismo fin que penalizan el gradiente de las activaciones de las unidades ocultas con respecto a las entradas [26]. Además, [27] desarrolló la máquina simétrica de codificación esparcida (SESM), que tiene una arquitectura muy similar a las RBMs como bloques de construcción de una DBN. La SESM se puede usar para inicializar de forma efectiva el entrenamiento de una DNN. Además del pre­entrenamiento no supervisado usando procedimientos capa a capa voraces, el pre­entrenamiento supervisado, también llamado discriminativo, ha demostrado ser efectivo [14,16,28] y en casos en los que el conjunto de datos de entrenamiento está etiquetado funciona mejor que las técnicas no supervisadas. La idea del pre­entrenamiento discriminativo es comenzar por un MLP con una capa oculta entrenado con el algoritmo de BP. Cada vez que se quiere añadir una nueva capa oculta, se reemplaza la capa de salida con una nueva capa oculta inicializada de forma aleatoria y una nueva capa de salida, entrenando de nuevo toda la red usando el algoritmo BP. A diferencia de las técnicas no supervisadas, el pre­entrenamiento discriminativo requiere que los datos estén etiquetados.

Por tanto, la verdadera potencia de las redes profundas es su habilidad para extraer atributos apropiados a partir de los datos de entrada a la vez que se realiza la discriminación de los mismos [29].

Dependiendo del uso que se quiera dar a las arquitecturas, síntesis/generación o reconocimiento/clasificación de datos, se puede clasificar el trabajo en este área en 3 clases principales:

  1. Redes profundas para aprendizaje no supervisado o generativo,​que intentan capturar correlaciones a un alto nivel de los datos observados con el objetivo de analizar o generar patrones cuando no se dispone de información acerca de las etiquetas de clase.

  2. Redes profundas para aprendizaje supervisado,​cuyo objetivo es proveer directamente poder discriminativo para clasificación de patrones, a menudo caracterizando las distribuciones estadísticas a posteriori de las clases condicionadas sobre los datos de entrada. Siempre necesitan de datos etiquetados y a veces se llaman redes profundas discriminativas.

  3. Redes neuronales híbridas​, donde el objetivo es la discriminación, la cual se ve ayudada, de forma significativa, por las salidas de modelos no supervisados o generativos, con una mejor optimización o regularización de las redes propuestas en la categoría 2.

Por convención en el área de aprendizaje computacional [30,31], podría ser natural clasificar las técnicas de deep learning en modelos discriminativos (por ejemplo, DNNs, redes recurrentes, redes convolucionales, etc.) y modelos generativos o no supervisados (como las RBMs, las DBNs o las DBMs y los autoencoders regularizados). este esquema de clasificación en dos clases echa en falta una idea clave en la investigación de Deep Learning acerca de cómo los modelos de aprendizaje generativos pueden mejorar en gran medida el entrenamiento de DNNs y otros modelos profundos discriminatorios o supervisados con una mejor optimización y regularización. Comparando entre los dos, los modelos de aprendizaje supervisado como las DNNs son más eficientes de entrenar y validar, más flexibles en su construcción, y más adecuadas para el aprendizaje de sistemas complejos. Por otro lado, los no supervisados, y en especial los probabilísticos, son más fáciles de interpretar, es más sencillo el incluir conocimiento acerca del dominio del problema, más sencillos de componer, pero son típicamente intratables cuando se trata de realizar inferencia o modelado de sistemas complejos.

Updated