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.
Todas estas arquitecturas pueden interpretarse como una red neuronal. La principal diferencia entre AutoEncoder y Convolutional Network es el nivel de cableado de la red. Las redes convolucionales están prácticamente cableadas. La operación de convolución es bastante local en el dominio de imagen, lo que significa mucha más escasez en el número de conexiones en la vista de la red neuronal. La operación de agrupación (submuestreo) en el dominio de imagen también es un conjunto cableado de conexiones neuronales en el dominio neuronal. Tales restricciones topológicas en la estructura de la red. Dadas tales restricciones, la capacitación de CNN aprende los mejores pesos para esta operación de convolución (en la práctica, existen múltiples filtros). Las CNN generalmente se usan para tareas de imagen y habla donde las restricciones convolucionales son una buena suposición.
Por el contrario, los codificadores automáticos casi no especifican nada sobre la topología de la red. Son mucho más generales. La idea es encontrar una buena transformación neuronal para reconstruir la entrada. Se componen de codificador (proyecta la entrada a la capa oculta) y decodificador (reproyecta la capa oculta a la salida). La capa oculta aprende un conjunto de características latentes o factores latentes. Los codificadores automáticos lineales abarcan el mismo subespacio con PCA. Dado un conjunto de datos, aprenden varias bases para explicar el patrón subyacente de los datos.
Los RBM también son una red neuronal. Pero la interpretación de la red es totalmente diferente. Los RBM interpretan la red no como un avance, sino como un gráfico bipartito donde la idea es aprender la distribución de probabilidad conjunta de las variables ocultas y de entrada. Son vistos como un modelo gráfico. Recuerde que tanto AutoEncoder como CNN aprenden una función determinista. RBM, por otro lado, es modelo generativo. Puede generar muestras de representaciones ocultas aprendidas. Existen diferentes algoritmos para entrenar RBM. Sin embargo, al final del día, después de aprender RBM, puede usar sus pesos de red para interpretarlo como una red de avance.
fuente
Los RBM pueden verse como algún tipo de codificador automático probabilístico. En realidad, se ha demostrado que bajo ciertas condiciones se vuelven equivalentes.
Sin embargo, es mucho más difícil mostrar esta equivalencia que simplemente creer que son bestias diferentes. De hecho, me resulta difícil encontrar muchas similitudes entre los tres, tan pronto como empiezo a mirar de cerca.
Por ejemplo, si escribe las funciones implementadas por un codificador automático, un RBM y un CNN, obtendrá tres expresiones matemáticas completamente diferentes.
fuente
No puedo decirte mucho sobre RBM, pero los codificadores automáticos y las CNN son dos tipos diferentes de cosas. Un autoencoder es una red neuronal que se entrena de manera no supervisada. El objetivo de un autoencoder es encontrar una representación más compacta de los datos aprendiendo un codificador, que transforma los datos en su representación compacta correspondiente, y un decodificador, que reconstruye los datos originales. La parte del codificador de los autoencoders (y originalmente los RBM) se han utilizado para aprender buenos pesos iniciales de una arquitectura más profunda, pero hay otras aplicaciones. Esencialmente, un autoencoder aprende una agrupación de datos. En contraste, el término CNN se refiere a un tipo de red neuronal que usa el operador de convolución (a menudo la convolución 2D cuando se usa para tareas de procesamiento de imágenes) para extraer características de los datos. En el procesamiento de imágenes, filtros, que están enrevesadas con imágenes, se aprenden automáticamente para resolver la tarea en cuestión, por ejemplo, una tarea de clasificación. Si el criterio de entrenamiento es una regresión / clasificación (supervisada) o una reconstrucción (no supervisada) no tiene relación con la idea de convoluciones como una alternativa a las transformaciones afines. También puede tener un codificador automático CNN.
fuente