¿Cuál es la diferencia entre el aprendizaje profundo y las redes neuronales?
La relación entre el aprendizaje profundo y las redes neuronales
2017-01-10?
Recientemente comencé a aprender sobre el aprendizaje profundo, básicamente todos los artículos escritos por bloggers. zouxy09 Es bastante bueno, muy completo y puedo hacer cortes y mejoras según mis propias ideas.
5. La idea básica del Deep Learning
Supongamos que tenemos un sistema S, que tiene n capas (S1,...Sn). la salida es O. La imagen Expresada como: I =>S1=>S2=>…..=>Sn => O, si la salida O es igual a la entrada I, es decir, la entrada I no tendrá ninguna información pérdida después de que el sistema cambia (jaja, dijo Daniel, esto es imposible. Hay un dicho en la teoría de la información que dice que "la información se pierde capa por capa" (desigualdad en el procesamiento de la información). Supongamos que la información de a se procesa para obtener b, y luego la información de b se procesa para obtener c. Entonces se puede demostrar que la información mutua de a y c no excederá la información mutua de a y b. Esto muestra que el procesamiento de información no agrega información y la mayoría del procesamiento pierde información. Por supuesto, sería genial si perdiera información inútil), lo que significa que la entrada I pasa a través de cada capa Si sin pérdida de información, es decir, en cualquier capa Si, es otra representación de la información original (es decir. , entrada I). Ahora, volviendo a nuestro tema Aprendizaje profundo, necesitamos aprender funciones automáticamente. Supongamos que tenemos un montón de entradas I (como un montón de imágenes o texto). Supongamos que diseñamos un sistema S (con n capas). en el sistema, de modo que su salida siga siendo la entrada I, entonces podemos obtener automáticamente una serie de características jerárquicas de la entrada I, a saber, S1,..., Sn.
Para el aprendizaje profundo, la idea es apilar varias capas, es decir, la salida de esta capa se utiliza como entrada de la siguiente capa. De esta forma, la información de entrada se puede expresar jerárquicamente.
Además, la suposición anterior es que la salida es estrictamente igual a la entrada. Esta restricción es demasiado estricta. Podemos relajar esta restricción ligeramente. Por ejemplo, solo necesitamos hacer la diferencia entre la entrada. y la salida lo más pequeña posible. Esta relajación conducirá a otro tipo diferente de método de aprendizaje profundo. Lo anterior es la idea básica del aprendizaje profundo.
6. Aprendizaje superficial y aprendizaje profundo
El aprendizaje superficial es la primera ola del aprendizaje automático.
A finales de la década de 1980, la invención del algoritmo de retropropagación (también llamado algoritmo de retropropagación o algoritmo BP) para redes neuronales artificiales trajo esperanza al aprendizaje automático y desencadenó una nueva era de investigación basada en modelos estadísticos. Locura por el aprendizaje automático. Esta locura continúa hasta el día de hoy. Se descubrió que el algoritmo BP se puede utilizar para permitir que un modelo de red neuronal artificial aprenda reglas estadísticas a partir de una gran cantidad de muestras de entrenamiento para predecir eventos desconocidos. Este método de aprendizaje automático basado en estadísticas es superior en muchos aspectos en comparación con los sistemas artificiales basados en reglas del pasado. Aunque la red neuronal artificial en este momento también se llama perceptrón multicapa, en realidad es un modelo superficial que contiene solo una capa de nodos de capa oculta.
En la década de 1990, se propusieron uno tras otro varios modelos de aprendizaje automático superficial, como máquinas de vectores de soporte (SVM, Support Vector Machines), Boosting y métodos de máxima entropía (como LR, regresión logística). esperar. Básicamente, se puede considerar que la estructura de estos modelos tiene una capa de nodos de capa oculta (como SVM, Boosting) o sin nodos de capa oculta (como LR). Estos modelos han logrado un gran éxito tanto en el análisis teórico como en la aplicación. Por el contrario, debido a la dificultad del análisis teórico y la necesidad de mucha experiencia y habilidades en los métodos de entrenamiento, las redes neuronales artificiales poco profundas estuvieron relativamente silenciosas durante este período.
El aprendizaje profundo es la segunda ola del aprendizaje automático.
En 2006, Geoffrey Hinton, profesor de la Universidad de Toronto en Canadá y figura destacada en el campo del aprendizaje automático, y su alumno Ruslan Salakhutdinov publicaron un artículo en Science, iniciando la ola del aprendizaje profundo. en la academia y la industria.
Este artículo tiene dos puntos principales: 1) Las redes neuronales artificiales con múltiples capas ocultas tienen excelentes capacidades de aprendizaje de características, y las características aprendidas pueden describir los datos de una manera más esencial, lo cual es beneficioso para la visualización o clasificación; 2) Las redes neuronales profundas pueden; La dificultad en el entrenamiento se puede superar efectivamente mediante el "entrenamiento previo por capas". En este artículo, el entrenamiento previo por capas se implementa mediante el aprendizaje no supervisado.
La mayoría de los métodos de aprendizaje, regresión y clasificación actuales son algoritmos de estructura superficial. Su limitación radica en su capacidad limitada para expresar funciones complejas bajo la condición de muestras y unidades informáticas limitadas. Su capacidad de generalización para clasificación compleja. Los problemas son limitados. El aprendizaje profundo puede lograr una aproximación de funciones complejas al aprender una estructura de red no lineal profunda, caracterizar la representación distribuida de los datos de entrada y demostrar una poderosa capacidad para aprender las características esenciales de un conjunto de datos a partir de una pequeña cantidad de muestras. (La ventaja de múltiples capas es que las funciones complejas se pueden representar con menos parámetros)
La esencia del aprendizaje profundo es aprender de manera más efectiva mediante la construcción de un modelo de aprendizaje automático con muchas capas ocultas y características de datos de entrenamiento masivos. mejorando así en última instancia la precisión de la clasificación o predicción. Por lo tanto, el "modelo profundo" es el medio y el "aprendizaje de funciones" es el propósito. A diferencia del aprendizaje superficial tradicional, el aprendizaje profundo se diferencia en que: 1) enfatiza la profundidad de la estructura del modelo, generalmente con 5, 6 o incluso más de 10 capas de nodos de capas ocultas; 2) resalta claramente la importancia de las características; aprendizaje, es decir, a través de la transformación de características capa por capa, la representación de características de la muestra en el espacio original se transforma en un nuevo espacio de características, lo que facilita la clasificación o predicción. En comparación con el método de construir características utilizando reglas artificiales, el uso de big data para aprender características puede describir mejor la rica información intrínseca de los datos.
7. Aprendizaje profundo y redes neuronales
El aprendizaje profundo es un nuevo campo en la investigación del aprendizaje automático. Su motivación es establecer y simular la red neuronal del cerebro humano para el análisis y el aprendizaje. Imita los mecanismos del cerebro humano para interpretar datos como imágenes, sonidos y texto. El aprendizaje profundo es un tipo de aprendizaje no supervisado.
El concepto de aprendizaje profundo tiene su origen en la investigación de las redes neuronales artificiales. Un perceptrón multicapa con múltiples capas ocultas es una estructura de aprendizaje profundo. El aprendizaje profundo descubre representaciones de características distribuidas de datos mediante la combinación de características de bajo nivel para formar características o categorías de atributos de representación de alto nivel más abstractas.
El aprendizaje profundo en sí es una rama del aprendizaje automático, que puede entenderse simplemente como el desarrollo de redes neuronales. Hace unos veinte o treinta años, las redes neuronales solían ser una dirección particularmente popular en el campo del aprendizaje automático, pero luego se desvanecieron gradualmente. Las razones incluyen los siguientes aspectos:
1) Es más fácil sobreadaptarse. , y los parámetros son más difíciles de ajustar y requieren muchos trucos
2) La velocidad de entrenamiento es relativamente lenta y el efecto no es mejor que otros métodos cuando hay relativamente pocos niveles (menos). mayor o igual a 3);
Entonces, durante aproximadamente 20 años, las redes neuronales recibieron poca atención. Durante este período, SVM y los algoritmos de impulso eran básicamente el mundo. Sin embargo, Hinton, un anciano enamorado, persistió y finalmente (junto con otros Bengio, Yann.lecun, etc.) propuso un marco práctico de aprendizaje profundo.
El aprendizaje profundo tiene muchas similitudes y diferencias con las redes neuronales tradicionales.
La diferencia entre los dos es que el aprendizaje profundo adopta una estructura jerárquica similar de redes neuronales. El sistema consta de una red multicapa que consta de una capa de entrada, una capa oculta (múltiples capas) y una. capa de salida Solo los nodos de capas adyacentes Hay conexiones entre ellos, pero no hay conexiones entre los nodos en la misma capa y entre capas. Cada capa puede considerarse como un modelo de regresión logística, esta estructura jerárquica es relativamente cercana a la de la capa. cerebro humano.
Para superar los problemas en el entrenamiento de redes neuronales, DL adopta un mecanismo de entrenamiento que es muy diferente al de las redes neuronales.
En las redes neuronales tradicionales (aquí el autor se refiere principalmente a las redes neuronales directas), se utiliza la propagación hacia atrás. En pocas palabras, utiliza un algoritmo iterativo para entrenar toda la red, establece aleatoriamente el valor inicial, calcula la salida de la red actual y luego, de acuerdo con la diferencia entre la salida actual y la etiqueta, los parámetros de las capas anteriores se cambian hasta la convergencia (todo es un método de descenso de gradiente). El aprendizaje profundo en su conjunto es un mecanismo de entrenamiento por capas. La razón de esto es que si se utiliza el mecanismo de retropropagación, para una red profunda (más de 7 capas), la propagación residual hacia la capa frontal se vuelve demasiado pequeña y se produce la llamada difusión de gradiente. Tratamos este tema a continuación.
8. Proceso de entrenamiento de aprendizaje profundo
8.1. Por qué los métodos de entrenamiento de redes neuronales tradicionales no se pueden utilizar en redes neuronales profundas
El algoritmo BP se utiliza como entrenamiento tradicional. red multicapa Un algoritmo típico, de hecho, para una red con solo unas pocas capas, este método de entrenamiento ya es muy insatisfactorio. Los omnipresentes mínimos locales en funciones de costos objetivos no convexos de estructuras profundas (que involucran múltiples capas de unidades de procesamiento no lineales) son una fuente importante de dificultades de capacitación.
Problemas con el algoritmo BP:
(1) El gradiente se vuelve cada vez más escaso: de arriba a abajo, la señal de corrección de errores se vuelve cada vez más pequeña;
(2) Convergencia al mínimo local: especialmente cuando se parte del área óptima (la inicialización de valores aleatorios hará que esto suceda);
(3) Generalmente, solo podemos usar datos etiquetados para el entrenamiento: pero la mayoría de los datos no están etiquetados y el cerebro puede aprender de los datos no etiquetados;
8.2 Proceso de entrenamiento de aprendizaje profundo
Si todas las capas se entrenan al mismo tiempo, el tiempo. la complejidad será demasiado alta; si se entrena una capa a la vez, la desviación se pasará capa por capa. Esto enfrentará el problema opuesto al aprendizaje supervisado anterior, que será muy inadecuado (porque la red profunda tiene demasiadas neuronas y parámetros).
En 2006, Hinton propuso un método eficaz para construir una red neuronal multicapa a partir de datos no supervisados. En pocas palabras, se divide en dos pasos: uno es entrenar una capa de la red a la vez. y el otro es ajustar la red, de modo que la representación de alto nivel r generada hacia arriba por la representación original x y la x' generada hacia abajo por la representación de alto nivel r sean lo más consistentes posible. El método es:
1) Primero construya una sola capa de neuronas capa por capa, de modo que cada vez se entrene una red de una sola capa.
2) Una vez entrenadas todas las capas, Hinton utiliza el algoritmo de vigilia-sueño para ajustar.
Cambie los pesos entre las capas, excepto la capa superior, para que sean bidireccionales, de modo que la capa superior siga siendo una red neuronal de una sola capa, mientras que las otras capas se convierten en modelos gráficos. La ponderación ascendente es para "cognitivo" y la ponderación descendente es para "generativo". Luego use el algoritmo Wake-Sleep para ajustar todos los pesos. Hacer que la cognición y la generación sean consistentes, es decir, garantizar que la representación de generación de nivel superior pueda restaurar los nodos subyacentes con la mayor precisión posible. Por ejemplo, si un nodo en la capa superior representa una cara, entonces las imágenes de todas las caras deberían activar este nodo y la imagen resultante debería poder expresarse como una imagen de cara aproximada. El algoritmo Wake-Sleep se divide en dos partes: despertar y dormir.
1) Etapa de activación: proceso cognitivo, que genera una representación abstracta (estado de nodo) de cada capa a través de características externas y pesos ascendentes (pesos cognitivos), y utiliza el descenso de gradiente para modificar la desventaja entre capas. peso (peso generado). Es decir, "Si la realidad es diferente a lo que imaginaba, cambia mi peso para que lo que imaginaba sea así".
2) Etapa de sueño: en el proceso de generación, a través de la representación de nivel superior (conceptos aprendidos estando despierto) y pesos descendentes, se genera el estado de nivel inferior y en el nivel inferior se modifican los pesos ascendentes entre capas. mismo tiempo. Es decir, "si la escena del sueño no es el concepto correspondiente en mi mente, cambiar mi peso cognitivo hace que la escena me parezca el concepto".
El proceso de capacitación en aprendizaje profundo es el siguiente:
1) Utilice el aprendizaje no supervisado de abajo hacia arriba (es decir, comenzando desde abajo y entrenando capa por capa hasta arriba):
Usar datos no calibrados (también hay datos calibrados disponibles) para entrenar jerárquicamente los parámetros de cada capa. Este paso puede considerarse como un proceso de entrenamiento no supervisado, que es la mayor diferencia con las redes neuronales tradicionales (este proceso puede ser). considerado como un proceso de aprendizaje de características):
Específicamente, primero use datos no calibrados para entrenar la primera capa y primero aprenda los parámetros de la primera capa durante el entrenamiento (se puede considerar que esta capa obtiene un valor que minimiza el diferencia entre la salida y la entrada) Capa oculta de una red neuronal de tres capas), debido a limitaciones de capacidad del modelo y restricciones de escasez, el modelo resultante puede aprender la estructura de los datos en sí, obteniendo así características que son más expresivas que la entrada ; después del aprendizaje, se obtiene la capa n-1. Finalmente, la salida de la capa n-1 se usa como entrada de la capa n-ésima y se entrena la capa n-ésima, obteniendo así los parámetros de cada capa;
2) Aprendizaje supervisado de arriba hacia abajo (es decir, a través de datos etiquetados se entrenan, los errores se transmiten de arriba a abajo y la red se afina):
Basado en Los parámetros de cada capa obtenidos en el primer paso, ajustan aún más los parámetros de todo el modelo multicapa. Este paso es un proceso de entrenamiento supervisado; el primer paso es similar al proceso de inicialización aleatoria del valor de la red neuronal. El primer paso de DL no es la inicialización aleatoria, sino que se obtiene al aprender la estructura de los datos de entrada. Este valor inicial está más cerca del óptimo global, por lo que se pueden lograr mejores resultados, por lo que el buen efecto del aprendizaje profundo se debe en gran medida a las características; proceso de aprendizaje en el primer paso.