Biblioteca electrónica científica. Funciones de activación en redes neuronales.

) son parte de mi trabajo científico en la universidad, que sonaba así: "Complejo de software para detectar rostros en una transmisión de video utilizando una red neuronal convolucional". El objetivo del trabajo era mejorar las características de velocidad en el proceso de detección de rostros en una transmisión de vídeo. Se utilizó la cámara de un teléfono inteligente como transmisión de video, se escribió un PS de escritorio (lenguaje Kotlin) para crear y entrenar una red neuronal convolucional, así como una aplicación móvil para Android (lenguaje Kotlin), que utilizó la red entrenada y "probó". para reconocer rostros en la transmisión de video de la cámara. Los resultados fueron regulares, use una copia exacta de la topología que propuse bajo su propio riesgo y riesgo (no lo recomendaría).

Problemas teóricos

  • determinar el problema a resolver por una red neuronal (clasificación, predicción, modificación);
  • determinar los datos de entrada (tipo: imagen, sonido, tamaño: 100x100, 30x30, formato: RGB, escala de grises) y salida (número de clases);
  • determinar la topología de la red convolucional (número de capas convolucionales, submuestreadas y completamente conectadas; número de mapas de características, tamaño del núcleo, funciones de activación).

Introducción

Los mejores resultados en el campo del reconocimiento facial los mostró la red neuronal convolucional o red neuronal convolucional (en adelante CNN), que es un desarrollo lógico de las ideas de arquitecturas de redes neuronales como cognitrón y neocognitrón. El éxito se debe a la capacidad de tener en cuenta la topología bidimensional de la imagen, a diferencia del perceptrón multicapa.

Las redes neuronales convolucionales proporcionan resistencia parcial a cambios de escala, desplazamientos, rotaciones, cambios de ángulo y otras distorsiones. Las redes neuronales convolucionales combinan tres ideas arquitectónicas para proporcionar invariancia de escala, rotación, traslación y distorsión espacial:

  • campos receptores locales (proporcionan conectividad bidimensional local de neuronas);
  • coeficientes sinápticos generales (garantiza la detección de ciertas características en cualquier parte de la imagen y reduce el número total de coeficientes de ponderación);
  • organización jerárquica con submuestras espaciales.
Actualmente, la red neuronal convolucional y sus modificaciones se consideran los mejores algoritmos para encontrar objetos en la escena en términos de precisión y velocidad. Desde 2012, las redes neuronales ocupan el primer lugar en el famoso concurso internacional de reconocimiento de imágenes ImageNet.

Por eso en mi trabajo utilicé una red neuronal convolucional basada en los principios del neocognitrón y la complementé con entrenamiento mediante un algoritmo de retropropagación.

Estructura de red neuronal convolucional

Una CNN consta de diferentes tipos de capas: capas convolucionales, capas de submuestreo y capas de una red neuronal "normal": un perceptrón, de acuerdo con la Figura 1.


Figura 1: topología de la red neuronal convolucional

Los dos primeros tipos de capas (convolucional, submuestreo), alternándose entre sí, forman el vector de características de entrada para un perceptrón multicapa.

La red convolucional debe su nombre al nombre de la operación: convolución, cuya esencia se describirá más adelante.

Las redes convolucionales son un feliz término medio entre las redes biológicamente plausibles y un perceptrón multicapa convencional. Hoy en día, los mejores resultados en el reconocimiento de imágenes se obtienen con su ayuda. En promedio, la precisión del reconocimiento de dichas redes supera a las RNA convencionales en un 10-15%. CNN es una tecnología clave del aprendizaje profundo.

La principal razón del éxito del SCN fue el concepto de ponderaciones comunes. A pesar de su gran tamaño, estas redes tienen una pequeña cantidad de parámetros configurables en comparación con su antecesor, el neocognitrón. Existen variantes de CNN (Tiled Convolutional Neural Network), similares al neocognitrón; en este tipo de redes hay un rechazo parcial de los pesos asociados, pero el algoritmo de aprendizaje sigue siendo el mismo y se basa en la retropropagación del error. Las CNN pueden ejecutarse rápidamente en una máquina en serie y aprender rápidamente simplemente paralelizando el proceso de convolución en cada mapa, así como la deconvolución cuando el error se propaga a través de la red.

La siguiente figura demuestra la visualización de convolución y submuestreo:

modelo de neurona


Topología de redes neuronales convolucionales

La topología de la red se determina a partir del problema a resolver, de datos de artículos científicos y de la propia experiencia experimental.

Se pueden distinguir las siguientes etapas que influyen en la elección de la topología:

  • determinar el problema a resolver por una red neuronal (clasificación, predicción, modificación);
  • determinar las limitaciones en el problema a resolver (velocidad, precisión de la respuesta);
  • determine la entrada (tipo: imagen, sonido, tamaño: 100x100, 30x30, formato: RGB, escala de grises) y los datos de salida (número de clases).
La tarea que resuelve mi red neuronal es la clasificación de imágenes, específicamente de rostros. Las restricciones impuestas a la red son la velocidad de respuesta (no más de 1 segundo) y una precisión de reconocimiento de al menos el 70%. Topología general de la red de acuerdo con la Figura 2.


Figura 2: Topología de red neuronal convolucional

Capa de entrada

Los datos de entrada son imágenes JPEG en color, de 48x48 píxeles de tamaño. Si el tamaño es demasiado grande, entonces la complejidad computacional aumentará y, en consecuencia, se violarán las restricciones en la velocidad de respuesta. La determinación del tamaño en este problema se resuelve mediante el método de selección. Si elige un tamaño demasiado pequeño, la red no podrá identificar las características clave de las caras. Cada imagen se divide en 3 canales: rojo, azul, verde. Esto produce 3 imágenes de 48x48 píxeles.

