El siguiente tutorial tiene el objetivo de complementar la clase 15 del curso de introducción a machine learning. Es la primera vez que publico contenido espero les sirva.
Introducción
El concepto de redes neuronales suele ser explicado fácilmente cuando se relaciona con el aprendizaje humano. Cuando un niño va a aprender a identificar los colores, primero debe mirar el color y luego con indicaciones, aprende las características de ese color, esto le permite identificar cada uno de ellos en el futuro sin tener que recibir nuevamente la información. Lo mismo sucede con las redes neuronales, pueden tomar decisiones una vez han sido entrenadas con información previa. Si se desea que identifique colores como se mencionaba anteriormente, se debe suministrar información que permita identificar cada color tal cual como lo haría el niño en su aprendizaje.
En resumen, una red neuronal es la representación computacional de las neuronas del cerebro humano, las cuales intervienen en las decisiones que tomamos a diario y son claves al momento de adquirir conocimientos. Para comprender mejor el funcionamiento de una red neuronal, este tutorial se enfoca en el análisis del perceptron puesto que es el modelo más simple de una red neuronal.
El perceptron (Conceptos generales)
El perceptron es la representación de una neurona del cuerpo humano.
Teniendo en cuenta el ejemplo mencionado anteriormente. El perceptron se compone por:
Entradas: Es la información que recibe el perceptron. Un ejemplo de esto se da en el aprendizaje de colores. Cuando el niño observa un color, sus ojos capturan una imagen con características específicas que le permiten identificar un color especifico. Cada una de estas características se considera una entrada en el modelo.
Pesos: Son valores numéricos que se encargan de establecer la influencia de una entrada en la salida deseada.
Por ejemplo, al determinar si una persona tiene la posibilidad de sufrir un infarto se evalúan
valores de entrada como obesidad, falta de ejercicio, diabetes, entre otros. Estas características
podrían indicar si la persona puede sufrir un ataque, sin embargo, características como la
obesidad y la diabetes incrementan mucho más el riesgo que la falta de ejercicio, por lo que se
consideran más significativas al momento de predecir el infarto.
Bias: Es un parámetro que tienen algunos modelos de redes neuronales el cual permite encontrar fácilmente la separación entre posibilidades de salida de una red neuronal. Agradezco a @ivancamilotrivinolopez por ayudarme a comprender este concepto
Función de activación: Es una función matemática que se encarga de determinar un valor de salida una vez se han procesado cada una de las entradas. En el aprendizaje de colores se aplica cuando se debe clasificar el color. Dependiendo de las características, el niño decide cual es el color que visualizó.
Pasos para entrenar el perceptron
Teniendo en cuenta el ejemplo de la compuerta AND del curso, realizaremos el entrenamiento del perceptron con diferentes pesos y bias a los que allí se indican. Esto con la finalidad de mostrar que sucede cuando el perceptron no se entrena en la primera iteración.
Paso 1: Inicializar los pesos y el bias
Cada entrada del perceptron debe tener un peso. Estos valores pueden ser aleatorios, sin embargo, es mejor empezar con valores pequeños.
Paso 2 Calcular las salidas (net) con los pesos y el bias
En este paso se calcula cada salida que teniendo en cuenta los posibles valores pueden tomar las entradas del perceptron. Para este caso se realiza 4 veces debido a que la compuerta AND solo tiene ese número de posibilidades.
Es importante resaltar que la salida que se obtiene en este paso es la que se da después de la sumatoria. Por convención se nombrara en adelante como net así como se ve en la imagen.
Para calcular las posibles salidas se utilizará la fórmula de la imagen teniendo en cuenta cada una de las entradas . Dichas entradas se multiplican con sus respectivos pesos y se suman. Por último, se adiciona el bias.
Para este ejemplo con dos entradas, el net es igual a:
En donde el subíndice n hace referencia al caso con el que se está probando. Para este ejemplo, como se mencionó anteriormente, tenemos 4 posibilidades.
Posibilidad 1
Paso 3: Obtener la salida utilizando la función de activación y calcular cada valor del error
En este ejercicio se utiliza la siguiente función de activación
Pasamos los valores net obtenidos en la función de activación
Ahora calculamos el error con la siguiente ecuación:
En donde:
Posibles valores del error
Al calcular el error se debe tener en cuenta que se puede presentar alguno de los siguientes casos:
Paso 4: Corregir el Bias y los pesos
Para realizar las correcciones se utilizan las siguientes ecuaciones
En donde:
Es importante tener en cuenta que siempre que el error sea diferente de 0 se deben corregir los pesos y el bias como se observa en los casos del paso 3.
Entrenamiento del perceptron
Tomamos los valores inicializados en la explicación del paso 1.
Iteración 1
Como el error es igual a 0, continuamos con las siguientes entradas.
En este caso como el error es diferente de 0 se deben corregir los pesos como se menciona en el paso 4.
Corrección de pesos
Corrección del bias
Una vez se realizan las correcciones, continuamos con las entradas que siguen.
Corregimos nuevamente los pesos y el bias.
Corrección de pesos
Corrección del bias
Modificamos los pesos y el bias y continuamos con la ultima posibilidad de entrada.
Por último, se realiza otra iteración para comprobar que las salidas de las otras entradas no se han afectado con las ultimas correcciones realizadas.
Iteración 2
Con todos los errores iguales a 0, el entrenamiento del perceptron finaliza.
Hola pueden ayuda con este ejercicio?