Que es el Perceptron simple machine learning python

El Perceptron simple, o Red neuronal de una sola capa / Layer en ingles, es un algoritmo de Machine Learning de Clasificacion Binaria, fue hecho con el objetivo de emular la mente humana pero esta muy lejos de esto. Trato de emular las neuronas que forman el cerebro humano.

Tiene la gran ventaja de poder ser utilizado de forma online( streamming) , es decir que es uno de los pocos algoritmos de machine learning que pueden entrenarse con datos y al mismo tiempo predecir y actualizar los parametros, todo esto en produccion .

Tiene convergencia asegurada, converge a un tipo de separacion, la va encontrar en una cantidad de pasos acotada si tiene una separacion posible.

Usamos la siguiente funcion de Activacion

Si multiplicamos tita( parametros) con la matriz de features(x) y es mayor a cero, entonces predecimos 1, sino 0.

Entrenamiento

Los pesos se actualizan segun:

Lo que hicimos es el tita siguiente es igual al tita anterior, mas el factor de aprendizaje por la diferencia entre el valor real y menos f(x) que es el valor predicho, esto por x(features).

ENtonces vamos a mover tita mas 1, con tita anterior mas o menos algo proporcinal al vector nos equivocamos, observar que el parametro tita mas uno, solo cambia si la diferncia entre la prediccion y el valor real es distinta de cero.

Como vemos esto se puede hacer online, ya cuando llega un punto al mismo tiempo que hacemos la prediccion(f(x)) podemos actualizar los parametros

Entrenamiento Perceptron Simple

Como vemos el separador lineal se va adecuando deacuerdo a los puntos que entran( animales) segun su domesticacion y altura, por lo tanto perceptron es algo que mueve una recta hasta encontrar la separacion entre clases, ojo si las clases no son linealmente separables no esta garantizado que hace perceptron, hay un truco donde el vector x lo ponemos en mucha dimensiones y con el teorema de cober podemos asegurar que habra mas probabilidad de encontrar un separador lineal sobre las clases, para eso podemos usar un kernel para proyectar el vector en una cantidad de dimimensiones que puede ser infinita

Entonces para cuando tengamos un data set muchas dimensiones, features, es muy probable que perceptron encuentre un separador lineal entre clases, cosa que con Regresion Logistic es alrevez , tenemos pocos features por el cual es dificil encontrar la clase a que pertenece el dato.

Deja un comentario

Tu direcci贸n de correo electr贸nico no ser谩 publicada. Los campos obligatorios est谩n marcados con *