La capa de entrada tiene en cuenta la topología bidimensional de las imágenes y consta de varios mapas (matrices), puede haber un mapa si la imagen se presenta en escala de grises, de lo contrario hay 3, donde cada mapa corresponde a una imagen con un canal específico (rojo, azul y verde).

Los datos de entrada de cada valor de píxel específico se normalizan en el rango de 0 a 1, mediante la fórmula:

capa convolucional

La capa convolucional es un conjunto de mapas (otro nombre es mapas de características, en la vida cotidiana son matrices ordinarias), cada mapa tiene un núcleo sináptico (en diferentes fuentes se llama de manera diferente: núcleo de escaneo o filtro).

La cantidad de tarjetas está determinada por los requisitos de la tarea; si se toma una gran cantidad de tarjetas, la calidad del reconocimiento aumentará, pero también aumentará la complejidad computacional. Con base en el análisis de artículos científicos, en la mayoría de los casos se propone tomar una proporción de uno a dos, es decir, cada mapa de la capa anterior (por ejemplo, en la primera capa convolucional, la anterior es la entrada) es asociado con dos mapas de la capa convolucional, de acuerdo con la Figura 3. Número de tarjetas - 6.


Figura 3 - Organización de conexiones entre los mapas de la capa convolucional y la anterior

El tamaño de todos los mapas de capas convolucionales es el mismo y se calcula mediante la fórmula 2:

El kernel es un filtro o ventana que se desliza por toda el área del mapa anterior y encuentra ciertas características de los objetos. Por ejemplo, si la red se entrenara en muchas caras, entonces uno de los núcleos podría producir la mayor señal en el área del ojo, la boca, las cejas o la nariz durante el proceso de entrenamiento, mientras que otro núcleo podría detectar otras características. El tamaño del núcleo suele oscilar entre 3x3 y 7x7. Si el tamaño del núcleo es pequeño, no podrá resaltar ninguna característica; si es demasiado grande, aumenta el número de conexiones entre neuronas. Además, el tamaño del kernel se elige de manera que el tamaño de los mapas de la capa convolucional sea uniforme, esto nos permite no perder información al reducir la dimensión en la capa de submuestreo que se describe a continuación.

El kernel es un sistema de pesos compartidos o sinapsis, esta es una de las características principales de una red neuronal convolucional. En una red multicapa convencional, existen muchas conexiones entre neuronas, es decir, sinapsis, lo que ralentiza enormemente el proceso de detección. Por el contrario, en una red convolucional, los pesos compartidos reducen el número de conexiones y permiten encontrar la misma característica en toda el área de la imagen.

Inicialmente, los valores de cada mapa de capa convolucional son iguales a 0. Los valores de los pesos del núcleo se establecen aleatoriamente en el rango de -0,5 a 0,5. El kernel se desliza sobre el mapa anterior y realiza una operación de convolución, que a menudo se usa para el procesamiento de imágenes, la fórmula:

Informalmente, esta operación se puede describir de la siguiente manera: con una ventana de tamaño de kernel g, recorremos toda la imagen f con un paso dado (generalmente 1), en cada paso multiplicamos el contenido de la ventana elemento por elemento por el kernel g, el resultado se resume y se escribe en la matriz de resultados, como en la Figura 4.


Figura 4 - Operación de convolución y obtención de los valores del mapa de convolución (válido)


Operación de convolución y obtención de valores del mapa de convolución. El núcleo está desplazado, el nuevo mapa tiene el mismo tamaño que el anterior (mismo)

Además, dependiendo del método de procesamiento de los bordes de la matriz original, el resultado puede ser más pequeño que la imagen original (válida), del mismo tamaño (igual) o mayor (completa), de acuerdo con la Figura 5.


Figura 5 - Tres tipos de convolución de la matriz original

De forma simplificada, esta capa se puede describir mediante la fórmula:

En este caso, debido a efectos de borde, el tamaño de las matrices originales disminuye, fórmula:

Capa de submuestreo

La capa de submuestreo, al igual que la capa convolucional, tiene mapas, pero su número coincide con la capa anterior (convolucional), hay 6. El propósito de la capa es reducir la dimensión de los mapas de la capa anterior. Si algunas características ya se han identificado durante la operación de convolución anterior, entonces una imagen tan detallada ya no es necesaria para su posterior procesamiento y se comprime a una menos detallada. Además, filtrar detalles innecesarios ayuda a evitar el sobreentrenamiento.
Durante el proceso de escaneo del mapa de la capa anterior mediante el núcleo de la capa de submuestreo (filtro), el núcleo de escaneo no se cruza, a diferencia de la capa convolucional. Normalmente, cada mapa tiene un tamaño de núcleo de 2x2, lo que permite reducir los mapas anteriores de la capa convolucional en un factor de 2. Todo el mapa de características se divide en celdas de elementos de 2x2, de las cuales se seleccionan los valores máximos.

Normalmente, la función de activación RelU se aplica en la capa de submuestreo. Operación de submuestreo (o MaxPooling - selección máxima) de acuerdo con la Figura 6.


Figura 6 - Formación de un nuevo mapa de la capa de submuestra basado en el mapa anterior de la capa convolucional. Operación de submuestreo (Max Pooling)

Formalmente, la capa se puede describir mediante la fórmula:

Capa completamente conectada

El último tipo de capa es la capa de un perceptrón multicapa convencional. El propósito de la capa es la clasificación; modela una función no lineal compleja, optimizándola y mejorando la calidad del reconocimiento.

