Вы находитесь на странице: 1из 18

Redes Neuronais

G. Marques DEETC Aprendizagem Automática


– p. 1/7
Redes Neuronais

Modelos de processamento de informação inspirados em


modelos biológicos do sistema nervoso.
Composto por elevado número de elementos de base
(neurónios) interligados.
Processamento paralelo massivo.
Vários modelos de redes neuronais.

Focar num modelo particular de redes neuronais:

Preceptrão Multi-Camada
(redes MLP)

G. Marques DEETC Aprendizagem Automática


– p. 2/7
Perceptrão Multi-Camada

Elemento de base (neurónio)


Modelo matemático (unidade k)
wk0
x1
wk1 uk vk
x2 wk2 + ϕ
..
. wkd
xd
| {z } | {z }
ligações de entrada ligações de saída
d
X
uk = wki xi +wk0 = w⊤
k x+wk0
i=1
vk = ϕ(uk )
Os mesmos elementos de base que os
discriminantes logísticos

G. Marques DEETC Aprendizagem Automática


– p. 3/7
Perceptrão Multi-Camada

Já abordámos os discriminantes logísticos


u = W⊤ x + b, e ŷ = ϕ(u)

b1
u1
+ ϕ ŷ1
x1
b2
u2
+ ϕ ŷ2
x2
..
.. .
.
bc
xd
uc
+ ϕ ŷc
| {z }
u=W⊤ x+b

G. Marques DEETC Aprendizagem Automática


– p. 3/7
Perceptrão Multi-Camada

Exemplo de uma rede MLP com uma camada escondida com m unidades:
Dois discriminantes logísticos em cadeia

b i1
u1 v1 bo 1
+ ϕ
z1
x1 + ϕ ŷ1
b i2
u2 v2 bo 2
+ ϕ
z2
x2 + ϕ ŷ2
.. ..
.. . bo c .
.
b im zc
xd + ϕ ŷc
um vm
+ ϕ
| {z } | {z }
u=Wi⊤ x+bi z=Wo⊤ v+bo

G. Marques DEETC Aprendizagem Automática


– p. 3/7
Perceptrão Multi-Camada

Exemplo de uma rede MLP com uma camada escondida com m unidades:
Dois discriminantes logísticos em cadeia

Função implementada pela rede (saída k):


 ! 
Xm d
X
ŷk = ϕ wojk ϕ wiij xi + bii + bok 
j=1 i=1
  
= ϕ wo⊤k ϕ Wi⊤ x + bi + bok

onde wok é a coluna k da matriz Wo .

G. Marques DEETC Aprendizagem Automática


– p. 3/7
Perceptrão Multi-Camada

Exemplo de uma rede MLP com uma camada escondida com m unidades:
Dois discriminantes logísticos em cadeia

Função implementada pela rede (notação matricial):

     
v1 wi11 ... wid1   bi1
   x1 
   w ... wid2 
 

 .. 
   i12 
.   . 
  


v =  .  = ϕ  ..

..

.  .  +  .  = ϕ Wi x + b i


. .   .   . 
 . . 
   
   
xd

vm wi1m ... wi bim
dm

   
   v  
ŷ1  wo11 ... wom1  1  bo1 
 ..   . .   .   . 
       
..
 

ŷ =  .  = ϕ  .. . .   .  +  .   = ϕ Wo v + b o
.   .   . 
  
   
ŷc wo1c ... womc boc
vm

G. Marques DEETC Aprendizagem Automática


– p. 3/7
Treino da Rede

Função a minimizar: erro quadrático médio


N N
1 X 1 X
E= kyn − ŷn k2 = ken k2
N n=1 N n=1
onde yn são as saídas desejadas (classes dos xn )
Parâmetros a estimar: Wi , bi , Wo , bo
Aprendizagem: máxima descida de gradiente
∂E ∂E ∂E ∂E
Necessário calcular: , , ,
∂Wi ∂bi ∂Wo ∂bo

Aprendizagem baseada retropropagação do erro (método para


calcular as derivadas do erro)

G. Marques DEETC Aprendizagem Automática


– p. 4/7
Treino da Rede

Camada de saída - pesos Wo e bo


