Red neuronal artificial - Guía rápida

Las redes neuronales son dispositivos de computación paralelos, que es básicamente un intento de hacer un modelo computarizado del cerebro. El objetivo principal es desarrollar un sistema para realizar diversas tareas computacionales más rápido que los sistemas tradicionales. Estas tareas incluyen reconocimiento y clasificación de patrones, aproximación, optimización y agrupación de datos.

¿Qué es la red neuronal artificial?

La red neuronal artificial (ANN) es un sistema informático eficiente cuyo tema central se toma prestado de la analogía de las redes neuronales biológicas. Las ANN también se denominan "sistemas neuronales artificiales" o "sistemas de procesamiento distribuido en paralelo" o "sistemas conexionistas". ANN adquiere una gran colección de unidades que están interconectadas en algún patrón para permitir la comunicación entre las unidades. Estas unidades, también denominadas nodos o neuronas, son procesadores simples que operan en paralelo.

Cada neurona está conectada con otra neurona a través de un enlace de conexión. Cada enlace de conexión está asociado con un peso que tiene información sobre la señal de entrada. Esta es la información más útil para que las neuronas resuelvan un problema particular porque el peso suele excitar o inhibir la señal que se está comunicando. Cada neurona tiene un estado interno, que se llama señal de activación. Las señales de salida, que se producen después de combinar las señales de entrada y la regla de activación, pueden enviarse a otras unidades.

Una breve historia de ANN

La historia de ANN se puede dividir en las siguientes tres eras:

ANN durante las décadas de 1940 a 1960

Algunos desarrollos clave de esta era son los siguientes:

  • 1943 - Se ha asumido que el concepto de red neuronal comenzó con el trabajo del fisiólogo Warren McCulloch y el matemático Walter Pitts, cuando en 1943 modelaron una red neuronal simple utilizando circuitos eléctricos para describir cómo podrían funcionar las neuronas en el cerebro. .

  • 1949- El libro de Donald Hebb, The Organization of Behavior , expone el hecho de que la activación repetida de una neurona por otra aumenta su fuerza cada vez que se utilizan.

  • 1956 - Taylor introdujo una red de memoria asociativa.

  • 1958 - Rosenblatt inventó un método de aprendizaje para el modelo de neuronas de McCulloch y Pitts llamado Perceptron.

  • 1960 - Bernard Widrow y Marcian Hoff desarrollaron modelos llamados "ADALINE" y "MADALINE".

ANN durante las décadas de 1960 a 1980

Algunos desarrollos clave de esta era son los siguientes:

  • 1961 - Rosenblatt hizo un intento fallido pero propuso el esquema de "retropropagación" para redes multicapa.

  • 1964 Taylor construyó un circuito en el que el ganador se lo lleva todo con inhibiciones entre las unidades de salida.

  • 1969 - El perceptrón multicapa (MLP) fue inventado por Minsky y Papert.

  • 1971 - Kohonen desarrolló memorias asociativas.

  • 1976 - Stephen Grossberg y Gail Carpenter desarrollaron la teoría de resonancia adaptativa.

ANN desde 1980 hasta la actualidad

Algunos desarrollos clave de esta era son los siguientes:

  • 1982 - El mayor avance fue el enfoque energético de Hopfield.

  • 1985 - La máquina de Boltzmann fue desarrollada por Ackley, Hinton y Sejnowski.

  • 1986 - Rumelhart, Hinton y Williams introdujeron la regla delta generalizada.

  • 1988 - Kosko desarrolló Binary Associative Memory (BAM) y también dio el concepto de Fuzzy Logic en ANN.

La revisión histórica muestra que se han logrado avances significativos en este campo. Están surgiendo chips basados ​​en redes neuronales y se están desarrollando aplicaciones para problemas complejos. Sin duda, hoy es un período de transición para la tecnología de redes neuronales.

Neurona biológica

Una célula nerviosa (neurona) es una célula biológica especial que procesa información. Según una estimación, hay una gran cantidad de neuronas, aproximadamente 10 11 con numerosas interconexiones, aproximadamente 10 15 .

Diagrama esquemático

Funcionamiento de una neurona biológica

Como se muestra en el diagrama anterior, una neurona típica consta de las siguientes cuatro partes con la ayuda de las cuales podemos explicar su funcionamiento:

  • Dendrites- Son ramas con forma de árbol, encargadas de recibir la información de otras neuronas a las que está conectada. En otro sentido, podemos decir que son como los oídos de una neurona.

  • Soma - Es el cuerpo celular de la neurona y se encarga del procesamiento de la información que han recibido de las dendritas.

  • Axon - Es como un cable a través del cual las neuronas envían la información.

  • Synapses - Es la conexión entre el axón y otras dendritas neuronales.

ANN versus BNN

Antes de echar un vistazo a las diferencias entre la red neuronal artificial (ANN) y la red neuronal biológica (BNN), echemos un vistazo a las similitudes basadas en la terminología entre estos dos.

Red neuronal biológica (BNN) Red neuronal artificial (ANN)
Soma Nodo
Dendritas Entrada
Sinapsis Pesos o interconexiones
Axon Salida

La siguiente tabla muestra la comparación entre ANN y BNN en base a algunos de los criterios mencionados.

Criterios BNN ANA
Processing Masivamente paralelo, lento pero superior a ANN Masivamente paralelo, rápido pero inferior a BNN
Size 10 11 neuronas y 10 15 interconexiones 10 2 a 10 4 nodos (depende principalmente del tipo de aplicación y diseñador de red)
Learning Pueden tolerar la ambigüedad Se requieren datos muy precisos, estructurados y formateados para tolerar la ambigüedad
Fault tolerance El rendimiento se degrada incluso con daños parciales Es capaz de un rendimiento robusto, por lo que tiene el potencial de ser tolerante a fallas.
Storage capacity Almacena la información en la sinapsis Almacena la información en ubicaciones de memoria continua

Modelo de red neuronal artificial

El siguiente diagrama representa el modelo general de ANN seguido de su procesamiento.

Para el modelo general anterior de red neuronal artificial, la entrada neta se puede calcular de la siguiente manera:

$$ y_ {in} \: = \: x_ {1} .w_ {1} \: + \: x_ {2} .w_ {2} \: + \: x_ {3} .w_ {3} \: \ dotso \: x_ {m} .w_ {m} $$

es decir, entrada neta $ y_ {in} \: = \: \ sum_i ^ m \: x_ {i} .w_ {i} $

La salida se puede calcular aplicando la función de activación sobre la entrada neta.

$$ Y \: = \: F (y_ {in}) $$

Salida = función (entrada neta calculada)

El procesamiento de ANN depende de los siguientes tres bloques de construcción:

  • Topología de la red
  • Ajustes de pesos o aprendizaje
  • Funciones de activación

En este capítulo, analizaremos en detalle estos tres bloques de construcción de ANN

Topología de la red

Una topología de red es la disposición de una red junto con sus nodos y líneas de conexión. Según la topología, ANN se puede clasificar en los siguientes tipos:

Red Feedforward

Es una red no recurrente que tiene unidades / nodos de procesamiento en capas y todos los nodos de una capa están conectados con los nodos de las capas anteriores. La conexión tiene diferentes pesos sobre ellos. No hay un circuito de retroalimentación, lo que significa que la señal solo puede fluir en una dirección, de entrada a salida. Puede dividirse en los siguientes dos tipos:

  • Single layer feedforward network- El concepto es de ANN feedforward que tiene solo una capa ponderada. En otras palabras, podemos decir que la capa de entrada está completamente conectada a la capa de salida.

  • Multilayer feedforward network- El concepto es de ANN feedforward que tiene más de una capa ponderada. Como esta red tiene una o más capas entre la capa de entrada y la de salida, se denomina capas ocultas.

Red de comentarios

Como sugiere el nombre, una red de retroalimentación tiene rutas de retroalimentación, lo que significa que la señal puede fluir en ambas direcciones usando bucles. Esto lo convierte en un sistema dinámico no lineal, que cambia continuamente hasta alcanzar un estado de equilibrio. Puede dividirse en los siguientes tipos:

  • Recurrent networks- Son redes de retroalimentación con circuitos cerrados. A continuación se muestran los dos tipos de redes recurrentes.

  • Fully recurrent network - Es la arquitectura de red neuronal más simple porque todos los nodos están conectados a todos los demás nodos y cada nodo funciona como entrada y salida.

  • Jordan network - Es una red en lazo cerrado en la que la salida volverá a ir a la entrada como retroalimentación como se muestra en el siguiente diagrama.

Ajustes de pesos o aprendizaje

El aprendizaje, en una red neuronal artificial, es el método de modificar los pesos de las conexiones entre las neuronas de una red específica. El aprendizaje en ANN se puede clasificar en tres categorías, a saber, aprendizaje supervisado, aprendizaje no supervisado y aprendizaje reforzado.

Aprendizaje supervisado

Como sugiere el nombre, este tipo de aprendizaje se realiza bajo la supervisión de un profesor. Este proceso de aprendizaje es dependiente.

Durante el entrenamiento de ANN bajo aprendizaje supervisado, el vector de entrada se presenta a la red, que dará un vector de salida. Este vector de salida se compara con el vector de salida deseado. Se genera una señal de error si hay una diferencia entre la salida real y el vector de salida deseado. Sobre la base de esta señal de error, los pesos se ajustan hasta que la salida real coincida con la salida deseada.

Aprendizaje sin supervisión

Como sugiere el nombre, este tipo de aprendizaje se realiza sin la supervisión de un profesor. Este proceso de aprendizaje es independiente.

Durante el entrenamiento de ANN bajo aprendizaje no supervisado, los vectores de entrada de tipo similar se combinan para formar grupos. Cuando se aplica un nuevo patrón de entrada, la red neuronal da una respuesta de salida que indica la clase a la que pertenece el patrón de entrada.

No hay comentarios del entorno sobre cuál debería ser el resultado deseado y si es correcto o incorrecto. Por lo tanto, en este tipo de aprendizaje, la propia red debe descubrir los patrones y características de los datos de entrada y la relación entre los datos de entrada y los de salida.

Aprendizaje reforzado

Como su nombre indica, este tipo de aprendizaje se utiliza para reforzar o fortalecer la red sobre alguna información crítica. Este proceso de aprendizaje es similar al aprendizaje supervisado, sin embargo, es posible que tengamos muy menos información.

Durante el entrenamiento de la red bajo aprendizaje reforzado, la red recibe alguna retroalimentación del entorno. Esto lo hace algo similar al aprendizaje supervisado. Sin embargo, la retroalimentación que se obtiene aquí es evaluativa, no instructiva, lo que significa que no hay profesor como en el aprendizaje supervisado. Después de recibir la retroalimentación, la red realiza ajustes de los pesos para obtener una mejor información crítica en el futuro.

Funciones de activación

Puede definirse como la fuerza o esfuerzo adicional aplicado sobre la entrada para obtener una salida exacta. En ANN, también podemos aplicar funciones de activación sobre la entrada para obtener la salida exacta. Las siguientes son algunas funciones de activación de interés:

Función de activación lineal

También se denomina función de identidad, ya que no realiza ninguna edición de entrada. Puede definirse como:

$$ F (x) \: = \: x $$

Función de activación sigmoidea

Es de dos tipos de la siguiente manera:

  • Binary sigmoidal function- Esta función de activación realiza la edición de entradas entre 0 y 1. Es de naturaleza positiva. Siempre está acotado, lo que significa que su salida no puede ser menor que 0 y mayor que 1. También es estrictamente de naturaleza creciente, lo que significa que cuanto mayor sea la entrada, mayor será la salida. Puede definirse como

    $$ F (x) \: = \: sigm (x) \: = \: \ frac {1} {1 \: + \: exp (-x)} $$

  • Bipolar sigmoidal function- Esta función de activación realiza la edición de entrada entre -1 y 1. Puede ser de naturaleza positiva o negativa. Siempre está acotado, lo que significa que su salida no puede ser menor que -1 y mayor que 1. También es estrictamente creciente en la naturaleza como la función sigmoidea. Puede definirse como

    $$ F (x) \: = \: sigm (x) \: = \: \ frac {2} {1 \: + \: exp (-x)} \: - \: 1 \: = \: \ frac {1 \: - \: exp (x)} {1 \: + \: exp (x)} $$

Como se dijo anteriormente, ANN está completamente inspirado en la forma en que funciona el sistema nervioso biológico, es decir, el cerebro humano. La característica más impresionante del cerebro humano es aprender, por lo que ANN adquiere la misma característica.

¿Qué es el aprendizaje en ANN?

Básicamente, aprender significa hacer y adaptar el cambio en sí mismo a medida que se produce un cambio de entorno. ANN es un sistema complejo o más precisamente podemos decir que es un sistema adaptativo complejo, que puede cambiar su estructura interna en función de la información que pasa por él.

¿Por qué es importante?

Al ser un sistema adaptativo complejo, el aprendizaje en ANN implica que una unidad de procesamiento es capaz de cambiar su comportamiento de entrada / salida debido al cambio en el entorno. La importancia del aprendizaje en ANN aumenta debido a la función de activación fija, así como al vector de entrada / salida, cuando se construye una red en particular. Ahora, para cambiar el comportamiento de entrada / salida, necesitamos ajustar los pesos.

Clasificación

