Marcelo Lucas Pereira Machado marcelolucas@ifes.edu.br REDES NEURAIS ARTIFICIAIS
Rede Neural Perceptron
T
1
X1
X2
W0
W1
W2
Consiste num único neurônio com peso ajustável e bias
1.2 Rede de alimentação direta
a2
a5 1
a1 W1,3
W2,3 W2,4
3
4
5
2
W1,4
Marcelo Lucas Pereira Machado marcelolucas@ifes.edu.br
Vetor de saída : y = (y1) = (a5)
Vetor de entrada x = (x1, x2) = (a1, a2)
a5 = g(w3,5 a3 + w4,5 a4) , mas {a3 = g(w1,3 a1 + w2,3 a2)
{a4 = g(w1,4 a1 + w2,4 a2)
1.2 Unidade de Redes Neurais
X0 = 1
g ai
Função
de
entrada
Função de
ativação Saída
Bias
W1
W2
yj aj
Marcelo Lucas Pereira Machado marcelolucas@ifes.edu.br Função de entrada (soma ponderada das entradas) (ini)
ini = X0 W0,i + X1 W1,i + x2 w2,i + … XnWn,i
ini = Σ Wj,i Xj
Função de ativação (degrau/limiar):
- Entrada “corretas” => unidade ativa (valores menor 1)
Essa avaliação é feita pelo cálculo da função de ativação aplicada a função de entrada ().
ai = g(ini) = g(Σ Wj,i Xj )
Exemplos:
a)Função de Limiar b) Função signóide
g(x) {x>0, g=1 {x<0, g=0
Marcelo Lucas Pereira Machado marcelolucas@ifes.edu.br 2. Perceptron
- Redes neurais de alimentação direta de única camada
- Representam apenas funções linearmente separáveis.
3. Aprendizagem
Aprendizagem de redes neurais tem a função de ajustar os pesos da rede para minimizar alguma medida de erro.
Err = Y – hw(x)
Análise do erro
- A média clássica para estimativa do erro:
- Soma dos erros quadráticos:
E = ½ Err² = ½ (y – hw (x))²
em que { y = valor real
{ hw (x) = g (∑ Wj Xj)
- Análise da influência de variação de erro sobre a variação do peso.
hw(x)
wj
Marcelo Lucas Pereira Machado marcelolucas@ifes.edu.br Err² 2 1 Wj Wj
E = Err
WjXj g y Wj Err ErrWj , mas Wj
y = 0, pois y = Cte
Err Wj
E
x
g
WjXjWj = -Err . g’(in) . Xj
Como o gradiaente aponta o sentido de maior crescimento, como quero minimizar o erro devo inverter o sinal do gradiente:
Wj(n+1) Wj(n) + Err. g’(in) . Xj
Para melhor domínio no refino dos pesos, acrescenta-se (taxa de
treinamento)
Wj(n+1) Wj(n) + Err . g’(in) . Xj
Para função de ativação de Limiar desconsidera g’(in), pois não há derivada
em X=0 (descontinua)
Marcelo Lucas Pereira Machado marcelolucas@ifes.edu.br
Treinamento
Ex1: Distinção de atletas por modalidade de esportes:
Atleta Futebol F1
Pelé X
Zico x
Senna X
Piquet x
Exemplo 1: Aplicação Didática de Redes Neurais Artificiais
Entrada Saída
X1 X2 Y
Padrão 1 0 0 0
Padrão 2 0 1 0
Padrão 3 1 0 1
Marcelo Lucas Pereira Machado marcelolucas@ifes.edu.br
Mantendo a rede
Função de ativação Limiar
Sigma: in= 1 Wo + X1W1 + X2W2
Condições iniciais: W= { Wo, W1, W2} = {0 , 0 , 0} Taxa de aprendizado 1
∑ g (in) 0
1
B(W0)
W1
W2
1
X1
1º - apresentação (epochs) (n=1)
Entrada 1 Calculo da saída:
Erro = Y – d = 0 , saída correta
In = 1.0 + 0.0 + 0.0 = 0 G(in){in > 0, g = 1
{ in 0, g = 0
g (0) = 0 d = 0
g
1
0
0
0
0
0
d
Δw
Marcelo Lucas Pereira Machado marcelolucas@ifes.edu.br
Entrada 2
In = 1.0 + 0.0 + 1.0 = 0
g(in) = g(0) = 0 d = 0
Erro = y – d = 0 – 0 = 0
Wi = . Erro . Xi = 0
g
0
1
0
0
d 0
1
Δw
Entrada 3
Wi = . Erro . Xi Win+1 = Win + Win
Wo = 1 . 1 . 1 = 1 Wo= 0 + 1 = 1
W1 = 1 . 1 . 1 = 1 W11 = 0 + 1 = 1
W2 = 1 . 1 . 0 = 0 W22 = 0 + 0 = 0
In = 1.0 + 0.0 + 1.0 = 0
g(in) = g(0) = 0 d = 0
Erro = y – d = 1 – 0 = 1
g
1
0
0 0
d 0
1
Δw
Marcelo Lucas Pereira Machado marcelolucas@ifes.edu.br
Entrada 4
In = 1.1 + 1.1 + 1.0 = 2 g(in) = g(2) = 1 d = 1
Erro = y – d = 1 – 1 = 0 Wi = 0
g
1
1
1
0
d 1
1
Δw
2º - Apresentação
Entrada 1
Wo = 1 . (-1) . 1 = -1 Wo2 = 1 +(-1) = 0
W1 = 1 . (-1) . 0 = 0 W11 = 1 + 0 = 1
W2 = 1 . (-1) . 0 = 0 W22 = 0 + 0 = 0
In = 1.1 + 0.1 + 0.0 = 1 g(in) = g(1) = 1 d = 1
Erro = y – d = 0 – 1 = -1
g
0
0
1
0
d 1
1
Δw
Marcelo Lucas Pereira Machado marcelolucas@ifes.edu.br
Entrada 2
In = 1.0 + 0.1 + 1.0 = 0 g(in) = g(0) = 0 d = 0
Erro = 0 – 0 = 0
Wi = . 0 . Xi = 0
g
0
1
1
0
d 0
1
Δw
Entrada 3
In = 1.0 + 1.1 + 0.0 = 1 g(in) = g(1) = 1 d = 1
Erro = 1 – 1 = 0
Wi = . 0 . Xi = 0
g
1
0
1
0
d 0
1
Δw
Marcelo Lucas Pereira Machado marcelolucas@ifes.edu.br
Entrada 4
Houve Convergência!
Wj Xj = 0 Hiperplano de Separação = Separação linear
1 . Wo + X1W1 + X2W2 = 0
X2 =
-2 0 1 . 2 W1 W W X W
In = 1.0 + 1.1 + 1.0 = 1
g(in) = g(1) = 1 d = 1
Erro = 1 – 1 = 0
Wi = . 0 . Xi = 0
EXEMPLO 2: TREINAMENTO DA FUNÇÃO UNIÃO (OU)
X1 X2 Y
0 0 0
0 1 1
1 0 1
1 1 1
g
X1
X2
w1
w2
d
w0
1
Δw
Marcelo Lucas Pereira Machado marcelolucas@ifes.edu.br
Pesos : Wo = ( Wo , W1 , W2 ) = ( 0 , 0 , 0 )
Soma : 2 = in = 1 . Wo + X1W1 + X2W2
J = 0
Função de ativação : Limiar: g(in) {in > 0, g = 1 { in 0, g = 0
1º Apresentação (Epochs)
- Entrada 1
0 0 0 0 0 0 0 0 0 2 2 1 2 1 1 1 1 1
W
W
W
W
W
W
W
W
W
o o o o o o o o o gIn = 1.0 + 0.0 + 0.0 = 0
g(in) = g(0) = 0 d = 0
Erro = y – d = 0 – 0 = 0
Wi = 0, Wi = . Erro .
Xi =0
Marcelo Lucas Pereira Machado marcelolucas@ifes.edu.br
- Entrada 2
Win= . Erro . Xi Win+1 = Win + Win
Wo = 1 . 1 . 1 = 1 Wo= 0 + 1 = 1
W1 = 1 . 1 . 0 = 0 W11 = 0 + 0 = 0
W2 = 1 . 1 . 1 = 1 W21 = 0 + 1 = 1
g In = 1.0 + 0.0 + 1.0 = 0
g(in) = g(0) = 0 d = 0
Erro = y – d = 1 – 0 = 1
0
1
0 0
d 0
1
Δw
Entrada 3
In = 1.1 + 1.0 + 1.0 = 1
g(in) = g(1) = 1 d = 1
Erro = y – d = 1 – 1 = 0
Wi = . 0 . Xi = 0
g
1
0
0
1
d 1
1
Δw
Marcelo Lucas Pereira Machado marcelolucas@ifes.edu.br
Entrada 4
In = 1.1 + 1.0 + 1.1 = 2
g(in) = g(2) = 1 d = 1
Erro = y – d = 1 – 1 = 0
Wi = . 0 . Xi = 0
g
1
1
0
1
d 1
1
Δw
2º Apresentação
- Entrada 1
Wo = 1 . (-1) . 1 = -1 Wo= 1 + (-1) = 0
W1 = 1 . (-1) . 0 = 0 W11 = 0 + 0 = 0
W2 = 1 . (-1) . 0 = 0 W21 = 1 + 0 = 1
In = 1.1 + 0.0 + 0.1 = 1
g(in) = g(1) = 1 d = 1
Erro = y – d = 0 – 1 = -1
g
0
0
0
1
d 1
1
ΔWi
Marcelo Lucas Pereira Machado marcelolucas@ifes.edu.br
- Entrada 2
In = 1.0 + 0.0 + 1.1 = 1
g(in) = g(1) = 1 d = 1
Erro = y – d = 1 – 1 = 0
Wi = . 0 . Xi = 0
g
0
1
0
1
d 0
1
ΔWi
- Entrada 3
Wo = 1 . 1 . 1 = 1 Wo= 0 + 1 = 1
W1 = 1 . 1 . 1 = 1 W11 = 0 + 1 = 1
W2 = 1 . 1 . 0 = 0 W21 = 1 + 0 = 1
In = 1.0 + 1.0 + 0.1 = 0
g(in) = g(0) = 0 d = 0
Erro = y – d = 1 – 0 = 1
g
1
0
0
1
d 0
1
ΔWi
Marcelo Lucas Pereira Machado marcelolucas@ifes.edu.br
- Entrada 4
In = 1.1 + 1.1 + 1.1 = 3
g(in) = g(3) = 1 d = 1
Erro = y – d = 1 – 1 = 0
Wi = . 0 . Xi = 0
g
1
1
1
1
d 1
1
ΔWi
3º Apresentação
- Entrada 1
Wo = 1 . (-1) . 1 = -1 Wo= 1 + (-1) = 0
W1 = 1 . (-1) . 0 = 0 W11 = 1
W2 = 1 . (-1) . 0 = 0 W21 = 1
In=1.1 + 0.1+ 0.1 =1
g(in) = g(1) = 1 d = 1
Erro = 0 – 1 = -1
g
0
0
1
1
d 1
1
ΔWi
Marcelo Lucas Pereira Machado marcelolucas@ifes.edu.br
- Entrada 2
In = 1.0 + 0.1 + 1.1 = 1
g(in) = g(1) = 1 d = 1
Erro = y – d = 1 – 1 = 0
Wi = 0
g
0
1
1
1
d 0
1
ΔWi
- Entrada 3
In = 1.0 + 1.1 + 0.1 = 1
g(in) = g(1) = 1 d = 1
Erro = y – d = 1 – 1 = 0
Wi = 0
g
1
0
1
1
d 0
1
ΔWi
Marcelo Lucas Pereira Machado marcelolucas@ifes.edu.br
Entrada 4
In = 1.0 + 1.1 + 1.1 = 2
g(in) = g(2) = 1 d = 1
Erro = y – d = 1 – 1 = 0
Wi = 0
g
1
1
1
1
d 0
1
ΔWi
4º Apresentação
- Entrada 1
In = 1.0 + 0.1 + 0.1 = 0
g(in) = g(0) = 0 d = 0
Erro = y – d = 0 – 0 = 0
Wi = 0
g
0
0
1
1
d 0
1
ΔWi
Marcelo Lucas Pereira Machado marcelolucas@ifes.edu.br
- Entrada 2
In = 1.0 + 0.1 + 1.1 = 1
g(in) = g(1) = 1 d = 1
Erro = y – d = 1 – 1 = 0
Wi = 0
g
0
1
1
1
d 0
1
ΔWi
- Entrada 3
In = 1.0 + 1.1 + 0.1 = 1
g(in) = g(1) = 1 d = 1
Erro = 0
Wi = 0
g
1
0
1
1
d 0
1
ΔWi
Marcelo Lucas Pereira Machado marcelolucas@ifes.edu.br
- Entrada 4
OBTEVE A CONVERGÊNCIA
In = 1.0 + 1.1 + 1.1 = 2
g(in) = g(2) = 1 d = 1
Erro = y – d = 1 – 1 = 0
Wi = 0
g
1
1
1
1
d 0
1
ΔWi
Exemplo 3: de Treinamento da função união (OU)
- Pesos: W = ( W1 , W2 , W3 ) = ( 0 , 0 , 0 )
- Função somatória : Wj Xj = in = 1 . Wo + X1W1 + X2W2
J = 0
- Função de ativação (diferente do exemplo anterior): g(in) {in < 0, g(in) = 0
{ in 0, g(in) = 1
- Erro = Y – d Wi = . Erro . Xi Taxa de Aprendizado () = 1
X1 X2 Y
0 0 0
0 1 1
1 0 1
1 1 1
g
X1
X2
W1
W2
d
W0
1
ΔWi
Marcelo Lucas Pereira Machado marcelolucas@ifes.edu.br 1º Apresentação (epoch)
- Entrada 1
Win= . Erro . Xi Wi1 = Wi0 + Wi
Wo = 1 . (-1) . 1 = -1 Wo1 = 0 + (-1) = -1
W1 = 1 . (-1) . 0 = 0 W11 = 0 + 0 = 0
W2 = 1 . (-1) . 0 = 0 W21 = 0 + 0 = 0
In = 1.0 + 0.0 + 0.0 = 0
g(in) = g(0) = 1 d = 1
Erro = y – d = 0 – 1 = -1
g
0
0
0
0
d 0
1
ΔWi
- Entrada 2
Wo = 1 . 1 . 1 = 1 Wo= (-1) + 1 = 0
W1 = 1 . 1 . 0 = 0 W11 = 0
W2 = 1 . 1 . 1 = 1 W21 = 0 + 1 = 1
In = 1.-1 + 0.0 + 1.0 = -1
g(in) = g(-1) = 0 d = 0
Erro = y – d = 1 – 0 = 1
g
0
1
0
0
d
-1
1
ΔWi
Marcelo Lucas Pereira Machado marcelolucas@ifes.edu.br
- Entrada 3 In = 1.0 + 1.0 + 0.0 = 0
g(in) = g(0) = 1 d = 1
Erro = y – d = 1 – 1 = 0
Wi =. 0 . Xi = 0
g
1
0
0
1
d 0
1
ΔWi
- Entrada 4
In = 1.0 +1.0 + 1.1 = 1
g(in) = g(1) = 1 d = 1
Erro = y – d = 1 – 1 = 0
Wi = 0
g
1
1
0
1
d 0
1
ΔWi
Marcelo Lucas Pereira Machado marcelolucas@ifes.edu.br 2º Apresentação
- Entrada 1
Wo = 1 . (-1) . 1 = -1 Wo= 0 + (-1) = -1
W1 = 1 . (-1) . 0 = 0 W11 = 0
W2 = 1 . (-1) . 0 = 1 W21 = 1
In = 1.0 + 0.0 + 0.1 = 0
g(in) = g(0) = 1 d = 1
Erro = 0 – 1 = -1
g
0
0
0
1
d 0
1
ΔWi
- Entrada 2
In = -1 + 0 + 1 = 0
g(in) = g(0) = 1 d = 1
Erro = 1 – 1 = 0 Wi = 0
g
0
1
0
1
d
-1
1
ΔWi
Marcelo Lucas Pereira Machado marcelolucas@ifes.edu.br
- Entrada 3
Wo = 1 . 1 . 1 = 1 Wo= -1 + 1 = 0
W1 = 1 . 1 . 1 = 1 W11 = 0 + 1 = 1
W2 = 1 . 1 . 0 = 0 W21 = 1 + 0 = 1
In = -1 + 0 + 0 = -1
g(in) = g(-1) = 0 d = 0
Erro = 1 – 0 = 1
g
1
0
0
1
d
-1
1
ΔWi
- Entrada 4
In = 0 + 1 + 1 = 2
g(in) = g(2) = 1 d = 1
Erro = 1 – 1 = 0 Wi = 0
g
1
1
1
1
d 0
1
ΔWi
Marcelo Lucas Pereira Machado marcelolucas@ifes.edu.br 3º Apresentação
- Entrada 1
Wo = 1 . (-1) . 1 = -1 Wo= 0 + (-1) = -1
W1 = 1 . (-1) . 0 = 0 W11 = 1 + 0 = 0
W2 = 1 . (-1) . 0 = 1 W21 = 1 + 0 = 0
In = 0 + 0 + 0 = 0
g(in) = g(0) = 1 d = 1
Erro = 0 – 1 = -1
g
0
0
1
1
d 0
1
ΔWi
- Entrada 2
In = -1 + 0 + 1 = 0
g(in) = g(0) = 1 d = 1
Erro = 1 – 1 = 0 Wi = 0
g
1
0
1
1
d 0
1
ΔWi
Marcelo Lucas Pereira Machado marcelolucas@ifes.edu.br
- Entrada 3
- Entrada 4
In = -1 + 1 + 0 = 0
g(in) = g(0) = 1 d = 1
Erro = 1 – 1 = 0 Wi = 0
g
In = -1 + 1 + 1 = 1
g(in) = g(0) = 1 d = 1
Erro = 1 – 1 = 0 Wi = 0
g 0 1 1 1 d -1 1
ΔWi
y 1 1 1 1 1 1 d -1 1
ΔWi
4º Apresentação
- Entrada 1
Convergência!
In = -1 + 0 + 0 = -1
g(in) = g(-1) = 0 d = 0
Erro = 0 – 0 = 0 Wi = 0
g
0
0
1
1
d
-1
1
ΔWi
Marcelo Lucas Pereira Machado marcelolucas@ifes.edu.br Análise da Fronteira de decisão (Hiperplano de separação)
² Wj Xj = in = 1 . Wo + X1W1 + X2W2
J = 0
X2 =
-2 0 1 1 . 2 W1 W W X W
X2 = 1 1
- Função não linearmente separável (XOR) ou – exclusivo:
Não há hiperplano de separação. Logo não converge. Realize o teste no MatLab!
X1 X2 Y
0 0 0
1 0 1
0 1 1
Marcelo Lucas Pereira Machado marcelolucas@ifes.edu.br REDE PERCEPTRON DE MÚLTIPLOS COMANDOS (MLP)
Apredizagem: Back Propagation Learning (Retropopagação)
ai wji
aj
ak
wk,j
Unidades de Entrada (k)
Unidades ocultas (j)
FUNÇÕES IMPORTANTES NO MATLAB - Training function:
Traingd = Gradient descent backpropagation.
- Adaption learning function:
Marcelo Lucas Pereira Machado marcelolucas@ifes.edu.br - Transfer Function:
Logsig= log sigmoid transfer function: px
e
x
f
1
1
)
(
Purelin= linear transfer function: