Perceptron
Inteligencia Artificial, Machine learning, Ciencia de datos
"Inteligencia Artificial: Es la ciencia y la ingeniería para fabricar máquinas inteligentes, especialmente programas informáticos inteligentes. Está relacionado con la tarea similar de usar computadoras para comprender la inteligencia humana, pero la IA no tiene que limitarse a métodos que son biológicamente observables. "
"Machine Learning: Campo de estudio que da a las computadoras la habilidad para aprender sin ser explicitamente programadas"
– Arthur L. Samuel (1959)
"El aprednizaje denota cambios en el sistema, estos son adaptables en el sentido que permiten al sistema realizar la misma tarea o tareas una y otra vez más eficiente para la misma población"
– Herbert Alexander Simon (1984)
"Un programa de computadora se dice que aprende de la experiencia E con respecto a alguna clase de tareas T y una medida de desempeño P y mejora con la experiencia E"
– Tom M. Mitchell (1998)
Otra definición de ML es la siguiente:
El machine learning es un método de análisis de datos que automatiza la construcción de modelos analíticos. Es una rama de la inteligencia artificial basada en la idea de que los sistemas pueden aprender de datos, identificar patrones y tomar decisiones con mínima intervención humana (enlace) Simplificando bastante esta definición, el ML es un conjunto de algoritmos diseñados para resolver problemas con el uso de datos. Estos problemas se pueden clasificar en tres grandes grupos:
- Aprendizaje supervisado. Un modelo se ajusta conociendo las entradas y las salidas asociadas. El objetivo es hacer predicciones en presencia de incertidumbre. Este tipo de aprendizaje se puede dividir en:
Clasificación. Predecir respuestas discretas.
Regresión. Predecir respuestas continuas.
- Aprendizaje no supervisado. Encuentra patrones intrínsecos en datos de entrada que no estan asociados a ninguna salida. Este tipo de aprendizaje se puede dividir en
Agrupación. Agrupar los datos de acuerdo a sus características intrínsecas.
Reducción de dimensiones. Reducir el número de características de los datos bajo algún criterio.
- Otros algoritmos de aprendizaje. Destacan los algoritmos de Reinformcement Learning. Este tipo de algoritmos determinan qué acciones debe escoger un agente de software en un entorno dado con el fin de maximizar alguna noción de “recompensa” o premio acumulado.
Perceptron
Se puede elegir en un principio de forma directa (en
, o en
) los valores de los pesos y la desviación. Ejemplo 1
Entrena la una neurona cnon el algoritmo perceptron para clasificar los siguientes vectores con los tarjets correspondientes (clase 0, clase 1)
plot(P(1,1:3),P(2,1:3), 'ob','MarkerSize',15, 'LineWidth',5)
plot(p4b(1),p4b(2),'ok','MarkerSize',15, 'LineWidth',5)
g.XAxisLocation = 'origin';
g.YAxisLocation = 'origin';
Una fomra es elegir el la frontera de decisión, por ejemplo la recta que pase por los puntos
y (1.5,0). Obtenemos la ecuación de esta recta m = (0 - 1.5) / (1.5 - 0);
p2(p1) = m * p1 + 1.5
p2(p1) =

Observemos que la ecuación de la froantera de decisión es equivalente a:
Por lo tanto
. En Hagan se sugiere lo sigueinte: - Traza la frantera de decisión