Las neuronas de cada mapa de la capa submuestreada anterior están conectadas a una neurona de la capa oculta. Por lo tanto, el número de neuronas en la capa oculta es igual al número de tarjetas en la capa de submuestra, pero las conexiones pueden no ser necesariamente las mismas; por ejemplo, solo una parte de las neuronas de cualquiera de las tarjetas en la capa de submuestra puede estar conectadas a la primera neurona de la capa oculta, y la parte restante a la segunda, o todas las neuronas de los primeros mapas están conectadas a las neuronas 1 y 2 de la capa oculta. El cálculo de los valores de las neuronas se puede describir mediante la fórmula:

Capa de salida

La capa de salida está conectada a todas las neuronas de la capa anterior. El número de neuronas corresponde al número de clases reconocidas, es decir, 2: faciales y no faciales. Pero para reducir el número de conexiones y cálculos para el caso binario, se puede utilizar una neurona y, cuando se utiliza una tangente hiperbólica como función de activación, la salida de una neurona con un valor de -1 significa que pertenece a la "no persona". clase, por el contrario, la salida de una neurona con un valor de 1 significa que pertenece a la clase personas

Seleccionar una función de activación

Una de las etapas del desarrollo de una red neuronal es la selección de la función de activación neuronal. El tipo de función de activación determina en gran medida la funcionalidad de la red neuronal y el método de entrenamiento de esta red. El algoritmo clásico de retropropagación funciona bien en redes neuronales de dos y tres capas, pero a medida que se profundiza más comienza a experimentar problemas. Una de las razones es la llamada atenuación de gradientes. A medida que el error se propaga desde la capa de salida a la capa de entrada, el resultado actual se multiplica por la derivada de la función de activación en cada capa. La derivada de la función de activación sigmoidea tradicional es menor que uno en todo el dominio de definición, por lo que después de varias capas el error se acercará a cero. Si, por otro lado, la función de activación tiene una derivada ilimitada (como una tangente hiperbólica), entonces el error puede explotar a medida que se propaga, haciendo inestable el procedimiento de aprendizaje.

En este trabajo, la tangente hiperbólica se utiliza como función de activación en las capas oculta y de salida, y ReLU se utiliza en las capas convolucionales. Veamos las funciones de activación más comunes utilizadas en redes neuronales.

Función de activación sigmoidea

Esta función pertenece a la clase de funciones continuas y toma un número real arbitrario en la entrada, y en la salida da un número real en el rango de 0 a 1. En particular, los números negativos grandes (módulo) se convierten en cero y los grandes números positivos en uno. Históricamente, el sigmoide se ha utilizado ampliamente porque su salida se interpreta bien como el nivel de activación de la neurona, que va desde ninguna activación (0) hasta activación completamente saturada (1). Sigmoide se expresa mediante la fórmula:

Gráfica de la función sigmoidea como se muestra a continuación:

Una propiedad extremadamente indeseable del sigmoide es que cuando la función se satura en un lado u otro (0 o 1), el gradiente en estas áreas se acerca a cero.

Recuerde que en el proceso de retropropagación, un gradiente (local) dado se multiplica por el gradiente general. Por lo tanto, si el gradiente local es muy pequeño, efectivamente anula el gradiente general. Como resultado, casi no habrá señal que pase a través de la neurona hasta sus pesos y de forma recursiva hasta sus datos. Además, hay que tener mucho cuidado al inicializar los pesos de las neuronas sigmoideas para evitar la saturación. Por ejemplo, si los pesos iniciales son demasiado grandes, la mayoría de las neuronas entrarán en un estado de saturación, lo que provocará que la red aprenda mal.

La función sigmoidea es:

  • continuo;
  • monótonamente creciente;
  • diferenciable.

Función de activación tangente hiperbólica

En este trabajo, la tangente hiperbólica se utiliza como función de activación para las capas oculta y de salida. Esto se debe a las siguientes razones:
  • las funciones de activación simétrica, como la tangente hiperbólica, proporcionan una convergencia más rápida que la función logística estándar;
  • la función tiene una primera derivada continua;
  • una función tiene una derivada simple que se puede calcular en términos de su valor, lo que ahorra cálculos.
La gráfica de la función tangente hiperbólica se muestra en la figura:

Función de activación ReLU

Se sabe que las redes neuronales son capaces de aproximar una función arbitrariamente compleja si tienen suficientes capas y la función de activación no es lineal. Las funciones de activación como sigmoidea o tangencial no son lineales, pero provocan problemas de atenuación o expansión de gradientes. Sin embargo, puede utilizar una opción mucho más sencilla: una unidad lineal rectificada (ReLU), que se expresa mediante la fórmula:

Gráfico de la función ReLU como se muestra a continuación:

Beneficios de usar ReLU:

  • su derivada es igual a uno o cero y, por lo tanto, los gradientes no pueden crecer ni decrecer, porque multiplicando uno por el delta de error obtenemos el delta de error, pero si usáramos otra función, por ejemplo, una tangente hiperbólica, entonces el delta de error podría disminuir, aumentar o permanecer igual, es decir, la derivada de la hiperbólica tangente devuelve un número con diferente signo y magnitud, lo que puede influir en gran medida en la atenuación o expansión del gradiente. Además, el uso de esta función conduce a un adelgazamiento de los pesos;
  • calcular la tangente sigmoidea e hiperbólica requiere operaciones computacionales intensivas como la exponenciación, mientras que ReLU se puede implementar utilizando una simple transformación de umbral de la matriz de activación en cero;
  • corta partes innecesarias en el canal con una salida negativa.
