¿Cuál es la diferencia entre una red neuronal, un sistema de aprendizaje profundo y una red de creencias profundas?

23

¿Cuál es la diferencia entre una red neuronal, un sistema de aprendizaje profundo y una red de creencias profundas?

Como recuerdo, su red neuronal básica es una especie de 3 capas, y he descrito a Deep Belief Systems como redes neuronales apiladas una encima de la otra.

Hasta hace poco no había oído hablar de Deep Learning Systems, pero sospecho que es un sinónimo de Deep Belief System. ¿Alguien puede confirmar esto?

Lyndon White
fuente
Deep Belief System, es el término con el que me encontré, pueden o no ser sinónimos (una búsqueda en Google arrojará artículos para Deep Belief System)
Lyndon White
Deep Belief Network es el nombre canónico porque derivan de Deep Boltzmann Network (y puede ser confuso con un sistema de propagación de creencias que es totalmente diferente ya que se trata de redes bayesianas y teoría de decisión probabilística).
gaborous
@gaborous Deep Belief Network es el nombre correcto (el documento que recibí hace años presentándome debe haber tenido un error tipográfico). pero en cuanto a que se deriva de las redes profundas de boltzman, ese nombre en sí no es canónico (AFAIK, feliz de ver una cita). Los DBN derivan de Sigmoid Belief Networks y RBM apilados. No creo que se use nunca el término Red de Boltzmann Profundo. Por otro lado, Deep Boltzmann Machine es un término utilizado, pero Deep Boltzmann Machines se creó después de Deep Belief Networks
Lyndon White
@Oxinabox Tienes razón, he hecho un error tipográfico, es Deep Boltzmann Machines, aunque realmente debería llamarse Deep Boltzmann Network (pero entonces el acrónimo sería el mismo, así que tal vez por eso). No sé qué arquitectura profunda se inventó primero, pero las máquinas de Boltzmann son anteriores a bm semi-restringido. DBN y DBM son realmente la misma construcción, excepto que la red base utilizada como capa repetitiva es un SRBM vs BM.
gaborous

Respuestas:

10

Los modelos de redes neuronales artificiales generalmente se restringieron a solo unas pocas capas, digamos 3, durante décadas, por varias razones, incluida una prueba matemática llamada Kolmogorovs thm que indicaba que podían aproximar teóricamente funciones arbitrarias con bajo error (pero solo con muchas neuronas).

Las redes multicapa más allá de eso no eran factibles / efectivas a través de técnicas de aprendizaje previas. Un avance similar se produjo en 2006 por 3 investigadores diferentes, Hinton, Le Cun, Bengio, que pudieron entrenar muchas más capas. El principal problema en esta área fue el reconocimiento de la escritura a mano.

El término "red de creencias profundas" parece originarse en un artículo de 2006 de Hinton que se refiere a las redes bayesianas , que tienen estrechas conexiones / analogías conceptuales / teóricas con las redes neuronales. "Un algoritmo de aprendizaje rápido para redes de creencias profundas"

ver diapositiva 17 en particular de esta presentación redes neuronales profundas

Por lo tanto, el campo de aprendizaje profundo tiene solo ½ década de antigüedad y está experimentando una rápida investigación y desarrollo. Google, Facebook, Yahoo han anunciado iniciativas basadas en el aprendizaje profundo y la I + D está en curso.

vzn
fuente
sitio web dedicado al aprendizaje profundo por investigadores en el campo
vzn
14

Las redes neuronales artificiales son una clase de algoritmos que incluyen muchos tipos diferentes de algoritmos basados ​​en gráficos, por lo que no detallaré aquí más allá de lo que pediste porque hay mucho que decir, ya que hay muchos tipos de ANN.

El primer tipo de redes neuronales artificiales, las famosas neuronas McCulloch-Pitts, eran lineales , lo que significa que solo podían resolver problemas de decisión lineales (es decir, conjuntos de datos que podrían ser linealmente separables). dibujando una línea). Con el tiempo, este modelo de red neuronal lineal se hizo conocido como Perceptron o Adaline (dependiendo de cómo calcule la actualización de los pesos).

Las redes neuronales lineales solo se componen de un gráfico bipartito, donde los nodos del lado izquierdo son las entradas y los nodos del lado derecho la salida. Solo se aprenden los pesos de los bordes entre estos nodos (el umbral de activación de los nodos también se puede ajustar, pero esto rara vez se hace).