Puede definirse como el proceso de aprender a distinguir los datos de muestras en diferentes clases al encontrar características comunes entre las muestras de las mismas clases. Por ejemplo, para realizar el entrenamiento de ANN, tenemos algunas muestras de entrenamiento con características únicas, y para realizar sus pruebas tenemos algunas muestras de prueba con otras características únicas. La clasificación es un ejemplo de aprendizaje supervisado.

Reglas de aprendizaje de redes neuronales

Sabemos que, durante el aprendizaje de ANN, para cambiar el comportamiento de entrada / salida, necesitamos ajustar los pesos. Por tanto, se requiere un método con la ayuda del cual se puedan modificar los pesos. Estos métodos se denominan reglas de aprendizaje, que son simplemente algoritmos o ecuaciones. A continuación se muestran algunas reglas de aprendizaje para la red neuronal:

Regla de aprendizaje de Hebbian

Esta regla, una de las más antiguas y sencillas, fue introducida por Donald Hebb en su libro The Organization of Behavior en 1949. Es una especie de aprendizaje no supervisado y de retroalimentación.

Basic Concept - Esta regla se basa en una propuesta de Hebb, quien escribió -

“Cuando un axón de la célula A está lo suficientemente cerca como para excitar una célula B y participa repetida o persistentemente en su activación, se produce algún proceso de crecimiento o cambio metabólico en una o ambas células, de modo que la eficiencia de A, como una de las células que dispara B , está incrementado."

Del postulado anterior, podemos concluir que las conexiones entre dos neuronas podrían fortalecerse si las neuronas se disparan al mismo tiempo y podrían debilitarse si se disparan en momentos diferentes.

Mathematical Formulation - De acuerdo con la regla de aprendizaje de Hebb, la siguiente es la fórmula para aumentar el peso de la conexión en cada paso de tiempo.

$$ \ Delta w_ {ji} (t) \: = \: \ alpha x_ {i} (t) .y_ {j} (t) $$

Aquí, $ \ Delta w_ {ji} (t) $ ⁡ = incremento por el cual el peso de la conexión aumenta en el paso de tiempo t

$ \ alpha $ = la tasa de aprendizaje positiva y constante

$ x_ {i} (t) $ = el valor de entrada de la neurona presináptica en el paso de tiempo t

$ y_ {i} (t) $ = la salida de la neurona presináptica en el mismo paso de tiempo t

Regla de aprendizaje del perceptrón

Esta regla es un error que corrige el algoritmo de aprendizaje supervisado de redes feedforward de una sola capa con función de activación lineal, introducido por Rosenblatt.

Basic Concept- Al ser de naturaleza supervisada, para calcular el error, habría una comparación entre la salida deseada / objetivo y la salida real. Si se encuentra alguna diferencia, se debe realizar un cambio en los pesos de conexión.

Mathematical Formulation - Para explicar su formulación matemática, suponga que tenemos 'n' número de vectores de entrada finitos, x (n), junto con su vector de salida deseado / objetivo t (n), donde n = 1 a N.

Ahora se puede calcular la salida 'y', como se explicó anteriormente, sobre la base de la entrada neta, y la función de activación que se aplica sobre esa entrada neta se puede expresar de la siguiente manera:

$$ y \: = \: f (y_ {in}) \: = \: \ begin {cases} 1, & y_ {in} \:> \: \ theta \\ 0, & y_ {in} \: \ leqslant \: \ theta \ end {casos} $$

Dónde θ es el umbral.

La actualización de peso se puede realizar en los dos casos siguientes:

Case I - cuando t ≠ y, luego

$$ w (nuevo) \: = \: w (antiguo) \: + \; tx $$

Case II - cuando t = y, luego

Sin cambio de peso

Regla de aprendizaje delta (regla de Widrow-Hoff)

Es presentado por Bernard Widrow y Marcian Hoff, también llamado método de mínimos cuadrados medios (LMS), para minimizar el error en todos los patrones de entrenamiento. Es una especie de algoritmo de aprendizaje supervisado con función de activación continua.

Basic Concept- La base de esta regla es la aproximación en pendiente descendente, que continúa para siempre. La regla delta actualiza los pesos sinápticos para minimizar la entrada neta a la unidad de salida y el valor objetivo.

Mathematical Formulation - Para actualizar los pesos sinápticos, la regla delta viene dada por

$$ \ Delta w_ {i} \: = \: \ alpha \ :. x_ {i} .e_ {j} $$

Aquí $ \ Delta w_ {i} $ = cambio de peso para i ésimo ⁡patrón;

$ \ alpha $ = la tasa de aprendizaje positiva y constante;

$ x_ {i} $ = el valor de entrada de la neurona presináptica;

$ e_ {j} $ = $ (t \: - \: y_ {in}) $, la diferencia entre la salida deseada / objetivo y la salida real ⁡ $ y_ {in} $

La regla delta anterior es para una única unidad de salida.

La actualización de peso se puede realizar en los dos casos siguientes:

Case-I - cuando t ≠ y, luego

$$ w (nuevo) \: = \: w (antiguo) \: + \: \ Delta w $$

Case-II - cuando t = y, luego

Sin cambio de peso

Regla de aprendizaje competitivo (el ganador se lo lleva todo)

Se ocupa del entrenamiento no supervisado en el que los nodos de salida intentan competir entre sí para representar el patrón de entrada. Para comprender esta regla de aprendizaje, debemos comprender la red competitiva que se da de la siguiente manera:

Basic Concept of Competitive Network- Esta red es como una red feedforward de una sola capa con conexión de retroalimentación entre las salidas. Las conexiones entre las salidas son de tipo inhibitorio, mostradas por líneas punteadas, lo que significa que los competidores nunca se apoyan a sí mismos.

Basic Concept of Competitive Learning Rule- Como se dijo anteriormente, habrá una competencia entre los nodos de salida. Por lo tanto, el concepto principal es que durante el entrenamiento, la unidad de salida con la activación más alta para un patrón de entrada dado, será declarada ganadora. Esta regla también se llama El ganador se lo lleva todo porque solo se actualiza la neurona ganadora y el resto de las neuronas no se modifican.

Mathematical formulation - A continuación se presentan los tres factores importantes para la formulación matemática de esta regla de aprendizaje -

  • Condition to be a winner - Suponga que si una neurona $ y_ {k} $ ⁡ ⁡ quiere ser la ganadora, entonces se da la siguiente condición:

    $$ y_ {k} \: = \: \ begin {cases} 1 & if \: v_ {k} \:> \: v_ {j} \: para \: todos \: j, \: j \: \ neq \: k \\ 0 y de lo contrario \ end {cases} $$

Significa que si alguna neurona, digamos $ y_ {k} $ ⁡, quiere ganar, entonces su campo local inducido (la salida de la unidad de suma), digamos $ v_ {k} $, debe ser el más grande entre todas las demás neuronas en la red.

  • Condition of sum total of weight - Otra restricción sobre la regla de aprendizaje competitivo es que la suma total de pesos de una neurona de salida en particular será 1. Por ejemplo, si consideramos neurona k entonces -

    $$ \ Displaystyle \ sum \ limits_ {j} w_ {kj} \: = \: 1 \: \: \: \: \: \: \: \: \: para \: todos \: k $$

  • Change of weight for winner- Si una neurona no responde al patrón de entrada, entonces no se produce ningún aprendizaje en esa neurona. Sin embargo, si una neurona en particular gana, los pesos correspondientes se ajustan de la siguiente manera

    $$ \ Delta w_ {kj} \: = \: \ begin {cases} - \ alpha (x_ {j} \: - \: w_ {kj}), y si \: neuron \: k \: gana \\ 0, y si \: neurona \: k \: pérdidas \ end {casos} $$

Aquí $ \ alpha $ es la tasa de aprendizaje.

Esto muestra claramente que estamos favoreciendo a la neurona ganadora ajustando su peso y si hay una pérdida de neurona, entonces no necesitamos molestarnos en reajustar su peso.

Regla de aprendizaje de Outstar

Esta regla, introducida por Grossberg, se refiere al aprendizaje supervisado porque se conocen los resultados deseados. También se llama aprendizaje de Grossberg.

Basic Concept- Esta regla se aplica sobre las neuronas dispuestas en una capa. Está especialmente diseñado para producir un resultado deseadod de la capa de p neuronas.

Mathematical Formulation - Los ajustes de peso en esta regla se calculan de la siguiente manera

$$ \ Delta w_ {j} \: = \: \ alpha \ :( d \: - \: w_ {j}) $$

aquí d es la salida de neurona deseada y $ \ alpha $ es la tasa de aprendizaje.

Como el nombre sugiere, supervised learningse lleva a cabo bajo la supervisión de un maestro. Este proceso de aprendizaje es dependiente. Durante el entrenamiento de ANN bajo aprendizaje supervisado, el vector de entrada se presenta a la red, que producirá un vector de salida. Este vector de salida se compara con el vector de salida deseado / objetivo. Se genera una señal de error si hay una diferencia entre la salida real y el vector de salida deseado / objetivo. Sobre la base de esta señal de error, los pesos se ajustarían hasta que la salida real coincida con la salida deseada.

Perceptrón

Desarrollado por Frank Rosenblatt utilizando el modelo de McCulloch y Pitts, el perceptrón es la unidad operativa básica de las redes neuronales artificiales. Emplea una regla de aprendizaje supervisado y es capaz de clasificar los datos en dos clases.

Características operativas del perceptrón: Consiste en una sola neurona con un número arbitrario de entradas junto con pesos ajustables, pero la salida de la neurona es 1 o 0 dependiendo del umbral. También consta de un sesgo cuyo peso es siempre 1. La siguiente figura proporciona una representación esquemática del perceptrón.

Por tanto, el perceptrón tiene los siguientes tres elementos básicos:

  • Links - Tendría un conjunto de enlaces de conexión, que tiene un peso que incluye un sesgo que siempre tiene un peso 1.

  • Adder - Agrega la entrada después de multiplicarlos con sus respectivos pesos.

  • Activation function- Limita la salida de neurona. La función de activación más básica es una función escalonada Heaviside que tiene dos salidas posibles. Esta función devuelve 1, si la entrada es positiva y 0 para cualquier entrada negativa.

Algoritmo de entrenamiento

La red Perceptron se puede entrenar para una sola unidad de salida, así como para múltiples unidades de salida.

Algoritmo de entrenamiento para unidad de salida única

Step 1 - Inicialice lo siguiente para iniciar el entrenamiento -

  • Weights
  • Bias
  • Tasa de aprendizaje $ \ alpha $

Para facilitar el cálculo y la simplicidad, los pesos y el sesgo deben establecerse en 0 y la tasa de aprendizaje debe establecerse en 1.

Step 2 - Continúe con el paso 3-8 cuando la condición de parada no sea verdadera.

Step 3 - Continúe con el paso 4-6 para cada vector de entrenamiento x.

Step 4 - Active cada unidad de entrada de la siguiente manera -

$$ x_ {i} \: = \: s_ {i} \ :( i \: = \: 1 \: a \: n) $$

Step 5 - Ahora obtenga la entrada neta con la siguiente relación -

$$ y_ {in} \: = \: b \: + \: \ displaystyle \ sum \ limits_ {i} ^ n x_ {i}. \: w_ {i} $$

aquí ‘b’ es sesgo y ‘n’ es el número total de neuronas de entrada.

Step 6 - Aplicar la siguiente función de activación para obtener el resultado final.

$$ f (y_ {in}) \: = \: \ begin {cases} 1 & if \: y_ {in} \:> \: \ theta \\ 0 & if \: - \ theta \: \ leqslant \ : y_ {in} \: \ leqslant \: \ theta \\ - 1 & if \: y_ {in} \: <\: - \ theta \ end {cases} $$

Step 7 - Ajuste el peso y el sesgo de la siguiente manera -

Case 1 - si y ≠ t luego,

$$ w_ {i} (nuevo) \: = \: w_ {i} (antiguo) \: + \: \ alpha \: tx_ {i} $$

$$ b (nuevo) \: = \: b (antiguo) \: + \: \ alpha t $$

Case 2 - si y = t luego,

$$ w_ {i} (nuevo) \: = \: w_ {i} (antiguo) $$

$$ b (nuevo) \: = \: b (antiguo) $$

aquí ‘y’ es la salida real y ‘t’ es la salida deseada / objetivo.

Step 8 - Pruebe la condición de parada, que ocurriría cuando no hay cambios en el peso.

Algoritmo de entrenamiento para múltiples unidades de salida

El siguiente diagrama es la arquitectura de perceptron para múltiples clases de salida.

Step 1 - Inicialice lo siguiente para iniciar el entrenamiento -

  • Weights
  • Bias
  • Tasa de aprendizaje $ \ alpha $

Para facilitar el cálculo y la simplicidad, los pesos y el sesgo deben establecerse en 0 y la tasa de aprendizaje debe establecerse en 1.

Step 2 - Continúe con el paso 3-8 cuando la condición de parada no sea verdadera.

Step 3 - Continúe con el paso 4-6 para cada vector de entrenamiento x.

Step 4 - Active cada unidad de entrada de la siguiente manera -

$$ x_ {i} \: = \: s_ {i} \ :( i \: = \: 1 \: a \: n) $$

Step 5 - Obtenga la entrada neta con la siguiente relación -

$$ y_ {in} \: = \: b \: + \: \ displaystyle \ sum \ limits_ {i} ^ n x_ {i} \: w_ {ij} $$

aquí ‘b’ es sesgo y ‘n’ es el número total de neuronas de entrada.

Step 6 - Aplicar la siguiente función de activación para obtener la salida final para cada unidad de salida j = 1 to m -

