Sistemas neuronales. Introducción a las redes neuronales artificiales. ¿Cómo funciona una red neuronal?

Los temas de la inteligencia artificial y las redes neuronales son cada vez más populares que nunca. Muchos usuarios recurren cada vez más a nosotros con preguntas sobre cómo funcionan las redes neuronales, qué son y cuál es el principio de su funcionamiento.

Estas preguntas, además de su popularidad, también tienen una complejidad considerable, ya que los procesos son complejos algoritmos de aprendizaje automático diseñados para diversos fines, desde analizar cambios hasta modelar los riesgos asociados con determinadas acciones.

¿Qué son las redes neuronales y sus tipos?

La primera pregunta que surge a los interesados ​​es, ¿qué es una red neuronal? En la definición clásica, se trata de una determinada secuencia de neuronas que están interconectadas por sinapsis. Las redes neuronales son un modelo simplificado de análogos biológicos.

Un programa que tiene una estructura de red neuronal permite a la máquina analizar datos de entrada y recordar el resultado obtenido de determinadas fuentes. Posteriormente, este enfoque permite recuperar de la memoria el resultado correspondiente al conjunto de datos actual, si ya estaba disponible en la experiencia de los ciclos de red.

Mucha gente percibe una red neuronal como un análogo del cerebro humano. Por un lado, este juicio puede considerarse cercano a la verdad, pero, por otro lado, el cerebro humano es un mecanismo demasiado complejo para que sea posible recrearlo con la ayuda de una máquina, incluso en una fracción de segundo. por ciento. Una red neuronal es, ante todo, un programa basado en el principio del cerebro, pero de ningún modo su análogo.

Una red neuronal es un conjunto de neuronas, cada una de las cuales recibe información, la procesa y la transmite a otra neurona. Cada neurona procesa la señal exactamente de la misma manera.

Entonces, ¿cómo se obtienen resultados diferentes? Se trata de las sinapsis que conectan las neuronas entre sí. Una neurona puede tener una gran cantidad de sinapsis que fortalecen o debilitan la señal y tienen la capacidad de cambiar sus características con el tiempo.

Son los parámetros de sinapsis correctamente seleccionados los que permiten obtener el resultado correcto de la transformación de los datos de entrada en la salida.

Habiendo definido en términos generales qué es una red neuronal, podemos identificar los principales tipos de su clasificación. Antes de proceder a la clasificación conviene hacer una aclaración. Cada red tiene una primera capa de neuronas, llamada capa de entrada.

No realiza ningún cálculo ni transformación; su tarea es sólo una: recibir y distribuir señales de entrada a otras neuronas. Ésta es la única capa común a todos los tipos de redes neuronales; su estructura adicional es el criterio para la división principal.

  • Red neuronal de una sola capa. Se trata de una estructura para la interacción de neuronas, en la que, después de que los datos de entrada ingresan a la primera capa de entrada, el resultado final se transfiere inmediatamente a la capa de salida. En este caso no se considera la primera capa de entrada, ya que no realiza más acciones que la recepción y distribución, esto ya se ha mencionado anteriormente. Y la segunda capa realiza todos los cálculos y procesamientos necesarios e inmediatamente produce el resultado final. Las neuronas de entrada se combinan con la capa principal mediante sinapsis que tienen diferentes coeficientes de ponderación, lo que garantiza la calidad de las conexiones.
  • Red neuronal multicapa. Como se desprende de la definición, este tipo de red neuronal, además de las capas de entrada y salida, también tiene capas intermedias. Su número depende de la complejidad de la propia red. Se parece más a la estructura de una red neuronal biológica. Este tipo de redes se desarrollaron bastante recientemente; antes de eso, todos los procesos se implementaban mediante redes de una sola capa. En consecuencia, esta solución tiene muchas más posibilidades que su antecesora. En el proceso de procesamiento de información, cada capa intermedia representa una etapa intermedia de procesamiento y distribución de información.

Dependiendo de la dirección de distribución de la información entre las sinapsis de una neurona a otra, las redes también se pueden clasificar en dos categorías.

  • Redes de propagación directa o unidireccionales, es decir, una estructura en la que la señal se mueve estrictamente desde la capa de entrada a la capa de salida. El movimiento de la señal en la dirección opuesta es imposible. Estos desarrollos están bastante extendidos y actualmente resuelven con éxito problemas como el reconocimiento, las predicciones o la agrupación.
  • Redes con retroalimentación o recurrentes. Estas redes permiten que la señal viaje no sólo hacia adelante, sino también hacia atrás. ¿Qué aporta esto? En tales redes, el resultado de la salida se puede devolver a la entrada en base a esto, la salida de la neurona está determinada por los pesos y las señales de entrada, y se complementa con las salidas anteriores, que nuevamente se devuelven a la entrada. Estas redes se caracterizan por la función de la memoria a corto plazo, a partir de la cual se restauran y complementan las señales durante el procesamiento.

Estas no son las únicas opciones para clasificar las redes.

Se pueden dividir en homogéneas e híbridas según los tipos de neuronas que componen la red. Y también heteroasociativo o autoasociativo, según el método de formación en red, con o sin profesor. También puedes clasificar las redes según su finalidad.

¿Dónde se utilizan las redes neuronales?

Las redes neuronales se utilizan para resolver una variedad de problemas. Si consideramos las tareas por su grado de complejidad, entonces un programa de computadora normal es adecuado para resolver los problemas más simples, más
Para problemas complejos que requieren pronósticos simples o solución aproximada de ecuaciones, se utilizan programas que utilizan métodos estadísticos.

Pero las tareas de un nivel aún más complejo requieren un enfoque completamente diferente. Esto se aplica en particular al reconocimiento de patrones, el reconocimiento de voz o la predicción compleja. En la cabeza de una persona, tales procesos ocurren de manera inconsciente, es decir, al reconocer y recordar imágenes, una persona no es consciente de cómo ocurre este proceso y, en consecuencia, no puede controlarlo.

Son precisamente estos problemas los que ayudan a resolver las redes neuronales, es decir, se crean para realizar procesos cuyos algoritmos se desconocen.

Así, las redes neuronales se utilizan ampliamente en las siguientes áreas:

  • reconocimiento, y esta dirección es actualmente la más amplia;
  • predecir el siguiente paso, esta característica es aplicable en el comercio y los mercados de valores;
  • clasificación de los datos de entrada por parámetros; esta función la realizan robots de crédito, que pueden tomar una decisión sobre la aprobación de un préstamo a una persona, basándose en un conjunto de datos de entrada de diferentes parámetros.

Las capacidades de las redes neuronales las hacen muy populares. Se les pueden enseñar muchas cosas, como jugar, reconocer una determinada voz, etc. Partiendo del hecho de que las redes artificiales se construyen según el principio de las redes biológicas, se les pueden enseñar todos los procesos que realiza una persona de forma inconsciente.

¿Qué es una neurona y una sinapsis?

Entonces, ¿qué es una neurona en términos de redes neuronales artificiales? Este concepto se refiere a una unidad que realiza cálculos. Recibe información de la capa de entrada de la red, realiza cálculos simples con ella y la envía a la siguiente neurona.

La red contiene tres tipos de neuronas: de entrada, ocultas y de salida. Además, si la red es de una sola capa, entonces no contiene neuronas ocultas. Además, existen una variedad de unidades llamadas neuronas de desplazamiento y neuronas de contexto.

Cada neurona tiene dos tipos de datos: entrada y salida. En este caso, los datos de entrada de la primera capa son iguales a los datos de salida. En otros casos, la información total de las capas anteriores ingresa a la entrada de la neurona, luego pasa por el proceso de normalización, es decir, todos los valores que quedan fuera del rango deseado son transformados por la función de activación.

Como se mencionó anteriormente, una sinapsis es una conexión entre neuronas, cada una de las cuales tiene su propio grado de peso. Es gracias a esta característica que la información de entrada cambia durante el proceso de transmisión. Durante el procesamiento predominará la información transmitida por la sinapsis con gran peso.

Resulta que el resultado no está influenciado por las neuronas, sino por las sinapsis que dan un cierto conjunto de pesos a los datos de entrada, ya que las propias neuronas realizan exactamente los mismos cálculos cada vez.

En este caso, los pesos se establecen en orden aleatorio.

Esquema de funcionamiento de una red neuronal.

Para imaginar el principio de funcionamiento de una red neuronal no se requieren habilidades especiales. La capa de entrada de las neuronas recibe cierta información. Se transmite a través de sinapsis a la siguiente capa, donde cada sinapsis tiene su propio coeficiente de peso y cada neurona siguiente puede tener varias sinapsis entrantes.

Como resultado, la información recibida por la siguiente neurona es la suma de todos los datos, cada uno multiplicado por su propio coeficiente de peso. El valor resultante se sustituye en la función de activación y se obtiene la información de salida, que se transmite más hasta llegar a la salida final. El primer lanzamiento de la red no da los resultados correctos, ya que la red aún no ha sido entrenada.

La función de activación se utiliza para normalizar los datos de entrada. Existen muchas funciones de este tipo, pero hay varias de las principales que son las más utilizadas. Su principal diferencia es el rango de valores en el que operan.

  • La función lineal f(x) = x, la más simple de todas las posibles, se utiliza únicamente para probar la red neuronal creada o transmitir datos en su forma original.
  • La sigmoide se considera la función de activación más común y tiene la forma f(x) = 1 / 1+e-×; Además, el rango de sus valores es de 0 a 1. También se le llama función logística.
  • Para cubrir valores negativos se utiliza una tangente hiperbólica. F(x) = e²× - 1 / e²× + 1: esta es la forma de esta función y el rango que tiene es de -1 a 1. Si la red neuronal no permite el uso de valores negativos, entonces no debe usarse.

Para poder darle a la red los datos con los que operará, se necesitan conjuntos de entrenamiento.

La integración es un medidor que aumenta con cada serie de entrenamiento.

La época es un indicador del entrenamiento de una red neuronal; este indicador aumenta cada vez que la red pasa por un ciclo de un conjunto completo de conjuntos de entrenamiento.

En consecuencia, para entrenar la red correctamente, es necesario realizar conjuntos, aumentando constantemente el indicador de época.

Los errores se identificarán durante la formación. Esta es la diferencia porcentual entre el resultado obtenido y el deseado. Este indicador debería disminuir a medida que aumenta el indicador de época; de lo contrario, habrá un error del desarrollador en alguna parte.

¿Qué es una neurona de sesgo y para qué sirve?

En las redes neuronales existe otro tipo de neurona: la neurona de desplazamiento. Se diferencia del tipo principal de neuronas en que su entrada y salida son iguales en cualquier caso. Además, estas neuronas no tienen sinapsis de entrada.

La disposición de dichas neuronas se produce una por capa y no más, y no pueden hacer sinapsis entre sí. No es aconsejable colocar este tipo de neuronas en la capa de salida.

¿Para qué sirven? Hay situaciones en las que la red neuronal simplemente no puede encontrar la solución adecuada porque el punto deseado estará fuera de su alcance. Precisamente por eso se necesitan neuronas de este tipo para poder desplazar el área de definición.

Es decir, el peso de la sinapsis cambia la curvatura del gráfico de función, mientras que la neurona de desplazamiento permite un desplazamiento a lo largo del eje de coordenadas X, de modo que la red neuronal puede capturar un área inaccesible para ella sin un desplazamiento. En este caso, el desplazamiento se puede realizar tanto hacia la derecha como hacia la izquierda. Las neuronas de desplazamiento no suelen estar marcadas esquemáticamente; su peso se tiene en cuenta de forma predeterminada al calcular el valor de entrada.

Además, las neuronas de polarización le permitirán obtener un resultado en el caso de que todas las demás neuronas produzcan 0 como parámetro de salida. En este caso, independientemente del peso de la sinapsis, exactamente este valor se transmitirá a cada capa posterior.

