Está en la página 1de 34

Tópicos en Sistemas Expertos e

Inteligencia Artificial
clase 7b

Arturo Vilca
avilca@uni.edu.pe
posgrado uni-fiee 2017-2
Diseño de la red neuronal
• Recolectar datos
• Crear la red
• Configurar la red
• Inicializar los pesos y biases
• Entrenar la red
• Validar la red
• Usar la red
Bias
• Electronics a steady voltage, magnetic field, or
other factor applied to a system or device to
cause it to operate over a predetermined
range.

http://oxforddictionaries.com/definition/english/bias
Toolbox: Neurona simple

• p  entrada
• wp peso x entrada
• b  bias
• n = wp + b
• f  función de transferencia
• a salida
Funciones de transferencia
• Limitadora
fuerte

• Lineal
• Logarítmica
Sigmoidea
Neurona con múltiples entradas

n = w1,1p1 + w1,2 p2 +…+ w1,R pR + b


Neurona con múltiples entradas
(notación abreviada)

n = Wp + b
Capa de neuronas
Capas de neuronas
(notación abreviada)
Red multicapas
Red multicapas
(notación abreviada)
Red de perceptrones
La ley de Hebb
• Si 2 neuronas son muy activas al mismo
instante, el peso de la conexión que las une
debe aumentar

wij =  xi yj con 0 <  < 1

(efecto del aprendizaje y la memoria)


Memoria asociativa
xi yj

(i=1 a n) (j=1 a m)

X Y
Y = W(n,m) X

• Considerando  = 1
wij(t) = wij(t-1) + xi yj

W = Y XT
Ejemplo1
• Sea la matriz:
1 0 0
X= 0 1 0
0 0 1

Y= 1 0 1
Ejemplo2
• Memoria que permite saber si un vector de
estímulo comienza en 1 o termina en 1
1 1 0 0
0 1 0 0
X=
0 0 0 1
0 0 1 1

1 1 0 0
Y=
0 0 1 1
• Poco ruido
1 0 0 0
0 1 0 0
Xr1 =
0 0 0 1
0 0 1 1
• Mucho ruido
1 0 0 0
0 1 0 0
Xr2 =
0 1 0 1
0 0 1 1
Compresión de datos y
Reconocimiento de Caracteres
• Función abc.m
• Retorna los vectores de estímulo X y objetivo
T y los caracteres de salida A, B y C

function [X,T, A, B, C] = abc


Reconocimiento de caracteres
clear all, close all
Home

Llamada al archivo de caracteres


[X,T,A,B,C]=abc;

Modificación de los pesos


W=T*X';
Activación de las neuronas de salida
y_in = W*X;

Salidas de las neuronas


y = (y_in~=0).*((y_in>0)-(y_in<0));
prueba_A =all(all(y==A))
y=(y+1)/2;

Forma geométrica de la letra reconocida


z=[y(1:5)';y(6:10)';y(11:15)']'
Prueba sobre los caracteres con ruido
Ar = [0 0 0 1 0 0 0;
0 0 0 0 0 0 0;
0 0 0 0 0 0 0;
0 0 0 0 0 0 0;
0 0 0 0 0 0 0;
0 0 0 0 0 0 0;
0 0 0 0 0 0 0;
0 0 0 0 0 0 0;
0 0 0 0 0 0 1];

X=Ar(:);
y_in = W*X;
Activación de las neuronas de salida
y_in = W*X;

Salidas de las neuronas


y = (y_in~=0).*((y_in>0)-(y_in<0));
prueba_A_en_Ar =all(all(y==A))
y = (y+1)/2;

Forma geométrica de la letra reconocida


z=[y(1:5)';y(6:10)';y(11:15)']'
La neurona lineal adaptiva
Adaline
• Yj = wijxi + bj
• Wij = wij + (tj – yj) Widrow-Hoff

bj

xi wij yj
j

• WX+B=T
adaline1.m
Vector de entrada X = [1 -0.5]
Vector objetivo T = [0.5 1]

Resolver el sistema lineal:


w + b = 0.5
-0.5w + b = 1

w= -1/3 b=5/6
% Adaline – sistema determinado
clear all
close all
home

% Vectores de entrada y objetivo


X = [1 -0.5];
T = [0.5 1];

% Trazado de la superficie de error


figure(1)
wv = -2:0.5:2; bv = wv;
ES = errsurf(X,T,wv,bv,'purelin');
plotes(wv,bv,ES)
% dimensiones de los vectores
[r,q] = size(X);
[s,q] = size(T);

% inicialización de los pesos y bias


W = randn(s,1);
b = randn(r,1);

Nep = 50; % número de épocas de aprendizaje


K = 0.1; % ganancia de aprendizaje
ECM=1; % valor inicial del error cuadrático medio
for i=1:Nep
if ECM == 0 % detiene el aprendizaje si ECM = 0
i=i-1;
break
end

% Fase de prueba
% activación
WX = W*X;

% ajuste del bias


salida = WX + b.*ones(size(WX));

% cálculo del error


error = T-salida;
ECM = sum(sum(error.^2));
% actualización del vector de error
tr(i) = ECM;

% Fase de aprendizaje
% actualización de los pesos
dW = K*error*X';
db = K*error*ones(q,1);
W = W + dW;
b = b + db;

end % fin del bucle de aprendizaje


% trazado del ECM
figure(2)
plot(tr)
title(['suma de cuadrados de los errores, ganancia K = '
num2str(K)])
xlabel(‘época')
grid

% pesos y bias finales


disp('Pesos y sesgos obtenidos : ')
disp('')
disp(['pesos : ' num2str(W)])
disp(['sesgos : ' num2str(b)])
% solución algebraica
A=[X' ones(q,1)];
B=T';
Wb = inv(A)*B;

disp(‘Solución algebraica :')


Wb = inv(A)*B;
disp('')
disp(['pesos : ' num2str(Wb(1))])
disp(['sesgos : ' num2str(Wb(2))])
Solución de la red
>> adaline1
Pesos y sesgos obtenidos :
pesos : -0.32119
sesgos : 0.82727
solución algebraica :
pesos : -0.33333
sesgos : 0.83333
Superficie de Error y Contorno

También podría gustarte