∂kek2 ∂kek2 ∂ ŷj ∂zj ∂kek2 ∂kek2 ∂ ŷj ∂zj
= e =
∂woij ∂ ŷj ∂zj ∂woij ∂boj ∂ ŷj ∂zj ∂boj
∂kek2
= −2ej = −2(yj − ŷj )
∂ ŷj
(
∂ ŷj ′ ϕ(zj ) − ϕ(zj )2 para a sigmóide
= ϕ (zj ) =
∂zj 1 − ϕ(zj )2 para a tangente hiperbólica

∂zj ∂zj
= vi e =1
∂woij ∂boj
∂kek2 ∂kek2
= −2ej ϕ′ (zj )vi e = −2ej ϕ′ (zj )
∂woij ∂boj

G. Marques DEETC Aprendizagem Automática


– p. 4/7
Treino da Rede

Camada escondida - pesos Wi e bi


Lembrete:
Derivadas de funções compostas e regra da cadeia.
Sendo y = h(u, v) e sendo u = f (x) e v = g(x):
∂y ∂y ∂u ∂y ∂v ∂h(u, v) ′ ∂h(u, v) ′
= + = f (x) + g (x)
∂x ∂u ∂x ∂v ∂x ∂u ∂v
É necessário propagar o erro das unidades de saídas para as
unidades escondidas

G. Marques DEETC Aprendizagem Automática


– p. 4/7
Treino da Rede

Camada escondida - pesos Wi e bi


c
∂kek2 X ∂kek2 ∂ ŷk ∂zk ∂v2 ∂u2
Exemplo: =
wi12 ∂ ŷk ∂zk ∂v2 ∂u2 ∂wi12
k=1
b i1

bo 1
+ ϕ
∂kek2
x1 + ϕ′ ∂ ŷ1
wi12 b i2 ∂kek2


∂v2 bo 2
+ ϕ
∂kek2
x2 + ϕ′ ∂ ŷ2
.. ..
.. . bo c .
.
b im ∂kek2
xd + ϕ′ ∂ ŷc
+ ϕ′

G. Marques DEETC Aprendizagem Automática


– p. 4/7
Treino da Rede

Camada escondida - pesos Wi e bi


c
∂kek2 ∂vj ∂uj X ∂zk
=−2 ek ϕ′ (zk )
wiij ∂uj ∂wiij k=1 ∂vj
c
∂kek2 ∂vj ∂uj X ∂zk
=−2 ek ϕ′ (zk )
bij ∂uj ∂bij k=1 ∂vj
∂zk
= wojk
∂vj
∂vj
= ϕ′ (uj )
∂uj
∂uj ∂uj
= xi e =1
∂wiij ∂bij
c
∂kek2 ′
X
= −2ϕ (uj )xi ek ϕ′ (zk )wojk
∂wiij k=1
c
∂kek2 X
= −2ϕ′ (uj ) ek ϕ′ (zk )wojk
∂bij k=1

G. Marques DEETC Aprendizagem Automática


– p. 4/7
Preceptrão Multi-Camada

Exemplo:
Um problema standard: XOR
Duas classes (dados 2D - 500pts/classe)
1.5

̟2
1

x2
0.5

̟1
Em Matlab: −0.5
−0.5 0 0.5 1 1.5
x1
Geração dos dados
x1=[randn(2,250)*.1,randn(2,250)*.1+1];
x2=[randn(2,250)*.1+[1;0]*ones(1,250)];
x2=[x2,randn(2,250)*.1+[0;1]*ones(1,250)]; X=[x1,x2];
Saída desejada (com ϕ(z) = tanh(z), e para 2 classes basta 1 saída )
Y=[-ones(1,500),ones(1,500)];

G. Marques DEETC Aprendizagem Automática


– p. 5/7
Preceptrão Multi-Camada

b i1
Exemplo:
x1 + ϕ bo 1
Rede MLP
(2 unidades escondidas) b i2 + ϕ ŷ
Treino da rede x2 + ϕ
Saída:
v=tanh(Wi’*X+bi*ones(1,1000));
yh=tanh(Wo’*v+bo*ones(1,1000));
Gradientes:
Tmp=-2*(Y-yh).*(1-yh.ˆ 2);
gbo=sum(Tmp’); gWo=v*Tmp’;
gu=(Wo*(Y-yh)).*(1-v.ˆ 2);
gbi=sum(gu’)’; gWi=X*gu’;
Adaptar:
Wi=Wi-eta*gWi; bi=bi-eta*gbi;
Wo=Wo-eta*gWo; bo=bo-eta*gbo;

G. Marques DEETC Aprendizagem Automática


– p. 5/7
Preceptrão Multi-Camada

Exemplo:
Treino da rede:
Gráficos da evolução do erro para diferentes inicializações dos pesos, e com
o passo de adaptação η = 10−5 e o termo de momento α = 0.9
1200

1000

1
800
0.5
E

600 0

−0.5
400
−1 1.5
1.5
1
200 1
0.5
0.5
0 0
0
0 100 200 300 400 500 −0.5 −0.5
iterações Função Discriminante da rede

Diferentes inicializações dos pesos podem obter resultados distintos


Também acontece para diferentes valores do passo e do termo de momento
Importante visualizar a evolução do erro

G. Marques DEETC Aprendizagem Automática


– p. 5/7
Preceptrão Multi-Camada

Exemplo:
O mesmo problema standard: XOR
Duas classes (dados 2D - 500pts/classe)
2

̟2
1.5

x2 1

0.5

−0.5

̟1
−1
−1 −0.5 0 0.5 1 1.5 2
x1

G. Marques DEETC Aprendizagem Automática


– p. 6/7
Preceptrão Multi-Camada

Exemplo:
Resultados:

1 1

0.5 0.5

0 0

−0.5 −0.5

−1 −1
2 2
2 2
1.5 1.5
1.5
1 1
1 1
0.5 0.5
0.5
0 0 0 0
−0.5 −0.5 −0.5
−1 −1 −1 −1

2 2

̟2 ̟2
1.5 1.5

1 1
x2

0.5 0.5

0 0

−0.5 −0.5

̟1 ̟1
−1 −1
−1 −0.5 0 0.5 1 1.5 2 −1 −0.5 0 0.5 1 1.5 2
x1

2 unidades escondidas 5 unidades escondidas

G. Marques DEETC Aprendizagem Automática


– p. 6/7
Preceptrão Multi-Camada

Conclusões:
Mais unidades escondidas tornam a rede mais flexível, mas esta
pode entrar em sobre aprendizagem
Pode-se utilizar um conjunto de validação e parar o treino quando o erro
nesse conjunto subir
Pode-se acrescentar ao erro um termo de regularização
Pode-se utilizar diferentes funções de activação
Degraus (sigmóide ou tangente hiperbólica)
Softmax
Saídas lineares (útil para regressão)
Aprendizagem é mais difícil (função do erro pode ter vários
mínimos locais)

G. Marques DEETC Aprendizagem Automática


– p. 7/7

Вам также может понравиться