Red neuronal artificial - Artificial neural network

Una red neuronal artificial es un grupo de nodos interconectados, inspirado en una simplificación de neuronas en un cerebro . Aquí, cada nodo circular representa una neurona artificial y una flecha representa una conexión entre la salida de una neurona artificial y la entrada de otra.

Las redes neuronales artificiales ( ANN ), generalmente llamadas simplemente redes neuronales ( NN ), son sistemas informáticos inspirados en las redes neuronales biológicas que constituyen los cerebros de los animales .

Una RNA se basa en una colección de unidades o nodos conectados llamados neuronas artificiales , que modelan libremente las neuronas en un cerebro biológico. Cada conexión, como las sinapsis en un cerebro biológico, puede transmitir una señal a otras neuronas. Una neurona artificial recibe una señal, luego la procesa y puede señalar a las neuronas conectadas a ella. La "señal" en una conexión es un número real , y la salida de cada neurona se calcula mediante alguna función no lineal de la suma de sus entradas. Las conexiones se llaman bordes . Las neuronas y los bordes suelen tener un peso que se ajusta a medida que avanza el aprendizaje. El peso aumenta o disminuye la fuerza de la señal en una conexión. Las neuronas pueden tener un umbral tal que una señal se envía solo si la señal agregada cruza ese umbral. Normalmente, las neuronas se agregan en capas. Las diferentes capas pueden realizar diferentes transformaciones en sus entradas. Las señales viajan desde la primera capa (la capa de entrada) hasta la última capa (la capa de salida), posiblemente después de atravesar las capas varias veces.

Capacitación

Las redes neuronales aprenden (o se entrenan) procesando ejemplos, cada uno de los cuales contiene una "entrada" y un "resultado" conocidos, formando asociaciones ponderadas por probabilidad entre los dos, que se almacenan dentro de la estructura de datos de la propia red. El entrenamiento de una red neuronal a partir de un ejemplo dado generalmente se realiza determinando la diferencia entre la salida procesada de la red (a menudo una predicción) y una salida objetivo. Esta diferencia es el error. Luego, la red ajusta sus asociaciones ponderadas de acuerdo con una regla de aprendizaje y utilizando este valor de error. Los ajustes sucesivos harán que la red neuronal produzca una salida que sea cada vez más similar a la salida objetivo. Después de un número suficiente de estos ajustes, el entrenamiento puede terminarse en base a ciertos criterios. Esto se conoce como aprendizaje supervisado .

Dichos sistemas "aprenden" a realizar tareas al considerar ejemplos, generalmente sin estar programados con reglas específicas de la tarea. Por ejemplo, en el reconocimiento de imágenes , pueden aprender a identificar imágenes que contienen gatos analizando imágenes de ejemplo que se han etiquetado manualmente como "gato" o "sin gato" y utilizando los resultados para identificar gatos en otras imágenes. Hacen esto sin ningún conocimiento previo de los gatos, por ejemplo, que tienen pelaje, cola, bigotes y caras de gato. En cambio, generan automáticamente características de identificación a partir de los ejemplos que procesan.

Historia

Warren McCulloch y Walter Pitts (1943) abrieron el tema creando un modelo computacional para redes neuronales. A finales de la década de 1940, DO Hebb creó una hipótesis de aprendizaje basada en el mecanismo de plasticidad neuronal que se conoció como aprendizaje de Hebb . Farley y Wesley A. Clark (1954) utilizaron por primera vez máquinas computacionales, luego llamadas "calculadoras", para simular una red hebbiana. En 1958, el psicólogo Frank Rosenblatt inventó el perceptrón , la primera red neuronal artificial, financiada por la Oficina de Investigación Naval de los Estados Unidos . Las primeras redes funcionales con muchas capas fueron publicadas por Ivakhnenko y Lapa en 1965, como el método grupal de manejo de datos . Los fundamentos de la retropropagación continua fueron derivados en el contexto de la teoría del control por Kelley en 1960 y por Bryson en 1961, utilizando principios de programación dinámica . A partir de entonces, la investigación se estancó siguiendo a Minsky y Papert (1969), quienes descubrieron que los perceptrones básicos eran incapaces de procesar el circuito o exclusivo y que las computadoras carecían de potencia suficiente para procesar redes neuronales útiles.

En 1970, Seppo Linnainmaa publicó el método general para la diferenciación automática (AD) de redes conectadas discretas de funciones diferenciables anidadas . En 1973, Dreyfus utilizó la propagación inversa para adaptar los parámetros de los controladores en proporción a los gradientes de error. El algoritmo de retropropagación de Werbos (1975) permitió el entrenamiento práctico de redes multicapa. En 1982, aplicó el método AD de Linnainmaa a las redes neuronales en la forma que se volvió ampliamente utilizada.