- Encuentra
ortogonal a la frontera (no nos salvamos de las cuentas, ¿Cómo resuelves este problema?) - Evalua en un
, de tal forma que se resuelve
para b
quiver(0,0,wf(1),wf(2),0, 'MaxHeadSize',0.5)
¿Quién es la solución?
¿Por qué la solución no es única?
fimplicit(@(p1,p2) W(1)*p1 + W(2)*p2 + b,[-2,2],'r')
Una interoretación del uso de esta red nueronal es que se puede utilizar como una compuerta and extendida (los valores puedes ser no cecesariemente 0 y 1 en la entrada)
Ejemplo 2
El sigueinte priblema de clasificación no puede ser resulto con una neurona perceptron
plot(P(1,1:3:4),P(2,1:3:4), 'ob','MarkerSize',15, 'LineWidth',5)
plot(P(1,2:3),P(2,2:3),'ok','MarkerSize',15, 'LineWidth',5)
g.XAxisLocation = 'origin';
g.YAxisLocation = 'origin';
Una neurona perceptron no se puee comportar como una compuerta XOR. Otros ejemplos
Problemas resueltos
Problema P4.1
Solución
Paso 1: Treazamos iperplano separador
Paso 2: Encontrar a w
Efd = w'*(p-p0)
Efd =

Efd == 0
ans =

Paso 3:
w' * p +b ==0
ans = 
Por lo tanto el hiperplano separador es:
Problema P4.2
Solución:
plot(P(1,1:2),P(2,1:2), 'ob','MarkerSize',15, 'LineWidth',5)
plot(P(1,3:4),P(2,3:4),'ok','MarkerSize',15, 'LineWidth',5)
g.XAxisLocation = 'origin';
g.YAxisLocation = 'origin';
w' * p1b + b >= 0
ans = 
w' * p2b + b >= 0
ans = 
w' * p3b + b < 0
ans = 
w' * p4b + b < 0
ans = 
- Tarea moral resolver sistemas de desigualdades con MATLAB en simbolico
- Tarea moral dos grafiucar las desigualdades con MATLAB
Resolvemos con desmos de forma geometrica
Solución orimer sistema desigualdad 2 y 4 enlace Solución segundo sistema desigualdades 1 y 3 enlace Se elige
y 
Problema P4.3
Solución
plot(C1(1,:),C1(2,:), 'bo', 'MarkerSize',20)
plot(C2(1,:),C2(2,:), 'gs','MarkerSize',20)
plot(C3(1,:),C3(2,:), 'ro', 'MarkerSize',30, 'LineWidth',5)
plot(C4(1,:),C4(2,:), 'ks','MarkerSize',30,'LineWidth',5)
g.XAxisLocation = 'origin';
g.YAxisLocation = 'origin';
legend("C1","C2","C3","C4")
legend('Location','eastoutside')
Se necesitan dos neuronas, así se trendran 4 posibles combinaciones de las salidas. La elección de las combinaciones puede ser cualquiera, pero consistente. Por ejemplo
Se eligen los dos hiperplanos separadores. Y se encuentran los pesos con cualquier de las tres metodologias revisadas anteriormente (Ecuación de recta, contrucción de Hagan qeu rescata el concepto de ortogonalidad del vector de pesos, o la método de desigualdades).
Pensando en los puntos del primer hiperplano como
y los del segundo hiperplano como
. Entonces paa el hiperplano uno
Efd1 = w1'*(p11-p12)==0
Efd1 = 
% Compute analytic solution of a symbolic equation
Efd1
Efd1 = 
solution3 = solve(Efd1,w11);
% Display symbolic solution returned by solve
displaySymSolution(solution3);
solution3 = 
Se elige
(¿Por qué no el negativo de esto?). Para el hiperplano dos Efd2 = w2'*(p21-p22)==0
Efd2 =

% Compute analytic solution of a symbolic equation
Efd2
Efd2 =

solution2 = solve(Efd2,w21);
% Display symbolic solution returned by solve
displaySymSolution(solution2);
solution2 =