Red neuronal básica como Adaline o Perceptron (sin capa oculta) Límite de decisión lineal

Se dio un gran paso cuando se inventaron las redes neuronales poco profundas : en lugar de tener solo un gráfico bipartito, usamos un gráfico de 3 partes: la "capa" de entrada, la "capa" de salida y una "capa oculta" entre ellas. Gracias a la capa oculta, la red ahora puede tomar decisiones no lineales y resolver problemas como el XOR canónico.

Red neuronal Xor Rutas de activación de ejemplo de red neuronal Xor Límite de decisión de la red Xor

Tenga en cuenta que el término "superficial" se acuñó retrospectivamente cuando se inventó la red neuronal profunda (también llamada redes neuronales de n capas ). Esto es para oponerse a las redes neuronales con una sola capa oculta, con redes neuronales profundas con n capas ocultas . Como puede adivinar, el uso de más capas ocultas le permite decidir sobre conjuntos de datos más complejos, ya que hay más capas para modular la decisión (es decir, está aumentando la dimensionalidad de su límite de decisión, lo que puede conducir a un sobreajuste).

Red neuronal de la capa N Límite de decisión no lineal complejo utilizando una red neuronal profunda de n capas

Puede preguntar: ¿por qué nadie intentó usar redes neuronales de varias capas (profundas) antes? De hecho, lo hicieron, ya en 1975 por Fukushima con Cognitron y Neocognitron (que de hecho es una red neuronal convolucional, pero esa es otra historia). Sin embargo, el problema era que nadie sabía cómo aprender eficientemente tales redes, el gran problema era la regularización . Los codificadores automáticos de Hinton abrieron el camino, y más tarde las unidades lineales rectificadas de LeCun solucionaron el problema definitivamente.

¿Qué pasa con Deep Beliefs Networks (DBN)? Son solo máquinas de Boltzmann semirrestringidas de varias capas. Por lo tanto, son una especie de red neuronal profunda, pero con un patrón de red básico diferente (es decir, la capa, este es el patrón que se repite): las máquinas de Boltzmann son diferentes de otras redes en que son generativas , lo que significa que generalmente son solía aprender de sus datos para reproducirlos ("generarlos"), mientras que las redes neuronales profundas habituales se usan para separar sus datos (dibujando un "límite de decisión").

En otras palabras, los DNN son geniales para clasificar / predecir un valor de su conjunto de datos, mientras que los DBN son excelentes para "reparar" datos corruptos (cuando digo reparar, no solo se trata de datos corruptos, también puede estar en datos perfectamente correctos que solo desea arreglar un poco para ser más estereotipado y reconocer más fácilmente con otra red neuronal, como dígitos escritos a mano).

De hecho, para resumir claramente, puede decir que los AutoEncoders son una forma más simple de Deep Belief Network. Aquí hay un ejemplo de un DBN entrenado para reconocer caras pero NO números, los números se desvanecen automáticamente (este es el efecto "reparador" de DBN):

Ejemplo de Deep Belief Network sobre reconocimiento facial

Entonces, al final, DBN y DNN no son opuestos: son complementarios. Por ejemplo, puede imaginar un sistema para reconocer caracteres escritos a mano que primero alimentarán la imagen de un personaje a un DBN para hacerlo más estereotípico y luego alimentarán la imagen estereotipada a un DNN que luego generará el carácter que representa la imagen.

Una última nota: las redes de creencias profundas están muy cerca de las máquinas de Boltzmann profundas: las máquinas de Boltzmann profundas usan capas de máquinas de Boltzmann (que son redes neuronales bidireccionales, también llamadas redes neuronales recurrentes), mientras que las redes de creencias profundas usan máquinas de Boltzmann semirrestringidas (semi- restringido significa que se cambian a unidireccional, por lo tanto, permite utilizar la propagación hacia atrás para aprender la red, que es mucho más eficiente que aprender una red recursiva). Ambas redes se usan para el mismo propósito (regenerar el conjunto de datos), pero el costo computacional es diferente (las máquinas Deep Boltzmann son significativamente más costosas de aprender debido a su naturaleza recurrente: es más difícil "estabilizar" los pesos).