El desarrollo de la integración a gran escala (VLSI) de semiconductores de óxido de metal (MOS) , en forma de tecnología MOS complementaria (CMOS), permitió aumentar el número de transistores MOS en la electrónica digital . Esto proporcionó más potencia de procesamiento para el desarrollo de redes neuronales artificiales prácticas en la década de 1980.

En 1986 , Rumelhart , Hinton y Williams demostraron que la propagación hacia atrás aprendió representaciones internas interesantes de palabras como vectores de características cuando se entrenó para predecir la siguiente palabra en una secuencia.

En 1992, se introdujo la agrupación máxima para ayudar con la invariancia de desplazamiento mínimo y la tolerancia a la deformación para ayudar al reconocimiento de objetos en 3D . Schmidhuber adoptó una jerarquía de redes de varios niveles (1992) preentrenados un nivel a la vez mediante aprendizaje no supervisado y ajustado por retropropagación .

Los primeros éxitos de las redes neuronales incluyeron la predicción del mercado de valores y, en 1995, un automóvil (en su mayoría) autónomo.

Geoffrey Hinton y col. (2006) propusieron aprender una representación de alto nivel utilizando capas sucesivas de variables latentes binarias o de valor real con una máquina de Boltzmann restringida para modelar cada capa. En 2012, Ng y Dean crearon una red que aprendió a reconocer conceptos de nivel superior, como gatos, solo viendo imágenes sin etiquetas. El entrenamiento previo sin supervisión y el aumento de la potencia informática de las GPU y la computación distribuida permitieron el uso de redes más grandes, particularmente en problemas de reconocimiento visual y de imagen, que se conocieron como " aprendizaje profundo ".

Ciresan y sus colegas (2010) demostraron que a pesar del problema del gradiente de desaparición , las GPU hacen que la propagación hacia atrás sea factible para las redes neuronales de retroalimentación de muchas capas. Entre 2009 y 2012, las ANN comenzaron a ganar premios en concursos de ANN, acercándose al rendimiento a nivel humano en diversas tareas, inicialmente en reconocimiento de patrones y aprendizaje automático . Por ejemplo, la memoria a corto plazo (LSTM) bidireccional y multidimensional de Graves et al. ganó tres concursos en reconocimiento de escritura conectada en 2009 sin ningún conocimiento previo sobre los tres idiomas a aprender.

Ciresan y sus colegas construyeron los primeros reconocedores de patrones para lograr un desempeño humano-competitivo / sobrehumano en puntos de referencia como el reconocimiento de señales de tráfico (IJCNN 2012).

Modelos

Neurona y axón mielinizado, con flujo de señal desde las entradas en las dendritas hasta las salidas en los terminales del axón

Las ANN comenzaron como un intento de explotar la arquitectura del cerebro humano para realizar tareas con las que los algoritmos convencionales tuvieron poco éxito. Pronto se reorientaron hacia la mejora de los resultados empíricos, abandonando en su mayoría los intentos de permanecer fieles a sus precursores biológicos. Las neuronas están conectadas entre sí en varios patrones, para permitir que la salida de algunas neuronas se convierta en la entrada de otras. La red forma una dirigida , grafo ponderado .

Una red neuronal artificial consta de una colección de neuronas simuladas. Cada neurona es un nodo que está conectado a otros nodos a través de enlaces que corresponden a conexiones biológicas axón-sinapsis-dendrita. Cada enlace tiene un peso, que determina la fuerza de la influencia de un nodo sobre otro.

Componentes de las ANN

Neuronas

Las RNA están compuestas por neuronas artificiales que se derivan conceptualmente de neuronas biológicas . Cada neurona artificial tiene entradas y produce una única salida que se puede enviar a muchas otras neuronas. Las entradas pueden ser los valores de características de una muestra de datos externos, como imágenes o documentos, o pueden ser las salidas de otras neuronas. Las salidas de las neuronas de salida final de la red neuronal realizan la tarea, como reconocer un objeto en una imagen.

Para encontrar la salida de la neurona, primero tomamos la suma ponderada de todas las entradas, ponderada por los pesos de las conexiones de las entradas a la neurona. Agregamos un término de sesgo a esta suma. Esta suma ponderada a veces se denomina activación . Esta suma ponderada luego se pasa a través de una función de activación (generalmente no lineal) para producir la salida. Las entradas iniciales son datos externos, como imágenes y documentos. Los resultados finales cumplen la tarea, como reconocer un objeto en una imagen.

