Respuestas:
Esto va hacia atrás, pero sigue la lógica de los argumentos.
En términos de eficiencia, puedo ver algunos problemas importantes con las redes neuronales clásicas.
Las redes neuronales grandes requieren muchos datos para entrenarse. La cantidad puede variar según el tamaño de la red y la complejidad de la tarea, pero como regla general, generalmente es proporcional al número de pesos. Para algunas tareas de aprendizaje supervisado, simplemente no hay suficientes datos etiquetados de alta calidad. La recopilación de grandes cantidades de datos de capacitación especializada puede llevar meses o incluso años, y el etiquetado puede ser engorroso y poco confiable. Esto puede mitigarse parcialmente mediante el aumento de datos, lo que significa "sintetizar" más ejemplos de los que ya tiene, pero no es una panacea.
La tasa de aprendizaje suele ser bastante pequeña, por lo que el progreso del entrenamiento es lento. Un modelo grande que podría tardar semanas en entrenarse en una CPU de escritorio puede entrenarse, por ejemplo, en dos horas mediante el uso de un clúster de GPU que consume varios kW de energía. Esta es una compensación fundamental debido a la naturaleza del procedimiento de capacitación. Dicho esto, las GPU se están volviendo cada vez más eficientes; por ejemplo, la nueva arquitectura de GPU nVidia Volta permite 15.7 TFLOP mientras consume menos de 300 W.
En este momento, prácticamente cada problema diferente requiere una red neuronal personalizada para ser diseñada, capacitada y desplegada. Si bien la solución a menudo funciona, está encerrada en ese problema. Por ejemplo, AlphaGo es brillante en Go, pero sería inútil conducir un automóvil o proporcionar recomendaciones musicales, simplemente no fue diseñado para tales tareas. Esta abrumadora redundancia es un gran inconveniente de las redes neuronales en mi opinión, y también es un impedimento importante para el progreso de la investigación de redes neuronales en general. Existe un área de investigación completa llamada aprendizaje de transferenciaque trata de encontrar formas de aplicar una red capacitada en una tarea a una tarea diferente. A menudo, esto se relaciona con el hecho de que puede que no haya suficientes datos para entrenar a una red desde cero en la segunda tarea, por lo que poder usar un modelo pre-entrenado con un poco de ajuste adicional es muy atractivo.
La primera parte de la pregunta es más complicada. Dejando a un lado los modelos puramente estadísticos, no he visto ningún enfoque destacado para el aprendizaje automático que sea radicalmente diferente de las redes neuronales. Sin embargo, hay algunos desarrollos interesantes que vale la pena mencionar porque abordan algunas de las ineficiencias anteriores.
Un poco de historia primero.
Las redes neuronales con picos tienen un enorme potencial en términos de potencia computacional. De hecho, se ha demostrado que son estrictamente más potentes que las redes neuronales clásicas con activaciones sigmoideas.
Sumado a eso, las redes neuronales con picos tienen una comprensión intrínseca del tiempo , algo que ha sido un obstáculo importante para las redes clásicas desde su inicio. No solo eso, sino que las redes de picos están controladas por eventos , lo que significa que las neuronas operan solo si hay una señal entrante. Esto contrasta con las redes clásicas, donde cada neurona se evalúa independientemente de su entrada (nuevamente, esto es solo una consecuencia del procedimiento de evaluación que generalmente se implementa como una multiplicación de dos matrices densas). Entonces, las redes de picos emplean un esquema de codificación disperso , lo que significa que solo una pequeña fracción de las neuronas está activa en un momento dado.
Ahora, la escasa codificación basada en picos y la operación controlada por eventos son adecuados para implementaciones basadas en hardware de redes de picos llamadas chips neuromórficos . Por ejemplo, el chip TrueNorth de IBM puede simular 1 millón de neuronas y 256 millones de conexiones mientras consume solo unos 100 mW de potencia en promedio. Esto es un orden de magnitud más eficiente que las GPU nVidia actuales. Los chips neuromórficos pueden ser la solución del tiempo de entrenamiento / compensación energética que mencioné anteriormente.
Además, los memristors son un desarrollo relativamente nuevo pero muy prometedor. Básicamente, un memristor es un elemento fundamental del circuito muy similar a una resistencia pero con una resistencia variable proporcional a la cantidad total de corriente que ha pasado a través de ella durante toda su vida útil. Esencialmente, esto significa que mantiene una "memoria" de la cantidad de corriente que la ha atravesado. Una de las aplicaciones potenciales más interesantes de los memristors es modelar sinapsis en hardware de manera extremadamente eficiente.
Creo que vale la pena mencionarlos porque son candidatos prometedores para abordar el problema de la no transferibilidad. Estos no se limitan a las redes neuronales: al estar impulsados por recompensas, RL y la evolución son teóricamente aplicables en un entorno genérico a cualquier tarea en la que sea posible definir una recompensa o una meta para un agente. Esto no es necesariamente trivial, pero es mucho más genérico que el enfoque habitual basado en errores, donde el agente de aprendizaje intenta minimizar la diferencia entre su salida y una verdad básica. El punto principal aquí es sobre el aprendizaje de transferencia: idealmente, aplicar un agente capacitado a una tarea diferente debería ser tan simple como cambiar el objetivo o la recompensa (aunque todavía no están en ese nivel ...).
In particular it is shown that networks of spiking neurons are, with regard to the number of neurons that are needed, computationally more powerful than these other neural network models.
max(0, x)
) está en peligro de quedarse atascado x < 0
, lo que resulta en neuronas muertas. En cualquier caso, el punto es sobre el poder computacional de las redes de púas y su implementación de hardware ultra eficiente en términos de consumo de energía.
Sustitución de redes neuronales
Es posible que existan nuevos algoritmos que tengan el potencial de reemplazar las redes neuronales. Sin embargo, una de las características de las redes neuronales es que emplean elementos simples, cada uno con bajas demandas de recursos informáticos en patrones geométricos.
Las neuronas artificiales se pueden ejecutar en paralelo (sin tiempo compartido de CPU o bucle) mediante el mapeo de los cálculos a dispositivos DSP u otro hardware de cómputo paralelo. Que las muchas neuronas sean esencialmente iguales es, por lo tanto, una gran ventaja.
¿Qué estaríamos reemplazando?
Cuando consideramos reemplazos algorítmicos a redes neuronales, implicamos que un diseño de red neuronal es un algoritmo. No lo es.
Una red neuronal es un enfoque para converger en un circuito en tiempo real para realizar una transformación no lineal de entrada a salida basada en alguna formulación de lo que es óptimo. Tal formulación puede ser la minimización de una medida de error o disparidad de algún ideal definido. Puede ser una medida de bienestar que debe ser maximizada.
La fuente de la determinación de aptitud para cualquier comportamiento de red dado puede ser interna. A eso lo llamamos aprendizaje no supervisado. Puede ser externo, lo que llamamos supervisado cuando la información de aptitud externa se combina con vectores de entrada en forma de valores de salida deseados, que llamamos etiquetas.
La aptitud también puede originarse externamente como un escalar o un vector no acoplado con los datos de entrada, sino en tiempo real, lo que llamamos refuerzo. Esto requiere algoritmos de aprendizaje reentrantes. La aptitud conductual neta puede ser evaluada alternativamente por otras redes dentro del sistema, en el caso de redes apiladas u otras configuraciones, como las jerarquías laplacianas.
La selección de algoritmos tiene poco que ver con la inteligencia comparativa una vez que se seleccionan los diseños matemáticos y de proceso. El diseño de algoritmos está más directamente relacionado con minimizar las demandas de recursos informáticos y reducir los requisitos de tiempo. Esta minimización también depende del hardware y del sistema operativo.
¿Está indicado un reemplazo?
Por supuesto. Sería mejor si las redes fueran más como neuronas de mamíferos.
Por señalización regional se entiende las muchas señales químicas más allá de la transmisión de señal a través de sinapsis.
Incluso podemos considerar ir más allá de la neurología de los mamíferos.
Eficiencia Neural Neta
La eficiencia no puede cuantificarse en alguna escala universal, ya que la temperatura puede cuantificarse en grados Kelvin. La eficiencia solo puede cuantificarse como un cociente de algún valor medido sobre algún ideal teórico. Tenga en cuenta que es un ideal, no un máximo, en el denominador. En los motores termodinámicos, ese ideal es la tasa de entrada de energía, que nunca se puede transferir completamente a la salida.
Del mismo modo, las redes neuronales nunca pueden aprender en tiempo cero. Una red neuronal tampoco puede lograr un error cero durante un tiempo arbitrariamente largo en producción. Por lo tanto, la información es en cierto modo como la energía, un concepto investigado por Claude Shannon de Bell Labs durante los albores de la automatización digital, y la relación entre la entropía de la información y la entropía termodinámica es ahora una parte importante de la física teórica.
No puede haber una mala eficiencia de aprendizaje o una buena eficiencia de aprendizaje. No puede haber un mal desempeño ni un buen desempeño, si deseamos pensar en términos lógicos y científicos, solo una mejora relativa de alguna configuración del sistema con respecto a otra configuración del sistema para un conjunto muy específico de escenarios de desempeño.
Por lo tanto, sin una especificación inequívoca de las dos configuraciones de hardware, sistema operativo y software y un conjunto de pruebas completamente definido utilizado para una evaluación relativa, la eficiencia no tiene sentido.
Tenemos alguna esperanza al acecho en ese frente. A partir de ahora tenemos redes de cápsulas de J.Hinton que utilizan una activación no lineal diferente llamada función de "squash".
Las redes de cápsulas tienen algunas deficiencias. Así que ha habido trabajo en la dirección de mirar más allá de las redes neuronales. Puede leer este blog para una buena comprensión antes de leer el documento de J.Hinton.
Las redes neuronales requieren muchos datos y capacitación. Para la mayoría de los conjuntos de datos en formato tabular, es mucho mejor usar modelos basados en árboles de decisión. La mayoría de las veces, los modelos simples son suficientes para dar una buena precisión. Sin embargo, las redes neuronales tuvieron su prueba del tiempo. Solo han pasado entre cinco y seis años desde que comenzó la revolución del aprendizaje profundo, por lo que aún no conocemos la verdadera potencia del aprendizaje profundo.