Autoencoder es una red neuronal simple de 3 capas donde las unidades de salida se conectan directamente a las unidades de entrada . Por ejemplo, en una red como esta:
output[i]
tiene ventaja input[i]
para todos i
. Por lo general, el número de unidades ocultas es mucho menor que el número de unidades visibles (de entrada / salida). Como resultado, cuando pasa datos a través de dicha red, primero comprime (codifica) el vector de entrada para "encajar" en una representación más pequeña, y luego intenta reconstruirlo (decodificarlo). La tarea del entrenamiento es minimizar un error o reconstrucción, es decir, encontrar la representación compacta (codificación) más eficiente para los datos de entrada.
RBM comparte una idea similar, pero utiliza un enfoque estocástico. En lugar de determinista (por ejemplo, logística o ReLU), utiliza unidades estocásticas con una distribución particular (generalmente binaria de Gauss). El procedimiento de aprendizaje consta de varios pasos de muestreo de Gibbs (propagación: muestra de objetos ocultos visibles; reconstruir: muestra de objetos visibles dados ocultos; repetir) y ajuste de los pesos para minimizar el error de reconstrucción.
La intuición detrás de los RBM es que hay algunas variables aleatorias visibles (por ejemplo, críticas de películas de diferentes usuarios) y algunas variables ocultas (como géneros de películas u otras características internas), y la tarea de capacitación es descubrir cómo estos dos conjuntos de variables son realmente conectados entre sí (puede encontrar más información sobre este ejemplo aquí ).
Las redes neuronales convolucionales son algo similares a estas dos, pero en lugar de aprender una matriz de peso global única entre dos capas, su objetivo es encontrar un conjunto de neuronas conectadas localmente. Las CNN se utilizan principalmente en el reconocimiento de imágenes. Su nombre proviene del operador "convolución" o simplemente "filtro". En resumen, los filtros son una manera fácil de realizar operaciones complejas mediante el simple cambio de un núcleo de convolución. Aplique el núcleo de desenfoque gaussiano y lo suavizará. Aplique Canny kernel y verá todos los bordes. Aplique el núcleo Gabor para obtener características de gradiente.
(imagen de aquí )
El objetivo de las redes neuronales convolucionales no es usar uno de los núcleos predefinidos, sino aprender núcleos específicos de datos . La idea es la misma que con los codificadores automáticos o RBM: traduzca muchas características de bajo nivel (por ejemplo, reseñas de usuarios o píxeles de imágenes) a la representación comprimida de alto nivel (por ejemplo, géneros o bordes de películas), pero ahora los pesos se aprenden solo de las neuronas que están espacialmente cerca uno del otro.
Los tres modelos tienen sus casos de uso, pros y contras, pero probablemente las propiedades más importantes son:
- Los autoencoders son los más simples. Son intuitivamente comprensibles, fáciles de implementar y razonar (por ejemplo, es mucho más fácil encontrar buenos metaparámetros para ellos que para los RBM).
- Los RBM son generativos. Es decir, a diferencia de los autoencoders que solo discriminan algunos vectores de datos en favor de otros, los RBM también pueden generar nuevos datos con una distribución unida dada. También se consideran más ricas en características y flexibles.
- Las CNN son modelos muy específicos que se utilizan principalmente para tareas muy específicas (aunque tareas bastante populares). La mayoría de los algoritmos de nivel superior en el reconocimiento de imágenes se basan de alguna manera en las CNN actuales, pero fuera de ese nicho apenas son aplicables (por ejemplo, ¿cuál es la razón para usar la convolución para el análisis de revisión de películas?).
UPD
Reducción de dimensionalidad
nnxx′mmm<nmLos componentes más importantes se utilizan como una nueva base. Cada uno de estos componentes puede considerarse como una característica de alto nivel, que describe los vectores de datos mejor que los ejes originales.
nm
Arquitecturas profundas
mc1..cmx=∑mi=1wici
nmmk
Pero no solo agrega nuevas capas. En cada capa, intenta aprender la mejor representación posible para los datos de la anterior:
En la imagen de arriba hay un ejemplo de una red tan profunda. ¡Comenzamos con píxeles ordinarios, procedemos con filtros simples, luego con elementos faciales y finalmente terminamos con caras enteras! Esta es la esencia del aprendizaje profundo .
Ahora tenga en cuenta que en este ejemplo trabajamos con datos de imágenes y tomamos secuencialmente áreas cada vez más grandes de píxeles espacialmente cercanos. ¿No suena similar? Sí, porque es un ejemplo de red convolucional profunda . Ya sea basado en autoencoders o RBM, utiliza la convolución para enfatizar la importancia de la localidad. Es por eso que las CNN son algo distintas de los autoencoders y RBM.
Clasificación
Ninguno de los modelos mencionados aquí funciona como algoritmos de clasificación per se. En cambio, se utilizan para el entrenamiento previo : transformaciones de aprendizaje de representación de bajo nivel y difícil de consumir (como píxeles) a una de alto nivel. Una vez que la red profunda (o tal vez no tan profunda) se entrena previamente, los vectores de entrada se transforman en una mejor representación y los vectores resultantes finalmente se pasan al clasificador real (como SVM o regresión logística). En una imagen de arriba significa que en la parte inferior hay un componente más que realmente clasifica.