$$ f (y_ {in}) \: = \: \ begin {cases} 1 & if \: y_ {inj} \:> \: \ theta \\ 0 & if \: - \ theta \: \ leqslant \ : y_ {inj} \: \ leqslant \: \ theta \\ - 1 & if \: y_ {inj} \: <\: - \ theta \ end {cases} $$

Step 7 - Ajuste el peso y el sesgo para x = 1 to n y j = 1 to m como sigue -

Case 1 - si yj ≠ tj luego,

$$ w_ {ij} (nuevo) \: = \: w_ {ij} (antiguo) \: + \: \ alpha \: t_ {j} x_ {i} $$

$$ b_ {j} (nuevo) \: = \: b_ {j} (antiguo) \: + \: \ alpha t_ {j} $$

Case 2 - si yj = tj luego,

$$ w_ {ij} (nuevo) \: = \: w_ {ij} (antiguo) $$

$$ b_ {j} (nuevo) \: = \: b_ {j} (antiguo) $$

aquí ‘y’ es la salida real y ‘t’ es la salida deseada / objetivo.

Step 8 - Pruebe la condición de parada, que sucederá cuando no haya cambios en el peso.

Neurona lineal adaptativa (Adaline)

Adaline, que significa Adaptive Linear Neuron, es una red que tiene una sola unidad lineal. Fue desarrollado por Widrow y Hoff en 1960. Algunos puntos importantes sobre Adaline son los siguientes:

  • Utiliza la función de activación bipolar.

  • Utiliza la regla delta para el entrenamiento para minimizar el error cuadrático medio (MSE) entre la salida real y la salida deseada / objetivo.

  • Los pesos y el sesgo son ajustables.

Arquitectura

La estructura básica de Adaline es similar a la del perceptrón que tiene un circuito de retroalimentación adicional con la ayuda del cual la salida real se compara con la salida deseada / objetivo. Después de la comparación sobre la base del algoritmo de entrenamiento, se actualizarán los pesos y el sesgo.

Algoritmo de entrenamiento

Step 1 - Inicialice lo siguiente para iniciar el entrenamiento -

  • Weights
  • Bias
  • Tasa de aprendizaje $ \ alpha $

Para facilitar el cálculo y la simplicidad, los pesos y el sesgo deben establecerse en 0 y la tasa de aprendizaje debe establecerse en 1.

Step 2 - Continúe con el paso 3-8 cuando la condición de parada no sea verdadera.

Step 3 - Continúe con el paso 4-6 para cada par de entrenamiento bipolar s:t.

Step 4 - Active cada unidad de entrada de la siguiente manera -

$$ x_ {i} \: = \: s_ {i} \ :( i \: = \: 1 \: a \: n) $$

Step 5 - Obtenga la entrada neta con la siguiente relación -

$$ y_ {in} \: = \: b \: + \: \ displaystyle \ sum \ limits_ {i} ^ n x_ {i} \: w_ {i} $$

aquí ‘b’ es sesgo y ‘n’ es el número total de neuronas de entrada.

Step 6 - Aplicar la siguiente función de activación para obtener el resultado final -

$$ f (y_ {in}) \: = \: \ begin {cases} 1 & if \: y_ {in} \: \ geqslant \: 0 \\ - 1 & if \: y_ {in} \: < \: 0 \ end {cases} $$

Step 7 - Ajuste el peso y el sesgo de la siguiente manera -

Case 1 - si y ≠ t luego,

$$ w_ {i} (nuevo) \: = \: w_ {i} (antiguo) \: + \: \ alpha (t \: - \: y_ {in}) x_ {i} $$

$$ b (nuevo) \: = \: b (antiguo) \: + \: \ alpha (t \: - \: y_ {in}) $$

Case 2 - si y = t luego,

$$ w_ {i} (nuevo) \: = \: w_ {i} (antiguo) $$

$$ b (nuevo) \: = \: b (antiguo) $$

aquí ‘y’ es la salida real y ‘t’ es la salida deseada / objetivo.

$ (t \: - \; y_ {in}) $ es el error calculado.

Step 8 - Pruebe la condición de parada, que sucederá cuando no haya cambio de peso o cuando el cambio de peso más alto ocurrido durante el entrenamiento sea menor que la tolerancia especificada.

Neurona lineal adaptativa múltiple (Madaline)

Madaline, que significa Multiple Adaptive Linear Neuron, es una red que consta de muchas Adalines en paralelo. Tendrá una sola unidad de salida. Algunos puntos importantes sobre Madaline son los siguientes:

  • Es como un perceptrón multicapa, donde Adaline actuará como una unidad oculta entre la entrada y la capa Madaline.

  • Los pesos y el sesgo entre la entrada y las capas Adaline, como vemos en la arquitectura Adaline, son ajustables.

  • Las capas Adaline y Madaline tienen pesos fijos y sesgo de 1.

  • El entrenamiento se puede realizar con la ayuda de la regla Delta.

Arquitectura

La arquitectura de Madaline consiste en “n” neuronas de la capa de entrada, “m”neuronas de la capa Adaline y 1 neurona de la capa Madaline. La capa Adaline se puede considerar como la capa oculta, ya que se encuentra entre la capa de entrada y la capa de salida, es decir, la capa Madaline.

Algoritmo de entrenamiento

Ahora sabemos que solo se deben ajustar los pesos y el sesgo entre la entrada y la capa Adaline, y los pesos y el sesgo entre la capa Adaline y Madaline son fijos.

Step 1 - Inicialice lo siguiente para iniciar el entrenamiento -

  • Weights
  • Bias
  • Tasa de aprendizaje $ \ alpha $

Para facilitar el cálculo y la simplicidad, los pesos y el sesgo deben establecerse en 0 y la tasa de aprendizaje debe establecerse en 1.

Step 2 - Continúe con el paso 3-8 cuando la condición de parada no sea verdadera.

Step 3 - Continúe con el paso 4-6 para cada par de entrenamiento bipolar s:t.

Step 4 - Active cada unidad de entrada de la siguiente manera -

$$ x_ {i} \: = \: s_ {i} \ :( i \: = \: 1 \: a \: n) $$

Step 5 - Obtenga la entrada neta en cada capa oculta, es decir, la capa Adaline con la siguiente relación -

$$ Q_ {inj} \: = \: b_ {j} \: + \: \ Displaystyle \ sum \ limits_ {i} ^ n x_ {i} \: w_ {ij} \: \: \: j \: = \: 1 \: a \: m $$

aquí ‘b’ es sesgo y ‘n’ es el número total de neuronas de entrada.

Step 6 - Aplicar la siguiente función de activación para obtener el resultado final en la capa Adaline y Madaline -

$$ f (x) \: = \: \ begin {cases} 1 & if \: x \: \ geqslant \: 0 \\ - 1 & if \: x \: <\: 0 \ end {cases} $ PS

Salida en la unidad oculta (Adaline)

$$ Q_ {j} \: = \: f (Q_ {inj}) $$

Salida final de la red

$$ y \: = \: f (y_ {in}) $$

i.e. $ \: \: y_ {inj} \: = \: b_ {0} \: + \: \ sum_ {j = 1} ^ m \: Q_ {j} \: v_ {j} $

Step 7 - Calcule el error y ajuste los pesos de la siguiente manera -

Case 1 - si y ≠ t y t = 1 luego,

$$ w_ {ij} (nuevo) \: = \: w_ {ij} (antiguo) \: + \: \ alpha (1 \: - \: Q_ {inj}) x_ {i} $$

$$ b_ {j} (nuevo) \: = \: b_ {j} (antiguo) \: + \: \ alpha (1 \: - \: Q_ {inj}) $$

En este caso, los pesos se actualizarían en Qj donde la entrada neta es cercana a 0 porque t = 1.

Case 2 - si y ≠ t y t = -1 luego,

$$ w_ {ik} (nuevo) \: = \: w_ {ik} (antiguo) \: + \: \ alpha (-1 \: - \: Q_ {ink}) x_ {i} $$

$$ b_ {k} (nuevo) \: = \: b_ {k} (antiguo) \: + \: \ alpha (-1 \: - \: Q_ {ink}) $$

En este caso, los pesos se actualizarían en Qk donde la entrada neta es positiva porque t = -1.

aquí ‘y’ es la salida real y ‘t’ es la salida deseada / objetivo.

Case 3 - si y = t luego

No habría cambios en los pesos.

Step 8 - Pruebe la condición de parada, que sucederá cuando no haya cambio de peso o cuando el cambio de peso más alto ocurrido durante el entrenamiento sea menor que la tolerancia especificada.

Redes neuronales de propagación trasera

Back Propagation Neural (BPN) es una red neuronal multicapa que consta de la capa de entrada, al menos una capa oculta y la capa de salida. Como sugiere su nombre, la retropropagación tendrá lugar en esta red. El error que se calcula en la capa de salida, comparando la salida de destino y la salida real, se propagará hacia la capa de entrada.

Arquitectura

Como se muestra en el diagrama, la arquitectura de BPN tiene tres capas interconectadas que tienen pesos sobre ellas. La capa oculta, así como la capa de salida, también tienen sesgo, cuyo peso es siempre 1, sobre ellas. Como se desprende del diagrama, el funcionamiento de BPN se realiza en dos fases. Una fase envía la señal desde la capa de entrada a la capa de salida y la otra fase propaga el error desde la capa de salida a la capa de entrada.

Algoritmo de entrenamiento

Para el entrenamiento, BPN utilizará la función de activación sigmoidea binaria. El entrenamiento de BPN tendrá las siguientes tres fases.

  • Phase 1 - Fase de avance

  • Phase 2 - Propagación de error hacia atrás

  • Phase 3 - Actualización de pesos

Todos estos pasos se concluirán en el algoritmo de la siguiente manera

Step 1 - Inicialice lo siguiente para iniciar el entrenamiento -

  • Weights
  • Tasa de aprendizaje $ \ alpha $

Para facilitar el cálculo y la simplicidad, tome algunos valores aleatorios pequeños.

Step 2 - Continúe con el paso 3-11 cuando la condición de parada no sea verdadera.

Step 3 - Continúe con los pasos 4-10 para cada par de entrenamiento.

Fase 1

Step 4 - Cada unidad de entrada recibe una señal de entrada xi y lo envía a la unidad oculta para todos i = 1 to n

Step 5 - Calcule la entrada neta en la unidad oculta usando la siguiente relación -

$$ Q_ {inj} \: = \: b_ {0j} \: + \: \ sum_ {i = 1} ^ n x_ {i} v_ {ij} \: \: \: \: j \: = \ : 1 \: a \: p $$

aquí b0j es el sesgo en la unidad oculta, vij es el peso sobre j unidad de la capa oculta procedente de i unidad de la capa de entrada.

Ahora calcule la salida neta aplicando la siguiente función de activación

$$ Q_ {j} \: = \: f (Q_ {inj}) $$

Envíe estas señales de salida de las unidades de la capa oculta a las unidades de la capa de salida.

Step 6 - Calcule la entrada neta en la unidad de la capa de salida usando la siguiente relación -

$$ y_ {ink} \: = \: b_ {0k} \: + \: \ sum_ {j = 1} ^ p \: Q_ {j} \: w_ {jk} \: \: k \: = \ : 1 \: a \: m $$

aquí b0k ⁡Es el sesgo en la unidad de salida, wjk es el peso sobre k unidad de la capa de salida procedente de j unidad de la capa oculta.

Calcule la producción neta aplicando la siguiente función de activación

$$ y_ {k} \: = \: f (y_ {tinta}) $$

Fase 2

Step 7 - Calcule el término de corrección de errores, en correspondencia con el patrón objetivo recibido en cada unidad de salida, como sigue -

