¿Cuál es la diferencia entre redes neuronales convolucionales, máquinas de Boltzmann restringidas y codificadores automáticos?

123

Recientemente he estado leyendo sobre el aprendizaje profundo y estoy confundido acerca de los términos (o decir tecnologías). Cuál es la diferencia entre

  • Redes neuronales convolucionales (CNN),
  • Máquinas de Boltzmann restringidas (RBM) y
  • Codificadores automáticos?
RockTheStar
fuente

Respuestas:

237

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:

ingrese la descripción de la imagen aquí

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.

ingrese la descripción de la imagen aquí

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.

ingrese la descripción de la imagen aquí

(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.

ingrese la descripción de la imagen aquí

Los tres modelos tienen sus casos de uso, pros y contras, pero probablemente las propiedades más importantes son:

  1. 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).
  2. 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.
  3. 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

nnxxmmm<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=i=1mwici

nmmk

Pero no solo agrega nuevas capas. En cada capa, intenta aprender la mejor representación posible para los datos de la anterior:

ingrese la descripción de la imagen aquí

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.

amigo
fuente
3
@friend Explicación muy corta y clara. Se ha escrito mucho sobre estos temas, pero su informe es fantástico. "RockTheStar" Si desea una explicación más detallada, puede leer este libro de 100 páginas de Yoshua Bengio (www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)
Javierfdr
¿Qué utilizarías para predecir secuencias de eventos?
skan
2
@skan: echa un vistazo a los RNN . Específicamente, LSTM es bastante popular ahora. También es posible que desee hacer una pregunta por separado con más detalles para obtener una respuesta calificada, porque los RNN no son mi campo de especialización.
amigo
15

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.

Cylonmath
fuente
6

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.

bayerj
fuente
1

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.

Sigurd
fuente
Autoencoder es un entrenamiento supervisado, ya que entrena para generar la misma información que la salida de la entrada dada, solo con una capa oculta más pequeña, de modo que la red tiene que encontrar una codificación adecuada, que transforme la entrada al tamaño de la capa oculta y viceversa. . en el entrenamiento no supervisado, como se usa en redes estadísticas, como SOM o gas neuronal, no tiene una información objetivo que se presente a la red como salida.
SCI