Entre las desventajas, cabe señalar que ReLU no siempre es lo suficientemente confiable y puede fallar ("morir") durante el proceso de capacitación. Por ejemplo, un gradiente grande que pasa a través de una ReLU puede hacer que los pesos se actualicen de modo que la neurona nunca vuelva a activarse. Si esto sucede, entonces, a partir de este momento, el gradiente que pasa por esta neurona siempre será cero. En consecuencia, esta neurona quedará irreversiblemente desactivada. Por ejemplo, si la tasa de aprendizaje es demasiado alta, puede resultar que hasta el 40% de los ReLU estén "muertos" (es decir, nunca activados). Este problema se resuelve eligiendo una tasa de aprendizaje adecuada.

Muestras de entrenamiento utilizadas en experimentos.

La muestra de entrenamiento consta de ejemplos positivos y negativos. En este caso, de personas y “no personas”. La proporción de ejemplos positivos y negativos es de 4 a 1, 8000 positivos y 2000 negativos.

La base de datos LFW3D se utilizó como conjunto de entrenamiento positivo. Contiene 13.000 imágenes JPEG en color de rostros frontales, de tamaño 90x90 píxeles. La base de datos se proporciona vía FTP, el acceso es mediante contraseña. Para recibir una contraseña, debe completar un formulario simple en la página principal del sitio, donde indica su nombre y correo electrónico. Un ejemplo de personas de la base de datos se muestra como se muestra en la siguiente figura:

Como ejemplo de entrenamiento negativo se utilizó la base de datos SUN397; contiene una gran cantidad de escenas de todo tipo, que se dividen en categorías; Un total de 130.000 imágenes, 908 escenas, 313.000 objetos de escena. El peso total de esta base de datos es de 37 GB. Las categorías de imágenes son muy diferentes y te permiten seleccionar un entorno más específico donde se utilizará el PS final. Por ejemplo, si se sabe a priori que el detector de rostros está destinado únicamente al reconocimiento en interiores, entonces no tiene sentido utilizar una muestra de entrenamiento de la naturaleza, el cielo, las montañas, etc. Por ello, el autor de la obra seleccionó las siguientes categorías de imágenes: sala de estar, oficina, aula, sala de ordenadores. A continuación se muestran imágenes de ejemplo del conjunto de entrenamiento SUN397:

Resultados

La propagación directa de la señal desde una imagen de entrada que mide 90x90 píxeles tarda 20 ms (en una PC) y 3000 ms en una aplicación móvil. Al detectar una cara en una transmisión de video con una resolución de 640x480 píxeles, es posible detectar 50 áreas no superpuestas que miden 90x90 píxeles. Los resultados obtenidos con la topología de red seleccionada son peores en comparación con el algoritmo de Viola-Jones.

Conclusiones

Las redes neuronales convolucionales proporcionan resistencia parcial a cambios de escala, desplazamientos, rotaciones, cambios de ángulo y otras distorsiones.

Centro- es un filtro que se desliza sobre toda la imagen y encuentra rasgos faciales en cualquier parte de la imagen (invariancia de desplazamiento).

Capa de submuestreo da:

  • aumentar la velocidad de los cálculos (al menos 2 veces), reduciendo el tamaño de los mapas de la capa anterior;
  • filtrado de detalles ya innecesarios;
  • buscar características de un nivel superior (para la siguiente capa convolucional).
Últimas capas– capas de un perceptrón multicapa convencional. Dos totalmente conectados y una salida. Esta capa es responsable de la clasificación; desde un punto de vista matemático, modela una función no lineal compleja, optimizándola y mejorando la calidad del reconocimiento. La cantidad de neuronas en la capa 6 se basa en la cantidad de mapas de características de la capa submuestreada.

Posibles mejoras

  • considere las redes neuronales Fast-RCNN, YOLO;
  • paralelización del proceso de aprendizaje en GPU;
  • usando Android NDK (C++) para mejorar el rendimiento

El entrenamiento de una red neuronal convolucional se describe en

En la segunda parte del artículo, continuamos nuestra discusión sobre las complejidades del aprendizaje profundo.

5. Selección de funciones de activación.

Uno de los aspectos más importantes de una red neuronal profunda es función de activación(función de activación), que trae a la red no linealidad. A continuación, veremos funciones de activación comunes y daremos recomendaciones sobre cómo elegirlas.

Sigmoideo

El sigmoide se expresa mediante la siguiente fórmula: σ(x) = 1 / (1 + mi -x). Esta función toma un número real arbitrario como entrada y en la salida proporciona un número real en el rango de 0 a 1. En particular, los números negativos grandes (módulo) se convierten en cero y los números positivos grandes en uno. Históricamente, el sigmoide se ha utilizado ampliamente porque su salida se interpreta bien como el nivel de activación de la neurona, que va desde ninguna activación (0) hasta activación completamente saturada (1).

Actualmente, el sigmoide ha perdido su antigua popularidad y se usa muy raramente. Esta función tiene dos serios inconvenientes:

  1. La saturación del sigmoide conduce a la atenuación de los gradientes. Una propiedad extremadamente indeseable del sigmoide es que cuando la función se satura en un lado u otro (0 o 1), el gradiente en estas áreas se acerca a cero. Recuerde que en el proceso de retropropagación, un gradiente (local) dado se multiplica por el gradiente general. Por lo tanto, si el gradiente local es muy pequeño, efectivamente anula el gradiente general. Como resultado, casi ninguna señal pasará a través de la neurona hasta sus pesos y de forma recursiva hasta sus datos. Además, hay que tener mucho cuidado al inicializar los pesos de las neuronas sigmoideas para evitar la saturación. Por ejemplo, si los pesos iniciales son demasiado grandes, la mayoría de las neuronas entrarán en un estado de saturación, lo que provocará que la red aprenda mal.
  2. La salida sigmoidea no está centrada alrededor de cero. Esta propiedad no es deseable porque las neuronas de las capas posteriores recibirán valores que no están centrados alrededor de cero, lo que afecta la dinámica del descenso del gradiente. Si los valores que ingresan a la neurona son siempre positivos (por ejemplo, x > 0 elemento por elemento en f = ω T x + b), luego en el proceso de retropropagación todos los gradientes de los pesos ω será positivo o negativo (dependiendo del gradiente de toda la expresión F). Esto puede provocar una dinámica en zigzag no deseada en las actualizaciones de peso. Sin embargo, cabe señalar que cuando estos gradientes se suman en un paquete, la actualización final de los pesos puede tener signos diferentes, lo que mitiga en parte el inconveniente descrito. Por tanto, la falta de centrado es un inconveniente, pero tiene consecuencias menos graves que el problema de saturación.