La presencia de una neurona de desplazamiento permitirá corregir la situación y obtener un resultado diferente. La viabilidad de utilizar neuronas de desplazamiento se determina probando la red con y sin ellas y comparando los resultados.

Pero es importante recordar que para lograr resultados no basta con crear una red neuronal. También es necesario entrenarlo, lo que también requiere enfoques especiales y tiene sus propios algoritmos. Este proceso difícilmente puede considerarse simple, ya que su implementación requiere ciertos conocimientos y esfuerzos.

Los sistemas inteligentes basados ​​en redes neuronales artificiales pueden resolver con éxito problemas de reconocimiento de patrones, realización de predicciones, optimización, memoria asociativa y control.

17.04.1997 Jianchang Mao, Enil Jane

Los sistemas inteligentes basados ​​en redes neuronales artificiales pueden resolver con éxito problemas de reconocimiento de patrones, realización de predicciones, optimización, memoria asociativa y control. Existen otros enfoques más tradicionales para resolver estos problemas, pero no tienen la flexibilidad necesaria fuera de condiciones limitadas. Las RNA ofrecen soluciones alternativas prometedoras y muchas aplicaciones se benefician de su uso.

Sistemas inteligentes basados redes neuronales artificiales(ANN) permiten resolver con éxito problemas de reconocimiento de patrones, realización de predicciones, optimización, memoria asociativa y control. Existen otros enfoques más tradicionales para resolver estos problemas, pero no tienen la flexibilidad necesaria fuera de condiciones limitadas. Las RNA ofrecen soluciones alternativas prometedoras y muchas aplicaciones se benefician de su uso. Este artículo es una introducción a los problemas modernos de las RNA y contiene una discusión de las razones de su rápido desarrollo. También se describen aquí los principios básicos de funcionamiento de una neurona biológica y su modelo computacional artificial. Se dirán algunas palabras sobre las arquitecturas de redes neuronales y los procesos de entrenamiento de ANN. El artículo concluye con una introducción al problema del reconocimiento de texto: la implementación más exitosa de ANN.

Un largo período de evolución ha dado al cerebro humano muchas cualidades que están ausentes tanto en las máquinas con arquitectura von Neumann como en las modernas computadoras paralelas. Estos incluyen:

  • paralelismo masivo;
  • representación distribuida de información y cálculos;
  • capacidad de aprendizaje y capacidad de generalización;
  • adaptabilidad;
  • propiedad del procesamiento de información contextual;
  • tolerancia a los errores;
  • bajo consumo de energía.

Se puede suponer que los dispositivos construidos según los mismos principios que las neuronas biológicas tendrán las características enumeradas.

De las redes biológicas a las RNA

Las computadoras digitales modernas superan a los humanos en su capacidad para realizar cálculos numéricos y simbólicos. Sin embargo, una persona puede resolver sin esfuerzo problemas complejos de percepción de datos externos (por ejemplo, reconocer a una persona entre una multitud solo por su rostro parpadeante) con tal velocidad y precisión que, en comparación, la computadora más poderosa del mundo parece irremediablemente lenta. ¿Cuál es la razón de una diferencia tan significativa en su desempeño? La arquitectura de un sistema neuronal biológico es completamente diferente a la arquitectura de una máquina de von Neumann (Tabla 1), lo que influye significativamente en los tipos de funciones que cada modelo realiza de manera más eficiente.

Tabla 1. Máquina de von Neumann comparada con un sistema neuronal biológico

máquina de von Neumann sistema neuronal biológico
UPC Difícil Simple
Alta velocidad Baja velocidad
Uno o más Gran cantidad
Memoria Separado del procesador Integrado en el procesador
Localizado Repartido
Abordaje no basado en el contenido Abordar por contenido
Cálculos Centralizado Repartido
Consecutivo Paralelo
Programas almacenados autoestudio
Fiabilidad Alta vulnerabilidad Vitalidad
Especialización Operaciones numéricas y simbólicas. Problemas de percepción
Entorno operativo Estrictamente definido Mal definido
Estrictamente limitado Sin restricciones

Al igual que un sistema neuronal biológico, una RNA es un sistema informático con una gran cantidad de procesadores simples que funcionan en paralelo y con muchas conexiones. Los modelos de RNA reproducen hasta cierto punto los principios "organizativos" inherentes al cerebro humano. Modelar un sistema neuronal biológico utilizando RNA también puede contribuir a una mejor comprensión de las funciones biológicas. Las tecnologías de fabricación como VLSI (nivel de integración ultraalto) y el hardware óptico hacen posibles estas simulaciones.

Un estudio en profundidad de las RNA requiere conocimientos de neurofisiología, ciencia cognitiva, psicología, física (mecánica estadística), teoría de control, teoría computacional, problemas de inteligencia artificial, estadística/matemáticas, reconocimiento de patrones, visión por computadora, computación paralela y hardware (digital/ analógico/VLSI/óptico). Por otro lado, las RNA también estimulan estas disciplinas proporcionándoles nuevas herramientas y conocimientos. Esta simbiosis es vital para la investigación de redes neuronales.

Presentemos algunos problemas que pueden resolverse en el contexto de ANN y que son de interés para científicos e ingenieros.

Clasificación de imágenes. La tarea consiste en indicar la pertenencia de una imagen de entrada (por ejemplo, una señal de voz o un carácter escrito a mano), representada por un vector de características, a una o más clases predefinidas. Las aplicaciones notables incluyen reconocimiento de letras, reconocimiento de voz, clasificación de señales de electrocardiograma y clasificación de células sanguíneas.

Agrupación/categorización. Al resolver un problema de agrupamiento, que también se conoce como clasificación de imágenes no supervisada, no existe un conjunto de entrenamiento con etiquetas de clase. El algoritmo de agrupamiento se basa en la similitud de imágenes y coloca imágenes similares en un grupo. Existen casos conocidos de uso de agrupaciones para extraer conocimientos, comprimir datos y estudiar propiedades de datos.

Aproximación de funciones. Supongamos que hay una muestra de entrenamiento ((x 1 ,y 1 ), (x 2 ,y 2 )..., (x n ,y n )) (pares de datos de entrada-salida), que es generada por una función desconocida (x ) distorsionado por el ruido . El problema de aproximación consiste en encontrar una estimación de la función desconocida (x). La aproximación de funciones es necesaria para resolver numerosos problemas de modelado científico y de ingeniería.

Predicción/pronóstico. Sean n muestras discretas (y(t 1 ), y(t 2 )..., y(t n )) en momentos sucesivos de tiempo t 1 , t 2 ,..., t n . La tarea es predecir el valor de y(t n+1) en algún momento futuro t n+1. La predicción/previsión tiene un impacto significativo en la toma de decisiones en los negocios, la ciencia y la tecnología. La predicción de los precios del mercado de valores y la previsión meteorológica son aplicaciones típicas de las técnicas de predicción/pronóstico.

Mejoramiento. Numerosos problemas de matemáticas, estadística, ingeniería, ciencia, medicina y economía pueden considerarse problemas de optimización. La tarea del algoritmo de optimización es encontrar una solución que satisfaga el sistema de restricciones y maximice o minimice la función objetivo. El problema del viajante, que pertenece a la clase de NP-completo, es un ejemplo clásico de problema de optimización.

Memoria direccionable de contenido. En el modelo de computación de von Neumann, se accede a la memoria sólo a través de una dirección, que es independiente del contenido de la memoria. Además, si se comete un error al calcular la dirección, se puede encontrar información completamente diferente. A la memoria asociativa, o memoria direccionable por contenido, se accede mediante contenido específico. Los contenidos de la memoria se pueden recuperar incluso mediante entradas parciales o contenidos corruptos. La memoria asociativa es extremadamente deseable al crear bases de datos de información multimedia.

Control. Considere un sistema dinámico definido por el conjunto (u(t), y(t)), donde u(t) es la acción de control de entrada e y(t) es la salida del sistema en el tiempo t. En sistemas de control con un modelo de referencia, el objetivo de control es calcular la acción de entrada u(t) de modo que el sistema siga la ruta deseada dictada por el modelo de referencia. Un ejemplo es el control óptimo del motor.

Breve reseña histórica

La investigación en el campo de las RNA ha experimentado tres períodos de intensificación. El primer pico en los años 40 se debe al trabajo pionero de McCulloch y Pitts. El segundo surgió en los años 60 gracias al teorema de convergencia del perceptrón de Rosenblatt y al trabajo de Minsky y Papert, que indicaba las capacidades limitadas del perceptrón más simple. Los resultados de Minsky y Papert apagaron el entusiasmo de la mayoría de los investigadores, especialmente de aquellos que trabajan en el campo de la informática. La pausa en la investigación de redes neuronales duró casi 20 años. Desde principios de la década de 1980, las RNA han recibido un renovado interés por parte de los investigadores debido al enfoque de energía de Hopfield y al algoritmo de retropropagación para el entrenamiento de perceptrones multicapa (redes de alimentación directa multicapa), propuesto por primera vez por Verbos y desarrollado de forma independiente por varios otros autores. El algoritmo se hizo famoso gracias a Rumelhart en 1986. Anderson y Rosenfeld prepararon un trasfondo histórico detallado sobre el desarrollo de ANN.

Redes neuronales biológicas

Una neurona (célula nerviosa) es una célula biológica especial que procesa información (Fig. 1). Consta de un cuerpo celular, o soma, y ​​dos tipos de ramas externas arbóreas: el axón y las dendritas. El cuerpo celular incluye un núcleo (núcleo), que contiene información sobre propiedades hereditarias, y plasma, que tiene los medios moleculares para producir los materiales necesarios para la neurona. Una neurona recibe señales (impulsos) de otras neuronas a través de dendritas (receptores) y transmite señales generadas por el cuerpo celular a lo largo de un axón (transmisor), que eventualmente se ramifica en fibras (hebras). En los extremos de estas fibras hay sinapsis.

Arroz. 1.

Una sinapsis es una estructura elemental y unidad funcional entre dos neuronas (una fibra axónica de una neurona y una dendrita de otra). Cuando un impulso llega a una terminal sináptica, se liberan ciertas sustancias químicas llamadas neurotransmisores. Los neurotransmisores se difunden a través de la hendidura sináptica, estimulando o inhibiendo, según el tipo de sinapsis, la capacidad de la neurona receptora para generar impulsos eléctricos. El desempeño de una sinapsis puede sintonizarse mediante las señales que la atraviesan, de modo que las sinapsis pueden aprender dependiendo de la actividad de los procesos en los que participan. Esta dependencia del entorno actúa como memoria, que posiblemente sea responsable de la memoria humana.

La corteza cerebral humana es una extensa superficie formada por neuronas, de 2 a 3 mm de espesor, con una superficie de unos 2200 cm 2, que es el doble de la superficie de un teclado estándar. La corteza cerebral contiene alrededor de 1011 neuronas, lo que es aproximadamente igual al número de estrellas de la Vía Láctea. Cada neurona está conectada a otras 103 - 104 neuronas. En total, el cerebro humano contiene aproximadamente entre 1014 y 1015 conexiones.

Las neuronas se comunican a través de una serie corta de impulsos, que normalmente duran unos pocos milisegundos. El mensaje se transmite mediante modulación de frecuencia de pulso. La frecuencia puede variar desde unos pocos hercios hasta cientos de hercios, lo que es un millón de veces más lento que los circuitos electrónicos de conmutación más rápida. Sin embargo, una persona toma decisiones complejas sobre la percepción de información, como el reconocimiento facial, en unos pocos cientos de ms. Estas decisiones están controladas por una red de neuronas que tienen una velocidad de sólo unos pocos milisegundos. Esto significa que el cálculo no requiere más de 100 etapas consecutivas. En otras palabras, para tareas tan complejas, el cerebro “ejecuta” programas paralelos que contienen alrededor de 100 pasos. Esto se conoce como la regla de los cien pasos. Razonando de manera similar, se puede encontrar que la cantidad de información enviada de una neurona a otra debe ser muy pequeña (unos pocos bits). De ello se deduce que la información principal no se transmite directamente, sino que se captura y distribuye en conexiones entre neuronas. Esto explica el nombre de modelo conexionista aplicado a las RNA.

