¿Por qué la gente estuvo tan en contra de las redes neuronales durante tanto tiempo?

La primera vez (después del algoritmo Perceptron) fue debido al libro de Minsky y Papert, donde demostraron que un perceptron no puede separar nada que no sea separable linealmente. Este libro no solo afectó a las redes neuronales, sino también al aprendizaje automático en general, y durante mucho tiempo, los algoritmos simbólicos gobernaron la IA (y los resultados fueron muy malos).

Más tarde, la gente descubrió que en realidad se puede entrenar redes neuronales para separar conjuntos de datos linealmente no separables, haciendo redes neuronales con múltiples capas y encontrando los gradientes para cada peso mediante una aplicación de la regla de la cadena. Quién fue el primero en inventar este algoritmo es un debate complejo, pero un tipo (Linnainmaa) implementó ese algoritmo en 1970, otro lo implementó en el contexto de redes neuronales a mediados de los setenta (Werbos), y mucha gente ( incluyendo Rumelhart, Hinton y Williams) lo implementaron en los años ochenta. Definitivamente Rumelhart et al. hizo famoso el enfoque y nació el algoritmo de retropropagación. (Para el contexto, la gente había descubierto el mismo algoritmo en los años cincuenta en la teoría del control, que es casi al mismo tiempo que nació el perceptrón. Pero ninguno en el aprendizaje automático era consciente de eso. También hay que decir que es muy posible que algunos rusos lo habían descubierto incluso antes, y la idea de que puedes multiplicar a los jacobianos no era nada nuevo).

De todos modos, después del papel de Rumelhart, las redes neuronales se volvieron increíbles, la gente los amó, y no solo resolvieron algunos problemas que hasta ese momento no podían resolverse, sino que todo el campo de ML renació esencialmente. En los noventa, sin embargo, sucedieron algunas cosas. Primero, Vladimir Vapnik descubrió máquinas de vectores de soporte, que tenían mejores propiedades teóricas, probablemente más fáciles de trabajar y, lo que es más importante, mejor rendimiento. Casi al mismo tiempo, Radford Neal, David Mackay y Mike Jordan completaron la adquisición de NIPS formulando redes neuronales en el modelo estadístico bayesiano y eliminando la parte neuronal de ellas. Y finalmente, Ho descubrió bosques aleatorios con Freund y Schapire descubriendo AdaBoost y así nacieron métodos de conjunto realmente geniales. SVM, Métodos de conjunto y modelos gráficos probabilísticos gobernaron desde mediados de los noventa hasta 2012. Si bien en su mayoría se desempeñaron mejor que las redes neuronales, parte de la evitación de las redes neuronales por parte de las personas fue casi cazadora de brujas y totalmente innecesaria.

Sin embargo, a mediados de la década pasada, la gente descubrió nuevas formas de entrenarlos, y con los datos cada vez más baratos y el aumento del poder computacional, las redes neuronales comenzaron a regresar. Dominar conjuntos de datos de historias de juguetes como MNIST, hacer cosas útiles en redes de creencias profundas, implementarse en GPU y el resultado de gato de Google Brain fueron grandes hitos, pero el regreso oficial de las redes neuronales (esta vez llamado aprendizaje profundo) llegó a fines de 2012 donde Krizhevsky, Sutskever y Hinton dominaron la competencia ImageNet. Curiosamente, el modelo real era bastante similar a un modelo anterior a casi 2 décadas.

Marvin Minsky demostró que los Perceptrones solo podían resolver problemas linealmente separables (y por lo tanto no podían aprender funciones como XOR) y, por lo tanto, no eran muy útiles para todo tipo de problemas de aprendizaje automático.

Entonces Hinton llamó a su trabajo el “Perceptrón multicapa” y la comunidad de aprendizaje automático en su mayoría asumió que tendría los mismos problemas.

Sin embargo, el texto de Minsky / Papert, a menudo mal citado, causó una disminución significativa en el interés y la financiación de la investigación de redes neuronales.

Perceptron – Wikipedia

Hinton se disculpó recientemente por usar esa terminología afirmando que sentía que probablemente frenó la adopción de redes neuronales.

Creo que la razón principal de esto fue el alto costo computacional requerido por las redes neuronales.