Conexiones y pesos

La red consta de conexiones, cada conexión proporciona la salida de una neurona como entrada a otra neurona. A cada conexión se le asigna un peso que representa su importancia relativa. Una neurona determinada puede tener múltiples conexiones de entrada y salida.

Función de propagación

La función de propagación calcula la entrada a una neurona a partir de las salidas de sus neuronas predecesoras y sus conexiones como una suma ponderada. Se puede agregar un término de sesgo al resultado de la propagación.

Organización

Las neuronas suelen estar organizadas en varias capas, especialmente en el aprendizaje profundo . Las neuronas de una capa se conectan solo a las neuronas de las capas inmediatamente anterior e inmediata. La capa que recibe datos externos es la capa de entrada . La capa que produce el resultado final es la capa de salida . Entre ellos hay cero o más capas ocultas . También se utilizan redes de una sola capa y sin capas. Entre dos capas, son posibles múltiples patrones de conexión. Pueden estar completamente conectados , con cada neurona en una capa conectándose a cada neurona en la siguiente capa. Pueden estar agrupados , donde un grupo de neuronas en una capa se conecta a una sola neurona en la siguiente capa, reduciendo así el número de neuronas en esa capa. Las neuronas con solo tales conexiones forman un gráfico acíclico dirigido y se conocen como redes de alimentación . Alternativamente, las redes que permiten conexiones entre neuronas en la misma capa o en capas anteriores se conocen como redes recurrentes .

Hiperparámetro

Un hiperparámetro es un parámetro constante cuyo valor se establece antes de que comience el proceso de aprendizaje. Los valores de los parámetros se obtienen mediante el aprendizaje. Los ejemplos de hiperparámetros incluyen la tasa de aprendizaje , la cantidad de capas ocultas y el tamaño del lote. Los valores de algunos hiperparámetros pueden depender de los de otros hiperparámetros. Por ejemplo, el tamaño de algunas capas puede depender del número total de capas.

Aprendiendo

El aprendizaje es la adaptación de la red para manejar mejor una tarea al considerar las observaciones de muestra. El aprendizaje implica ajustar los pesos (y los umbrales opcionales) de la red para mejorar la precisión del resultado. Esto se hace minimizando los errores observados. El aprendizaje es completo cuando el examen de observaciones adicionales no reduce de manera útil la tasa de error. Incluso después del aprendizaje, la tasa de error normalmente no llega a 0. Si después del aprendizaje, la tasa de error es demasiado alta, la red normalmente debe rediseñarse. En la práctica, esto se hace definiendo una función de costo que se evalúa periódicamente durante el aprendizaje. Mientras su producción continúe disminuyendo, el aprendizaje continúa. El costo se define frecuentemente como una estadística cuyo valor solo puede ser aproximado. Las salidas son en realidad números, por lo que cuando el error es bajo, la diferencia entre la salida (casi con certeza un gato) y la respuesta correcta (gato) es pequeña. El aprendizaje intenta reducir el total de las diferencias entre las observaciones. La mayoría de los modelos de aprendizaje pueden verse como una aplicación sencilla de la teoría de la optimización y la estimación estadística .

Tasa de aprendizaje

La tasa de aprendizaje define el tamaño de los pasos correctivos que toma el modelo para ajustar los errores en cada observación. Una tasa de aprendizaje alta acorta el tiempo de entrenamiento, pero con menor precisión final, mientras que una tasa de aprendizaje más baja lleva más tiempo, pero con el potencial de una mayor precisión. Las optimizaciones como Quickprop están destinadas principalmente a acelerar la minimización de errores, mientras que otras mejoras intentan principalmente aumentar la confiabilidad. Para evitar oscilaciones dentro de la red, como pesos de conexión alternos, y para mejorar la tasa de convergencia, los refinamientos utilizan una tasa de aprendizaje adaptativa que aumenta o disminuye según corresponda. El concepto de impulso permite ponderar el equilibrio entre la pendiente y el cambio anterior de modo que el ajuste del peso dependa en cierto grado del cambio anterior. Un impulso cercano a 0 enfatiza el gradiente, mientras que un valor cercano a 1 enfatiza el último cambio.

Función de costo

Si bien es posible definir una función de costo ad hoc , con frecuencia la elección está determinada por las propiedades deseables de la función (como la convexidad ) o porque surge del modelo (por ejemplo, en un modelo probabilístico, la probabilidad posterior del modelo se puede usar como una inversa costo).

Retropropagación