Conceptos básicos

Modelo técnico de neuronas

McCulloch y Pitts propusieron utilizar un elemento umbral binario como modelo para una neurona artificial. Esta neurona matemática calcula la suma ponderada de n señales de entrada x j, j = 1, 2... n, y genera una señal de salida de valor 1 si esta suma supera un determinado umbral u, y 0 en caso contrario.

A menudo es conveniente pensar en u como un coeficiente de ponderación asociado con la entrada constante x 0 = 1. Los pesos positivos corresponden a conexiones excitadoras y los pesos negativos corresponden a conexiones inhibidoras. McCulloch y Pitts demostraron que, con pesos adecuadamente seleccionados, un conjunto de neuronas paralelas de este tipo es capaz de realizar cálculos universales. Aquí existe una cierta analogía con una neurona biológica: la transmisión de señales y las conexiones son imitadas por los axones y las dendritas, los pesos de las conexiones corresponden a las sinapsis y la función umbral refleja la actividad del soma.

Arquitectura de red neuronal

Una RNA puede considerarse como un grafo dirigido con conexiones ponderadas, en el que las neuronas artificiales son nodos. Según la arquitectura de las conexiones, las RNA se pueden agrupar en dos clases (Fig. 2): redes de retroalimentación, en las que los gráficos no tienen bucles, y redes recurrentes o redes con conexiones de retroalimentación.

Arroz. 2.

En la familia más común de redes de primera clase, llamadas perceptrones multicapa, las neuronas están dispuestas en capas y tienen conexiones unidireccionales entre capas. En la figura. La Figura 2 muestra redes típicas de cada clase. Las redes feedforward son estáticas en el sentido de que, para una entrada determinada, producen un conjunto de valores de salida que son independientes del estado anterior de la red. Las redes recurrentes son dinámicas, ya que debido a la retroalimentación en ellas se modifican las entradas de las neuronas, lo que conduce a un cambio en el estado de la red.

Educación

La capacidad de aprender es una propiedad fundamental del cerebro. En el contexto de una ANN, el proceso de aprendizaje puede verse como un ajuste de la arquitectura de la red y los pesos de las conexiones para realizar de manera eficiente una tarea específica. Normalmente, una red neuronal debe ajustar los pesos de las conexiones en función del conjunto de entrenamiento disponible. El rendimiento de la red mejora a medida que las ponderaciones se ajustan de forma iterativa. La capacidad de las redes para aprender de ejemplos las hace más atractivas en comparación con los sistemas que siguen un determinado sistema de reglas operativas formuladas por expertos.

Para diseñar el proceso de aprendizaje, en primer lugar, es necesario tener un modelo del entorno externo en el que opera la red neuronal: conocer la información disponible para la red. Este modelo define el paradigma de aprendizaje. En segundo lugar, es necesario comprender cómo modificar los parámetros de peso de la red: qué reglas de aprendizaje gobiernan el proceso de ajuste. Un algoritmo de aprendizaje significa un procedimiento que utiliza reglas de aprendizaje para ajustar los pesos.

Existen tres paradigmas de aprendizaje: “con profesor”, “sin profesor” (autoaprendizaje) y mixto. En el primer caso, la red neuronal tiene las respuestas correctas (salidas de la red) para cada ejemplo de entrada. Las ponderaciones se ajustan para que la red produzca respuestas lo más cercanas posible a las respuestas correctas conocidas. La versión mejorada del aprendizaje supervisado supone que sólo se conoce una estimación crítica de la exactitud de la salida de la red neuronal, pero no los valores de salida correctos en sí. El aprendizaje no supervisado no requiere conocer las respuestas correctas a cada ejemplo del conjunto de entrenamiento. Esto revela la estructura de datos interna o las correlaciones entre patrones en el sistema de datos, lo que permite categorizar las muestras. En el blended learning, parte de los pesos se determina mediante aprendizaje supervisado, mientras que el resto se obtiene mediante autoaprendizaje.

La teoría del aprendizaje considera tres propiedades fundamentales asociadas con el aprendizaje a partir de ejemplos: capacidad, complejidad de la muestra y complejidad computacional. La capacidad se refiere a cuántas muestras puede recordar la red y qué funciones y límites de decisión se pueden formar en ella. La complejidad de la muestra determina la cantidad de ejemplos de entrenamiento necesarios para lograr la capacidad de generalización de la red. Muy pocos ejemplos pueden hacer que la red esté "sobreentrenada", donde funciona bien en ejemplos del conjunto de entrenamiento, pero mal en ejemplos de prueba sujetos a la misma distribución estadística. Existen 4 tipos principales de reglas de aprendizaje: corrección de errores, máquina de Boltzmann, regla de Hebb y aprendizaje competitivo.

Regla de corrección de errores. En el aprendizaje supervisado, a cada ejemplo de entrada se le asigna una salida deseada d. La salida de red real y puede no coincidir con la deseada. El principio de corrección de errores durante el entrenamiento es utilizar la señal (d-y) para modificar los pesos, asegurando una reducción gradual del error. El aprendizaje sólo se produce cuando el perceptrón comete un error. Se conocen varias modificaciones de este algoritmo de aprendizaje.

Entrenamiento de Boltzmann. Representa una regla de aprendizaje estocástico que se deriva de principios teóricos de la información y termodinámicos. El objetivo del entrenamiento de Boltzmann es ajustar los pesos de manera que los estados de las neuronas visibles satisfagan la distribución de probabilidad deseada. El aprendizaje de Boltzmann puede considerarse como un caso especial de corrección de errores, en el que el error se entiende como la divergencia de las correlaciones de estado en los dos modos.

La regla de Hebb. La regla de aprendizaje más antigua es el postulado de aprendizaje de Hebb. Hebb se basó en las siguientes observaciones neurofisiológicas: si las neuronas de ambos lados de una sinapsis se activan simultánea y regularmente, la fuerza de la conexión sináptica aumenta. Una característica importante de esta regla es que el cambio en el peso sináptico depende únicamente de la actividad de las neuronas que están conectadas por una sinapsis determinada. Esto simplifica enormemente las cadenas de aprendizaje en las implementaciones de VLSI.

Entrenamiento a través de la competición. A diferencia del aprendizaje hebbiano, en el que muchas neuronas de salida pueden activarse simultáneamente, en el aprendizaje competitivo las neuronas de salida compiten entre sí para activarse. Este fenómeno se conoce como la regla del ganador se lo lleva todo. Un aprendizaje similar tiene lugar en las redes neuronales biológicas. El aprendizaje a través de la competencia permite agrupar los datos de entrada: la red agrupa ejemplos similares según correlaciones y se representan como un solo elemento.

Durante el entrenamiento sólo se modifican los pesos de la neurona “ganadora”. El efecto de esta regla se logra cambiando la muestra almacenada en la red (el vector de pesos de conexión de la neurona ganadora), de modo que se acerca un poco más al ejemplo de entrada. En la figura. La Figura 3 muestra una ilustración geométrica del entrenamiento utilizando el método de competición. Los vectores de entrada están normalizados y representados por puntos en la superficie de una esfera. Los vectores de peso de las tres neuronas se inicializan con valores aleatorios. Sus valores inicial y final después del entrenamiento están marcados con una X en la Fig. 3a y 3b respectivamente. Cada uno de los tres grupos de ejemplos es detectado por una de las neuronas de salida, cuyo vector de peso está sintonizado con el centro de gravedad del grupo detectado.

Arroz. 3.

Se puede observar que la red nunca deja de aprender a menos que el parámetro de tasa de aprendizaje sea 0. Alguna muestra de entrada puede activar otra neurona de salida en iteraciones posteriores durante el proceso de aprendizaje. Esto plantea la cuestión de la sostenibilidad del sistema de formación. El sistema se considera estable si ninguno de los ejemplos de la muestra de capacitación cambia su categoría de pertenencia después de un número finito de iteraciones del proceso de capacitación. Una forma de lograr estabilidad es disminuir gradualmente el parámetro de tasa de aprendizaje a 0. Sin embargo, esta inhibición artificial del aprendizaje provoca otro problema llamado plasticidad, que se relaciona con la capacidad de adaptarse a nuevos datos. Estas características del aprendizaje competitivo se conocen como el dilema de estabilidad-plasticidad de Grossberg.

La Tabla 2 presenta varios algoritmos de aprendizaje y sus arquitecturas de red asociadas (la lista no es exhaustiva). La última columna enumera las tareas para las que se puede aplicar cada algoritmo. Cada algoritmo de aprendizaje se centra en una red de una arquitectura específica y está destinado a una clase limitada de tareas. Además de los comentados, cabe mencionar algunos otros algoritmos: Adaline y Madaline, análisis discriminante lineal, proyecciones de Sammon, análisis de componentes principales.

Tabla 2.Algoritmos de aprendizaje conocidos

Paradigma Regla de aprendizaje Arquitectura Algoritmo de aprendizaje Tarea
con profesor Corrección de errores Perceptrón monocapa y multicapa Algoritmos de entrenamiento de perceptrones
Propagación hacia atrás
Adaline y Madaline
Clasificación de imágenes
Aproximación de funciones
Predicción, control
Boltzmann Recurrente Algoritmo de aprendizaje de Boltzmann Clasificación de imágenes
hebb Análisis discriminante lineal Análisis de datos
Clasificación de imágenes
Competencia Competencia Cuantización vectorial Categorización dentro de una clase Compresión de datos
Red ARTE ARTMapa Clasificación de imágenes
sin maestro Corrección de errores Propagación directa multicapa La proyección de Sammon. Categorización dentro de una clase Análisis de datos
hebb Distribución directa o competencia Análisis de componentes principales Análisis de datos
Compresión de datos
Red Hopfield Entrenamiento de la memoria asociativa memoria asociativa
Competencia Competencia Cuantización vectorial Categorización
Compresión de datos
SOM Kohonen SOM Kohonen Categorización
Análisis de datos
Redes ARTE ART1, ART2 Categorización
Mezclado Corrección de errores y competencia. red FBR Algoritmo de aprendizaje RBF Clasificación de imágenes
Aproximación de funciones
Predicción, control

Redes de avance multicapa

Una red de alimentación directa de capa L estándar consta de una capa de nodos de entrada (nos adheriremos a la afirmación de que no está incluida en la red como una capa independiente), (L-1) capas ocultas y una capa de salida conectada secuencialmente en la dirección de avance y que no contiene conexiones entre elementos dentro de una capa ni retroalimentación entre capas. En la figura. La Figura 4 muestra la estructura de una red de tres capas.

Arroz. 4.

Perceptrón multicapa

La clase más popular de redes feedforward multicapa está formada por perceptrones multicapa, en los que cada elemento informático utiliza un umbral o función de activación sigmoidea. Un perceptrón multicapa puede formar límites de decisión arbitrariamente complejos e implementar funciones booleanas arbitrarias. El desarrollo de un algoritmo de retropropagación para determinar pesos en un perceptrón multicapa ha convertido a estas redes en las más populares entre los investigadores y usuarios de redes neuronales. La interpretación geométrica explica el papel de los elementos de las capas ocultas (se utiliza una función de activación de umbral).

Redes FBR