Anteriormente no teníamos máquinas que pudieran manejar el costo computacional de las redes neuronales. Además, los datos eran limitados.

Por lo tanto, había otros métodos que solían dar mejores resultados con los recursos disponibles. Las redes neuronales aprenden lentamente pero dan una mejor salida con la adición de más datos y con más cálculos.

Entonces, a medida que las máquinas mejoraron y hubo más datos disponibles, la red neuronal comenzó a dar mejores resultados y la gente comenzó a reconocerla.

Porque era inútil en términos de precisión y rendimiento.

  1. La red neuronal no podría generar un modelo más preciso que otro aprendizaje automático para que la red neuronal se sobreajuste.
  2. Para analizar datos complejos, la red neuronal se vuelve más y más profunda, aunque es más profunda, lleva más tiempo generar un modelo y entrar en un problema de gradiente que desaparece, lo que impide que la red neuronal también obtenga un modelo preciso.
  3. Para estos problemas, la red neuronal no podría beneficiarse.

Hasta ImageNet 2012, cuando la red neuronal convolucional profunda ocupó el primer lugar en el concurso, la red neuronal no se reconocía como un algoritmo de aprendizaje automático lo suficientemente útil.

Solo puedo pensar en 2 razones:

  1. Falta de solucionador de alto rendimiento, tanto de hardware como de software. Cuando un solucionador escala más de O (n log n) es casi inútil en problemas reales.
  2. Adoración a ciegas de la prueba de convergencia. En la comunidad de optimización fue algo grande. Nadie comprará un algoritmo sin prueba de convergencia a pesar de su rendimiento superior en numerosos problemas. Ya no.

Dos razones, diría:

  1. eran demasiado difíciles de entrenar, por lo que no se obtuvo nada espectacular al aplicarlos.
  2. El hecho de que se hayan inspirado libremente en la biología (en lugar de estadísticas o argumentos matemáticos claros) parece un truco de marketing.

Razón simple de que otros enfoques dieron mejores resultados y una mayor capacidad de interpretación a un menor costo computacional y costo de uso de datos.

Las redes neuronales son como los aprendices lentos inteligentes en la escuela que son lentos al principio. Pero debido al enfoque constante del descenso de gradiente mediante el cual están aprendiendo constantemente de todos y cada uno de los puntos de datos y se vuelven buenos y mejores con el tiempo con la adición de más datos y un mayor número de cálculos.

Entonces, en los primeros días, las personas no tenían tanto los datos como los cálculos para entrenar las redes neuronales. Y como con todo lo que no genera resultados, no se usó mucho.

“En 1969, Marvin Minsky y Seymour Papert lanzaron una bomba sobre la comunidad de redes neuronales en forma de un libro llamado Perceptrons. Aunque se podría argumentar que el desarrollo de la red neuronal a fines de la década de 1960 había sufrido una sobredosis de hiperactividad y una escasez de rendimiento, casi todos los fondos para las redes neuronales se agotaron después de la publicación del libro. Este fue el comienzo de la Edad Oscura ”

(Eberhart y Shi 2007)

Un par de razones:

  1. Cuando se introdujeron por primera vez las redes neuronales, la potencia computacional necesaria para producirlas era prácticamente inexistente. No fue sino hasta principios de la década de 2000 que un equipo de investigadores de Stanford descubrió cómo usar las GPU para acelerar el proceso de capacitación.
  2. Los datos requeridos para entrenar una red efectiva eran una locura y, por lo tanto, dado que los datos a esa escala todavía eran relativamente difíciles de obtener, la mayoría de los investigadores lo abandonaron hasta que ya no fue cierto.
  3. Incluso una vez que se desarrolló la tecnología GPU, las redes neuronales todavía eran bastante raras debido al gran tamaño y los requisitos de potencia necesarios para entrenarlos y desplegarlos; La computación en la nube, que todavía es un poco nueva, ayudó a solucionar todo eso.

Estoy seguro de que hay más razones, pero esas son las tres principales …

Espero ser al menos promedio, pero mis implementaciones de NN fueron inferiores en términos de precisión o el rendimiento fue tan malo en relación con la precisión con respecto a otros métodos que tuve una mejor comprensión que realmente no busqué demasiado para saber si Realmente sería mejor.