La retropropagación es un método que se utiliza para ajustar los pesos de conexión para compensar cada error encontrado durante el aprendizaje. La cantidad de error se divide efectivamente entre las conexiones. Técnicamente, backprop calcula el gradiente (la derivada) de la función de costo asociada con un estado dado con respecto a los pesos. Las actualizaciones de peso se pueden realizar mediante descenso de gradiente estocástico u otros métodos, como máquinas de aprendizaje extremo , redes "sin apoyo", entrenamiento sin retroceso, redes "ingrávidas" y redes neuronales no conexionistas .

Paradigmas de aprendizaje

Los tres paradigmas principales de aprendizaje son el aprendizaje supervisado , el aprendizaje no supervisado y el aprendizaje reforzado . Cada uno corresponde a una tarea de aprendizaje particular.

Aprendizaje supervisado

El aprendizaje supervisado utiliza un conjunto de entradas y salidas deseadas emparejadas. La tarea de aprendizaje es producir el resultado deseado para cada entrada. En este caso, la función de costo está relacionada con la eliminación de deducciones incorrectas. Un costo comúnmente utilizado es el error cuadrático medio , que intenta minimizar el error cuadrático medio entre la salida de la red y la salida deseada. Las tareas adecuadas para el aprendizaje supervisado son el reconocimiento de patrones (también conocido como clasificación) y la regresión (también conocido como aproximación de funciones). El aprendizaje supervisado también es aplicable a datos secuenciales (por ejemplo, para escritura a mano, reconocimiento de voz y gestos ). Esto se puede considerar como un aprendizaje con un "maestro", en forma de una función que proporciona una retroalimentación continua sobre la calidad de las soluciones obtenidas hasta el momento.

Aprendizaje sin supervisión

En el aprendizaje no supervisado , los datos de entrada se proporcionan junto con la función de costo, alguna función de los datos y la salida de la red. La función de costo depende de la tarea (el dominio del modelo) y cualquier supuesto a priori (las propiedades implícitas del modelo, sus parámetros y las variables observadas). Como ejemplo trivial, considere el modelo donde es una constante y el costo . Minimizar este costo produce un valor que es igual a la media de los datos. La función de costo puede ser mucho más complicada. Su forma depende de la aplicación: por ejemplo, en la compresión podría estar relacionado con la información mutua entre y , mientras que en el modelado estadístico, podría estar relacionado con la probabilidad posterior del modelo dados los datos (tenga en cuenta que en ambos ejemplos esas cantidades se maximizarían en lugar de minimizar). Las tareas que caen dentro del paradigma del aprendizaje no supervisado son, en general, problemas de estimación ; las aplicaciones incluyen agrupamiento , estimación de distribuciones estadísticas , compresión y filtrado .

Aprendizaje reforzado

En aplicaciones como los videojuegos, un actor realiza una serie de acciones y recibe una respuesta generalmente impredecible del entorno después de cada una. El objetivo es ganar el juego, es decir, generar las respuestas más positivas (de menor costo). En el aprendizaje por refuerzo , el objetivo es ponderar la red (diseñar una política) para realizar acciones que minimicen el costo a largo plazo (acumulado esperado). En cada momento el agente realiza una acción y el entorno genera una observación y un costo instantáneo, según unas reglas (generalmente desconocidas). Las reglas y el costo a largo plazo generalmente solo se pueden estimar. En cualquier momento, el agente decide si explorar nuevas acciones para descubrir sus costos o aprovechar el aprendizaje previo para proceder con mayor rapidez.

Formalmente, el entorno se modela como un proceso de decisión de Markov (MDP) con estados y acciones . Debido a que no se conocen las transiciones de estado, en su lugar se utilizan distribuciones de probabilidad: la distribución de costos instantánea , la distribución de observación y la distribución de transición , mientras que una política se define como la distribución condicional sobre acciones dadas las observaciones. En conjunto, los dos definen una cadena de Markov (MC). El objetivo es descubrir el MC de menor coste.

Las ANN sirven como componente de aprendizaje en tales aplicaciones. La programación dinámica junto con las ANN (que proporcionan programación neurodinámica) se ha aplicado a problemas como los relacionados con el enrutamiento de vehículos , los videojuegos, la gestión de recursos naturales y la medicina debido a la capacidad de las ANN para mitigar las pérdidas de precisión incluso cuando se reduce la densidad de la cuadrícula de discretización para aproximaciones numéricas la solución de problemas de control. Las tareas que caen dentro del paradigma del aprendizaje por refuerzo son los problemas de control, los juegos y otras tareas secuenciales de toma de decisiones.

Auto aprendizaje