Las redes de función de base radial (redes RBF) son un caso especial de red feedforward de dos capas. Cada elemento de la capa oculta utiliza una función de base radial de tipo gaussiano como función de activación. La función de base radial (función kernel) está centrada en un punto determinado por el vector de peso asociado a la neurona. Tanto la posición como el ancho de la función kernel deben entrenarse a partir de muestras selectivas. Normalmente hay muchos menos núcleos que ejemplos de entrenamiento. Cada elemento de salida calcula una combinación lineal de estas funciones de base radial. Desde el punto de vista del problema de aproximación, los elementos ocultos forman un conjunto de funciones que forman un sistema básico para representar ejemplos de entrada en el espacio construido sobre él.

Existen varios algoritmos para entrenar redes RBF. El algoritmo principal utiliza una estrategia de aprendizaje de dos pasos o aprendizaje combinado. Estima la posición y el ancho del núcleo utilizando un algoritmo de agrupamiento no supervisado, seguido de un algoritmo de minimización del error cuadrático medio supervisado para determinar los pesos de las conexiones entre las capas oculta y de salida. Dado que los elementos de salida son lineales, se utiliza un algoritmo no iterativo. Una vez que se obtiene esta suposición inicial, se utiliza el descenso de gradiente para refinar los parámetros de la red.

Este algoritmo de entrenamiento de red RBF mixto converge mucho más rápido que el algoritmo de retropropagación para entrenar perceptrones multicapa. Sin embargo, una red RBF a menudo contiene demasiados elementos ocultos. Esto implica un funcionamiento más lento de una red RBF que un perceptrón multicapa. La eficiencia (error en función del tamaño de la red) de una red RBF y un perceptrón multicapa depende del problema que se resuelve.

Problemas no resueltos

Hay muchas cuestiones controvertidas al diseñar redes feedforward: por ejemplo, cuántas capas se necesitan para una tarea determinada, cuántos elementos se deben seleccionar en cada capa, cómo responderá la red a los datos no incluidos en el conjunto de entrenamiento (cuánta generalización capacidad de la red), y qué tamaño del conjunto de entrenamiento es necesario para lograr una "buena" capacidad de generalización de la red.

Aunque las redes de avance multicapa se utilizan ampliamente para la clasificación y aproximación de funciones, aún es necesario determinar muchos parámetros mediante prueba y error. Los resultados teóricos existentes proporcionan sólo pautas débiles para la selección de estos parámetros en aplicaciones prácticas.

Mapas de Kohonen autoorganizados

Mapas de Kohonen autoorganizados(SOM) tienen la ventajosa propiedad de preservación de la topología, que reproduce un aspecto importante de los mapas de características en la corteza cerebral de animales altamente organizados. En un mapeo que preserva la topología, los ejemplos de entrada cercanos excitan los elementos de salida cercanos. En la figura. La Figura 2 muestra la arquitectura básica de la red SOM de Kohonen. Es esencialmente una matriz bidimensional de elementos, con cada elemento asociado con los n nodos de entrada.

Una red de este tipo es un caso especial de red de aprendizaje competitivo en la que se determina una vecindad espacial para cada elemento de salida. La vecindad local puede ser un cuadrado, un rectángulo o un círculo. El tamaño inicial de la vecindad a menudo se establece entre 1/2 y 2/3 del tamaño de la red y se reduce según una ley específica (por ejemplo, decaimiento exponencial). Durante el entrenamiento, se modifican todos los pesos asociados con el ganador y sus vecinos.

Los mapas (redes) de Kohonen autoorganizados se pueden utilizar para el diseño de datos de alta dimensión, la aproximación de densidad y la agrupación. Esta red se ha utilizado con éxito para reconocimiento de voz, procesamiento de imágenes, robótica y tareas de control. Los parámetros de la red incluyen la dimensión de la matriz de neuronas, el número de neuronas en cada dimensión, la forma de la vecindad, la ley de compresión de la vecindad y la tasa de aprendizaje.

Modelos de teoría de la resonancia adaptativa.

Recordemos que el dilema estabilidad-plasticidad es una característica importante del aprendizaje competitivo. ¿Cómo enseñar nuevos fenómenos (plasticidad) y al mismo tiempo mantener la estabilidad para que el conocimiento existente no se borre ni destruya?

Carpenter y Grossberg, quienes desarrollaron los modelos de teoría de resonancia adaptativa (ART1, ART2 y ARTMAP), intentaron resolver este dilema. La red tiene una cantidad suficiente de elementos de salida, pero no se utilizan hasta que surge la necesidad. Diremos que un elemento está asignado (no asignado) si se usa (no se usa). El algoritmo de aprendizaje corrige el prototipo de categoría existente sólo si el vector de entrada es suficientemente similar a él. En este caso resuenan. El grado de similitud está controlado por el parámetro de similitud k, 0

Para ilustrar el modelo, considere la red ART1, que está diseñada para una entrada binaria (0/1). En la figura se muestra un diagrama simplificado de la arquitectura ART1. 5. Contiene dos capas de elementos con conexiones completas.

Arroz. 5.

El vector de peso de arriba hacia abajo w j corresponde al elemento de la capa de entrada j, y el vector de peso de abajo hacia arriba i está asociado con el elemento de salida i; i es la versión normalizada de wi . Los vectores almacenan prototipos de clusters. La función de la normalización es evitar que los vectores de longitud larga dominen a los vectores de longitud corta. La señal de reinicio R se genera solo cuando la similitud está por debajo de un nivel específico.

El modelo ART1 puede crear nuevas categorías y descartar ejemplos de entrada cuando la red alcanza su capacidad. Sin embargo, la cantidad de categorías detectadas por la red es sensible al parámetro de similitud.

Red Hopfield

Hopfield utilizó la función energética como herramienta para construir redes recurrentes y comprender su dinámica. La formalización de Hopfield dejó claro el principio de almacenar información como atractores dinámicamente estables y popularizó el uso de redes recurrentes para la memoria asociativa y para resolver problemas de optimización combinatoria.

El cambio dinámico de los estados de la red se puede realizar al menos de dos maneras: de forma sincrónica y asincrónica. En el primer caso, todos los elementos se modifican simultáneamente en cada paso de tiempo, en el segundo, en cada momento se selecciona y procesa un elemento. Este elemento podrá ser seleccionado al azar. La principal propiedad de la función de energía es que durante la evolución de los estados de la red, según la ecuación, disminuye y alcanza un mínimo local (atractor), en el que mantiene energía constante.

memoria asociativa

Si los patrones almacenados en la red son atractores, se puede utilizar como memoria asociativa. Cualquier ejemplar ubicado en el área de atracción de una muestra almacenada puede usarse como puntero para restaurarla.

La memoria asociativa normalmente opera en dos modos: almacenamiento y recuperación. En el modo de almacenamiento, los pesos de las conexiones en la red se determinan para que los atractores recuerden un conjunto de p muestras n-dimensionales (x 1, x 2,..., x p) que deben almacenarse. En el segundo modo, el ejemplo de entrada se utiliza como estado inicial de la red, y luego la red evoluciona según su dinámica. El patrón de salida se establece cuando la red alcanza el equilibrio.

