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).
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.
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).
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):
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):
Y finalmente, para una línea de tiempo más rigurosa de Inteligencia Artificial, vea aquí .