El autoaprendizaje en redes neuronales se introdujo en 1982 junto con una red neuronal capaz de autoaprendizaje denominada Crossbar Adaptive Array (CAA). Es un sistema con solo una entrada, situación s, y solo una salida, acción (o comportamiento) a. No tiene aportes de asesoramiento externo ni aportes de refuerzo externo del entorno. El CAA calcula, de forma transversal, tanto las decisiones sobre acciones como las emociones (sentimientos) sobre situaciones encontradas. El sistema está impulsado por la interacción entre la cognición y la emoción. Dada la matriz de memoria, W = || w (a, s) ||, el algoritmo de autoaprendizaje de barra transversal en cada iteración realiza el siguiente cálculo:

  In situation s perform action a;
  Receive consequence situation s';
  Compute emotion of being in consequence situation v(s');
  Update crossbar memory w'(a,s) = w(a,s) + v(s').

El valor retropropagado (refuerzo secundario) es la emoción hacia la situación de consecuencia. El CAA existe en dos ambientes, uno es el ambiente conductual donde se comporta, y el otro es el ambiente genético, donde de él inicialmente y solo una vez recibe emociones iniciales a punto de encontrarse situaciones en el ambiente conductual. Habiendo recibido el vector del genoma (vector de especies) del entorno genético, el CAA aprenderá un comportamiento de búsqueda de objetivos, en el entorno de comportamiento que contiene situaciones deseables e indeseables.

Neuroevolución

La neuroevolución puede crear topologías y pesos de redes neuronales utilizando computación evolutiva . Es competitivo con los enfoques de descenso de gradientes sofisticados. Una ventaja de la neuroevolución es que puede ser menos propenso a quedar atrapado en "callejones sin salida".

Otro

En un marco bayesiano , se elige una distribución sobre el conjunto de modelos permitidos para minimizar el costo. Los métodos evolutivos , la programación de la expresión génica , el recocido simulado , la maximización de expectativas , los métodos no paramétricos y la optimización del enjambre de partículas son otros algoritmos de aprendizaje. La recursividad convergente es un algoritmo de aprendizaje para las redes neuronales del controlador de articulación del modelo cerebeloso (CMAC).

Modos

Hay dos modos de aprendizaje disponibles: estocástico y por lotes. En el aprendizaje estocástico, cada entrada crea un ajuste de peso. En el aprendizaje por lotes, los pesos se ajustan en función de un lote de entradas, acumulando errores sobre el lote. El aprendizaje estocástico introduce "ruido" en el proceso, utilizando el gradiente local calculado a partir de un punto de datos; esto reduce la posibilidad de que la red se atasque en los mínimos locales. Sin embargo, el aprendizaje por lotes generalmente produce un descenso más rápido y estable hasta un mínimo local, ya que cada actualización se realiza en la dirección del error promedio del lote. Un compromiso común es utilizar "mini lotes", lotes pequeños con muestras en cada lote seleccionadas estocásticamente de todo el conjunto de datos.

Tipos

Las RNA se han convertido en una amplia familia de técnicas que han avanzado el estado del arte en múltiples dominios. Los tipos más simples tienen uno o más componentes estáticos, incluido el número de unidades, el número de capas, los pesos unitarios y la topología . Los tipos dinámicos permiten que uno o más de estos evolucionen a través del aprendizaje. Estos últimos son mucho más complicados, pero pueden acortar los períodos de aprendizaje y producir mejores resultados. Algunos tipos permiten / requieren que el operador "supervise" el aprendizaje, mientras que otros operan de forma independiente. Algunos tipos operan puramente en hardware, mientras que otros son puramente software y se ejecutan en computadoras de propósito general.

Algunos de los principales avances incluyen: redes neuronales convolucionales que han demostrado ser particularmente exitosas en el procesamiento de datos visuales y otros datos bidimensionales; la memoria a corto plazo evita el problema del gradiente que desaparece y puede manejar señales que tienen una combinación de componentes de baja y alta frecuencia que ayudan al reconocimiento de voz de vocabulario extenso, síntesis de texto a voz y cabezas parlantes fotorrealistas; Redes competitivas como las redes generativas de confrontación en las que múltiples redes (de estructura variable) compiten entre sí, en tareas como ganar un juego o engañar al oponente sobre la autenticidad de una entrada.

Diseño de red

La búsqueda de arquitectura neuronal (NAS) utiliza el aprendizaje automático para automatizar el diseño de ANN. Varios enfoques de NAS han diseñado redes que se comparan bien con los sistemas diseñados a mano. El algoritmo de búsqueda básico es proponer un modelo candidato, evaluarlo contra un conjunto de datos y utilizar los resultados como retroalimentación para enseñar a la red NAS. Los sistemas disponibles incluyen AutoML y AutoKeras.