Tangente hiperbólica

La tangente hiperbólica (tanh) toma un número real arbitrario como entrada y produce un número real en el rango de –1 a 1 como salida. Al igual que el sigmoide, la tangente hiperbólica puede saturarse. Sin embargo, a diferencia del sigmoide, la salida de esta función está centrada alrededor de cero. Por tanto, en la práctica siempre es preferible utilizar la tangente hiperbólica que la sigmoidea.

ReLU

En los últimos años se ha vuelto muy popular una función de activación llamada rectificador, similar al rectificador de media onda en ingeniería eléctrica. Las neuronas con esta función de activación se denominan ReLU (unidad lineal rectificada). ReLU tiene la siguiente fórmula f(x) = máx(0, x) e implementa una transición de umbral simple en cero.

Veamos los aspectos positivos y negativos de ReLU.

Positivos:

  1. Calcular la tangente sigmoidea e hiperbólica requiere operaciones computacionales intensivas, como la exponenciación, mientras que ReLU se puede implementar utilizando una simple transformación de umbral de la matriz de activación en cero. Además, ReLU no está sujeto a saturación.
  2. El uso de ReLU aumenta significativamente la velocidad de convergencia del descenso de gradiente estocástico (en algunos casos hasta 6 veces) en comparación con la tangente sigmoidea e hiperbólica. Se cree que esto se debe al carácter lineal y a la falta de saturación de esta función.

Negativos:

  1. Desafortunadamente, los ReLU no siempre son lo suficientemente confiables y pueden fallar ("morir") durante el proceso de capacitación. Por ejemplo, un gradiente grande que pasa a través de una ReLU puede hacer que los pesos se actualicen de modo que la neurona nunca vuelva a activarse. Si esto sucede, entonces, a partir de este momento, el gradiente que pasa por esta neurona siempre será cero. En consecuencia, esta neurona quedará irreversiblemente desactivada. Por ejemplo, si la tasa de aprendizaje es demasiado alta, puede resultar que hasta el 40% de los ReLU estén "muertos" (es decir, nunca activados). Este problema se resuelve eligiendo una tasa de aprendizaje adecuada.

Actualmente, existe toda una familia de diferentes modificaciones de ReLU. A continuación veremos sus características.

Para LReLU αi tiene un valor fijo, para PReLU αi se determina en función de los datos, para RReLU αji se genera aleatoriamente a partir de un intervalo determinado durante el entrenamiento y permanece constante durante las pruebas.

ReLU con fugas

Leaky ReLU (LReLU) es un intento de resolver el problema de falla de los ReLU convencionales descrito anteriormente. ReLU regular en un intervalo incógnita< 0 da una salida cero, mientras que LReLU tiene un pequeño valor negativo en este intervalo (pendiente de aproximadamente 0,01). Es decir, la función para LReLU tiene la forma f(x) = αx en incógnita< 0 Y f(x) = x en x ≥ 0, donde α es una pequeña constante. Algunos investigadores han informado de éxito al utilizar esta función de activación, pero los resultados no siempre son consistentes.

ReLU paramétrica

Para ReLU paramétrico (ReLU paramétrico, PReLU), la pendiente en el intervalo negativo no está preestablecida, sino que se determina en función de los datos. Los autores de la publicación afirman que el uso de esta función de activación es un factor clave para superar el nivel humano en la tarea de reconocimiento de imágenes de ImageNet. El proceso de retropropagación y actualización para PReLU (página 43 diapositivas) es bastante simple y similar al proceso correspondiente para los ReLU tradicionales.

ReLU aleatorizado

Para ReLU aleatorio (ReLU aleatorio, RReLU), la pendiente del intervalo negativo se genera aleatoriamente a partir de un intervalo determinado durante el entrenamiento y permanece constante durante la prueba. Como parte de la competencia Kaggle del National Data Science Bowl (NDSB), los RReLU pudieron reducir el sobreajuste debido a su elemento inherente de aleatoriedad. Según el ganador de este concurso, durante el entrenamiento el valor α i se generó aleatoriamente a partir de la distribución 1/U(3, 8), y durante la prueba el valor fue constante e igual a la expectativa matemática: 2 / (l + u) = 2 / 11.

La regularización L1 tiene la interesante propiedad de que hace que los vectores de peso se vuelvan escasos (es decir, muy cercanos a cero). En otras palabras, las neuronas regularizadas L1 terminan utilizando sólo un pequeño subconjunto de las entradas más importantes y, por lo tanto, no se ven afectadas en gran medida por las entradas ruidosas.

En la práctica, si no es necesario realizar una selección directa de funciones, la regularización L2 proporcionará mejores resultados en comparación con la regularización L1.

Limitación de la norma del vector de pesos.