Se elige
. Ahora se encuentras las desviaciones.
eb1 = w1' * p11 + b1 ==0
eb1 = 
Así 
eb2 = w2' * p21 + b2 ==0
eb2 = 
fimplicit(@(p1,p2) W(1,1)*p1 + W(1,2)*p2 + b1,[-3,3],'r')
fimplicit(@(p1,p2) W(2,1)*p1 + W(2,2)*p2 + b2,[-3,3],'k')
quiver(0,1,W(1,1),W(1,2),0, 'MaxHeadSize',0.5,"Color",'r','DisplayName',"_1w")
quiver(1,0.5,W(2,1),W(2,2),0, 'MaxHeadSize',0.5,"Color",'k','DisplayName',"_2w")
Problema P4.4
Solución:
[W,b] = algo_per_ite(W0,b0,p1,t1)
Iteraciones = [Iteraciones [W0';b0]]
[W,b] = algo_per_ite(W0,b0,p2,t2)
Iteraciones = [Iteraciones [W0';b0]]
[W,b] = algo_per_ite(W0,b0,p3,t3)
Iteraciones = [Iteraciones [W0';b0]]
0 -2 -2 -2
0 -2 -2 -2
0 -1 -1 -1
[W,b] = algo_per_ite(W0,b0,p4,t4)
disp("Termina primer epoca")
Iteraciones = [Iteraciones [W0';b0]]
0 -2 -2 -2 -3
0 -2 -2 -2 -1
0 -1 -1 -1 0
[W,b] = algo_per_ite(W0,b0,p1,t1)
Iteraciones = [Iteraciones [W0';b0]]
0 -2 -2 -2 -3 -3
0 -2 -2 -2 -1 -1
0 -1 -1 -1 0 0
[W,b] = algo_per_ite(W0,b0,p2,t2)
Iteraciones = [Iteraciones [W0';b0]]
0 -2 -2 -2 -3 -3 -2
0 -2 -2 -2 -1 -1 -3
0 -1 -1 -1 0 0 1
[W,b] = algo_per_ite(W0,b0,p3,t3)
Iteraciones = [Iteraciones [W0';b0]]
0 -2 -2 -2 -3 -3 -2 -2
0 -2 -2 -2 -1 -1 -3 -3
0 -1 -1 -1 0 0 1 1
[W,b] = algo_per_ite(W0,b0,p4,t4)
disp("Termina la segunda epoca")
Hats aquí sabemos que clasifica bien tres entradas (¿por qué?)
Iteraciones = [Iteraciones [W0';b0]]
0 -2 -2 -2 -3 -3 -2 -2 -2
0 -2 -2 -2 -1 -1 -3 -3 -3
0 -1 -1 -1 0 0 1 1 1
[W,b] = algo_per_ite(W0,b0,p1,t1)
Se ha encontrado los pesos y la desviación con el algoritmo perceptron.
plot(P(1,1:2:3),P(2,1:2:3), 'ob','MarkerSize',15, 'LineWidth',5)
plot(P(1,2:2:4),P(2,2:2:4),'ok','MarkerSize',15, 'LineWidth',5)
g.XAxisLocation = 'origin';
g.YAxisLocation = 'origin';
fimplicit(@(p1,p2) W(1,1)*p1 + W(1,2)*p2 + b,[-3,3],'k')
quiver(0.5,0,W(1,1),W(1,2),0, 'MaxHeadSize',0.5,"Color",'r','DisplayName',"_1w")
plot(Iteraciones(1,:),Iteraciones(2,:),'o', 'MarkerSize',20)
g.XAxisLocation = 'origin';
g.YAxisLocation = 'origin';
axis([-3.5 0.5 -3.5 0.5])
text(Iteraciones(1,:)+0.06*([0:c-1]),Iteraciones(2,:)+0.1,string([0:c-1]))
plot(Iteraciones(3,:),'o','MarkerSize',20)
g.XAxisLocation = 'origin';
g.YAxisLocation = 'origin';
Problema P4.5
Solución:
[W,b] = algo_per_ite(W0, b0,p1,t1)
iter = [iter W0 b0]
1 0 1 0 -1 1
0 1 1 -1 0 1
[W,b] = algo_per_ite(W0, b0,p2,t2)
App Frontera de decisión
App Regla Perceptron
Convergencia de la regla perceptrón (una neurona)
function [W,b] = algo_per_ite(W0,b0,p,t)
a = hardlim(W0 * p + b0);
Referencias
El material (la mayor parte) se toma del libro de Matin Hagan et. al. enlace