Los problemas de diseño incluyen decidir el número, el tipo y la conectividad de las capas de red, así como el tamaño de cada una y el tipo de conexión (completa, agrupada, ...).

Los hiperparámetros también deben definirse como parte del diseño (no se aprenden), gobernando asuntos como cuántas neuronas hay en cada capa, tasa de aprendizaje, paso, zancada, profundidad, campo receptivo y relleno (para CNN), etc.

Usar

El uso de redes neuronales artificiales requiere una comprensión de sus características.

  • Elección del modelo: depende de la representación de los datos y la aplicación. Los modelos demasiado complejos son de aprendizaje lento.
  • Algoritmo de aprendizaje: existen numerosas compensaciones entre los algoritmos de aprendizaje. Casi cualquier algoritmo funcionará bien con los hiperparámetros correctos para el entrenamiento en un conjunto de datos en particular. Sin embargo, seleccionar y ajustar un algoritmo para el entrenamiento con datos invisibles requiere una experimentación significativa.
  • Robustez: si el modelo, la función de coste y el algoritmo de aprendizaje se seleccionan de forma adecuada, la RNA resultante puede volverse robusta.

Las capacidades de ANN se incluyen en las siguientes categorías generales:

Aplicaciones

Debido a su capacidad para reproducir y modelar procesos no lineales, las redes neuronales artificiales han encontrado aplicaciones en muchas disciplinas. Las áreas de aplicación incluyen identificación y control de sistemas (control de vehículos, predicción de trayectorias, control de procesos , gestión de recursos naturales ), química cuántica , juego general , reconocimiento de patrones (sistemas de radar, identificación de rostros , clasificación de señales, reconstrucción 3D , reconocimiento de objetos y más), reconocimiento de secuencias (reconocimiento de gestos, voz, texto escrito a mano e impreso), diagnóstico médico , finanzas (por ejemplo , sistemas de comercio automatizados ), extracción de datos , visualización, traducción automática , filtrado de redes sociales y filtrado de correo no deseado . Las RNA se han utilizado para diagnosticar varios tipos de cánceres y para distinguir líneas celulares de cáncer altamente invasivas de líneas menos invasivas utilizando solo información sobre la forma celular.

Las ANN se han utilizado para acelerar el análisis de confiabilidad de las infraestructuras sujetas a desastres naturales y para predecir asentamientos de cimientos. Las ANN también se han utilizado para construir modelos de caja negra en geociencias : hidrología , modelado oceánico e ingeniería costera , y geomorfología . Las ANN se han empleado en ciberseguridad , con el objetivo de discriminar entre actividades legítimas y maliciosas. Por ejemplo, el aprendizaje automático se ha utilizado para clasificar el malware de Android, para identificar los dominios que pertenecen a los actores de amenazas y para detectar las URL que representan un riesgo para la seguridad. Se están realizando investigaciones sobre sistemas ANN diseñados para pruebas de penetración, para detectar botnets, fraudes con tarjetas de crédito e intrusiones en la red.

Las ANN se han propuesto como una herramienta para resolver ecuaciones diferenciales parciales en física y simular las propiedades de sistemas cuánticos abiertos de muchos cuerpos . En la investigación del cerebro, las ANN han estudiado el comportamiento a corto plazo de neuronas individuales , la dinámica de los circuitos neuronales surge de las interacciones entre neuronas individuales y cómo el comportamiento puede surgir de módulos neuronales abstractos que representan subsistemas completos. Los estudios consideraron la plasticidad a corto y largo plazo de los sistemas neuronales y su relación con el aprendizaje y la memoria desde la neurona individual hasta el nivel del sistema.

Propiedades teóricas

Potencia de cálculo

El perceptrón multicapa es un aproximador de función universal , como lo demuestra el teorema de aproximación universal . Sin embargo, la prueba no es constructiva con respecto al número de neuronas necesarias, la topología de la red, los pesos y los parámetros de aprendizaje.

Una arquitectura recurrente específica con pesos racionales valorados (a diferencia de los pesos valorados en números reales de precisión total ) tiene el poder de una máquina de Turing universal , que utiliza un número finito de neuronas y conexiones lineales estándar. Además, el uso de valores irracionales para los pesos da como resultado una máquina con un poder super-Turing .

Capacidad