Otro método de regularización es el método de limitar la norma del vector de peso (restricción de norma máxima). En este método, establecemos un límite superior absoluto para la norma del vector de peso de cada neurona. La restricción se aplica mediante el descenso de gradiente proyectado. En la práctica, esto se implementa de la siguiente manera: actualice los pesos como de costumbre y luego vectorice los pesos. ω cada neurona está limitada para que se cumpla la condición ||ω|| 2< c . Generalmente el valor do es del orden de 3 o 4. Algunos investigadores han informado efectos positivos al utilizar este método de regularización. Una de las propiedades útiles de este método es que evita que los pesos exploten incluso si la tasa de aprendizaje es demasiado alta, porque las actualizaciones de pesos siempre son limitadas.

Abandonar

El abandono es un método de regularización simple y muy efectivo que complementa los métodos anteriores. Fue propuesto recientemente en el trabajo. La esencia del método es que durante el proceso de entrenamiento, se selecciona aleatoriamente una subred de la red general muchas veces y los pesos se actualizan solo dentro de esta subred. Las neuronas caen en una subred con una probabilidad pag, que se llama coeficiente de deserción. Durante las pruebas, no se aplica ningún abandono; en cambio, las ponderaciones se multiplican por el factor de abandono, lo que da como resultado una puntuación promedio para el conjunto de todas las subredes. En la práctica, la tasa de abandono pag Por lo general, se elige que sea 0,5, pero se puede ajustar utilizando un conjunto de datos de validación.

El abandono es uno de los métodos de regularización más populares. Google presentó una solicitud de patente para este método en 2014.

7. Visualización

Durante el proceso de aprendizaje, es útil realizar visualización para monitorear la efectividad del aprendizaje.

Como es sabido, la tasa de aprendizaje es un parámetro muy sensible. En la Figura 1 a continuación vemos que a una tasa de aprendizaje muy alta la curva de error tendrá una forma inaceptable. Con una tasa de aprendizaje baja, el error disminuirá muy lentamente incluso después de una gran cantidad de épocas. Con una alta tasa de aprendizaje, el error al principio disminuye rápidamente, pero luego cae a un mínimo local, por lo que es posible que la red no logre buenos resultados. En el caso de que la tasa de aprendizaje se seleccione correctamente (buena) (línea roja), el error disminuye suavemente y finalmente alcanza un valor mínimo.

Ahora veamos la curva de error a mayor escala. Una época corresponde a un único paso por el conjunto de datos de entrenamiento; en consecuencia, cada época incluye muchos mini lotes. Si visualizamos el error de cada minilote, la curva de error se verá como la Figura 2. Como se menciona en la Figura 1, si la curva de error tiene una forma cercana a lineal, esto indica una tasa de aprendizaje baja. Si el error disminuye lentamente, probablemente la tasa de aprendizaje sea demasiado rápida. El "ancho" de la curva corresponde al tamaño del minilote. Si el "ancho" es demasiado grande, es decir, la distribución entre minipaquetes es demasiado grande, entonces es necesario aumentar el tamaño del minipaquete.

Se puede sacar otra conclusión utilizando las curvas de precisión. En la Figura 3, la curva roja representa la precisión del conjunto de datos de entrenamiento y la curva verde del conjunto de datos de validación. La distancia entre las curvas muestra cuán eficiente es el modelo. Una distancia grande indica que la red es buena para clasificar datos de entrenamiento y mala para clasificar datos de validación. Por tanto, en este caso hay sobreentrenamiento. Para resolver este problema es necesario reforzar la regularización. Si no hay distancia entre las curvas y ambas curvas corresponden a un nivel bajo de precisión, entonces nuestro modelo tiene una capacidad de aprendizaje insuficiente. En este caso, para mejorar el resultado es necesario aumentar la capacidad del modelo.

8. Conjuntos de redes profundas.

Diferentes etapas de entrenamiento de un modelo.

En el caso de que el proceso de aprendizaje requiera muchos recursos, se pueden combinar diferentes etapas de entrenamiento de un modelo (punto de control) en un conjunto, por ejemplo, después de cada época. Este enfoque no ofrece mucha variedad, pero en la práctica puede dar resultados bastante buenos.

Ejemplo práctico:

En los problemas de la vida real, los datos generalmente se distribuyen de manera desigual entre las clases, es decir, algunas clases tienen una gran cantidad de imágenes de entrenamiento y otras tienen una cantidad significativamente menor. Como se informó en un informe reciente, los datos de entrenamiento desequilibrados pueden tener un impacto negativo grave en el rendimiento general de las redes convolucionales profundas. La solución más sencilla a este problema es duplicar imágenes en clases con una pequeña cantidad de imágenes o excluir imágenes de clases con una gran cantidad de imágenes. Otra solución a este problema, que aplicamos en el contexto del concurso descrito anteriormente, es el encuadre. Debido a que las imágenes originales de eventos culturales no estaban distribuidas uniformemente entre las clases, extrajimos parches de imágenes para clases con una pequeña cantidad de instancias de capacitación. Por un lado, este enfoque proporcionó una variedad de datos de entrenamiento y, por otro lado, nos permitió resolver el problema del desequilibrio.

Para resolver el problema descrito, también puede aplicar la estrategia de ajuste fino de modelos previamente entrenados. En particular, el conjunto de datos de entrenamiento original se puede dividir en dos partes, de modo que una parte contenga clases representadas por una gran cantidad de imágenes y la otra contenga clases representadas por una pequeña cantidad de imágenes. Cada parte estará relativamente equilibrada. Después de esto, primero debe entrenar el modelo en clases con una gran cantidad de imágenes y luego en clases con una pequeña cantidad de imágenes.

Traducción de Stanislav Petrenko

