Todas las redes neuronales vistas hasta ahora han sido diseñadas manualmente, escogiendo una topología y parámetros de configuración adecuados para cada problema. Esto era factible en la medida que los problemas eran sencillos, se conocían todas las entradas y salidas, y se podían deducir las relaciones existentes entre las mismas. En la práctica, los tipos de problemas que se intentan resolver mediante redes neuronales son complejos y las relaciones nada evidentes. Es por ello que se aplican técnicas de Aprendizaje Automático, capaces de encontrar los parámetros de configuración adecuados para resolver un problema concreto.

Vector de Pesos Revisitado

Los pesos se han tratado hasta ahora como una forma de ponderar las entradas con el objetivo de dar mayor importancia a unas que otras. Pero en la práctica, el estudio de la relación entre el vector de pesos y los vectores de entrada representa el primer paso para la elaboración de un procedimiento de Aprendizaje Automático.

Los vectores de pesos y entradas se relacionan a través de la función de cálculo del valor neto, que puede escribirse como el producto escalar entre ambos vectores:

z = \displaystyle\sum_{i=1}^{n} w_i x_i = W \cdot X = |W||X|\cos{\theta}

El producto escalar representa una forma de calcular el ángulo \theta (theta) que forman dos vectores entre sí. Cuando los vectores apuntan en la misma dirección el coseno es 1 y el valor del producto escalar es positivo. Cuando los vectores son perpendiculares el coseno es 0 y el producto escalar es cero. Cuando los vectores apuntan en direcciones opuestas el coseno es -1 y el producto escalar es negativo. En posiciones intermedias el signo depende del ángulo concreto que forman los vectores.

Producto EscalarLo que se puede interpretar diciendo que el valor neto es una medida de la diferencia del vector de entradas con respecto al vector de pesos. Cuanto más semejantes sean las entradas de los pesos mayor será el neto. Y cuanto más distintas sean menor será el neto.

Recordando que la función de cálculo del valor neto define un hiperplano formado por todos los puntos que se encuentran sobre la superficie definida por la siguiente ecuación:

W \cdot X

Y que la frontera de decisión sobre dicho hiperplano está formada por los puntos que cumplen la siguiente expresión:

W \cdot X = 0

Debe ser claro que para que se cumpla dicha expresión debe ocurrir que el producto escalar sea cero, o lo que es lo mismo, que W y X sean perpendiculares. O dicho de otra forma, que la expresión de la frontera de decisión representa el conjunto de todos los vectores X perpendiculares a W .

Esta nueva interpretación de la relación entre el vector de pesos y los vectores de entrada permite obtener otra visión del funcionamiento interno de una neurona artificial. Por ejemplo, consideremos una neurona artificial que implementa una puerta lógica NOT.

Neurona Artificial - Puerta NOTEsta neurona tiene un vector de pesos de dos dimensiones:

W = [-1, 0.5]

Y dos posibles vectores de entrada, uno para el valor negativo y otro para el positivo, siguiendo el criterio habitual de que 0 es negativo y 1 positivo:

X_1 = [0, 1]

X_2 = [1, 1]

El vector de pesos es perpendicular a la frontera de decisión, por lo que conociendo dicho vector se puede determinar la frontera. Y examinando la orientación de los vectores de entrada con respecto al vector de pesos se puede determinar en qué lado de la frontera se encuentran.

Frontera de Decisión - Puerta NOTEl resultado se puede verificar examinando el signo del producto escalar entre el vector de pesos y cada uno de los posibles vectores de entrada:

W \cdot X_1 = (-1) * 0 + 0.5 * 1 = 0.5

W \cdot X_2 = (-1) * 1 + 0.5 * 1 = -0.5

Para el primer vector de entrada el producto es positivo, así que se encuentra en el mismo lado que el vector de pesos. Para el segundo vector es negativo, así que se encuentra al otro lado.

Este procedimiento es válido para cualquier número de dimensiones, por lo que de forma general se habla de vectores ortogonales, en vez de perpendiculares. A partir de tres dimensiones resulta difícil de representar, por lo que es mejor pensar en el vector de pesos como un patrón que identifica un conjunto de características determinadas que se quieren analizar, de forma que cada entrada introducida en la neurona se compara con dicho patrón con el objetivo de obtener un valor que indica su grado de similitud. Si son muy similares entonces el valor es alto y la neurona tiene una mayor probabilidad de activarse.

Para entender mejor esto se puede pensar en vectores que tengan algún tipo de interpretación semántica, en vez de considerarlos sólo como un conjunto de números cualesquiera. Por ejemplo, en un sistema de clasificación de imágenes, donde una neurona puede estar dedicada a detectar un determinado patrón de píxeles, con su vector de pesos W representando un patrón de 3 filas y 3 columnas de píxeles en forma de cruz. De forma que contra dicho patrón se pueden comparar imágenes de entrada cualesquiera, como X_1 X_2 .Vector de Pesos - PatrónLa primera imagen no se asemeja en absoluto al patrón, la segunda sólo se diferencia en un par de píxeles. Al calcular el producto escalar se obtiene un valor de la semejanza de cada imagen con el patrón definido por el vector de pesos. La imagen que más se parece al patrón obtiene un valor más alto y tiene mayor probabilidad de activar la neurona.