Estadísticas del código: PerceptrónSimple - Python

Imágen de perfil
Val: 8
Ha disminuido su posición en 9 puestos en Python (en relación al último mes)
Gráfica de Python

PerceptrónSimple


Python

Publicado el 27 de Julio del 2019 por Fernando
8.546 visualizaciones desde el 27 de Julio del 2019
MODELO DE PERCEPTRON SIMPLE
Los perceptrones son tipos de redes neuronales, las neuronal network más simples que existen. El modelo de perceptrón simple permite realizar una clasificación binaria de dos clases linealmente separables. Cada clase puede contener diferentes variables (X1 … Xn), cada una de estas variables supone una entrada a la red neuronal. Cada entrada se asocia a un determinado peso (W1 … Wn), el sumatorio del producto de cada entrada por su correspondiente peso nos da un valor, Z (z= Σ Xn*Wn ). Las diferentes entradas convergen en una misma neurona, esta representa la neurona de salida y tendrá un determinado umbral de activación, Y. Si el valor Z es mayor que el umbral de activación (Y) la neurona se activará y clasificará una clase como positiva, si por el contrario el valor Z no supera el umbral de activación Y, la neurona no se activará y clasificará la clase como negativa. El modelo de perceptrón simple requiere de un entrenamiento supervisado, es decir, para cada conjunto de valores le indicamos a que clase pertenecen dichos valores. De esta forma, cada vez que se equivoque al clasificar un conjunto de valores, se podrán ajustar los diferentes pesos W. A medida que esta red se va entrenando siempre convergerá en una solución, siempre y cuando, las dos clases sean LINEALMENTE SEPARABLES.
A continuación, vamos con un programa sumamente sencillo. En este programa, las dos clases contienen 4 variables las cuales, corresponden a números aleatorios en coma flotante comprendidos entre 0 y 1. Aparecen ajustados los intervalos (en la función al() ) para que ambas clases sean linealmente separables ya que si no, el programa nunca encontrará una solución. Los pesos del perceptrón han sido iniciados aleatoriamente en el intervalo de 0 a 0.5. Como mencioné anteriormente, se trata de un tipo de aprendizaje supervisado, por ello, para cada conjunto de datos se indica la clase a la que pertenece. Una vez que tenemos los datos a clasificar y los pesos del perceptrón inicializados aleatoriamente, el siguiente paso consiste en ajustan los pesos. Estos pesos se ajustarán solo cuando el clasificador falle siguiendo la función de entrenamiento (o algoritmo de aprendizaje)  Wt+1 = Wt + (0 - Z)*Xn . Si el clasificador acierta la clase los pesos no se corrigen. Tras el entrenamiento el clasificador (en este caso en dos o tres ciclos) alcanza un rendimiento del 100%, de forma que todos los conjuntos de datos pertenecientes a la Clase 1 tienen un valor de Z > Y (superan el umbral de activación) y todos los datos pertenecientes a la Clase 2 tienen un valor de Z < Y (inferiores al umbral de activación).
Se trata de un algoritmo muy muy sencillo que representa el potencial de la Inteligencia Artificial en el análisis de datos. El umbral de activación o más formalmente la función de activación corresponde a la función más sencilla posible, la función escalón de McCulloch y Pitts. Estoy disponible para cualquier duda o sugerencia. Se que esto es un ejemplo sencillo, estaba practicando, diseñé e hice el programa en menos de una hora y decidí compartirlo por si a alguien le interesaba un poco el tema haciendo una mini-explicación.

230 visualizaciones durante los últimos 90 días


20
0