Es un mecanismo de resolución de problemas inspirado en la presunta estructura biológica cognitiva del ser humano. En las redes neuronales artificiales, la solución se construye a partir de transformaciones sucesivas de los datos de entrada.

La unidad más simple de transformación se conoce como neurona artificial y su labor es aplicar una función a los datos de entrada. En estas neuronas, usualmente, los datos de entrada se ponderan para que la transformación pueda corresponder (lo más cercano posible) a la salida esperada.

Un ejemplo simplificado: Tomemos una neurona -un poco perezosa, cuya función de transformación es no hacer nada al dato de entrada, es decir, el dato de salida de la neurona es igual al dato de entrada:

f(x)=x 

Y digamos que nuestra neurona debe transformar 5 unidades en 1 unidad:

Figura: Entrada y salida esperada de la neurona

 

Obviamente, solo la función de transformación de nuestra neurona perezosa es insuficiente para cumplir la tarea asignada y requiere “ponderar”, o multiplicar, la variable de entrada por ⅕ para generar el esperado 1. 

Figura: Neurona perezosa con peso para la variable de entrada

 

En el vocabulario de las redes neuronales se conoce como peso (w), al valor por el cual se multiplican las variables de entrada para ponderarlas. 

 

Siguiendo con nuestro ejemplo de neurona perezosa, ahora le ponen la tarea de transformar 5 unidades en 1.247 unidades. Como es tan perezosa, encuentra que ya tiene un peso asignado y simplemente decide “ajustar” ese valor sumándole el 0.247 que le hace falta y así alimentar a su perezosa función de transformación.

Figura: Neurona perezosa con peso y ajuste

 

Ese ajuste se conoce con el anglicismo de bias y es el segundo mecanismo de ajuste de las variables de entrada de las neuronas.

 

Esta conjunto de operaciones de transformación de la neurona se podría expresar como:

y= f(x*w + b)

Siendo:

       x   : Valor de entrada

       w  :  Peso

        b  :  Ajuste (bias)

       f():   Función de transformación

 

Calibración de pesos y bias

Partiendo del último diseño de la neurona perezosa, se asumirá que el valor del peso es desconocido y el ajuste es 0.

Se plantea una optimización simple – digamos que por “fuerza bruta”:

  • De manera aleatoria, asignar un valor al peso, para esta explicación se toma:

w=0

  • Calcular la salida (pronóstico) de la neurona:

y=x*w+b=5*0+0=0

  • Determinar ¿qué tan diferente es el pronóstico (salida de la neurona) a la salida esperada?. Esto se denominará función de pérdida y una técnica utilizada es el error cuadrático.

error=(Ve – Vp)2

Donde:

    Ve: Valor de salida esperado
    Vp: Valor de salida obtenido (pronóstico)

Como ejemplo, consideramos que el error cuadrático es aceptable cuando sea menor a 0.1.

error=(Ve – Vp)2=(1.247-0)2=1.555

Como puede verse el valor asignado al peso no es exitoso pues error > 0.1 .

  • Ajustar el peso para disminuir el error (optimizar). Vamos a usar incrementos de 0.1. Así, el nuevo valor del peso sería:

w=0+0.1=0.1

Con este nuevo peso volvemos a generar un pronóstico y calcular el error cuadŕatico:

y=x*w+b=5*0.1+0=0.5

error=(1.247-0.5)2=0.558

El error ha disminuido pero aún es superior al umbral de éxito, así que volvemos a cambiar el peso y repetir el proceso:

w=0.1+0.1=0.2

y=x*w+b=5*0.2+0=1

error=(1.247-1)2=0.061

Para este caso el umbral de éxito se alcanza y “paramos” la acomodación del peso.

  1. Por último se coloca un ajuste (bias) que permita cumplir con la transformación deseada.

b= Ve-Vp=1.247 – 1=0.247

Y así, la neurona perezosa estaría configurada (entrenada).