¿Cuántos ejemplos se pueden almacenar en una red con n elementos binarios? En otras palabras, ¿cuál es la capacidad de almacenamiento de la red? Es finita, ya que una red con n elementos binarios tiene como máximo 2n estados diferentes, y no todos son atractores. Además, no todos los atractores pueden almacenar patrones útiles. Los falsos atractores también pueden almacenar muestras, pero son diferentes de los ejemplos del conjunto de entrenamiento. Se muestra que el número máximo de muestras aleatorias que puede almacenar una red Hopfield es Pmax (0,15 n. Cuando el número de muestras almacenadas es p (0,15 n, se logra la recuperación de memoria más exitosa. Si las muestras almacenadas están representadas por ortogonales vectores (a diferencia de aleatorios), entonces el número de muestras almacenadas en la memoria aumentará. El número de atractores falsos aumenta cuando p alcanza la capacidad de la red. Se proponen varias reglas de aprendizaje para aumentar la capacidad de memoria de una red de Hopfield. En una red, se requieren 2n conexiones para almacenar p ejemplos de n bits.

Minimización de energía

La red Hopfield evoluciona en la dirección de reducir su energía. Esto permite resolver problemas de optimización combinatoria si pueden formularse como problemas de minimización de energía. En particular, el problema del viajante puede formularse de manera similar.

Aplicaciones

Al principio del artículo, se describieron 7 clases de diversas aplicaciones de ANN. Debe tenerse en cuenta que para resolver con éxito problemas del mundo real, es necesario definir una serie de características, incluido el modelo de red, su tamaño, la función de activación, los parámetros de entrenamiento y un conjunto de ejemplos de entrenamiento. Para ilustrar la aplicación práctica de las redes feedforward, consideremos el problema del reconocimiento de caracteres de imágenes (tarea OCR, que consiste en procesar una imagen de texto escaneada y convertirla en texto).

sistema OCR

Un sistema OCR normalmente consta de bloques de preprocesamiento, segmentación, extracción de características, clasificación y procesamiento contextual. Se escanea el documento en papel y se crea una imagen en escala de grises o binaria (blanco y negro). En la etapa de preprocesamiento, se aplica filtrado para eliminar el ruido, la región de texto se localiza y se convierte en una imagen binaria mediante un convertidor de umbral adaptativo global y local. En el paso de segmentación, la imagen del texto se divide en caracteres individuales. Esta tarea es especialmente difícil para texto escrito a mano que contiene conexiones entre caracteres adyacentes. Una técnica eficaz consiste en dividir una muestra compuesta en muestras pequeñas (segmentación intermedia) y encontrar los puntos de segmentación correctos utilizando la salida del clasificador de muestras. Debido a la variación de la inclinación, la distorsión, el ruido y los estilos de escritura, reconocer caracteres segmentados es un desafío.

Esquemas de cálculo

En la figura. La Figura 6 presenta dos esquemas principales para usar ANN en sistemas OCR. El primero realiza una extracción explícita de rasgos característicos (no necesariamente en una red neuronal). Por ejemplo, estos podrían ser signos de elusión. Las características seleccionadas se envían a la entrada de una red de avance multicapa. Este esquema es flexible en términos del uso de una amplia variedad de funciones. Otro esquema no prevé la extracción explícita de características de los datos de origen. La extracción de características ocurre implícitamente en las capas ocultas de la ANN. La conveniencia de este esquema es que la extracción y clasificación de características se combinan y el entrenamiento ocurre simultáneamente, lo que brinda un resultado de clasificación óptimo. Sin embargo, el esquema requiere un tamaño de red mayor que en el primer caso.

Arroz. 6.

Kuhn considera un ejemplo típico de un circuito integrado de este tipo para el reconocimiento de códigos postales.

Resultados

Las RNA se utilizan de forma muy eficaz en aplicaciones de OCR. Sin embargo, no hay pruebas convincentes de su superioridad sobre los clasificadores estadísticos correspondientes. En la primera conferencia sobre sistemas OCR en 1992, se compararon más de 40 sistemas de reconocimiento de escritura para obtener los mismos datos. De estos, los 10 primeros utilizaron una variante de la red feedforward multicapa o el clasificador de vecino más cercano. Las RNA tienden a ser superiores en velocidad y requisitos de memoria en comparación con el método del vecino más cercano, en contraste con el cual la velocidad de clasificación utilizando RNA no depende del tamaño de la muestra de entrenamiento. La precisión del reconocimiento de los mejores sistemas OCR basados ​​en datos de caracteres presegmentados fue de aproximadamente el 98% para números, el 96% para letras mayúsculas y el 87% para letras minúsculas. (La baja precisión de las letras minúsculas se debe en gran parte al hecho de que los datos de prueba fueron significativamente diferentes de los datos de entrenamiento). Con base en los datos de prueba, podemos concluir que en caracteres OCR aislados el sistema tiene una precisión cercana a un humano. Sin embargo, los humanos superan a los sistemas OCR en documentos escritos a mano y sin restricciones.

***

El desarrollo de ANN ha provocado mucho entusiasmo y críticas. Algunos estudios comparativos han sido optimistas, otros pesimistas. Para muchas tareas, como el reconocimiento de patrones, todavía no se han creado enfoques dominantes. La elección de la mejor tecnología debería estar dictada por la naturaleza del problema. Es necesario intentar comprender las capacidades, los requisitos previos y el alcance de los distintos enfoques y aprovechar al máximo sus ventajas adicionales para un mayor desarrollo de los sistemas inteligentes. Tales esfuerzos podrían conducir a un enfoque sinérgico que combine las RNA con otras tecnologías para lograr avances significativos en la solución de problemas apremiantes. Como señaló recientemente Minsky, es hora de construir sistemas más allá de los componentes individuales. Los módulos individuales son importantes, pero también necesitamos una metodología de integración. Está claro que la interacción y el trabajo conjunto de investigadores en el campo de las RNA y otras disciplinas no sólo evitarán la repetición, sino que también (lo que es más importante) estimularán e impartirán nuevas cualidades al desarrollo de áreas individuales.

Literatura

1. Estudio de la red neuronal DARPA, AFCEA Int"l Press, Fairfax, Va., 1988.
2. J. Hertz, A. Krogh y R.G. Palmer, Introducción a la teoría de la computación neuronal, Addison-Wesley, Reading, Mass., 1991.
3. S. Haykin, Redes neuronales: una base integral, MacMillan College Publishing Co., Nueva York, 1994.
4. W.S. McCulloch y W. Pitts, "Un cálculo lógico de ideas inmanentes a la actividad nerviosa", Bull. Biofísica matemática, vol. 5, 1943, págs. 115-133.
5. R. Rosenblatt, "Principios de neurodinámica", Spartan Books, Nueva York, 1962.
6. M. Mitnsky y S. Papert, "Perceptrones: una introducción a la geometría computacional", MIT Press, Cambridge, Mass., 1969.
7. J.J. Hopfield, “Redes neuronales y sistemas físicos con capacidades computacionales colectivas emergentes”, en Proc. Academia Nacional de Ciencias, EE.UU. 79, 1982, págs. 2554-2558.
8. P. Werbos, “Más allá de la regresión: nuevas herramientas para la predicción y el análisis en las ciencias del comportamiento”, Tesis doctoral, Departamento. de Matemáticas Aplicadas, Universidad de Harvard, Cambridge, Mass., 1974.
9.D.E. Rumelhart y J.L. McClelland, Procesamiento distribuido paralelo: exploración en la microestructura de la cognición, MIT Press, Cambridge, Mass., 1986.
10. J.A. Anderson y E. Rosenfeld, "Neurocomputing: Foundation of Research", MIT Press, Cambridge, Mass., 1988.
11. S. Brunak y B. Lautrup, Neural Networks, Computers with Intuition, World Scientific, Singapur, 1990.
12. J. Feldman, MA. Fanty y N.H. Goddard, "Computación con redes neuronales estructuradas", Computadora, vol. 21, núm. 3, marzo de 1988, págs. 91-103.
13. D.O. Hebb, La organización del comportamiento, John Wiley & Sons, Nueva York, 1949.
14. R.P. Lippmann, "Introducción a la informática con redes neuronales", Revista IEEE ASSP, Vol.4, No.2, abril. 1987, págs. 4-22.
15. A.K. Jain y J. Mao, "Redes neuronales y reconocimiento de patrones", en Inteligencia computacional: imitando la vida, J.M. Zurada, R.J. Marks II y C.J. Robinson, eds., IEEE Press, Piscataway, Nueva Jersey, 1994, págs. 194-212.
16. T. Kohonen, Autoorganización y memoria asociativa, tercera edición, Springer-Verlag, Nueva York, 1989.
17. G. A. Carpenter y S. Grossberg, Reconocimiento de patrones mediante redes neuronales autoorganizadas, MIT Press, Cambridge, Mass., 1991.
18. "La Primera Conferencia sobre el Sistema de Reconocimiento Óptico de Caracteres del Censo", R. A. Wilkinson et al., eds.,. Tecnología. Informe, NISTIR 4912, Dep. de EE. UU. Commerse, NIST, Gaithersburg, Maryland, 1992.
19. K. Mohiuddin y J. Mao, “Un estudio comparativo de diferentes clasificadores para el reconocimiento de caracteres impresos a mano”, en Reconocimiento de patrones en la práctica IV, E.S. Gelsema y L.N. Kanal, eds., Elsevier Science, Países Bajos, 1994, págs. 437-448.
20. Y. Le Cun et al., "Retropropagación aplicada al reconocimiento de códigos postales escritos a mano", Neural Computation, Vol 1, 1989, págs. 541-551.
21. M. Minsky, “Lógico versus analógico o simbólico versus conexionista o ordenado versus desaliñado”, Revista AI, vol. 65, núm. 2, 1991, págs. 34-51.

Anil K. Jain ([correo electrónico protegido]) - Universidad de Michigan; Jianchang Mao, KM Moiuddin - Centro de Investigación de IBM en Almadén.

Anil K., Jain, Jianchang Mao, K.M. Mohiuddin. Redes neuronales artificiales: un tutorialIEEEComputadora, Vol.29, No.3, marzo/1996, págs. 31-44.Sociedad de Computación IEEE. Reservados todos los derechos. Reimpreso con permiso.



Buenas tardes, mi nombre es Natalia Efremova y soy científica investigadora en NtechLab. Hoy hablaré sobre los tipos de redes neuronales y sus aplicaciones.

Primero, diré algunas palabras sobre nuestra empresa. La empresa es nueva, quizás muchos de vosotros aún no sabéis a qué nos dedicamos. El año pasado ganamos el concurso MegaFace. Este es un concurso internacional de reconocimiento facial. Ese mismo año se inauguró nuestra empresa, es decir, llevamos aproximadamente un año en el mercado, incluso un poco más. Por ello somos una de las empresas líderes en reconocimiento facial y procesamiento de imágenes biométricas.

La primera parte de mi informe estará dirigida a quienes no están familiarizados con las redes neuronales. Estoy directamente involucrado en el aprendizaje profundo. Llevo más de 10 años trabajando en este campo. Aunque apareció hace poco menos de una década, solía haber algunos rudimentos de redes neuronales que eran similares al sistema de aprendizaje profundo.

Durante los últimos 10 años, el aprendizaje profundo y la visión por computadora se han desarrollado a un ritmo increíble. Todo lo que se ha hecho que es significativo en este ámbito ha sucedido en los últimos 6 años.

Hablaré de aspectos prácticos: dónde, cuándo, qué usar en términos de aprendizaje profundo para procesamiento de imágenes y videos, para reconocimiento de imágenes y rostros, ya que trabajo en una empresa que hace esto. Te contaré un poco sobre el reconocimiento de emociones y qué enfoques se utilizan en juegos y robótica. También hablaré sobre la aplicación no estándar del aprendizaje profundo, algo que recién está surgiendo de las instituciones científicas y todavía se usa poco en la práctica, cómo se puede aplicar y por qué es difícil de aplicar.

El informe constará de dos partes. Dado que la mayoría está familiarizada con las redes neuronales, primero cubriré rápidamente cómo funcionan las redes neuronales, qué son las redes neuronales biológicas, por qué es importante para nosotros saber cómo funcionan, qué son las redes neuronales artificiales y qué arquitecturas se utilizan en qué áreas. .

Pido disculpas de inmediato, me saltaré un poco la terminología inglesa, porque ni siquiera sé cómo se llama en ruso. Quizás tú también.

Así, la primera parte del informe estará dedicada a las redes neuronales convolucionales. Te contaré cómo funcionan las redes neuronales convolucionales (CNN) y el reconocimiento de imágenes usando un ejemplo de reconocimiento facial. Te contaré un poco sobre las redes neuronales recurrentes (RNN) y el aprendizaje por refuerzo usando el ejemplo de los sistemas de aprendizaje profundo.

Como aplicación no estándar de redes neuronales, hablaré sobre cómo funciona CNN en medicina para reconocer imágenes de vóxeles y cómo se utilizan las redes neuronales para reconocer la pobreza en África.

¿Qué son las redes neuronales?

El prototipo para la creación de redes neuronales fueron, curiosamente, las redes neuronales biológicas. Es posible que muchos de ustedes sepan cómo programar una red neuronal, pero creo que algunos no saben de dónde vino. Dos tercios de toda la información sensorial que nos llega proviene de los órganos visuales de percepción. Más de un tercio de la superficie de nuestro cerebro está ocupado por las dos áreas visuales más importantes: la vía visual dorsal y la vía visual ventral.

La vía visual dorsal comienza en la zona visual primaria, en nuestra coronilla, y continúa hacia arriba, mientras que la vía ventral comienza en la parte posterior de nuestra cabeza y termina aproximadamente detrás de las orejas. Todo el reconocimiento de patrones importantes que nos sucede, todo lo que conlleva un significado del que somos conscientes, tiene lugar allí mismo, detrás de las orejas.

¿Por qué es esto importante? Porque a menudo es necesario comprender las redes neuronales. En primer lugar, todo el mundo habla de esto, y ya estoy acostumbrado a que esto suceda, y en segundo lugar, el hecho es que todas las áreas que se utilizan en las redes neuronales para el reconocimiento de imágenes nos llegaron precisamente desde la vía visual ventral, donde cada una es una pequeña La zona es responsable de su función estrictamente definida.

La imagen nos llega desde la retina, pasa por una serie de zonas visuales y finaliza en la zona temporal.

En los lejanos años 60 del siglo pasado, cuando apenas comenzaba el estudio de las áreas visuales del cerebro, se llevaron a cabo los primeros experimentos en animales, porque no existía la resonancia magnética funcional. El cerebro se estudió mediante electrodos implantados en varias áreas visuales.

La primera zona visual fue estudiada por David Hubel y Torsten Wiesel en 1962. Realizaron experimentos con gatos. A los gatos se les mostraron varios objetos en movimiento. A lo que respondieron las células cerebrales fue al estímulo que el animal reconoció. Incluso ahora muchos experimentos se llevan a cabo de esta manera draconiana. Sin embargo, esta es la forma más eficaz de saber qué está haciendo cada pequeña célula de nuestro cerebro.

Del mismo modo, se descubrieron muchas más propiedades importantes de las áreas visuales, que ahora utilizamos en el aprendizaje profundo. Una de las propiedades más importantes es el aumento de los campos receptivos de nuestras células a medida que pasamos de las áreas visuales primarias a los lóbulos temporales, es decir, las áreas visuales posteriores. El campo receptivo es esa parte de la imagen que procesa cada célula de nuestro cerebro. Cada célula tiene su propio campo receptivo. La misma propiedad se conserva en las redes neuronales, como probablemente todos sabréis.

Además, a medida que aumentan los campos receptivos, también lo hacen los estímulos complejos que las redes neuronales suelen reconocer.

Aquí ves ejemplos de la complejidad de los estímulos, las diferentes formas bidimensionales que se reconocen en las áreas V2, V4 y varias partes de los campos temporales en los monos macacos. También se están llevando a cabo varios experimentos de resonancia magnética.

Aquí puede ver cómo se llevan a cabo estos experimentos. Esta es una parte de 1 nanómetro de las zonas de la corteza TI del mono al reconocer varios objetos, donde se resalta.

Resumámoslo. Una propiedad importante que queremos adoptar de las áreas visuales es que aumenta el tamaño de los campos receptivos y aumenta la complejidad de los objetos que reconocemos.

Visión por computadora

Antes de que aprendiéramos a aplicar esto a la visión por computadora, en general, no existía como tal. En cualquier caso, no funcionó tan bien como funciona ahora.

Transferimos todas estas propiedades a la red neuronal y ahora está funcionando, si no incluyes una pequeña digresión sobre los conjuntos de datos, de la que te hablaré más adelante.

Pero primero, un poco sobre el perceptrón más simple. También se forma a imagen y semejanza de nuestro cerebro. El elemento más simple que se parece a una célula cerebral es una neurona. Tiene elementos de entrada que, de forma predeterminada, están organizados de izquierda a derecha y, en ocasiones, de abajo hacia arriba. A la izquierda están las partes de entrada de la neurona, a la derecha están las partes de salida de la neurona.

El perceptrón más simple es capaz de realizar sólo las operaciones más simples. Para realizar cálculos más complejos, necesitamos una estructura con más capas ocultas.

En el caso de la visión por computadora, necesitamos aún más capas ocultas. Y sólo entonces el sistema reconocerá de manera significativa lo que ve.

Entonces, te diré qué sucede durante el reconocimiento de imágenes usando el ejemplo de caras.

Para nosotros mirar esta imagen y decir que muestra exactamente la cara de la estatua es bastante simple. Sin embargo, antes de 2010, esta era una tarea increíblemente difícil para la visión por computadora. Quienes se han ocupado de este tema antes probablemente sepan lo difícil que fue describir sin palabras el objeto que queremos encontrar en la imagen.

Necesitábamos hacer esto de alguna manera geométrica, describir el objeto, describir las relaciones del objeto, cómo estas partes se pueden relacionar entre sí, luego encontrar esta imagen en el objeto, compararlas y obtener lo que reconocimos mal. Por lo general, era un poco mejor que lanzar una moneda al aire. Ligeramente mejor que el nivel de probabilidad.

No es así como funciona ahora. Dividimos nuestra imagen en píxeles o en ciertos parches: 2x2, 3x3, 5x5, 11x11 píxeles, como les conviene a los creadores del sistema en el que sirven como capa de entrada a la red neuronal.

Las señales de estas capas de entrada se transmiten de capa a capa mediante sinapsis, y cada capa tiene sus propios coeficientes específicos. Así vamos pasando de capa en capa, de capa en capa, hasta conseguir que hemos reconocido la cara.

Convencionalmente, todas estas partes se pueden dividir en tres clases, las denotaremos X, W e Y, donde X es nuestra imagen de entrada, Y es un conjunto de etiquetas y necesitamos obtener nuestros pesos. ¿Cómo calculamos W?

Dados nuestros X e Y, esto parece simple. Sin embargo, lo que se indica con un asterisco es una operación no lineal muy compleja, que, lamentablemente, no tiene inversa. Incluso con dos componentes de la ecuación, es muy difícil calcularla. Por lo tanto, debemos gradualmente, mediante prueba y error, seleccionando el peso W, asegurarnos de que el error disminuya tanto como sea posible, preferiblemente para que sea igual a cero.

Este proceso ocurre de forma iterativa, lo reducimos constantemente hasta encontrar el valor de peso W que nos convenga suficientemente.

Por cierto, ni una sola red neuronal con la que trabajé alcanzó un error de cero, pero funcionó bastante bien.

Esta es la primera red en ganar el concurso internacional ImageNet en 2012. Esta es la llamada AlexNet. Esta es la red que declaró por primera vez que existen redes neuronales convolucionales y, desde entonces, las redes neuronales convolucionales nunca han cedido sus posiciones en todas las competiciones internacionales.

A pesar de que esta red es bastante pequeña (solo tiene 7 capas ocultas), contiene 650 mil neuronas con 60 millones de parámetros. Para aprender de forma iterativa a encontrar los pesos necesarios, necesitamos muchos ejemplos.

La red neuronal aprende del ejemplo de una imagen y una etiqueta. Así como nos enseñan en la infancia “esto es un gato y esto es un perro”, las redes neuronales se entrenan con una gran cantidad de imágenes. Pero el hecho es que hasta 2010 no existía un conjunto de datos lo suficientemente grande como para enseñar tal cantidad de parámetros para reconocer imágenes.

Las bases de datos más grandes que existían antes de esa época eran PASCAL VOC, que tenía solo 20 categorías de objetos, y Caltech 101, que fue desarrollada en el Instituto de Tecnología de California. El último tenía 101 categorías, y eso era mucho. Aquellos que no pudieron encontrar sus objetos en ninguna de estas bases de datos tuvieron que costar sus bases de datos, lo cual, diré, es terriblemente doloroso.

Sin embargo, en 2010 apareció la base de datos ImageNet, que contenía 15 millones de imágenes, divididas en 22 mil categorías. Esto resolvió nuestro problema de entrenar redes neuronales. Ahora todos los que tengan una dirección académica pueden acceder fácilmente al sitio web de la base, solicitar acceso y recibir esta base para entrenar sus redes neuronales. Responden bastante rápido, en mi opinión, al día siguiente.

En comparación con conjuntos de datos anteriores, esta es una base de datos muy grande.

El ejemplo muestra cuán insignificante era todo lo que vino antes. Simultáneamente a la base ImageNet, apareció la competición ImageNet, un desafío internacional en el que pueden participar todos los equipos que deseen competir.

Este año la red ganadora se creó en China, tenía 269 capas. No sé cuántos parámetros hay, sospecho que también hay muchos.

Arquitectura de red neuronal profunda

Convencionalmente se puede dividir en 2 partes: los que estudian y los que no estudian.

El negro indica aquellas partes que no aprenden; todas las demás capas son capaces de aprender. Existen muchas definiciones de lo que hay dentro de cada capa convolucional. Una de las notaciones aceptadas es que una capa con tres componentes se divide en etapa de convolución, etapa de detector y etapa de agrupación.

No entraré en detalles; habrá muchos más informes que discutirán en detalle cómo funciona esto. Te lo cuento con un ejemplo.

Como los organizadores me pidieron que no mencionara muchas fórmulas, las descarté por completo.

Entonces, la imagen de entrada cae en una red de capas, que pueden denominarse filtros de diferentes tamaños y complejidad variable de los elementos que reconocen. Estos filtros forman su propio índice o conjunto de características, que luego ingresan al clasificador. Por lo general, se trata de SVM o MLP, un perceptrón multicapa, lo que le resulte más conveniente.

Al igual que una red neuronal biológica, se reconocen objetos de diversa complejidad. A medida que aumentó el número de capas, todo perdió conexión con la corteza, ya que hay un número limitado de zonas en la red neuronal. 269 ​​o muchas, muchas zonas de abstracción, por lo que sólo se mantiene un aumento en la complejidad, número de elementos y campos receptivos.

Si miramos el ejemplo del reconocimiento facial, entonces nuestro campo receptivo de la primera capa será pequeño, luego un poco más grande, más grande, y así sucesivamente hasta que finalmente podamos reconocer el rostro completo.

Desde el punto de vista de lo que hay dentro de nuestros filtros, primero habrá palos inclinados más un poco de color, luego partes de caras, y luego caras enteras serán reconocidas por cada celda de la capa.

Hay gente que afirma que una persona siempre reconoce mejor que una red. ¿Es esto cierto?

En 2014, los científicos decidieron comprobar qué tan bien reconocemos en comparación con las redes neuronales. Tomaron las dos mejores redes del momento: AlexNet y la red de Matthew Ziller y Fergus, y las compararon con la respuesta de diferentes áreas del cerebro de un macaco, al que también se le enseñó a reconocer algunos objetos. Los objetos eran del mundo animal para que el mono no se confundiera y se realizaron experimentos para ver quién los reconocía mejor.

Como es imposible obtener una respuesta clara del mono, se le implantaron electrodos y se midió directamente la respuesta de cada neurona.

Resultó que, en condiciones normales, las células cerebrales respondían tan bien como el modelo más moderno de ese momento, es decir, la red de Matthew Ziller.

Sin embargo, con un aumento en la velocidad de visualización de objetos, un aumento en la cantidad de ruido y objetos en la imagen, la velocidad y la calidad del reconocimiento de nuestro cerebro y el cerebro de los primates disminuye significativamente. Incluso la red neuronal convolucional más simple puede reconocer mejor los objetos. Es decir, oficialmente las redes neuronales funcionan mejor que nuestro cerebro.

Problemas clásicos de las redes neuronales convolucionales.

En realidad no son muchos; pertenecen a tres clases. Entre ellas se encuentran tareas como identificación de objetos, segmentación semántica, reconocimiento facial, reconocimiento de partes del cuerpo humano, detección de bordes semánticos, resaltado de objetos de atención en una imagen y resaltado de normales de superficie. Se pueden dividir aproximadamente en 3 niveles: desde las tareas de nivel más bajo hasta las tareas de nivel más alto.

Usando esta imagen como ejemplo, veamos qué hace cada tarea.

  • Definiendo límites- Esta es la tarea de nivel más bajo para la que ya se utilizan clásicamente las redes neuronales convolucionales.
  • Determinando el vector a la normal. nos permite reconstruir una imagen tridimensional a partir de una bidimensional.
  • Prominencia, identificación de objetos de atención.- esto es a lo que una persona prestaría atención al mirar esta imagen.
  • Segmentación semántica le permite dividir objetos en clases según su estructura, sin saber nada sobre estos objetos, es decir, incluso antes de que sean reconocidos.
  • Resaltado de límites semánticos- esta es la selección de límites divididos en clases.
  • Destacando partes del cuerpo humano..
  • Y la tarea de más alto nivel es reconocimiento de los propios objetos, que ahora consideraremos usando el ejemplo del reconocimiento facial.

Reconocimiento facial

Lo primero que hacemos es ejecutar el detector de rostros sobre la imagen para encontrar un rostro. Luego, normalizamos, centramos el rostro y lo ejecutamos para procesarlo en una red neuronal, después de lo cual obtenemos un conjunto o vector de características únicas. describe las características de este rostro.

Luego podemos comparar este vector de características con todos los vectores de características almacenados en nuestra base de datos y obtener una referencia a una persona específica, a su nombre, a su perfil, todo lo que podemos almacenar en la base de datos.

Así es exactamente como funciona nuestro producto FindFace: es un servicio gratuito que le ayuda a buscar perfiles de personas en la base de datos de VKontakte.

Además, disponemos de una API para empresas que quieran probar nuestros productos. Brindamos servicios de detección de rostros, verificación e identificación de usuarios.

Ahora hemos desarrollado 2 escenarios. La primera es la identificación, buscar a una persona en una base de datos. La segunda es la verificación, se trata de una comparación de dos imágenes con cierta probabilidad de que se trate de la misma persona. Además, actualmente estamos desarrollando el reconocimiento de emociones, el reconocimiento de imágenes en vídeo y la detección de vida, es decir, saber si la persona que está delante de la cámara o de una fotografía está viva.

Algunas estadísticas. Al identificar, al buscar entre 10 mil fotografías, tenemos una precisión de alrededor del 95%, dependiendo de la calidad de la base de datos, y una precisión de verificación del 99%. Y además, este algoritmo es muy resistente a los cambios: no tenemos que mirar a la cámara, podemos tener algunos objetos que obstruyan: gafas, gafas de sol, barba, mascarilla médica. En algunos casos, incluso podemos superar los increíbles desafíos de la visión por computadora, como gafas y una máscara.

Búsqueda muy rápida, tarda 0,5 segundos en procesar mil millones de fotos. Hemos desarrollado un índice de búsqueda rápida único. También podemos trabajar con imágenes de baja calidad obtenidas de cámaras CCTV. Podemos procesar todo esto en tiempo real. Puede cargar fotos a través de la interfaz web, a través de Android, iOS y buscar entre 100 millones de usuarios y sus 250 millones de fotos.

Como ya dije, obtuvimos el primer lugar en el concurso MegaFace, un análogo de ImageNet, pero para reconocimiento facial. Lleva varios años funcionando, el año pasado fuimos los mejores entre 100 equipos de todo el mundo, incluido Google.

Redes neuronales recurrentes

Usamos redes neuronales recurrentes cuando no nos basta con reconocer solo una imagen. En los casos en los que es importante para nosotros mantener la coherencia, necesitamos el orden de lo que está sucediendo, utilizamos redes neuronales recurrentes ordinarias.

Esto se utiliza para el reconocimiento del lenguaje natural, el procesamiento de videos e incluso para el reconocimiento de imágenes.

No hablaré sobre el reconocimiento del lenguaje natural; después de mi informe habrá dos más que estarán dirigidos al reconocimiento del lenguaje natural. Por tanto, hablaré sobre el trabajo de las redes recurrentes utilizando el ejemplo del reconocimiento de emociones.

¿Qué son las redes neuronales recurrentes? Esto es aproximadamente lo mismo que las redes neuronales ordinarias, pero con retroalimentación. Necesitamos retroalimentación para transmitir el estado anterior del sistema a la entrada de la red neuronal o a alguna de sus capas.

Digamos que procesamos las emociones. Incluso en una sonrisa, una de las emociones más simples, hay varios momentos: desde una expresión facial neutra hasta el momento en que tenemos una sonrisa plena. Se suceden secuencialmente. Para entender esto bien, debemos poder observar cómo sucede y transferir lo que había en el cuadro anterior al siguiente paso del sistema.

En 2005, en el concurso Emotion Recognition in the Wild, un equipo de Montreal presentó un sistema recurrente específico para reconocer emociones, que parecía muy simple. Sólo tenía unas pocas capas convolucionales y trabajaba exclusivamente con vídeo. Este año también agregaron reconocimiento de audio y datos agregados cuadro por cuadro obtenidos de redes neuronales convolucionales, datos de señales de audio con el funcionamiento de una red neuronal recurrente (con retorno de estado) y obtuvieron el primer lugar en la competencia.

Aprendizaje por refuerzo

El siguiente tipo de redes neuronales, que últimamente se utiliza con mucha frecuencia, pero que no ha recibido tanta publicidad como los dos tipos anteriores, es el aprendizaje por refuerzo profundo.

El caso es que en los dos casos anteriores utilizamos bases de datos. Tenemos datos de rostros, datos de imágenes o datos de emociones de videos. Si no tenemos esto, si no podemos filmarlo, ¿cómo podemos enseñarle a un robot a recoger objetos? Hacemos esto automáticamente; no sabemos cómo funciona. Otro ejemplo: compilar grandes bases de datos en juegos de computadora es difícil y no es necesario; se puede hacer mucho más fácilmente.

Probablemente todo el mundo haya oído hablar del éxito del aprendizaje por refuerzo profundo en Atari y Go.

¿Quién ha oído hablar de Atari? Bueno, alguien escuchó, está bien. Creo que todo el mundo ha oído hablar de AlphaGo, así que ni siquiera les diré qué sucede allí exactamente.

¿Qué está pasando en Atari? La arquitectura de esta red neuronal se muestra a la izquierda. Aprende jugando consigo misma para obtener la máxima recompensa. La recompensa máxima es el resultado más rápido posible del juego con la puntuación más alta posible.

En la parte superior derecha se encuentra la última capa de la red neuronal, que representa todos los estados del sistema, que sólo jugó contra sí mismo durante dos horas. Los resultados deseables del juego con la recompensa máxima se representan en rojo y los indeseables, en azul. La red construye un campo determinado y avanza a través de sus capas entrenadas hasta el estado que desea alcanzar.

En robótica la situación es un poco diferente. ¿Por qué? Aquí tenemos varias dificultades. En primer lugar, no tenemos muchas bases de datos. En segundo lugar, necesitamos coordinar tres sistemas a la vez: la percepción del robot, sus acciones con la ayuda de manipuladores y su memoria: qué se hizo en el paso anterior y cómo se hizo. En general, todo esto es muy difícil.

El hecho es que ni una sola red neuronal, ni siquiera el aprendizaje profundo en este momento, puede hacer frente a esta tarea con suficiente eficacia, por lo que el aprendizaje profundo es sólo una parte de lo que los robots deben hacer. Por ejemplo, Sergei Levin proporcionó recientemente un sistema que enseña a un robot a agarrar objetos.

Aquí están los experimentos que realizó con sus 14 brazos robóticos.

¿Qué está pasando aquí? En estos lavabos que ves frente a ti hay diversos objetos: bolígrafos, gomas de borrar, tazas más pequeñas y más grandes, trapos, diferentes texturas, diferentes durezas. No está claro cómo enseñarle a un robot a capturarlos. Durante muchas horas, e incluso semanas, los robots se entrenaron para poder agarrar estos objetos y se compilaron bases de datos al respecto.

Las bases de datos son un tipo de respuesta ambiental que necesitamos acumular para poder entrenar al robot para que haga algo en el futuro. En el futuro, los robots aprenderán de este conjunto de estados del sistema.

Aplicaciones no estándar de redes neuronales.

Lamentablemente este es el final, no tengo mucho tiempo. Os hablaré de aquellas soluciones no estándar que existen actualmente y que, según muchas previsiones, tendrán alguna aplicación en el futuro.

Bueno, a los científicos de Stanford se les ocurrió recientemente una aplicación muy inusual de una red neuronal CNN para predecir la pobreza. ¿Qué hicieron?

En realidad, el concepto es muy simple. El hecho es que en África el nivel de pobreza supera todos los límites concebibles e inconcebibles. Ni siquiera tienen la capacidad de recopilar datos sociodemográficos. Por lo tanto, desde 2005 no tenemos ningún dato sobre lo que está sucediendo allí.

Los científicos recopilaron mapas diurnos y nocturnos de satélites y los alimentaron a una red neuronal durante un período de tiempo.

La red neuronal fue preconfigurada en ImageNet, es decir, las primeras capas de filtros se configuraron para que pudiera reconocer algunas cosas muy simples, por ejemplo, techos de casas, para buscar asentamientos en mapas diurnos. Se compara con los mapas nocturnos la iluminación de la misma zona de la superficie para decir cuánto dinero tiene la población para al menos iluminar sus casas durante la noche.

Aquí ves los resultados del pronóstico construido por la red neuronal. El pronóstico se realizó en diferentes resoluciones. Y ven, en el último cuadro, datos reales recopilados por el gobierno de Uganda en 2005.

Se puede ver que la red neuronal hizo un pronóstico bastante preciso, incluso con un ligero cambio desde 2005.

Por supuesto que hubo efectos secundarios. Los científicos que se dedican al aprendizaje profundo siempre se sorprenden al descubrir varios efectos secundarios. Por ejemplo, que la red haya aprendido a reconocer el agua, los bosques, las grandes obras de construcción, las carreteras, todo ello sin profesores, sin bases de datos prediseñadas. En general, de forma totalmente independiente. Había ciertas capas que reaccionaban, por ejemplo, a las carreteras.

Y la última aplicación de la que me gustaría hablar es la segmentación semántica de imágenes 3D en medicina. En general, la imagen médica es un campo complejo con el que resulta muy difícil trabajar.

Hay varias razones para esto.

  • Disponemos de muy pocas bases de datos. No es tan fácil encontrar una fotografía de un cerebro, es más, dañado, y además es imposible tomarla desde cualquier lugar.
  • Incluso si tenemos una imagen así, necesitamos contratar a un médico y obligarlo a colocar manualmente todas las imágenes de múltiples capas, lo cual requiere mucho tiempo y es extremadamente ineficiente. No todos los médicos tienen los recursos para hacer esto.
  • Se requiere una precisión muy alta. El sistema médico no puede cometer errores. Al reconocer, por ejemplo, los gatos no fueron reconocidos, no es gran cosa. Y si no reconocimos el tumor, entonces esto ya no es muy bueno. Los requisitos para la fiabilidad del sistema son especialmente estrictos en este caso.
  • Las imágenes están formadas por elementos tridimensionales: vóxeles, no píxeles, lo que aporta una complejidad adicional a los desarrolladores de sistemas.
Pero, ¿cómo se solucionó este problema en este caso? CNN tenía doble transmisión. Una parte procesó una resolución más normal y la otra una resolución ligeramente peor para reducir la cantidad de capas que necesitamos entrenar. Gracias a esto, el tiempo necesario para entrenar la red se redujo ligeramente.

Dónde se utiliza: identificar daños después de un impacto, para buscar un tumor en el cerebro, en cardiología para determinar cómo funciona el corazón.

A continuación se muestra un ejemplo para determinar el volumen de la placenta.

Automáticamente funciona bien, pero no lo suficiente como para lanzarlo a producción, por lo que apenas está comenzando. Hay varias empresas emergentes que se dedican a crear este tipo de sistemas de visión médica. En general, habrá muchas nuevas empresas en aprendizaje profundo en el futuro cercano. Dicen que los capitalistas de riesgo han asignado más presupuesto a nuevas empresas de aprendizaje profundo en los últimos seis meses que en los últimos cinco años.

Esta área se está desarrollando activamente, hay muchas direcciones interesantes. Vivimos en tiempos interesantes. Si está involucrado en el aprendizaje profundo, probablemente sea el momento de abrir su propia startup.

Bueno, probablemente lo terminaré aquí. Muchas gracias.

Las redes neuronales son modelos matemáticos, así como sus implementaciones de software o hardware, construidos sobre el principio de organización y funcionamiento de las redes neuronales biológicas: redes de células nerviosas de un organismo vivo.

El concepto de redes neuronales surgió en el estudio de los procesos que ocurren en el cerebro durante el pensamiento y en un intento de modelar estos procesos. Una red neuronal es un sistema de procesadores simples (neuronas) interconectados. Son bastante simples y cada uno de ellos procesa las señales entrantes y las envía a otros procesadores. Cuando se conectan a una red lo suficientemente grande con interacción controlada, estos procesadores localmente simples juntos son capaces de realizar tareas bastante complejas.

Las redes neuronales son capaces de aprender, lo que es una de sus principales ventajas frente a los algoritmos tradicionales. Si consideramos el tema de su entrenamiento desde un punto de vista técnico, podemos entender que consiste en encontrar los coeficientes de conexiones entre neuronas y sinapsis. Durante el proceso de aprendizaje, la red neuronal es capaz de identificar dependencias complejas entre los datos de entrada y de salida, así como realizar una generalización: estas dependencias determinan los pesos. Esto significa que si el entrenamiento tiene éxito, la red podrá devolver el resultado correcto basándose en los datos que faltaban en el conjunto de entrenamiento.

La construcción de redes neuronales se puede dividir en 2 grandes etapas:

  • 1. Seleccionar el tipo (arquitectura) de la red neuronal.
  • 2. Selección de pesos (entrenamiento) de la red neuronal.

En cuanto a la primera etapa, durante ella ocurre todo el trabajo principal del creador: se determina qué neuronas deben usarse en el contexto de la tarea (número de señales de entrada, funciones de transferencia); se selecciona el método para conectar las neuronas entre sí; se toma una decisión sobre qué tomar como entradas y salidas de la red neuronal; se determina la topología de esta red (el número de capas internas), etc. No para cada tarea tiene sentido crear un conjunto único de parámetros, porque Hay muchos tipos de redes, topologías y sus parámetros ya calculados.

Las capas de redes neuronales ya se han mencionado varias veces, por lo que vale la pena decir algunas palabras sobre ellas. En 1981, David Hubel y Torsten Wiesel recibieron el Premio Nobel de Fisiología o Medicina por su descubrimiento del mecanismo de acción de las neuronas de la corteza visual. Demostraron que las capas neuronales ocultas extraen secuencialmente las propiedades más informativas de las señales visuales (por ejemplo, cambios bruscos de brillo o colores, que indican los límites de un objeto) y luego las juntan en un solo todo (los objetos mismos). Y dado que, en esencia, las redes neuronales artificiales son un intento de simular un proceso fisiológico real, este descubrimiento sirvió como una nueva ronda en el desarrollo de las redes neuronales de máquinas y sirve como un excelente ejemplo para comprender las capas del sistema. Siempre hay al menos dos capas: entrada y salida. Si intentamos describirlos desde el punto de vista del ojo humano, entonces la capa de entrada es un sistema sensorial (globos oculares) que recibe señales del mundo exterior y las codifica en un formato fácil de leer, y la capa de salida es un sistema efector que envía señales a “dispositivos de salida de datos”. Además de ellas, la red puede tener capas ocultas (internas) en las que hay neuronas que ni reciben información del exterior del sistema ni la emiten; en estas capas las neuronas interactúan solo con otras neuronas (Fig. 1).

Arroz. 1

Entrenar una red neuronal significa decirle lo que queremos de ella. Este proceso es muy similar a enseñarle el alfabeto a un niño. Después de mostrarle al niño una imagen de la letra “A”, le preguntamos: “¿Qué letra es esta?” Si la respuesta es incorrecta, le decimos al niño la respuesta que nos gustaría que dé: “Esta es la letra A”. El niño recuerda este ejemplo junto con la respuesta correcta, es decir, se producen algunos cambios en su memoria en la dirección correcta. Repetiremos el proceso de presentación de las letras una y otra vez hasta memorizar firmemente las 33 letras. Este proceso se llama "aprendizaje supervisado".

Al entrenar una red neuronal, actuamos exactamente de la misma manera. Tenemos alguna base de datos que contiene ejemplos (por ejemplo, un conjunto de imágenes de letras escritas a mano). Al presentar la imagen de la letra "A" a la entrada de la red neuronal, recibimos de ella alguna respuesta, no necesariamente correcta. También conocemos la respuesta correcta (deseada); en este caso, nos gustaría que el nivel de señal en la salida de la red neuronal denominada "A" sea máximo. Normalmente, la salida deseada en un problema de clasificación es el conjunto (1, 0, 0,.), donde 1 está en la salida denominada "A" y 0 está en todas las demás salidas. Al calcular la diferencia entre la respuesta deseada y la respuesta real de la red, obtenemos 33 números: el vector de error. Podemos presentar la misma letra (así como diferentes imágenes de la misma letra) a la red neuronal muchas veces. En este sentido, aprender se parece más a repetir ejercicios en el deporte: entrenar.

Resulta que después de repetidas presentaciones de ejemplos, los pesos de la red neuronal se estabilizan y la red neuronal da respuestas correctas a todos (o casi todos) los ejemplos de la base de datos. En este caso, dicen que "la red neuronal ha aprendido todos los ejemplos", "la red neuronal está entrenada" o "la red neuronal está entrenada". En las implementaciones de software, se puede ver que durante el proceso de aprendizaje, la magnitud del error (la suma de los errores al cuadrado de todas las salidas) disminuye gradualmente. Cuando el error llega a cero o a un nivel pequeño aceptable, se detiene el entrenamiento y la red neuronal resultante se considera entrenada y lista para usar con nuevos datos.

Es importante señalar que toda la información que tiene una red neuronal sobre un problema está contenida en un conjunto de ejemplos. Por lo tanto, la calidad del entrenamiento de la red neuronal depende directamente de la cantidad de ejemplos en el conjunto de entrenamiento, así como de qué tan completamente estos ejemplos describen la tarea dada. Por ejemplo, no tiene sentido utilizar una red neuronal para predecir una crisis financiera si las crisis no están representadas en el conjunto de formación. Se cree que para entrenar completamente una red neuronal se necesitan al menos varias docenas (y preferiblemente cientos y miles) de ejemplos.

La etapa final es el uso de una red neuronal. Una vez entrenada la red neuronal, podemos usarla para resolver problemas útiles. La característica más importante del cerebro humano es que, una vez aprendido un determinado proceso, puede actuar correctamente en situaciones en las que no estuvo expuesto durante el proceso de aprendizaje. Por ejemplo, podemos leer casi cualquier letra, incluso si la vemos por primera vez en nuestra vida. Asimismo, una red neuronal que ha sido entrenada adecuadamente puede, con una alta probabilidad, responder correctamente a nuevos datos que no se le han presentado previamente. Por ejemplo, podemos dibujar la letra "A" con una letra diferente y luego pedirle a nuestra red neuronal que clasifique la nueva imagen. Los pesos de la red neuronal entrenada almacenan bastante información sobre las similitudes y diferencias de las letras, por lo que puedes contar con la respuesta correcta para una nueva versión de la imagen.

Comencemos nuestra consideración del material presentando y definiendo el concepto mismo de sistema neuronal artificial.

Puede considerarse como un sistema informático analógico que utiliza elementos simples de procesamiento de datos, en su mayoría conectados en paralelo entre sí. Los elementos de procesamiento de datos realizan operaciones lógicas o aritméticas muy simples con sus datos de entrada. La base para el funcionamiento de un sistema neuronal artificial es que a cada elemento de dicho sistema se le asocian coeficientes de peso. Estos pesos representan la información almacenada en el sistema.

Diagrama de una neurona artificial típica.

Una neurona puede tener muchas entradas, pero sólo una salida. El cerebro humano contiene aproximadamente neuronas y cada neurona puede tener miles de conexiones con otras. Las señales de entrada de la neurona se multiplican por coeficientes de ponderación y se suman para obtener la entrada total de la neurona. I:

Arroz. 1.Neurona artificial típica

La función que relaciona la salida de una neurona con sus entradas se llama función de activación. Tiene la forma de una función sigmoidea. θ . La formalización de la respuesta neuronal es que la señal original se envía a uno de los límites al recibir señales de entrada muy pequeñas y muy grandes. Ademas, cada neurona tiene un valor umbral asociado: θ , que en la fórmula para calcular la señal de salida se resta de la señal de entrada total. Como resultado, la salida de una neurona, O, a menudo se describe de la siguiente manera:

Estructura de red con retropropagación" src="https://libtime.ru/uploads/images/00/00/01/2014/06/27/set-s-obratnym-rasprostraneniyem.png.pagespeed.ce.O_0jCrJsLr.png " alt="Estructura de red de retropropagación" width="450" height="370">!}

Arroz. 2. Red de retropropagación

Red de retropropagación Por regla general, se divide en tres segmentos, aunque también se pueden formar segmentos adicionales. Los segmentos (segmento) ubicados entre los segmentos de entrada y salida se denominan segmentos ocultos, ya que el mundo exterior solo percibe visualmente los segmentos de entrada y salida. Una red que evalúa el valor de una operación lógica XOR produce una salida verdadera solo cuando no todas sus entradas son verdaderas o no todas sus entradas son falsas. La cantidad de nodos en un sector oculto puede variar según el propósito del proyecto.

Características de las redes neuronales.

Cabe señalar que las redes neuronales no requieren programación en el sentido habitual de la palabra. Para entrenar redes neuronales, se utilizan algoritmos especiales de entrenamiento de redes neuronales, como la contrapropagación y la retropropagación. El programador “programa” la red especificando entradas y salidas correspondientes. La red aprende ajustando automáticamente los pesos de las conexiones sinápticas entre neuronas.

Los coeficientes de ponderación, junto con los valores umbral de las neuronas, determinan la naturaleza de la distribución de datos a través de la red y, por lo tanto, establecen la respuesta correcta a los datos utilizados en el proceso de entrenamiento. Capacitar a la red para obtener las respuestas correctas puede llevar mucho tiempo. Cuánto depende de cuántas imágenes se deben aprender durante el entrenamiento de la red, así como de las capacidades del hardware y el software de soporte utilizados. Sin embargo, una vez completada la capacitación, la red puede brindar respuestas a alta velocidad.

a su manera arquitectura sistema neuronal artificial Se diferencia de otros sistemas informáticos. En un sistema de información clásico, se implementa la capacidad de conectar información discreta con elementos de memoria. Por ejemplo, normalmente un sistema de información almacena datos sobre un objeto específico en un grupo de elementos de memoria adyacentes. En consecuencia, la capacidad de acceder y manipular datos se logra creando una relación uno a uno entre los atributos de un objeto y las direcciones de las celdas de memoria en las que están almacenados.

A diferencia de estos sistemas, los modelos de sistemas neuronales artificiales se desarrollan basándose en teorías modernas sobre el funcionamiento del cerebro, según las cuales la información se representa en el cerebro mediante pesas. Sin embargo, no existe una correlación directa entre un valor de coeficiente de ponderación específico y un elemento específico de información almacenada.

Esta representación distribuida de información es similar a la tecnología de presentación y almacenamiento de imágenes utilizada en los hologramas. Según esta tecnología, las líneas del holograma actúan como rejillas de difracción. Con su ayuda, cuando pasa un rayo láser, se reproduce la imagen almacenada, aunque los datos en sí no se interpretan directamente.


La red neuronal como medio para resolver un problema.

Red neuronal actúa como un medio aceptable para resolver un problema cuando hay una gran cantidad de datos empíricos, pero no existe un algoritmo que pueda proporcionar una solución suficientemente precisa a la velocidad requerida. En este contexto, la tecnología de presentación de datos de un sistema neuronal artificial tiene ventajas significativas sobre otras tecnologías de la información. Estos ventajas se puede formular de la siguiente manera:

  1. La memoria de la red neuronal es tolerante a fallos. Cuando se eliminan partes individuales de la red neuronal, solo se produce una disminución en la calidad de la información, pero no su desaparición completa; Esto sucede porque la información se almacena de forma distribuida.
  2. La calidad de la información en la red neuronal que está sujeta a reducción disminuye gradualmente, en proporción a la parte de la red que se eliminó. No hay pérdida catastrófica de información.
  3. Los datos en una red neuronal se almacenan de forma natural mediante memoria asociativa. La memoria asociativa es una memoria en la que basta con buscar datos presentados parcialmente para restaurar completamente toda la información. Ésta es la diferencia entre la memoria asociativa y la memoria ordinaria, en la que los datos se obtienen especificando la dirección exacta de los elementos de memoria correspondientes.
  4. permiten realizar extrapolaciones e interpolaciones en función de la información almacenada en ellos. Es decir, la capacitación le permite darle a la red la capacidad de buscar características o relaciones importantes en los datos. Luego, la red puede extrapolar e identificar conexiones en los nuevos datos que recibe. Por ejemplo, en un experimento, se entrenó una red neuronal utilizando un ejemplo hipotético. Después de completar la capacitación, la red adquirió la capacidad de responder correctamente preguntas para las que no se había brindado capacitación.
  5. Las redes neuronales son plásticas. Incluso después de eliminar una cierta cantidad de neuronas, la red se puede volver a entrenar a su nivel primario (por supuesto, si queda una cantidad suficiente de neuronas en ella). Esta característica también es característica del cerebro humano, en el que algunas partes pueden resultar dañadas, pero con el tiempo, con la ayuda del entrenamiento, se alcanza un nivel primario de habilidades y conocimientos.

Gracias a estas características, los sistemas neuronales artificiales se vuelven muy atractivos para su uso en Naves espaciales robóticas, equipos para la industria petrolera, vehículos submarinos, equipos de control de procesos y otros dispositivos técnicos., que debe funcionar durante mucho tiempo sin reparación en un entorno desfavorable. Los sistemas neuronales artificiales no sólo resuelven el problema de la fiabilidad, sino que también permiten reducir los costes operativos gracias a su plasticidad.

Sin embargo, en general, los sistemas neuronales artificiales no son muy adecuados para crear aplicaciones que requieran cálculos matemáticos complejos o encontrar la solución óptima. Además, el uso de un sistema neuronal artificial no será la mejor opción si existe una solución algorítmica que ya ha dado resultados positivos debido a su aplicación práctica para resolver problemas similares.




Arriba