La voluntad es la capacidad de una persona para controlar su comportamiento, para movilizar su fuerza para superar las dificultades que se interponen en el camino hacia su objetivo. No todas las acciones humanas son volitivas. Las acciones que no están asociadas con el establecimiento consciente de objetivos y la superación de dificultades (por ejemplo, girar la cabeza hacia un sonido agudo o inesperado) son involuntarias. Las acciones voluntarias siempre presuponen la conciencia del objetivo, la representación de aquellas operaciones con cuya ayuda se puede lograr. Se trata de acciones conscientes encaminadas a un objetivo concreto y asociadas a la superación de las dificultades que enfrenta una persona en el camino hacia la meta.

En la actividad mental humana, la voluntad realiza dos funciones interrelacionadas: activar e inhibir. La función activadora se manifiesta en el hecho de que la voluntad permite a una persona movilizar sus fuerzas internas y dirigirlas a una actividad vigorosa para lograr un objetivo conscientemente fijado. La voluntad asegura la transición de la cognición y las experiencias humanas a la actividad práctica de acuerdo con las necesidades, intenciones e intereses de cada uno. Al mismo tiempo, con la ayuda de esfuerzos volitivos, una persona regula su comportamiento, inhibe el surgimiento de tales impulsos y la implementación de acciones que no corresponden a sus ideales, creencias y requisitos. Aquí es donde encuentra su expresión la función de inhibición, control y regulación de la conducta.

La base fisiológica de la voluntad es la interacción del primer y segundo sistema de señalización de la corteza cerebral. Con la ayuda, principalmente, del primer sistema de señales se realiza un reflejo directo del entorno y las condiciones de la actividad humana. Fijarse una meta, pensar en formas de lograrla, los esfuerzos conscientes, superar las dificultades y gestionarse uno mismo se basan en la actividad del segundo sistema de señalización. En la unidad e interacción de estos dos sistemas, el segundo sistema de señalización juega un papel protagonista. "El hombre", dijo I.P. Pavlov, "primero percibe la realidad a través del primer sistema de señales, luego se convierte en dueño de la realidad a través del segundo sistema de señales (la palabra, el habla, el pensamiento científico)".

Cuando se realiza una acción volitiva, surgen procesos complejos de excitación e inhibición en la corteza cerebral. La excitación te permite activarte, la inhibición te permite retrasar palabras y movimientos. La fuerza y ​​​​el equilibrio de los procesos nerviosos de la corteza cerebral (el primer y segundo sistema de señalización) son la base de la regulación humana del comportamiento.

El proceso volitivo está estrechamente relacionado con todos los demás aspectos de la psique humana: atención, pensamiento, imaginación, memoria, sentimientos, temperamento, habilidades, carácter. "La voluntad", escribió I. M. Sechenov, "no es una especie de agente impersonal que controla sólo el movimiento, es el lado activo de la razón y el sentimiento moral".

Una persona supera un obstáculo no solo gracias a su voluntad y bajo la influencia de sus necesidades, sentimientos, experiencias, conocimientos, hábitos. Por tanto, la superación de las dificultades no puede considerarse el único criterio de voluntad. La especificidad del proceso mental volitivo consiste en esfuerzos conscientes destinados a activar todas las posibilidades para lograr una meta.

Cada acción volitiva tiene una determinada estructura interna. En una acción volitiva simple, se distinguen claramente dos vínculos: el establecimiento de objetivos y la ejecución. Una acción encaminada a la consecución de un objetivo se lleva a cabo inmediatamente en cuanto surge el impulso correspondiente. Aquí no hay enlaces intermedios.

La acción volitiva compleja incluye: conciencia del objetivo y su importancia; determinar formas de lograr el objetivo, los cursos de acción más adecuados; Toma de decisiones; ejecución de la decisión tomada, cumplimiento de la tarea asignada; evaluación de lo realizado.

Cualquier acción volitiva presupone la presencia de una meta que se presenta ante una persona. En otras palabras, una persona se da cuenta de lo que quiere lograr a través de determinadas acciones: cambiar su posición en el equipo, satisfacer algunas necesidades, etc. La meta de una persona surge como resultado de la actualización de motivaciones internas (motivos) o de la conciencia de la tarea asignada por el líder, comandante. Un problema psicológico importante aquí es la profunda conciencia de una persona de la necesidad de completar una tarea determinada, convirtiéndola en una meta aceptada internamente y el surgimiento del deseo de lograrla.

El siguiente eslabón en la acción volitiva es pensar en cómo lograr la meta, cuáles deben ser los caminos para lograrla, qué tipos de acciones conducen a ella. Durante esta deliberación, a veces se sopesa la conveniencia de un camino u otro, la elección de aquellos medios que hacen realista la consecución del objetivo. Todo esto está relacionado con la actividad intelectual humana. La esfera motivacional del individuo a menudo se ve afectada y surge una lucha de motivos, es decir, un choque de motivos opuestos y divergentes entre los cuales se debe hacer una elección. Y ya aquí una persona tiene que mostrar un esfuerzo decidido para superar la lucha de impulsos contradictorios.

Un elemento esencial de la acción volitiva es la decisión de realizar una determinada acción, con cuya ayuda lograr el objetivo. Tomar una decisión requiere no sólo la máxima conciencia, sino también determinación y responsabilidad personal. Con la adopción de una decisión, por regla general, se produce una liberación y se debilita la tensión que acompaña a la lucha de motivos. Una persona experimenta un alivio total, un sentimiento de satisfacción, todas las dudas y tensiones internas se alivian si la decisión tomada corresponde a sus deseos y pensamientos. Pero el alivio también llega cuando la decisión tomada no es del todo coherente con los deseos y aspiraciones de la persona. La tensión se reduce por el hecho mismo de que se toma la decisión.