La propiedad de "capacidad" de un modelo corresponde a su capacidad para modelar cualquier función dada. Está relacionado con la cantidad de información que se puede almacenar en la red y con la noción de complejidad. La comunidad conoce dos nociones de capacidad. La capacidad de información y la dimensión VC. La capacidad de información de un perceptrón se analiza intensamente en el libro de Sir David MacKay, que resume el trabajo de Thomas Cover. La capacidad de una red de neuronas estándar (no convolucionales) puede derivarse de cuatro reglas que se derivan de la comprensión de una neurona como elemento eléctrico . La capacidad de información captura las funciones modelables por la red dado cualquier dato como entrada. La segunda noción es la dimensión VC . VC Dimension utiliza los principios de la teoría de la medida y encuentra la capacidad máxima en las mejores circunstancias posibles. Es decir, dados los datos de entrada en una forma específica. Como se indica en, la dimensión VC para entradas arbitrarias es la mitad de la capacidad de información de un perceptrón. La dimensión VC para puntos arbitrarios a veces se denomina capacidad de memoria.

Convergencia

Es posible que los modelos no converjan consistentemente en una única solución, en primer lugar porque pueden existir mínimos locales, según la función de costo y el modelo. En segundo lugar, es posible que el método de optimización utilizado no garantice la convergencia cuando comienza lejos de cualquier mínimo local. En tercer lugar, para datos o parámetros suficientemente grandes, algunos métodos se vuelven imprácticos.

El comportamiento de convergencia de ciertos tipos de arquitecturas ANN se comprende mejor que otras. Cuando el ancho de la red se acerca al infinito, la RNA está bien descrita por su expansión de Taylor de primer orden a lo largo del entrenamiento y, por lo tanto, hereda el comportamiento de convergencia de los modelos afines . Otro ejemplo es cuando los parámetros son pequeños, se observa que las RNA a menudo se ajustan a las funciones objetivo de frecuencias bajas a altas. Este comportamiento se conoce como sesgo espectral, o principio de frecuencia, de las redes neuronales. Este fenómeno es opuesto al comportamiento de algunos esquemas numéricos iterativos bien estudiados, como el método de Jacobi . Se ha observado que las redes neuronales más profundas están más sesgadas hacia funciones de baja frecuencia.

Generalización y estadísticas

Las aplicaciones cuyo objetivo es crear un sistema que generalice bien a ejemplos invisibles, se enfrentan a la posibilidad de sobreentrenamiento. Esto surge en sistemas complicados o sobreespecificados cuando la capacidad de la red excede significativamente los parámetros libres necesarios. Dos enfoques abordan el sobreentrenamiento. La primera es utilizar validación cruzada y técnicas similares para verificar la presencia de sobreentrenamiento y seleccionar hiperparámetros para minimizar el error de generalización.

El segundo es utilizar alguna forma de regularización . Este concepto surge en un marco probabilístico (bayesiano), donde la regularización se puede realizar seleccionando una probabilidad previa mayor sobre modelos más simples; pero también en la teoría del aprendizaje estadístico, donde el objetivo es minimizar más de dos cantidades: el 'riesgo empírico' y el 'riesgo estructural', que corresponde aproximadamente al error sobre el conjunto de entrenamiento y el error predicho en los datos invisibles debido al sobreajuste.

Análisis de confianza de una red neuronal

Las redes neuronales supervisadas que usan una función de costo de error cuadrático medio (MSE) pueden usar métodos estadísticos formales para determinar la confianza del modelo entrenado. El MSE en un conjunto de validación se puede utilizar como una estimación de la varianza. Este valor se puede utilizar para calcular el intervalo de confianza de la salida de la red, asumiendo una distribución normal . Un análisis de confianza realizado de esta manera es estadísticamente válido siempre que la distribución de probabilidad de salida se mantenga igual y la red no se modifique.

Al asignar una función de activación softmax , una generalización de la función logística , en la capa de salida de la red neuronal (o un componente softmax en una red basada en componentes) para variables objetivo categóricas, las salidas se pueden interpretar como probabilidades posteriores. Esto es útil en la clasificación, ya que proporciona una medida de certeza sobre las clasificaciones.

La función de activación de softmax es:


Crítica

Capacitación

Una crítica común a las redes neuronales, particularmente en robótica, es que requieren demasiado entrenamiento para operar en el mundo real. Las posibles soluciones incluyen la reproducción aleatoria de ejemplos de entrenamiento, mediante el uso de un algoritmo de optimización numérica que no toma pasos demasiado grandes al cambiar las conexiones de red siguiendo un ejemplo, agrupando ejemplos en los llamados mini-lotes y / o introduciendo un algoritmo recursivo de mínimos cuadrados para CMAC. .

