Академический Документы
Профессиональный Документы
Культура Документы
Preceptrão Multi-Camada
(redes MLP)
b1
u1
+ ϕ ŷ1
x1
b2
u2
+ ϕ ŷ2
x2
..
.. .
.
bc
xd
uc
+ ϕ ŷc
| {z }
u=W⊤ x+b
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
Exemplo de uma rede MLP com uma camada escondida com m unidades:
Dois discriminantes logísticos em cadeia
Exemplo de uma rede MLP com uma camada escondida com m unidades:
Dois discriminantes logísticos em cadeia
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
∂zj ∂zj
= vi e =1
∂woij ∂boj
∂kek2 ∂kek2
= −2ej ϕ′ (zj )vi e = −2ej ϕ′ (zj )
∂woij ∂boj
′
∂v2 bo 2
+ ϕ
∂kek2
x2 + ϕ′ ∂ ŷ2
.. ..
.. . bo c .
.
b im ∂kek2
xd + ϕ′ ∂ ŷc
+ ϕ′
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)];
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;
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
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
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
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)