La ejecución de una decisión es la parte más importante de la acción volitiva. Supone siempre superar las dificultades externas e internas. Las dificultades externas y objetivas no dependen de la persona misma. Se trata de dificultades en el trabajo, la complejidad de las operaciones realizadas que requieren un gran esfuerzo físico, la resistencia de otras personas, las condiciones meteorológicas y climáticas, etc. Las dificultades internas y subjetivas dependen del estado físico y mental de una persona. Estos incluyen la falta de conocimiento, experiencia, contradicción entre viejos hábitos y nuevos requisitos, etc. En la mayoría de los casos, las dificultades externas e internas se manifiestan en unidad.

Para superar estas dificultades, se requiere un esfuerzo volitivo, que se caracteriza por la cantidad de energía gastada por una persona para realizar una acción intencionada o abstenerse de realizarla. El esfuerzo volitivo impregna todos los vínculos del acto volitivo: conciencia del objetivo, determinación de las formas de lograrlo, toma de decisiones. Pero se manifiesta especialmente en el proceso de implementación de la decisión tomada, en la lucha contra las dificultades. Por la capacidad de una persona para demostrar esfuerzos volitivos, se juzgan las características de su voluntad.

Un lugar importante en la estructura psicológica de la acción volitiva lo ocupa la valoración de lo hecho. Incluso en el proceso de actividad, una persona controla y corrige sus acciones. En cada momento compara el resultado obtenido con la imagen ideal de la portería (o parte de ella), que fue creada de antemano. En la etapa final de la actividad, la evaluación de sus resultados y el análisis del proceso para lograr el objetivo adquieren un significado independiente. Esto es necesario para identificar y tener en cuenta en el futuro tanto los aspectos positivos como los defectos de las acciones de una persona.

Una acción volitiva particularmente significativa (acto heroico, hazaña) se realiza como un impulso en un tiempo extremadamente corto con la movilización de todas las fuerzas del individuo. En tales condiciones, todos los vínculos de la acción volitiva parecen fusionarse y penetrarse entre sí. La conciencia del objetivo, la toma de decisiones, los programas de acción y la determinación de formas de lograr el objetivo se entrelazan aquí en las acciones prácticas directas de una persona. La mayoría de las veces esto sucede en circunstancias de emergencia: en una situación de combate, al salvar vidas, durante desastres naturales, accidentes, desastres, etc.

AFUERA = k(NETO),

Dónde A - función de umbral constante

OUT = 1 si NET > T, OUT = 0 en caso contrario,

Dónde T- algún valor umbral constante, o una función que modele con mayor precisión la característica de transferencia no lineal de una neurona biológica y represente grandes posibilidades para la red neuronal.

Arroz. 3.

En la figura. 3 cuadras, designadas F, recibe la señal NET y emite la señal OUT. si el bloque F reduce el rango de cambios en el valor de NET de modo que para cualquier valor de NET los valores de OUT pertenecen a un cierto intervalo finito, entonces F llamado Función "compresora". La función logística o "sigmoidea" (en forma de S) que se muestra en la figura 4a se utiliza a menudo como función de "compresión". Esta función se expresa matemáticamente como

F(x)= 1/(1 + mi -x).

De este modo,

Por analogía con los sistemas electrónicos, la función de activación puede considerarse una amplificación no lineal característica de una neurona artificial. La ganancia se calcula como la relación entre el incremento en OUT y el pequeño incremento en NET que lo causó. Se expresa por la pendiente de la curva a un cierto nivel de excitación y varía desde valores pequeños con grandes excitaciones negativas (la curva es casi horizontal) hasta un valor máximo con excitación cero y disminuye nuevamente cuando la excitación se vuelve positiva grande. Grossberg (1973) descubrió que esa respuesta no lineal resolvía su dilema de la saturación de ruido. ¿Cómo puede una misma red manejar señales fuertes y débiles? Las señales débiles necesitan una amplificación de línea alta para producir una señal de salida utilizable. Sin embargo, las etapas del amplificador de alta ganancia pueden hacer que la salida se sature con el ruido del amplificador (fluctuaciones aleatorias) que está presente en cualquier red implementada físicamente. Las señales de entrada fuertes, a su vez, también saturarán las etapas del amplificador, eliminando el uso útil de la salida. La región central de la función logística, que tiene una ganancia alta, resuelve el problema de manejar señales débiles, mientras que las regiones con ganancia decreciente en los extremos positivo y negativo son adecuadas para excitaciones grandes. Por tanto, la neurona funciona con alta ganancia en una amplia gama de niveles de señal de entrada.


Arroz.

Otra función de activación muy utilizada es la tangente hiperbólica. Tiene una forma similar a la función logística y los biólogos la utilizan a menudo como modelo matemático de activación de las células nerviosas. Como función de activación de una red neuronal artificial, se escribe de la siguiente manera:


Arroz.

Al igual que la función logística, la tangente hiperbólica es una función en forma de S, pero es simétrica con respecto al origen, y en el punto NET = 0 la señal de salida OUT es cero (ver Fig. 4b). A diferencia de la función logística, la tangente hiperbólica toma valores de diferentes signos, lo que resulta beneficioso para varias redes.

El modelo considerado simple de neurona artificial ignora muchas de las propiedades de su contraparte biológica.

Por ejemplo, no tiene en cuenta los retrasos que afectan la dinámica del sistema. Las señales de entrada generan inmediatamente una señal de salida. Y, lo que es más importante, no tiene en cuenta los efectos de la función de modulación de frecuencia ni de la función de sincronización de la neurona biológica, que varios investigadores consideran cruciales.

A pesar de estas limitaciones, las redes construidas a partir de estas neuronas exhiben propiedades que se asemejan mucho a un sistema biológico. Sólo el tiempo y la investigación podrán responder a la pregunta de si tales coincidencias son accidentales o una consecuencia del hecho de que el modelo capta correctamente las características más importantes de una neurona biológica.




Arriba