Teoría

Una objeción fundamental es que las RNA no reflejan suficientemente la función neuronal. La retropropagación es un paso crítico, aunque no existe tal mecanismo en las redes neuronales biológicas. Se desconoce cómo codifican la información las neuronas reales. Las neuronas sensoriales disparan potenciales de acción con mayor frecuencia con la activación del sensor y las células musculares tiran con más fuerza cuando sus neuronas motoras asociadas reciben potenciales de acción con mayor frecuencia. Aparte del caso de la transmisión de información desde una neurona sensora a una neurona motora, no se conoce casi nada de los principios de cómo las redes neuronales biológicas manejan la información.

Un reclamo central de las ANN es que incorporan principios generales nuevos y poderosos para el procesamiento de información. Estos principios están mal definidos. A menudo se afirma que surgen de la propia red. Esto permite que la asociación estadística simple (la función básica de las redes neuronales artificiales) se describa como aprendizaje o reconocimiento. Alexander Dewdney comentó que, como resultado, las redes neuronales artificiales tienen una "cualidad de algo por nada, una que imparte un aura peculiar de pereza y una clara falta de curiosidad sobre lo buenos que son estos sistemas informáticos. Ninguna mano humana (o mente) interviene; las soluciones se encuentran como por arte de magia; y nadie, al parecer, ha aprendido nada ". Una respuesta a Dewdney es que las redes neuronales manejan muchas tareas complejas y diversas, que van desde volar aviones de forma autónoma hasta detectar fraudes con tarjetas de crédito y dominar el juego de Go .

El escritor de tecnología Roger Bridgman comentó:

Las redes neuronales, por ejemplo, están en el banquillo no solo porque han sido promocionadas hasta el cielo (¿qué no?), Sino también porque podrías crear una red exitosa sin entender cómo funcionaba: el montón de números que capturan su el comportamiento sería con toda probabilidad "una tabla opaca, ilegible ... sin valor como recurso científico".

A pesar de su enfática declaración de que la ciencia no es tecnología, Dewdney parece aquí criticar las redes neuronales como mala ciencia cuando la mayoría de los que las idean están tratando de ser buenos ingenieros. Vale la pena tener una tabla ilegible que pueda leer una máquina útil.

Los cerebros biológicos utilizan circuitos superficiales y profundos según lo informado por la anatomía del cerebro, mostrando una amplia variedad de invariancia. Weng argumentó que el cerebro se auto-conecta en gran medida de acuerdo con las estadísticas de señales y, por lo tanto, una cascada en serie no puede detectar todas las dependencias estadísticas importantes.

Hardware

Las redes neuronales grandes y eficaces requieren considerables recursos informáticos. Si bien el cerebro tiene hardware adaptado a la tarea de procesar señales a través de un gráfico de neuronas, simular incluso una neurona simplificada en la arquitectura de von Neumann puede consumir grandes cantidades de memoria y almacenamiento. Además, el diseñador a menudo necesita transmitir señales a través de muchas de estas conexiones y sus neuronas asociadas, lo que requiere una enorme potencia y tiempo de la CPU .

Schmidhuber señaló que el resurgimiento de las redes neuronales en el siglo XXI se puede atribuir en gran medida a los avances en el hardware: de 1991 a 2015, la potencia informática, especialmente la proporcionada por las GPGPU (en las GPU ), se ha multiplicado por un millón, lo que hace que la algoritmo de retropropagación estándar factible para redes de entrenamiento que son varias capas más profundas que antes. El uso de aceleradores como FPGA y GPU puede reducir los tiempos de entrenamiento de meses a días.

La ingeniería neuromórfica o una red neuronal física aborda directamente la dificultad del hardware mediante la construcción de chips que no son de von Neumann para implementar directamente redes neuronales en los circuitos. Otro tipo de chip optimizado para el procesamiento de redes neuronales se llama Unidad de procesamiento de tensor , o TPU.

Contraejemplos prácticos

Analizar lo aprendido por una ANN es mucho más fácil que analizar lo aprendido por una red neuronal biológica. Además, los investigadores involucrados en la exploración de algoritmos de aprendizaje para redes neuronales están descubriendo gradualmente principios generales que permiten que una máquina de aprendizaje tenga éxito. Por ejemplo, aprendizaje local versus no local y arquitectura superficial versus profunda.

Enfoques híbridos

Los defensores de los modelos híbridos (que combinan redes neuronales y enfoques simbólicos) afirman que tal mezcla puede capturar mejor los mecanismos de la mente humana.

Galería

Ver también

Notas

Referencias

Bibliografía

enlaces externos