Vahid Mirjalili

Python Machine Learning


Скачать книгу

alt=""/>

      En la literatura del aprendizaje automático, el umbral negativo, o peso , se denomina habitualmente «sesgo» (bias, en inglés).

En las siguientes secciones, usaremos con frecuencia notaciones básicas de álgebra lineal. Por ejemplo, abreviaremos la suma de los productos de los valores en x y w con un producto escalar vectorial, donde el superíndice T se refiere a trasposición, que es una operación que transforma una vector columna en un vector fila y viceversa.Por ejemplo:Además, la operación de trasposición también se puede aplicar a matrices para reflejarlas sobre su diagonal, por ejemplo:En este libro, utilizaremos solo conceptos muy básicos de álgebra lineal; sin embargo, si necesitas un repaso rápido, puedes echar un vistazo a la excelente obra de Zico Kolter Linear Algebra Review and Reference [Revisión y referencia de álgebra lineal], disponible de forma gratuita en http://www.cs.cmu.edu/~zkolter/course/linalg/linalg_notes.pdf.

      La siguiente figura ilustra cómo la función de decisión del perceptrón (subfigura izquierda) comprime la entrada de red en una salida binaria (-1 o 1) y cómo se puede utilizar para discriminar entre dos clases separables linealmente (subfigura derecha):

      La idea general que hay detrás de la neurona MCP y del modelo de perceptrón umbralizado de Rosenblatt es utilizar un enfoque reduccionista para imitar cómo trabaja una simple neurona en el cerebro: si se excita o si no. Así, la regla del perceptrón inicial de Rosenblatt es bastante sencilla y se puede resumir en los siguientes pasos:

      1.Iniciar los pesos a 0 o a números aleatorios más pequeños.

      2.Para cada muestra de entrenamiento :

      a.Calcular el valor de salida .

      b.Actualizar los pesos.

      Aquí, el valor de salida es la etiqueta de clase predicha por la función escalón unitario que hemos definido anteriormente, y la actualización simultánea de cada peso en el vector peso w se puede escribir formalmente como:

      El valor de , que se utiliza para actualizar el peso , se calcula mediante la regla de aprendizaje del perceptrón:

      donde es el rango de aprendizaje (normalmente una constante entre 0.0 y 1.0), es la etiqueta de clase verdadera de la muestra de entrenamiento i, y es la etiqueta de clase predicha. Es importante observar que todos los pesos en el vector peso han sido actualizados simultáneamente, lo que significa que no podemos volver a calcular el antes de que todos los pesos estén actualizados. Concretamente, para un conjunto de datos de dos dimensiones, podríamos escribir la actualización como:

      Antes de implementar la regla del perceptrón en Python, haremos un sencillo experimento mental para mostrar la preciosa simplicidad de esta regla de aprendizaje. En los dos casos donde el perceptrón predice correctamente la etiqueta de clase, los pesos no cambian:

      Sin embargo, en caso de una predicción errónea, los pesos se verán empujados hacia la dirección de la clase de destino negativa o positiva:

      Para obtener una mejor intuición del factor multiplicativo , veamos otro ejemplo sencillo, donde:

      Asumimos que y clasificamos erróneamente esta muestra como -1. En este caso, podríamos aumentar el correspondiente peso en 1, de manera que la entrada de red fuera más positiva la próxima vez que se encontrar con esta muestra y, por tanto, fuera más probable que estuviera por encima del umbral de la función escalón unitario para clasificar la muestra como +1:

      La actualización del peso es proporcional al valor de . Por ejemplo, si tenemos otra muestra clasificada de forma incorrecta como -1, empujaríamos el límite de decisión por una medida aún mayor para clasificar la próxima vez correctamente esta muestra:

      Es importante observar que la convergencia del perceptrón solo está garantizada si las dos clases son linealmente separables y si el rango de aprendizaje es suficientemente pequeño. Si las dos clases no pueden ser separadas por un límite de decisión lineal, podemos ajustar un número máximo de pasos sobre el conjunto de datos de entrenamiento (épocas) y/o un umbral para el número de clasificaciones erróneas toleradas. De otro modo, el perceptrón nunca dejaría de actualizar los pesos:

Descarga del código de ejemploRecuerda que en la parte inferior de la primera página del libro encontrarás