Bonificación: sobre las redes neuronales convolucionales (CNN), encontrará muchas afirmaciones contradictorias y confusas, y generalmente encontrará que solo son redes neuronales profundas. Sin embargo, parece que el consenso es utilizar la definición original del Neocognitron de Fukushima: un CNN es un DNN que se ve obligado a extraer diferentes características en diferentes niveles jerárquicos al imponer una convolución antes de la activación (que un DNN puede hacer naturalmente, pero forzándolo Al establecer una función de convolución / activación diferente en las diferentes capas de la red puede obtener mejores resultados, al menos esa es la apuesta de CNN):

Características de la red neuronal profunda Características de la red neuronal convolucional

Y finalmente, para una línea de tiempo más rigurosa de Inteligencia Artificial, vea aquí .

gaborous
fuente
1
¡Gran respuesta! Un aspecto clave (quizás el aspecto definitorio) de las redes profundas convolucionales es que cada capa corresponde a aplicar una convolución y luego a aplicar una función de activación: hay un núcleo, y todos los nodos en una capa aplican el mismo núcleo. Imagina que la entrada es una imagen. Por lo general, tiene un nodo para cada píxel y tiene conexiones provenientes de píxeles cercanos. Una red ordinaria permitiría que cada píxel tenga su propio patrón de pesos en los bordes entrantes. Una red convolucional impone el requisito adicional de que es la misma secuencia de pesos en cada píxel de la imagen.
DW
Sí, de hecho tienes razón, y de ahí viene el nombre. Pero personalmente, creo que esto se usa a menudo como un truco para especializar una red neuronal profunda que cualquier otra cosa (cuando la característica definitoria de una red neuronal profunda es ser de propósito general y agnóstico al conjunto de datos). Por ejemplo, HMAX, una especie de CNN, utiliza la convolución de mapas de cómputo de prominencia, que es claramente un corte cuando el mapa de prioridad en una red neuronal biológica es, por supuesto, no se calcula utilizando programación dinámica ...
gaborous
3

Las redes neuronales profundas son redes neuronales que tienen una profundidad relativamente alta. Son una subclase de redes neuronales. La idea en realidad se remonta a décadas y no es nueva. Lo nuevo es que hemos descubierto cómo entrenarlos en la práctica. La razón por la que se ha vuelto muy popular recientemente es que entrenarlos se volvió factible y la gente los usó para vencer algoritmos de última generación. DNN necesita muchos datos y mucha potencia computacional que no estaban disponibles hace décadas. Geoff Hinton y sus estudiantes y colegas descubrieron cómo entrenarlos en la práctica durante la última década y los usaron para superar los algoritmos de aprendizaje automático de última generación en varios campos donde la mayoría de los investigadores rechazaron la idea de usarlos por completo en ese momento.

Las redes de creencias son una clase de modelos gráficos probabilísticos, modelan un grupo de variables aleatorias y sus dependencias utilizando un gráfico (hay varias formas de hacerlo). Esas variables pueden ser de distribuciones parametrizadas y pueden ser modeladas por redes neuronales (o algún otro modelo para representar distribuciones parametrizadas). Las redes de creencias profundas son redes de creencias que tienen una profundidad relativamente alta.

Las redes de creencias tienden a ser generativas, es decir, podemos usar un modelo entrenado para generar muestras a partir de la distribución que representa.

Las redes neuronales tienden a ser discriminatorias, podemos usarlas para calcular la probabilidad de una entrada dada (¿es esta una imagen de un gato? ¿Cuál es la probabilidad de que sea una imagen de un gato?) Pero generalmente no para el muestreo (generar un foto de un gato).

Kaveh
fuente
No soy un experto en ML, así que tome lo que he escrito con un grano de sal.
Kaveh
-1

Las redes neuronales normalmente se implementan donde se requieren capas ocultas y ecuaciones cuadráticas, donde se utilizan redes de aprendizaje profundo y creencias profundas donde se requieren múltiples capas ocultas para la manipulación de datos al igual que las redes profundas de Boltzmann.

Case Msee
fuente
Entonces, ¿ambos requieren capas ocultas? ¿Podrías hacer varias capas ocultas en NN normal? Estas redes de Boltzmann, ¿te refieres a las máquinas de Boltzmann? Entonces cuál es la diferencia? No responde la pregunta (o tal vez lo hace, pero no está muy claro).
Mal