$$ \ delta_ {k} \: = \ :( t_ {k} \: - \: y_ {k}) f ^ {'} (y_ {ink}) $$

Sobre esta base, actualice el peso y el sesgo de la siguiente manera:

$$ \ Delta v_ {jk} \: = \: \ alpha \ delta_ {k} \: Q_ {ij} $$

$$ \ Delta b_ {0k} \: = \: \ alpha \ delta_ {k} $$

Luego, envía $ \ delta_ {k} $ de vuelta a la capa oculta.

Step 8 - Ahora cada unidad oculta será la suma de sus entradas delta de las unidades de salida.

$$ \ delta_ {inj} \: = \: \ Displaystyle \ sum \ limits_ {k = 1} ^ m \ delta_ {k} \: w_ {jk} $$

El término de error se puede calcular de la siguiente manera:

$$ \ delta_ {j} \: = \: \ delta_ {inj} f ^ {'} (Q_ {inj}) $$

Sobre esta base, actualice el peso y el sesgo de la siguiente manera:

$$ \ Delta w_ {ij} \: = \: \ alpha \ delta_ {j} x_ {i} $$

$$ \ Delta b_ {0j} \: = \: \ alpha \ delta_ {j} $$

Fase 3

Step 9 - Cada unidad de salida (ykk = 1 to m) actualiza el peso y el sesgo de la siguiente manera:

$$ v_ {jk} (nuevo) \: = \: v_ {jk} (antiguo) \: + \: \ Delta v_ {jk} $$

$$ b_ {0k} (nuevo) \: = \: b_ {0k} (antiguo) \: + \: \ Delta b_ {0k} $$

Step 10 - Cada unidad de salida (zjj = 1 to p) actualiza el peso y el sesgo de la siguiente manera:

$$ w_ {ij} (nuevo) \: = \: w_ {ij} (antiguo) \: + \: \ Delta w_ {ij} $$

$$ b_ {0j} (nuevo) \: = \: b_ {0j} (antiguo) \: + \: \ Delta b_ {0j} $$

Step 11 - Compruebe la condición de parada, que puede ser el número de épocas alcanzadas o la salida objetivo coincide con la salida real.

Regla de aprendizaje delta generalizada

La regla delta funciona solo para la capa de salida. Por otro lado, la regla delta generalizada, también llamadaback-propagation regla, es una forma de crear los valores deseados de la capa oculta.

Formulación matemática

Para la función de activación $ y_ {k} \: = \: f (y_ {ink}) $ la derivación de la entrada neta en la capa oculta y en la capa de salida puede estar dada por

$$ y_ {tinta} \: = \: \ estilo de visualización \ sum \ límites_i \: z_ {i} w_ {jk} $$

Y $ \: \: y_ {inj} \: = \: \ sum_i x_ {i} v_ {ij} $

Ahora el error que debe minimizarse es

$$ E \: = \: \ frac {1} {2} \ Displaystyle \ sum \ limits_ {k} \: [t_ {k} \: - \: y_ {k}] ^ 2 $$

Al usar la regla de la cadena, tenemos

$$ \ frac {\ parcial E} {\ parcial w_ {jk}} \: = \: \ frac {\ parcial} {\ parcial w_ {jk}} (\ frac {1} {2} \ Displaystyle \ sum \ límites_ {k} \: [t_ {k} \: - \: y_ {k}] ^ 2) $$

$$ = \: \ frac {\ parcial} {\ parcial w_ {jk}} \ lgrupo \ frac {1} {2} [t_ {k} \: - \: t (y_ {tinta})] ^ 2 \ rgroup $$

$$ = \: - [t_ {k} \: - \: y_ {k}] \ frac {\ parcial} {\ parcial w_ {jk}} f (y_ {tinta}) $$

$$ = \: - [t_ {k} \: - \: y_ {k}] f (y_ {tinta}) \ frac {\ parcial} {\ parcial w_ {jk}} (y_ {tinta}) $$

$$ = \: - [t_ {k} \: - \: y_ {k}] f ^ {'} (y_ {ink}) z_ {j} $$

Ahora digamos $ \ delta_ {k} \: = \: - [t_ {k} \: - \: y_ {k}] f ^ {'} (y_ {ink}) $

Los pesos de las conexiones a la unidad oculta zj puede ser dado por -

$$ \ frac {\ parcial E} {\ parcial v_ {ij}} \: = \: - \ estilo de visualización \ suma \ límites_ {k} \ delta_ {k} \ frac {\ parcial} {\ parcial v_ {ij} } \ :( y_ {ink}) $$

Poniendo el valor de $ y_ {ink} $ obtendremos lo siguiente

$$ \ delta_ {j} \: = \: - \ Displaystyle \ sum \ limits_ {k} \ delta_ {k} w_ {jk} f ^ {'} (z_ {inj}) $$

La actualización de peso se puede realizar de la siguiente manera:

Para la unidad de salida -

$$ \ Delta w_ {jk} \: = \: - \ alpha \ frac {\ parcial E} {\ parcial w_ {jk}} $$

$$ = \: \ alpha \: \ delta_ {k} \: z_ {j} $$

Para la unidad oculta -

$$ \ Delta v_ {ij} \: = \: - \ alpha \ frac {\ parcial E} {\ parcial v_ {ij}} $$

$$ = \: \ alpha \: \ delta_ {j} \: x_ {i} $$

Como sugiere el nombre, este tipo de aprendizaje se realiza sin la supervisión de un profesor. Este proceso de aprendizaje es independiente. Durante el entrenamiento de ANN bajo aprendizaje no supervisado, los vectores de entrada de tipo similar se combinan para formar grupos. Cuando se aplica un nuevo patrón de entrada, la red neuronal da una respuesta de salida que indica la clase a la que pertenece el patrón de entrada. En esto, no habría retroalimentación del entorno sobre cuál debería ser el resultado deseado y si es correcto o incorrecto. Por lo tanto, en este tipo de aprendizaje, la propia red debe descubrir los patrones, las características de los datos de entrada y la relación entre los datos de entrada y los de salida.

Redes en las que el ganador se lo lleva todo

Este tipo de redes se basan en la regla de aprendizaje competitivo y utilizarán la estrategia en la que elija la neurona con las mayores entradas totales como ganadora. Las conexiones entre las neuronas de salida muestran la competencia entre ellas y una de ellas estaría 'ENCENDIDA', lo que significa que sería la ganadora y otras estarían 'APAGADAS'.

A continuación, se muestran algunas de las redes basadas en este concepto simple que utilizan el aprendizaje no supervisado.

Red Hamming

En la mayoría de las redes neuronales que utilizan el aprendizaje no supervisado, es fundamental calcular la distancia y realizar comparaciones. Este tipo de red es la red Hamming, donde por cada vector de entrada dado, se agruparía en diferentes grupos. A continuación se presentan algunas características importantes de Hamming Networks:

  • Lippmann comenzó a trabajar en las redes Hamming en 1987.

  • Es una red de una sola capa.

  • Las entradas pueden ser binarias {0, 1} o bipolares {-1, 1}.

  • Los pesos de la red se calculan mediante los vectores ejemplares.

  • Es una red de peso fijo, lo que significa que los pesos seguirían siendo los mismos incluso durante el entrenamiento.

Max neto

Esta es también una red de peso fijo, que sirve como subred para seleccionar el nodo que tiene la entrada más alta. Todos los nodos están completamente interconectados y existen pesos simétricos en todas estas interconexiones ponderadas.

Arquitectura

Utiliza el mecanismo que es un proceso iterativo y cada nodo recibe entradas inhibitorias de todos los demás nodos a través de conexiones. El único nodo cuyo valor es máximo sería activo o ganador y las activaciones de todos los demás nodos estarían inactivas. Max Net usa la función de activación de identidad con $$ f (x) \: = \: \ begin {cases} x & if \: x> 0 \\ 0 & if \: x \ leq 0 \ end {cases} $$

La tarea de esta red se logra mediante el peso de autoexcitación de +1 y la magnitud de inhibición mutua, que se establece como [0 <ɛ <$ \ frac {1} {m} $] donde “m” es el número total de nodos.

Aprendizaje competitivo en ANN

Se ocupa del entrenamiento no supervisado en el que los nodos de salida intentan competir entre sí para representar el patrón de entrada. Para comprender esta regla de aprendizaje tendremos que comprender la red competitiva que se explica a continuación:

Concepto básico de red competitiva

Esta red es como una red de alimentación directa de una sola capa que tiene una conexión de retroalimentación entre las salidas. Las conexiones entre las salidas son de tipo inhibitorio, lo que se muestra con líneas de puntos, lo que significa que los competidores nunca se apoyan a sí mismos.

Concepto básico de regla de aprendizaje competitivo

Como se dijo anteriormente, habría competencia entre los nodos de salida, por lo que el concepto principal es: durante el entrenamiento, la unidad de salida que tenga la activación más alta para un patrón de entrada dado, será declarada ganadora. Esta regla también se llama El ganador se lo lleva todo porque solo se actualiza la neurona ganadora y el resto de las neuronas no se modifican.

Formulación matemática

A continuación se presentan los tres factores importantes para la formulación matemática de esta regla de aprendizaje:

  • Condición para ser un ganador

    Supongamos que una neurona yk quiere ser el ganador, entonces habría la siguiente condición

    $$ y_ {k} \: = \: \ begin {cases} 1 & if \: v_ {k}> v_ {j} \: para \: todos \: \: j, \: j \: \ neq \ : k \\ 0 y de lo contrario \ end {cases} $$

    Significa que si alguna neurona, digamos, yk quiere ganar, entonces su campo local inducido (la salida de la unidad de suma), digamos vk, debe ser la más grande entre todas las demás neuronas de la red.

  • Condición de la suma total de peso

    Otra restricción sobre la regla de aprendizaje competitivo es que la suma total de pesos de una neurona de salida en particular será 1. Por ejemplo, si consideramos neurona k luego

    $$ \ Displaystyle \ sum \ limits_ {k} w_ {kj} \: = \: 1 \: \: \: \: para \: todos \: \: k $$

  • Cambio de peso para el ganador

    Si una neurona no responde al patrón de entrada, entonces no tiene lugar ningún aprendizaje en esa neurona. Sin embargo, si una neurona en particular gana, entonces los pesos correspondientes se ajustan de la siguiente manera:

    $$ \ Delta w_ {kj} \: = \: \ begin {cases} - \ alpha (x_ {j} \: - \: w_ {kj}), y si \: neuron \: k \: gana \\ 0 y si \: neurona \: k \: pérdidas \ end {casos} $$

    Aquí $ \ alpha $ es la tasa de aprendizaje.

    Esto muestra claramente que estamos favoreciendo a la neurona ganadora ajustando su peso y si se pierde una neurona, entonces no necesitamos molestarnos en reajustar su peso.

Algoritmo de agrupación de K-means

K-means es uno de los algoritmos de agrupamiento en clúster más populares en el que usamos el concepto de procedimiento de partición. Comenzamos con una partición inicial y movemos patrones repetidamente de un clúster a otro, hasta que obtenemos un resultado satisfactorio.

Algoritmo

Step 1 - Seleccionar kpuntos como centroides iniciales. Inicializark prototipos (w1,…,wk), por ejemplo, podemos identificarlos con vectores de entrada elegidos al azar -

$$ W_ {j} \: = \: i_ {p}, \: \: \: donde \: j \: \ in \ lbrace1, ...., k \ rbrace \: y \: p \: \ en \ lbrace1, ...., n \ rbrace $$

Cada grupo Cj está asociado con el prototipo wj.

Step 2 - Repita el paso 3-5 hasta que E ya no disminuya o la membresía del clúster ya no cambie.

Step 3 - Para cada vector de entrada ip dónde p ∈ {1,…,n}, poner ip en el cluster Cj* con el prototipo más cercano wj* teniendo la siguiente relación

$$ | i_ {p} \: - \: w_ {j *} | \: \ leq \: | i_ {p} \: - \: w_ {j} |, \: j \: \ in \ lbrace1, ...., k \ rbrace $$

Step 4 - Para cada grupo Cj, dónde j ∈ { 1,…,k}, actualiza el prototipo wj para ser el centroide de todas las muestras actualmente en Cj , así que eso

$$ w_ {j} \: = \: \ sum_ {i_ {p} \ in C_ {j}} \ frac {i_ {p}} {| C_ {j} |} $$

Step 5 - Calcule el error de cuantificación total de la siguiente manera -

$$ E \: = \: \ sum_ {j = 1} ^ k \ sum_ {i_ {p} \ in w_ {j}} | i_ {p} \: - \: w_ {j} | ^ 2 $$

Neocognitron

Es una red feedforward multicapa, que fue desarrollada por Fukushima en la década de 1980. Este modelo se basa en el aprendizaje supervisado y se utiliza para el reconocimiento visual de patrones, principalmente caracteres escritos a mano. Es básicamente una extensión de la red Cognitron, que también fue desarrollada por Fukushima en 1975.

Arquitectura

Es una red jerárquica, que comprende muchas capas y existe un patrón de conectividad local en esas capas.

Como hemos visto en el diagrama anterior, el neocognitrón se divide en diferentes capas conectadas y cada capa tiene dos celdas. La explicación de estas celdas es la siguiente:

S-Cell - Se llama celda simple, que está entrenada para responder a un patrón particular o un grupo de patrones.

C-Cell- Se llama celda compleja, que combina la salida de la celda S y simultáneamente reduce el número de unidades en cada matriz. En otro sentido, la célula C desplaza el resultado de la célula S.

Algoritmo de entrenamiento

Se encuentra que el entrenamiento del neocognitrón progresa capa por capa. Los pesos de la capa de entrada a la primera capa se entrenan y congelan. Luego, se entrenan los pesos de la primera capa a la segunda capa, y así sucesivamente. Los cálculos internos entre la celda S y la celda C dependen de los pesos provenientes de las capas anteriores. Por lo tanto, podemos decir que el algoritmo de entrenamiento depende de los cálculos en la celda S y la celda C.

Cálculos en celda S

La célula S posee la señal excitadora recibida de la capa anterior y posee señales inhibidoras obtenidas dentro de la misma capa.

$$ \ theta = \: \ sqrt {\ sum \ sum t_ {i} c_ {i} ^ 2} $$

Aquí, ti es el peso fijo y ci es la salida de C-cell.

La entrada escalada de la celda S se puede calcular de la siguiente manera:

$$ x \: = \: \ frac {1 \: + \: e} {1 \: + \: vw_ {0}} \: - \: 1 $$

Aquí, $ e \: = \: \ sum_i c_ {i} w_ {i} $

wi es el peso ajustado de celda C a celda S.

w0 es el peso ajustable entre la entrada y la celda S.

v es la entrada excitadora de la celda C.

La activación de la señal de salida es,

$$ s \: = \: \ begin {cases} x, & if \: x \ geq 0 \\ 0, & if \: x <0 \ end {cases} $$

Cálculos en celda C

La entrada neta de la capa C es

$$ C \: = \: \ Displaystyle \ sum \ limits_i s_ {i} x_ {i} $$

Aquí, si es la salida de la celda S y xi es el peso fijo de la celda S a la celda C.

El resultado final es el siguiente:

$$ C_ {out} \: = \: \ begin {cases} \ frac {C} {a + C}, & if \: C> 0 \\ 0, & de lo contrario \ end {cases} $$

aquí ‘a’ es el parámetro que depende del rendimiento de la red.

Learning Vector Quantization (LVQ), a diferencia de la cuantificación vectorial (VQ) y los mapas autoorganizados de Kohonen (KSOM), básicamente es una red competitiva que utiliza el aprendizaje supervisado. Podemos definirlo como un proceso de clasificación de patrones donde cada unidad de salida representa una clase. Como utiliza el aprendizaje supervisado, la red recibirá un conjunto de patrones de entrenamiento con clasificación conocida junto con una distribución inicial de la clase de salida. Después de completar el proceso de entrenamiento, LVQ clasificará un vector de entrada asignándolo a la misma clase que la de la unidad de salida.

Arquitectura

La siguiente figura muestra la arquitectura de LVQ que es bastante similar a la arquitectura de KSOM. Como podemos ver, hay“n” número de unidades de entrada y “m”número de unidades de salida. Las capas están completamente interconectadas con pesos sobre ellas.

Parámetros utilizados

A continuación se muestran los parámetros utilizados en el proceso de entrenamiento LVQ, así como en el diagrama de flujo

  • x= vector de entrenamiento (x 1 , ..., x i , ..., x n )

  • T = clase para vector de entrenamiento x

  • wj = vector de peso para jth unidad de salida

  • Cj = clase asociada con el jth unidad de salida

Algoritmo de entrenamiento

Step 1 - Inicializar vectores de referencia, que se puede hacer de la siguiente manera -

  • Step 1(a) - Del conjunto dado de vectores de entrenamiento, tome el primer "m”(Número de conglomerados) vectores de entrenamiento y utilizarlos como vectores de peso. Los vectores restantes se pueden utilizar para entrenamiento.

  • Step 1(b) - Asignar el peso inicial y la clasificación de forma aleatoria.

  • Step 1(c) - Aplicar el método de agrupación de K-means.

Step 2 - Inicializar el vector de referencia $ \ alpha $

Step 3 - Continúe con los pasos 4-9, si no se cumple la condición para detener este algoritmo.

Step 4 - Siga los pasos 5-6 para cada vector de entrada de entrenamiento x.

Step 5 - Calcular el cuadrado de la distancia euclidiana para j = 1 to m y i = 1 to n

$$ D (j) \: = \: \ estilo de visualización \ sum \ límites_ {i = 1} ^ n \ estilo de visualización \ sum \ límites_ {j = 1} ^ m (x_ {i} \: - \: w_ {ij }) ^ 2 $$

Step 6 - Obtén la unidad ganadora J dónde D(j) es mínimo.

Step 7 - Calcule el nuevo peso de la unidad ganadora mediante la siguiente relación -

Si T = Cj luego $ w_ {j} (nuevo) \: = \: w_ {j} (antiguo) \: + \: \ alpha [x \: - \: w_ {j} (antiguo)] $

Si T ≠ Cj luego $ w_ {j} (nuevo) \: = \: w_ {j} (antiguo) \: - \: \ alpha [x \: - \: w_ {j} (antiguo)] $

Step 8 - Reducir la tasa de aprendizaje $ \ alpha $.

Step 9- Pruebe la condición de parada. Puede ser como sigue:

  • Se alcanzó el número máximo de épocas.
  • Tasa de aprendizaje reducida a un valor insignificante.

Diagrama de flujo

Variantes

Kohonen ha desarrollado otras tres variantes, a saber, LVQ2, LVQ2.1 y LVQ3. La complejidad en estas tres variantes, debido al concepto que aprenderán tanto el ganador como el subcampeón, es más que en LVQ.

LVQ2

Como se discutió, el concepto de otras variantes de LVQ anterior, la condición de LVQ2 está formada por ventana. Esta ventana se basará en los siguientes parámetros:

  • x - el vector de entrada actual

  • yc - el vector de referencia más cercano a x

  • yr - el otro vector de referencia, que es el siguiente más cercano a x

  • dc - la distancia desde x a yc

  • dr - la distancia desde x a yr

El vector de entrada x cae por la ventana, si

$$ \ frac {d_ {c}} {d_ {r}} \:> \: 1 \: - \: \ theta \: \: y \: \: \ frac {d_ {r}} {d_ {c }} \:> \: 1 \: + \: \ theta $$

Aquí, $ \ theta $ es el número de muestras de entrenamiento.

La actualización se puede hacer con la siguiente fórmula:

$ y_ {c} (t \: + \: 1) \: = \: y_ {c} (t) \: + \: \ alpha (t) [x (t) \: - \: y_ {c} (t)] $ (belongs to different class)

$ y_ {r} (t \: + \: 1) \: = \: y_ {r} (t) \: + \: \ alpha (t) [x (t) \: - \: y_ {r} (t)] $ (belongs to same class)

Aquí $ \ alpha $ es la tasa de aprendizaje.

LVQ2.1

En LVQ2.1, tomaremos los dos vectores más cercanos, a saber yc1 y yc2 y la condición para la ventana es la siguiente:

$$ Min \ begin {bmatrix} \ frac {d_ {c1}} {d_ {c2}}, \ frac {d_ {c2}} {d_ {c1}} \ end {bmatrix} \:> \ :( 1 \ : - \: \ theta) $$

$$ Max \ begin {bmatrix} \ frac {d_ {c1}} {d_ {c2}}, \ frac {d_ {c2}} {d_ {c1}} \ end {bmatrix} \: <\ :( 1 \ : + \: \ theta) $$

La actualización se puede hacer con la siguiente fórmula:

$ y_ {c1} (t \: + \: 1) \: = \: y_ {c1} (t) \: + \: \ alpha (t) [x (t) \: - \: y_ {c1} (t)] $ (belongs to different class)

$ y_ {c2} (t \: + \: 1) \: = \: y_ {c2} (t) \: + \: \ alpha (t) [x (t) \: - \: y_ {c2} (t)] $ (belongs to same class)

Aquí, $ \ alpha $ es la tasa de aprendizaje.

LVQ3

En LVQ3, tomaremos los dos vectores más cercanos, a saber yc1 y yc2 y la condición para la ventana es la siguiente:

$$ Min \ begin {bmatrix} \ frac {d_ {c1}} {d_ {c2}}, \ frac {d_ {c2}} {d_ {c1}} \ end {bmatrix} \:> \ :( 1 \ : - \: \ theta) (1 \: + \: \ theta) $$

Aquí $ \ theta \ approx 0.2 $

La actualización se puede hacer con la siguiente fórmula:

$ y_ {c1} (t \: + \: 1) \: = \: y_ {c1} (t) \: + \: \ beta (t) [x (t) \: - \: y_ {c1} (t)] $ (belongs to different class)

$ y_ {c2} (t \: + \: 1) \: = \: y_ {c2} (t) \: + \: \ beta (t) [x (t) \: - \: y_ {c2} (t)] $ (belongs to same class)

Aquí $ \ beta $ es el múltiplo de la tasa de aprendizaje $ \ alpha $ y $\beta\:=\:m \alpha(t)$ para cada 0.1 < m < 0.5

Esta red fue desarrollada por Stephen Grossberg y Gail Carpenter en 1987. Se basa en la competencia y utiliza un modelo de aprendizaje no supervisado. Las redes de la Teoría de la Resonancia Adaptativa (ART), como su nombre indica, están siempre abiertas a un nuevo aprendizaje (adaptativo) sin perder los viejos patrones (resonancia). Básicamente, la red ART es un clasificador de vectores que acepta un vector de entrada y lo clasifica en una de las categorías dependiendo de cuál de los patrones almacenados se parezca más.

Principal operativo

La operación principal de la clasificación ART se puede dividir en las siguientes fases:

  • Recognition phase- El vector de entrada se compara con la clasificación presentada en cada nodo de la capa de salida. La salida de la neurona se convierte en "1" si coincide mejor con la clasificación aplicada; de lo contrario, se convierte en "0".

  • Comparison phase- En esta fase, se realiza una comparación del vector de entrada con el vector de la capa de comparación. La condición para el reinicio es que el grado de similitud sea menor que el parámetro de vigilancia.

  • Search phase- En esta fase, la red buscará el reinicio, así como la coincidencia realizada en las fases anteriores. Por lo tanto, si no hay reinicio y el partido es bastante bueno, la clasificación se acaba. De lo contrario, el proceso se repetirá y el otro patrón almacenado debe enviarse para encontrar la coincidencia correcta.

ART1

Es un tipo de ART, que está diseñado para agrupar vectores binarios. Podemos entender esto con la arquitectura del mismo.

Arquitectura de ART1

Consta de las siguientes dos unidades:

Computational Unit - Se compone de lo siguiente -

  • Input unit (F1 layer) - Además tiene las siguientes dos porciones -

    • F1(a) layer (Input portion)- En ART1, no habría procesamiento en esta parte en lugar de tener solo los vectores de entrada. Está conectado a la capa F 1 (b) (porción de interfaz).

    • F1(b) layer (Interface portion)- Esta parte combina la señal de la parte de entrada con la de la capa F 2 . La capa F 1 (b) está conectada a la capa F 2 a través de pesos de abajo hacia arribabijy la capa F 2 está conectada a la capa F 1 (b) a través de pesos de arriba hacia abajotji.

  • Cluster Unit (F2 layer)- Esta es una capa competitiva. La unidad que tiene la entrada neta más grande se selecciona para aprender el patrón de entrada. La activación de todas las demás unidades de clúster se establece en 0.

  • Reset Mechanism- El trabajo de este mecanismo se basa en la similitud entre el peso de arriba hacia abajo y el vector de entrada. Ahora, si el grado de esta similitud es menor que el parámetro de vigilancia, entonces el grupo no puede aprender el patrón y se produciría un descanso.

Supplement Unit - En realidad, el problema con el mecanismo de reinicio es que la capa F2debe tener que inhibirse bajo ciertas condiciones y también debe estar disponible cuando ocurre algún aprendizaje. Es por eso que dos unidades suplementarias a saber,G1 y G2 se agrega junto con la unidad de reinicio, R. Se les llamagain control units. Estas unidades reciben y envían señales a las otras unidades presentes en la red.‘+’ indica una señal excitadora, mientras que ‘−’ indica una señal inhibitoria.

Parámetros utilizados

Se utilizan los siguientes parámetros:

  • n - Número de componentes en el vector de entrada

  • m - Número máximo de clústeres que se pueden formar

  • bij- Peso de la capa F 1 (b) a F 2 , es decir, pesos de abajo hacia arriba

  • tji- Peso de la capa F 2 a F 1 (b), es decir, pesos de arriba hacia abajo

  • ρ - Parámetro de vigilancia

  • ||x|| - Norma del vector x

Algoritmo

Step 1 - Inicialice la tasa de aprendizaje, el parámetro de vigilancia y los pesos de la siguiente manera:

$$ \ alpha \:> \: 1 \: \: y \: \: 0 \: <\ rho \: \ leq \: 1 $$

$$ 0 \: <\: b_ {ij} (0) \: <\: \ frac {\ alpha} {\ alpha \: - \: 1 \: + \: n} \: \: y \: \: t_ {ij} (0) \: = \: 1 $$

Step 2 - Continúe con el paso 3-9, cuando la condición de parada no sea verdadera.

Step 3 - Continúe con los pasos 4-6 para cada entrada de entrenamiento.

Step 4- Configure las activaciones de todas las unidades F 1 (a) y F 1 de la siguiente manera

F2 = 0 and F1(a) = input vectors

Step 5- La señal de entrada de la capa F 1 (a) a F 1 (b) debe enviarse como

$$ s_ {i} \: = \: x_ {i} $$

Step 6- Por cada nodo F 2 inhibido

$ y_ {j} \: = \: \ sum_i b_ {ij} x_ {i} $ la condición es yj ≠ -1

Step 7 - Realice los pasos 8-10, cuando el reinicio sea verdadero.

Step 8 - Encontrar J para yJ ≥ yj para todos los nodos j

Step 9- Calcule nuevamente la activación en F 1 (b) de la siguiente manera

$$ x_ {i} \: = \: sitJi $$

Step 10 - Ahora, después de calcular la norma de vector x y vector s, necesitamos verificar la condición de reinicio de la siguiente manera:

Si ||x||/ ||s|| <parámetro de vigilancia ρ, ⁡Entonces⁡inhibir ⁡nodo J y ve al paso 7

De lo contrario si ||x||/ ||s|| ≥ parámetro de vigilancia ρ, luego continúe.

Step 11 - Actualización de peso para nodo J se puede hacer de la siguiente manera:

$$ b_ {ij} (nuevo) \: = \: \ frac {\ alpha x_ {i}} {\ alpha \: - \: 1 \: + \: || x ||} $$

$$ t_ {ij} (nuevo) \: = \: x_ {i} $$

Step 12 - Debe comprobarse la condición de parada del algoritmo y puede ser la siguiente:

  • No tiene ningún cambio de peso.
  • No se realiza el reinicio para las unidades.
  • Se alcanzó el número máximo de épocas.

Supongamos que tenemos algún patrón de dimensiones arbitrarias, sin embargo, los necesitamos en una o dos dimensiones. Entonces, el proceso de mapeo de características sería muy útil para convertir el espacio de patrón amplio en un espacio de características típico. Ahora, surge la pregunta de por qué necesitamos un mapa de características autoorganizado. La razón es que, junto con la capacidad de convertir las dimensiones arbitrarias en 1-D o 2-D, también debe tener la capacidad de preservar la topología vecina.

Topologías vecinas en Kohonen SOM

Puede haber varias topologías, sin embargo, las siguientes dos topologías son las que más se utilizan:

Topología de cuadrícula rectangular

Esta topología tiene 24 nodos en la cuadrícula de distancia 2, 16 nodos en la cuadrícula de distancia 1 y 8 nodos en la cuadrícula de distancia 0, lo que significa que la diferencia entre cada cuadrícula rectangular es de 8 nodos. La unidad ganadora se indica con #.

Topología de cuadrícula hexagonal

Esta topología tiene 18 nodos en la cuadrícula de distancia 2, 12 nodos en la cuadrícula de distancia 1 y 6 nodos en la cuadrícula de distancia 0, lo que significa que la diferencia entre cada cuadrícula rectangular es de 6 nodos. La unidad ganadora se indica con #.

Arquitectura

La arquitectura de KSOM es similar a la de la red competitiva. Con la ayuda de esquemas de vecindario, discutidos anteriormente, la capacitación puede tener lugar en la región extendida de la red.

Algoritmo para entrenamiento

Step 1 - Inicializar los pesos, la tasa de aprendizaje α y el esquema topológico de vecindad.

Step 2 - Continúe con el paso 3-9, cuando la condición de parada no sea verdadera.

Step 3 - Continúe con el paso 4-6 para cada vector de entrada x.

Step 4 - Calcular el cuadrado de la distancia euclidiana para j = 1 to m

$$ D (j) \: = \: \ estilo de visualización \ sum \ límites_ {i = 1} ^ n \ estilo de visualización \ sum \ límites_ {j = 1} ^ m (x_ {i} \: - \: w_ {ij }) ^ 2 $$

Step 5 - Obtén la unidad ganadora J dónde D(j) es mínimo.

Step 6 - Calcule el nuevo peso de la unidad ganadora mediante la siguiente relación -

$$ w_ {ij} (nuevo) \: = \: w_ {ij} (antiguo) \: + \: \ alpha [x_ {i} \: - \: w_ {ij} (antiguo)] $$

Step 7 - Actualizar la tasa de aprendizaje α por la siguiente relación -

$$ \ alpha (t \: + \: 1) \: = \: 0.5 \ alpha t $$

Step 8 - Reducir el radio del esquema topológico.

Step 9 - Compruebe la condición de parada de la red.

Este tipo de redes neuronales funcionan sobre la base de la asociación de patrones, lo que significa que pueden almacenar diferentes patrones y, en el momento de dar una salida, pueden producir uno de los patrones almacenados combinándolos con el patrón de entrada dado. Estos tipos de recuerdos también se denominanContent-Addressable Memory(LEVA). La memoria asociativa realiza una búsqueda paralela con los patrones almacenados como archivos de datos.

Los siguientes son los dos tipos de memorias asociativas que podemos observar:

  • Memoria asociativa automática
  • Memoria heteroasociativa

Memoria asociativa automática

Esta es una red neuronal de una sola capa en la que el vector de entrenamiento de entrada y los vectores objetivo de salida son los mismos. Los pesos se determinan para que la red almacene un conjunto de patrones.

Arquitectura

Como se muestra en la siguiente figura, la arquitectura de la red de memoria autoasociativa ha ‘n’ número de vectores de entrenamiento de entrada y similares ‘n’ número de vectores de destino de salida.

Algoritmo de entrenamiento

Para la formación, esta red utiliza la regla de aprendizaje Hebb o Delta.

Step 1 - Inicializar todos los pesos a cero como wij = 0 (i = 1 to n, j = 1 to n)

Step 2 - Realice los pasos 3-4 para cada vector de entrada.

Step 3 - Active cada unidad de entrada de la siguiente manera -

$$ x_ {i} \: = \: s_ {i} \ :( i \: = \: 1 \: a \: n) $$

Step 4 - Active cada unidad de salida de la siguiente manera -

$$ y_ {j} \: = \: s_ {j} \ :( j \: = \: 1 \: a \: n) $$

Step 5 - Ajuste los pesos de la siguiente manera -

$$ w_ {ij} (nuevo) \: = \: w_ {ij} (antiguo) \: + \: x_ {i} y_ {j} $$

Algoritmo de prueba

Step 1 - Establezca los pesos obtenidos durante el entrenamiento para la regla de Hebb.

Step 2 - Realice los pasos 3-5 para cada vector de entrada.

Step 3 - Establecer la activación de las unidades de entrada igual a la del vector de entrada.

Step 4 - Calcular la entrada neta a cada unidad de salida j = 1 to n

$$ y_ {inj} \: = \: \ Displaystyle \ sum \ limits_ {i = 1} ^ n x_ {i} w_ {ij} $$

Step 5 - Aplicar la siguiente función de activación para calcular la salida

$$ y_ {j} \: = \: f (y_ {inj}) \: = \: \ begin {cases} +1 & if \: y_ {inj} \:> \: 0 \\ - 1 & if \: y_ {inj} \: \ leqslant \: 0 \ end {cases} $$

Memoria heteroasociativa

Similar a la red de memoria asociativa automática, también es una red neuronal de una sola capa. Sin embargo, en esta red, el vector de entrenamiento de entrada y los vectores objetivo de salida no son los mismos. Los pesos se determinan para que la red almacene un conjunto de patrones. La red heteroasociativa es de naturaleza estática, por lo tanto, no habría operaciones no lineales ni de retardo.

Arquitectura

Como se muestra en la siguiente figura, la arquitectura de la red Hetero Associative Memory ha ‘n’ número de vectores de entrenamiento de entrada y ‘m’ número de vectores de destino de salida.

Algoritmo de entrenamiento

Para la formación, esta red utiliza la regla de aprendizaje Hebb o Delta.

Step 1 - Inicializar todos los pesos a cero como wij = 0 (i = 1 to n, j = 1 to m)

Step 2 - Realice los pasos 3-4 para cada vector de entrada.

Step 3 - Active cada unidad de entrada de la siguiente manera -

$$ x_ {i} \: = \: s_ {i} \ :( i \: = \: 1 \: a \: n) $$

Step 4 - Active cada unidad de salida de la siguiente manera -

$$ y_ {j} \: = \: s_ {j} \ :( j \: = \: 1 \: a \: m) $$

Step 5 - Ajuste los pesos de la siguiente manera -

$$ w_ {ij} (nuevo) \: = \: w_ {ij} (antiguo) \: + \: x_ {i} y_ {j} $$

Algoritmo de prueba

Step 1 - Establezca los pesos obtenidos durante el entrenamiento para la regla de Hebb.

Step 2 - Realice los pasos 3-5 para cada vector de entrada.

Step 3 - Establecer la activación de las unidades de entrada igual a la del vector de entrada.

Step 4 - Calcular la entrada neta a cada unidad de salida j = 1 to m;

$$ y_ {inj} \: = \: \ Displaystyle \ sum \ limits_ {i = 1} ^ n x_ {i} w_ {ij} $$

Step 5 - Aplicar la siguiente función de activación para calcular la salida

$$ y_ {j} \: = \: f (y_ {inj}) \: = \: \ begin {cases} +1 & if \: y_ {inj} \:> \: 0 \\ 0 & if \ : y_ {inj} \: = \: 0 \\ - 1 & if \: y_ {inj} \: <\: 0 \ end {cases} $$

La red neuronal de Hopfield fue inventada por el Dr. John J. Hopfield en 1982. Consiste en una sola capa que contiene una o más neuronas recurrentes completamente conectadas. La red Hopfield se usa comúnmente para tareas de optimización y asociación automática.

Red Hopfield discreta

Una red Hopfield que opera en forma de línea discreta o, en otras palabras, se puede decir que los patrones de entrada y salida son vectores discretos, que pueden ser de naturaleza binaria (0,1) o bipolar (+1, -1). La red tiene pesos simétricos sin autoconexiones, es decir,wij = wji y wii = 0.

Arquitectura

A continuación se presentan algunos puntos importantes a tener en cuenta acerca de la red Hopfield discreta:

  • Este modelo consta de neuronas con una salida inversora y una no inversora.

  • La salida de cada neurona debe ser la entrada de otras neuronas, pero no la entrada de uno mismo.

  • El peso / fuerza de conexión está representado por wij.

  • Las conexiones pueden ser tanto excitadoras como inhibidoras. Sería excitador, si la salida de la neurona es la misma que la entrada, de lo contrario inhibitoria.

  • Los pesos deben ser simétricos, es decir wij = wji

La salida de Y1 caminante a Y2, Yi y Yn tener los pesos w12, w1i y w1nrespectivamente. Del mismo modo, otros arcos tienen los pesos sobre ellos.

Algoritmo de entrenamiento

Durante el entrenamiento de la red Hopfield discreta, se actualizarán los pesos. Como sabemos, podemos tener los vectores de entrada binarios así como los vectores de entrada bipolares. Por tanto, en ambos casos, las actualizaciones de peso se pueden hacer con la siguiente relación

Case 1 - Patrones de entrada binaria

Para un conjunto de patrones binarios s(p), p = 1 to P

Aquí, s(p) = s1(p), s2(p),..., si(p),..., sn(p)

La matriz de peso está dada por

$$ w_ {ij} \: = \: \ sum_ {p = 1} ^ P [2s_ {i} (p) - \: 1] [2s_ {j} (p) - \: 1] \: \: \: \: \: para \: i \: \ neq \: j $$

Case 2 - Patrones de entrada bipolar

Para un conjunto de patrones binarios s(p), p = 1 to P

Aquí, s(p) = s1(p), s2(p),..., si(p),..., sn(p)

La matriz de peso está dada por

$$ w_ {ij} \: = \: \ sum_ {p = 1} ^ P [s_ {i} (p)] [s_ {j} (p)] \: \: \: \: \: para \ : i \: \ neq \: j $$

Algoritmo de prueba

Step 1 - Inicialice los pesos, que se obtienen del algoritmo de entrenamiento utilizando el principio de Hebbian.

Step 2 - Realice los pasos 3-9, si las activaciones de la red no están consolidadas.

Step 3 - Para cada vector de entrada X, realice los pasos 4-8.

Step 4 - Hacer que la activación inicial de la red sea igual al vector de entrada externa X como sigue -

$$ y_ {i} \: = \: x_ {i} \: \: \: para \: i \: = \: 1 \: a \: n $$

Step 5 - Para cada unidad Yi, realice los pasos 6-9.

Step 6 - Calcule la entrada neta de la red de la siguiente manera -

$$ y_ {ini} \: = \: x_ {i} \: + \: \ Displaystyle \ sum \ limits_ {j} y_ {j} w_ {ji} $$

Step 7 - Aplique la activación de la siguiente manera sobre la entrada neta para calcular la salida -

$$ y_ {i} \: = \ begin {cases} 1 & if \: y_ {ini} \:> \: \ theta_ {i} \\ y_ {i} & if \: y_ {ini} \: = \: \ theta_ {i} \\ 0 & if \: y_ {ini} \: <\: \ theta_ {i} \ end {cases} $$

Aquí $ \ theta_ {i} $ es el umbral.

Step 8 - Transmita esta salida yi a todas las demás unidades.

Step 9 - Pruebe la red para la conjunción.

Evaluación de la función energética

Una función de energía se define como una función que está ligada y no es una función creciente del estado del sistema.

Función de energía Ef⁡, ⁡también llamado Lyapunov function determina la estabilidad de la red Hopfield discreta y se caracteriza de la siguiente manera:

$$ E_ {f} \: = \: - \ frac {1} {2} \ Displaystyle \ sum \ limits_ {i = 1} ^ n \ Displaystyle \ sum \ limits_ {j = 1} ^ n y_ {i} y_ {j} w_ {ij} \: - \: \ estilo de visualización \ sum \ límites_ {i = 1} ^ n x_ {i} y_ {i} \: + \: \ estilo de visualización \ sum \ límites_ {i = 1} ^ n \ theta_ {i} y_ {i} $$

Condition - En una red estable, siempre que cambie el estado del nodo, la función de energía anterior disminuirá.

Suponga que cuando el nodo i ha cambiado de estado de $ y_i ^ {(k)} $ a $ y_i ^ {(k \: + \: 1)} $ ⁡entonces el cambio de energía $ \ Delta E_ {f} $ viene dado por la siguiente relación

$$ \ Delta E_ {f} \: = \: E_ {f} (y_i ^ {(k + 1)}) \: - \: E_ {f} (y_i ^ {(k)}) $$

$$ = \: - \ left (\ begin {array} {c} \ displaystyle \ sum \ limits_ {j = 1} ^ n w_ {ij} y_i ^ {(k)} \: + \: x_ {i} \: - \: \ theta_ {i} \ end {matriz} \ right) (y_i ^ {(k + 1)} \: - \: y_i ^ {(k)}) $$

$$ = \: - \ :( net_ {i}) \ Delta y_ {i} $$

Aquí $ \ Delta y_ {i} \: = \: y_i ^ {(k \: + \: 1)} \: - \: y_i ^ {(k)} $

El cambio de energía depende del hecho de que solo una unidad puede actualizar su activación a la vez.

Red de Hopfield continua

En comparación con la red Discrete Hopfield, la red continua tiene el tiempo como una variable continua. También se utiliza en problemas de optimización y asociación de automóviles, como el problema del vendedor ambulante.

Model - El modelo o arquitectura se puede construir agregando componentes eléctricos como amplificadores que pueden asignar el voltaje de entrada al voltaje de salida a través de una función de activación sigmoidea.

Evaluación de la función energética

$$ E_f = \ frac {1} {2} \ Displaystyle \ sum \ limits_ {i = 1} ^ n \ sum _ {\ subck {j = 1 \\ j \ ne i}} ^ n y_i y_j w_ {ij} - \ Displaystyle \ sum \ limits_ {i = 1} ^ n x_i y_i + \ frac {1} {\ lambda} \ Displaystyle \ sum \ limits_ {i = 1} ^ n \ sum _ {\ subck {j = 1 \\ j \ ne i}} ^ n w_ {ij} g_ {ri} \ int_ {0} ^ {y_i} a ^ {- 1} (y) dy $$

aquí λ es el parámetro de ganancia y gri conductancia de entrada.

Estos son procesos de aprendizaje estocásticos que tienen estructura recurrente y son la base de las primeras técnicas de optimización utilizadas en ANN. La máquina de Boltzmann fue inventada por Geoffrey Hinton y Terry Sejnowski en 1985. Se puede observar más claridad en las palabras de Hinton sobre la máquina de Boltzmann.

“Una característica sorprendente de esta red es que utiliza solo información disponible localmente. El cambio de peso depende únicamente del comportamiento de las dos unidades que conecta, aunque el cambio optimiza una medida global ”- Ackley, Hinton 1985.

Algunos puntos importantes sobre la máquina de Boltzmann:

  • Usan estructura recurrente.

  • Consisten en neuronas estocásticas, que tienen uno de los dos estados posibles, 1 o 0.

  • Algunas de las neuronas en esto son adaptativas (estado libre) y algunas están bloqueadas (estado congelado).

  • Si aplicamos recocido simulado en una red Hopfield discreta, entonces se convertiría en Máquina de Boltzmann.

Objetivo de la máquina de Boltzmann

El objetivo principal de la máquina Boltzmann es optimizar la solución de un problema. Es el trabajo de Boltzmann Machine optimizar los pesos y la cantidad relacionados con ese problema en particular.

Arquitectura

El siguiente diagrama muestra la arquitectura de la máquina Boltzmann. Del diagrama se desprende claramente que se trata de una matriz bidimensional de unidades. Aquí, las ponderaciones de las interconexiones entre unidades son–p dónde p > 0. Los pesos de las autoconexiones están dados porb dónde b > 0.

Algoritmo de entrenamiento

Como sabemos que las máquinas Boltzmann tienen pesos fijos, no habrá algoritmo de entrenamiento ya que no necesitamos actualizar los pesos en la red. Sin embargo, para probar la red tenemos que establecer los pesos así como encontrar la función de consenso (CF).

La máquina Boltzmann tiene un conjunto de unidades Ui y Uj y tiene conexiones bidireccionales en ellos.

  • Estamos considerando el peso fijo, digamos wij.

  • wij ≠ 0 Si Ui y Uj estan conectados.

  • También existe una simetría en la interconexión ponderada, es decir wij = wji.

  • wii también existe, es decir, existiría la auto-conexión entre unidades.

  • Para cualquier unidad Ui, su estado ui sería 1 o 0.

El principal objetivo de la Máquina de Boltzmann es maximizar la Función de Consenso (CF) que puede estar dada por la siguiente relación

$$ CF \: = \: \ estilo de visualización \ sum \ límites_ {i} \ estilo de visualización \ suma \ límites_ {j \ leqslant i} w_ {ij} u_ {i} u_ {j} $$

Ahora, cuando el estado cambia de 1 a 0 o de 0 a 1, entonces el cambio en el consenso puede estar dado por la siguiente relación:

$$ \ Delta CF \: = \ :( 1 \: - \: 2u_ {i}) (w_ {ij} \: + \: \ Displaystyle \ sum \ limits_ {j \ neq i} u_ {i} w_ { ij}) $$

aquí ui es el estado actual de Ui.

La variación en el coeficiente (1 - 2ui) viene dado por la siguiente relación:

$$ (1 \: - \: 2u_ {i}) \: = \: \ begin {cases} +1, & U_ {i} \: está \: actualmente \: desactivado \\ - 1, & U_ {i } \: está \: actualmente \: en \ end {casos} $$

Generalmente, unidad Uino cambia su estado, pero si lo hace, entonces la información residiría localmente en la unidad. Con ese cambio, también habría un aumento en el consenso de la red.

La probabilidad de que la red acepte el cambio en el estado de la unidad viene dada por la siguiente relación:

$$ AF (i, T) \: = \: \ frac {1} {1 \: + \: exp [- \ frac {\ Delta CF (i)} {T}]} $$

Aquí, Tes el parámetro de control. Disminuirá a medida que CF alcance el valor máximo.

Algoritmo de prueba

Step 1 - Inicialice lo siguiente para iniciar el entrenamiento -

  • Pesos que representan la restricción del problema
  • Parámetro de control T

Step 2 - Continúe con los pasos 3 a 8, cuando la condición de parada no sea verdadera.

Step 3 - Realice los pasos 4-7.

Step 4 - Suponga que uno de los estados ha cambiado el peso y elija el número entero I, J como valores aleatorios entre 1 y n.

Step 5 - Calcule el cambio en el consenso de la siguiente manera -

$$ \ Delta CF \: = \ :( 1 \: - \: 2u_ {i}) (w_ {ij} \: + \: \ Displaystyle \ sum \ limits_ {j \ neq i} u_ {i} w_ { ij}) $$

Step 6 - Calcular la probabilidad de que esta red acepte el cambio de estado.

$$ AF (i, T) \: = \: \ frac {1} {1 \: + \: exp [- \ frac {\ Delta CF (i)} {T}]} $$

Step 7 - Acepte o rechace este cambio de la siguiente manera -

Case I - si R < AF, acepta el cambio.

Case II - si R ≥ AF, rechace el cambio.

Aquí, R es el número aleatorio entre 0 y 1.

Step 8 - Reducir el parámetro de control (temperatura) de la siguiente manera -

T(new) = ⁡0.95T(old)

Step 9 - Pruebe las condiciones de frenado que pueden ser las siguientes:

  • La temperatura alcanza un valor especificado
  • No hay cambio de estado para un número específico de iteraciones

La red neuronal Brain-State-in-a-Box (BSB) es una red neuronal autoasociativa no lineal y puede extenderse a la heteroasociación con dos o más capas. También es similar a la red Hopfield. Fue propuesto por JA Anderson, JW Silverstein, SA Ritz y RS Jones en 1977.

Algunos puntos importantes para recordar acerca de BSB Network:

  • Es una red completamente conectada con el número máximo de nodos dependiendo de la dimensionalidad n del espacio de entrada.

  • Todas las neuronas se actualizan simultáneamente.

  • Las neuronas toman valores entre -1 y +1.

Formulaciones Matemáticas

La función de nodo utilizada en la red BSB es una función de rampa, que se puede definir de la siguiente manera:

$$ f (neto) \: = \: min (1, \: max (-1, \: net)) $$

Esta función de rampa es limitada y continua.

Como sabemos que cada nodo cambiaría de estado, se puede hacer con la ayuda de la siguiente relación matemática:

$$ x_ {t} (t \: + \: 1) \: = \: f \ left (\ begin {array} {c} \ displaystyle \ sum \ limits_ {j = 1} ^ n w_ {i, j } x_ {j} (t) \ end {matriz} \ derecha) $$

Aquí, xi(t) es el estado de la ith nodo a la vez t.

Pesos de ith nodo a jth El nodo se puede medir con la siguiente relación:

$$ w_ {ij} \: = \: \ frac {1} {P} \ Displaystyle \ sum \ limits_ {p = 1} ^ P (v_ {p, i} \: v_ {p, j}) $$

Aquí, P es el número de patrones de entrenamiento, que son bipolares.

La optimización es una acción para hacer que algo como el diseño, la situación, los recursos y el sistema sean lo más efectivos posible. Utilizando una semejanza entre la función de costo y la función de energía, podemos usar neuronas altamente interconectadas para resolver problemas de optimización. Este tipo de red neuronal es la red de Hopfield, que consta de una sola capa que contiene una o más neuronas recurrentes completamente conectadas. Esto se puede utilizar para la optimización.

Puntos para recordar al usar la red Hopfield para la optimización:

  • La función energética debe ser mínima de la red.

  • Encontrará una solución satisfactoria en lugar de seleccionar uno de los patrones almacenados.

  • La calidad de la solución encontrada por la red Hopfield depende significativamente del estado inicial de la red.

Problema del vendedor ambulante

Encontrar la ruta más corta recorrida por el vendedor es uno de los problemas computacionales, que se puede optimizar utilizando la red neuronal Hopfield.

Concepto básico de TSP

El problema del vendedor ambulante (TSP) es un problema de optimización clásico en el que un vendedor tiene que viajar nciudades, que están conectadas entre sí, manteniendo al mínimo el costo y la distancia recorrida. Por ejemplo, el vendedor tiene que recorrer un conjunto de 4 ciudades A, B, C, D y el objetivo es encontrar el recorrido circular más corto, ABC-D, para minimizar el costo, que también incluye el costo de viajar desde la última ciudad D a la primera ciudad A.

Representación matricial

En realidad, cada recorrido de TSP n-city se puede expresar como n × n matriz cuya ith fila describe el ithubicación de la ciudad. Esta matriz,M, para 4 ciudades A, B, C, D se puede expresar de la siguiente manera:

$$ M = \ begin {bmatrix} A: & 1 & 0 & 0 & 0 \\ B: & 0 & 1 & 0 & 0 \\ C: & 0 & 0 & 1 & 0 \\ D: & 0 & 0 & 0 & 1 \ end {bmatrix} $$

Solución de Hopfield Network

Al considerar la solución de este TSP de la red Hopfield, cada nodo de la red corresponde a un elemento de la matriz.

Cálculo de la función de energía

Para ser la solución optimizada, la función energética debe ser mínima. Sobre la base de las siguientes restricciones, podemos calcular la función de energía de la siguiente manera:

Restricción-I

La primera restricción, sobre la base de la cual calcularemos la función de energía, es que un elemento debe ser igual a 1 en cada fila de la matriz. M y otros elementos en cada fila deben ser iguales a 0porque cada ciudad puede aparecer en una sola posición en la gira TSP. Esta restricción se puede escribir matemáticamente de la siguiente manera:

$$ \ Displaystyle \ sum \ limits_ {j = 1} ^ n M_ {x, j} \: = \: 1 \: para \: x \: \ in \: \ lbrace1, ..., n \ rbrace $ PS

Ahora, la función de energía que se minimizará, basada en la restricción anterior, contendrá un término proporcional a -

$$ \ Displaystyle \ sum \ limits_ {x = 1} ^ n \ left (\ begin {array} {c} 1 \: - \: \ Displaystyle \ sum \ limits_ {j = 1} ^ n M_ {x, j } \ end {matriz} \ right) ^ 2 $$

Restricción-II

Como sabemos, en TSP una ciudad puede ocurrir en cualquier posición en el recorrido, por lo tanto, en cada columna de la matriz. M, un elemento debe ser igual a 1 y otros elementos deben ser iguales a 0. Esta restricción se puede escribir matemáticamente de la siguiente manera:

$$ \ Displaystyle \ sum \ limits_ {x = 1} ^ n M_ {x, j} \: = \: 1 \: para \: j \: \ in \: \ lbrace1, ..., n \ rbrace $ PS

Ahora, la función de energía que se minimizará, basada en la restricción anterior, contendrá un término proporcional a -

$$ \ Displaystyle \ sum \ limits_ {j = 1} ^ n \ left (\ begin {array} {c} 1 \: - \: \ Displaystyle \ sum \ limits_ {x = 1} ^ n M_ {x, j } \ end {matriz} \ right) ^ 2 $$

Cálculo de la función de costo

Supongamos una matriz cuadrada de (n × n) denotado por C denota la matriz de costos de TSP para n ciudades donde n > 0. A continuación se muestran algunos parámetros al calcular la función de costo:

  • Cx, y - El elemento de la matriz de costos denota el costo de viajar desde la ciudad. x a y.

  • La adyacencia de los elementos de A y B se puede mostrar mediante la siguiente relación:

$$ M_ {x, i} \: = \: 1 \: \: y \: \: M_ {y, i \ pm 1} \: = \: 1 $$

Como sabemos, en Matrix el valor de salida de cada nodo puede ser 0 o 1, por lo tanto, para cada par de ciudades A, B podemos agregar los siguientes términos a la función de energía:

$$ \ Displaystyle \ sum \ limits_ {i = 1} ^ n C_ {x, y} M_ {x, i} (M_ {y, i + 1} \: + \: M_ {y, i-1}) $$

Sobre la base de la función de costo y el valor de restricción anteriores, la función de energía final E se puede dar de la siguiente manera:

$$ E \: = \: \ frac {1} {2} \ displaystyle \ sum \ limits_ {i = 1} ^ n \ displaystyle \ sum \ limits_ {x} \ displaystyle \ sum \ limits_ {y \ neq x} C_ {x, y} M_ {x, i} (M_ {y, i + 1} \: + \: M_ {y, i-1}) \: + $$

$$ \: \ begin {bmatrix} \ gamma_ {1} \ displaystyle \ sum \ limits_ {x} \ left (\ begin {array} {c} 1 \: - \: \ displaystyle \ sum \ limits_ {i} M_ {x, i} \ end {matriz} \ right) ^ 2 \: + \: \ gamma_ {2} \ Displaystyle \ sum \ limits_ {i} \ left (\ begin {matriz} {c} 1 \: - \ : \ Displaystyle \ sum \ limits_ {x} M_ {x, i} \ end {array} \ right) ^ 2 \ end {bmatrix} $$

Aquí, γ1 y γ2 son dos constantes de pesaje.

Técnica de descenso en gradiente iterado

El descenso de gradiente, también conocido como descenso más pronunciado, es un algoritmo de optimización iterativo para encontrar un mínimo local de una función. Mientras minimizamos la función, nos preocupamos por minimizar el costo o error (recuerde el problema del vendedor ambulante). Se usa ampliamente en el aprendizaje profundo, que es útil en una amplia variedad de situaciones. El punto que debemos recordar aquí es que nos preocupa la optimización local y no la optimización global.

Idea principal de trabajo

Podemos entender la idea de trabajo principal del descenso de gradiente con la ayuda de los siguientes pasos:

  • Primero, comience con una estimación inicial de la solución.

  • Luego, toma el gradiente de la función en ese punto.

  • Más tarde, repita el proceso colocando la solución en la dirección negativa del gradiente.

Siguiendo los pasos anteriores, el algoritmo eventualmente convergerá donde el gradiente es cero.

Concepto matemático

Supongamos que tenemos una función f(x)y estamos tratando de encontrar el mínimo de esta función. Los siguientes son los pasos para encontrar el mínimo def(x).

  • Primero, dé un valor inicial $ x_ {0} \: para \: x $

  • Ahora tome el gradiente $ \ nabla f $ ⁡of función, con la intuición de que el gradiente dará la pendiente de la curva en ese x y su dirección apuntará al aumento de la función, para encontrar la mejor dirección para minimizarla.

  • Ahora cambie x de la siguiente manera:

    $$ x_ {n \: + \: 1} \: = \: x_ {n} \: - \: \ theta \ nabla f (x_ {n}) $$

Aquí, θ > 0 es la tasa de entrenamiento (tamaño del paso) que obliga al algoritmo a realizar pequeños saltos.

Estimación del tamaño del paso

En realidad, un tamaño de paso incorrecto θpuede no alcanzar la convergencia, por lo que una selección cuidadosa de los mismos es muy importante. Se deben recordar los siguientes puntos al elegir el tamaño del paso

  • No elija un tamaño de paso demasiado grande, de lo contrario tendrá un impacto negativo, es decir, divergerá en lugar de converger.

  • No elija un tamaño de paso demasiado pequeño, de lo contrario, la convergencia llevará mucho tiempo.

Algunas opciones con respecto a la elección del tamaño del paso:

  • Una opción es elegir un tamaño de paso fijo.

  • Otra opción es elegir un tamaño de paso diferente para cada iteración.

Recocido simulado

El concepto básico de Recocido Simulado (SA) está motivado por el recocido en sólidos. En el proceso de recocido, si calentamos un metal por encima de su punto de fusión y lo enfriamos, las propiedades estructurales dependerán de la velocidad de enfriamiento. También podemos decir que SA simula el proceso metalúrgico de recocido.

Usar en ANN

SA es un método computacional estocástico, inspirado en la analogía de recocido, para aproximar la optimización global de una función dada. Podemos usar SA para entrenar redes neuronales de avance.

Algoritmo

Step 1 - Genera una solución aleatoria.

Step 2 - Calcule su costo usando alguna función de costo.

Step 3 - Genere una solución vecina aleatoria.

Step 4 - Calcule el costo de la nueva solución por la misma función de costo.

Step 5 - Compare el costo de una solución nueva con el de una solución anterior de la siguiente manera:

Si CostNew Solution < CostOld Solution luego pase a la nueva solución.

Step 6 - Pruebe la condición de parada, que puede ser el número máximo de iteraciones alcanzado u obtener una solución aceptable.

La naturaleza siempre ha sido una gran fuente de inspiración para toda la humanidad. Los algoritmos genéticos (GA) son algoritmos basados ​​en búsquedas que se basan en los conceptos de selección natural y genética. Los GA son un subconjunto de una rama mucho mayor de la computación conocida comoEvolutionary Computation.

El GA fue desarrollado por John Holland y sus estudiantes y colegas de la Universidad de Michigan, sobre todo David E. Goldberg, y desde entonces se ha probado en varios problemas de optimización con un alto grado de éxito.

En los GA, tenemos un grupo o una población de posibles soluciones al problema dado. Estas soluciones luego se someten a recombinación y mutación (como en la genética natural), produciendo nuevos hijos, y el proceso se repite durante varias generaciones. A cada individuo (o solución candidata) se le asigna un valor de aptitud (basado en su valor de función objetivo) y los individuos más aptos tienen una mayor probabilidad de aparearse y producir más individuos “más aptos”. Esto está en consonancia con la teoría darwiniana de la "supervivencia del más apto".

De esta manera, seguimos “evolucionando” mejores personas o soluciones a lo largo de generaciones, hasta que alcanzamos un criterio de parada.

Los algoritmos genéticos son de naturaleza suficientemente aleatoria, sin embargo, funcionan mucho mejor que la búsqueda local aleatoria (en la que solo probamos varias soluciones aleatorias, haciendo un seguimiento de las mejores hasta ahora), ya que también explotan información histórica.

Ventajas de los GA

Los GA tienen varias ventajas que los han hecho inmensamente populares. Estos incluyen:

  • No requiere ninguna información derivada (que puede no estar disponible para muchos problemas del mundo real).

  • Es más rápido y eficiente en comparación con los métodos tradicionales.

  • Tiene muy buenas capacidades en paralelo.

  • Optimiza funciones continuas y discretas, así como problemas multiobjetivo.

  • Proporciona una lista de "buenas" soluciones y no una única solución.

  • Siempre obtiene una respuesta al problema, que mejora con el tiempo.

  • Útil cuando el espacio de búsqueda es muy grande y hay una gran cantidad de parámetros involucrados.

Limitaciones de los GA

Como cualquier técnica, los AG también adolecen de algunas limitaciones. Estos incluyen:

  • Los GA no son adecuados para todos los problemas, especialmente los problemas que son simples y para los que se dispone de información derivada.

  • El valor de aptitud se calcula repetidamente, lo que puede resultar computacionalmente costoso para algunos problemas.

  • Al ser estocástico, no existen garantías sobre la optimalidad o la calidad de la solución.

  • Si no se implementa correctamente, es posible que GA no converja hacia la solución óptima.

GA - Motivación

Los algoritmos genéticos tienen la capacidad de ofrecer una solución "suficientemente buena" y "suficientemente rápida". Esto hace que Gas sea atractivo para su uso en la resolución de problemas de optimización. Las razones por las que se necesitan AG son las siguientes:

Resolviendo problemas difíciles

En informática, hay un gran conjunto de problemas, que son NP-Hard. Lo que esto significa esencialmente es que, incluso los sistemas informáticos más potentes, tardan mucho tiempo (¡incluso años!) En resolver ese problema. En tal escenario, los GA demuestran ser una herramienta eficiente para proporcionarusable near-optimal solutions en poco tiempo.

Fracaso de los métodos basados ​​en gradientes

Los métodos tradicionales basados ​​en cálculo funcionan comenzando en un punto aleatorio y moviéndose en la dirección del gradiente hasta llegar a la cima de la colina. Esta técnica es eficiente y funciona muy bien para funciones objetivas de un solo pico como la función de costo en regresión lineal. Sin embargo, en la mayoría de las situaciones del mundo real, tenemos un problema muy complejo llamado paisajes, formado por muchos picos y muchos valles, que hace que dichos métodos fallen, ya que sufren una tendencia inherente a quedarse atascados en los óptimos locales, como se muestra. en la siguiente figura.

Obtener una buena solución rápidamente

Algunos problemas difíciles, como el problema del vendedor ambulante (TSP), tienen aplicaciones del mundo real, como la búsqueda de rutas y el diseño VLSI. Ahora imagine que está utilizando su sistema de navegación GPS y que se necesitan unos minutos (o incluso algunas horas) para calcular la ruta "óptima" desde el origen hasta el destino. El retraso en tales aplicaciones del mundo real no es aceptable y, por lo tanto, lo que se requiere es una solución "suficientemente buena", que se entrega "rápido".

¿Cómo utilizar GA para problemas de optimización?

Ya sabemos que la optimización es una acción para hacer que algo como el diseño, la situación, los recursos y el sistema sean lo más efectivos posible. El proceso de optimización se muestra en el siguiente diagrama.

Etapas del mecanismo de GA para el proceso de optimización

Las siguientes son las etapas del mecanismo GA cuando se utiliza para la optimización de problemas.

  • Genere la población inicial al azar.

  • Seleccione la solución inicial con los mejores valores de aptitud.

  • Recombina las soluciones seleccionadas utilizando operadores de mutación y cruzamiento.

  • Inserta descendencia en la población.

  • Ahora, si se cumple la condición de detención, devuelva la solución con su mejor valor de aptitud. De lo contrario, vaya al paso 2.

Antes de estudiar los campos en los que ANN se ha utilizado ampliamente, debemos comprender por qué ANN sería la opción de aplicación preferida.

¿Por qué las redes neuronales artificiales?

Necesitamos entender la respuesta a la pregunta anterior con un ejemplo de un ser humano. Cuando éramos niños, solíamos aprender las cosas con la ayuda de nuestros mayores, que incluyen a nuestros padres o maestros. Luego, más tarde, mediante el autoaprendizaje o la práctica, seguimos aprendiendo a lo largo de nuestra vida. Los científicos e investigadores también están haciendo que la máquina sea inteligente, al igual que un ser humano, y ANN juega un papel muy importante en el mismo debido a las siguientes razones:

  • Con la ayuda de las redes neuronales, podemos encontrar la solución de tales problemas para los cuales el método algorítmico es costoso o no existe.

  • Las redes neuronales pueden aprender con el ejemplo, por lo tanto, no es necesario programarlo en gran medida.

  • Las redes neuronales tienen la precisión y la velocidad significativamente más rápida que la velocidad convencional.

Areas de aplicación

Las siguientes son algunas de las áreas donde se está utilizando ANN. Sugiere que ANN tiene un enfoque interdisciplinario en su desarrollo y aplicaciones.

Reconocimiento de voz

El habla ocupa un papel destacado en la interacción humano-humano. Por lo tanto, es natural que las personas esperen interfaces de voz con computadoras. En la era actual, para comunicarse con las máquinas, los humanos todavía necesitan lenguajes sofisticados que son difíciles de aprender y usar. Para aliviar esta barrera de comunicación, una solución simple podría ser la comunicación en un idioma hablado que la máquina pueda entender.

Se han realizado grandes avances en este campo, sin embargo, todavía este tipo de sistemas se enfrentan al problema del vocabulario o gramática limitados junto con el problema de la reentrenamiento del sistema para diferentes hablantes en diferentes condiciones. ANN está jugando un papel importante en esta área. Las siguientes ANN se han utilizado para el reconocimiento de voz:

  • Redes multicapa

  • Redes multicapa con conexiones recurrentes

  • Mapa de características autoorganizado de Kohonen

La red más útil para esto es el mapa de características autoorganizado de Kohonen, que tiene su entrada como segmentos cortos de la forma de onda del habla. Mapeará el mismo tipo de fonemas que la matriz de salida, denominada técnica de extracción de características. Después de extraer las características, con la ayuda de algunos modelos acústicos como procesamiento back-end, reconocerá el enunciado.

Reconocimiento de caracteres

Es un problema interesante que cae dentro del área general del reconocimiento de patrones. Se han desarrollado muchas redes neuronales para el reconocimiento automático de caracteres escritos a mano, ya sean letras o dígitos. A continuación se muestran algunas ANN que se han utilizado para el reconocimiento de caracteres:

  • Redes neuronales multicapa como las redes neuronales de retropropagación.
  • Neocognitron

Aunque las redes neuronales de retropropagación tienen varias capas ocultas, el patrón de conexión de una capa a la siguiente está localizado. Del mismo modo, el neocognitrón también tiene varias capas ocultas y su entrenamiento se realiza capa a capa para este tipo de aplicaciones.

Solicitud de verificación de firma

Las firmas son una de las formas más útiles de autorizar y autenticar a una persona en transacciones legales. La técnica de verificación de firmas es una técnica que no se basa en la visión.

Para esta aplicación, el primer enfoque es extraer la característica o más bien el conjunto de características geométricas que representan la firma. Con estos conjuntos de características, tenemos que entrenar las redes neuronales utilizando un algoritmo de red neuronal eficiente. Esta red neuronal entrenada clasificará la firma como genuina o falsificada en la etapa de verificación.

Reconocimiento de rostro humano

Es uno de los métodos biométricos para identificar el rostro dado. Es una tarea típica por la caracterización de imágenes “sin rostro”. Sin embargo, si una red neuronal está bien entrenada, entonces se puede dividir en dos clases, a saber, imágenes que tienen caras e imágenes que no tienen caras.

Primero, todas las imágenes de entrada deben preprocesarse. Entonces, la dimensionalidad de esa imagen debe reducirse. Y, por último, debe clasificarse utilizando un algoritmo de entrenamiento de redes neuronales. Las siguientes redes neuronales se utilizan con fines de entrenamiento con imágenes preprocesadas:

  • Red neuronal de alimentación directa multicapa completamente conectada entrenada con la ayuda del algoritmo de retropropagación.

  • Para la reducción de dimensionalidad, se utiliza el análisis de componentes principales (PCA).