Análise de Imagens - IC

Propaganda
Análise de Imagens
Aula 16: Treinamento por retropropagação
Prof. Alexandre Xavier Falcão
[email protected].
IC - UNICAMP
A.X. Falcão – p.1/11
Roteiro da Aula
Treinamento por retropropagação para redes do tipo
perceptron multicamadas.
Ver livro da Kuncheva.
A.X. Falcão – p.2/11
Retropropagação
Dada uma rede neural do tipo perceptron multicamadas,
com uma inicialização aleatória de pesos baixos para as
conexões entre neurônios, o treinamento por
retropropagação visa atualizar estes pesos de forma a
minimizar o erro quadrático E obtido na classificação das
amostras rotuladas de Z1 .
N
(1)
c
1 X
1X
[gi (xj ) − I(wi , l(zj ))]2
E =
2
j=1 i=1
onde xj é o vetor de características do objeto zj ∈ Z1 , e
I(wi , l(zj )) é 1 se o rótulo l(zj ) de zj for wi e 0 no caso con-
trário.
A.X. Falcão – p.3/11
Retropropagação
Sabemos que o método descendente de gradiente atualiza
um parâmetro θ, que influencia em uma função de erro
J(θ), por θ ← θ − η ∂J
∂θ , onde η > 0 é a taxa de
aprendizagem. Sendo J = E e θ um peso pj , 1 ≤ j ≤ q , da
j -ésima conexão de entrada de um dado neurônio da rede,
∂E
∂pj pode ser obtido pela regra da cadeia:
(2)
onde δ =
∂E
∂pj
∂E
∂ξ
∂(
∂E ∂ξ
=
=δ
∂ξ ∂pj
Pq
i=1 pi ui )
∂pj
= δuj
é um erro associado ao neurônio e uj é a sua
j -ésima entrada.
A.X. Falcão – p.4/11
Retropropagação
Portanto, o peso pj de qualquer conexão de entrada de
qualquer neurônio da rede deve ser atualizado por
(3)
pj ← pj − ηδuj
p0 ← p0 − ηδu0
A questão é como calcular δ e uj ? Os valores uj de entrada
de todas as conexões de todos os neurônios são calculados
por propagação de uma amostra rotulada x ∈ ℜn de objeto
em Z1 . Os erros δ de cada neurônio são encontrados por
retropropagação (da camada de saída para a de entrada).
A.X. Falcão – p.5/11
Retropropagação
Considere o j -ésimo neurônio da última camada h
escondida e o i-ésimo neurônio da camada o de saída.
vh
j
h
gi( x)
j
po
ij
i
o
A saída vjh do j -ésimo neurônio é a entrada uj do i-ésimo
neurônio, a qual é multiplicada pelo peso poij . A saída do
i-ésimo neurônio é gi (x). Pela Eq 3 temos
(4)
poij ← poij − ηδio vjh .
A.X. Falcão – p.6/11
Retropropagação
O valor vjh é encontrado na propagação de x e o erro δio do
i-ésimo neurônio da camada o de saída é encontrado pela
regra da cadeia.
(5)
δio
∂E ∂gi (x)
∂E
=
=
o
∂ξi
∂gi (x) ∂ξio
onde ξio é a somatória ponderada de todas as entradas do
i-ésimo neurônio da camada o de saída. Pela Eq 1,
∂E
∂gi (x)
=
gi (x) − I(wi , l(x)). Sabemos que gi (x) = φ(ξio ) e que sendo
φ(ξio )
∂gi (x)
∂ξio
uma função sigmóide,
∂φ(ξio )
∂ξio
= φ(ξio )[1 − φ(ξio )]. Então,
= gi (x)[1 − gi (x)].
A.X. Falcão – p.7/11
Retropropagação
Ou melhor,
(6)
δio = [gi (x) − I(wi , l(x))]gi (x)[1 − gi (x)].
Após propagação de x pela rede, encontramos portanto δio
para i = 1, 2, . . . , c, e atualizamos os pesos poij pela Eq 4.
Considere agora as conexões entre a penúltima e última
camadas, h − 1 e h.
vh−1
vhj
k
k ph
jk
h−1
j
h
A.X. Falcão – p.8/11
Retropropagação
A saída vkh−1 do k -ésimo neurônio da camada h − 1 é a
entrada uk do j -ésimo neurônio da camada h, a qual é
multiplicada pelo peso phjk . A saída do j -ésimo neurônio é
vjh . Pela Eq 3,
(7)
phjk ← phjk − ηδjh vkh−1 .
Temos vkh−1 por propagação de x e o erro δjh de cada j -ésimo
neurônio da última camada h escondida é encontrado em
função de δio , poij , e vjh previamente calculados (retropropagação), da seguinte forma.
A.X. Falcão – p.9/11
Retropropagação
Pela regra da cadeia,
δjh
=
∂E
∂ξjh
=
h
∂E ∂vj
∂vjh ∂ξjh
=
h
∂E ∂φ(ξj )
∂vjh ∂ξjh
∂E h
h ), para funções
v
(1
−
v
j
∂vjh j
Note que vjh afeta o erro E
=
de ativação do tipo sigmóide.
através de todos
os neurônios
da camada o de saída.
o
P
P
c
c
∂E ∂ξi
∂E
o po . Ou seja,
δ
=
=
Então, ∂v
o
h
h
i=1 ∂ξ ∂v
i=1 i ij
j
(8)
i
δjh =
j
c
X
i=1
δio poij
!
vjh (1 − vjh ).
O treinamento pode ser feito percorrendo Z1 várias vezes
(cada vez é chamada uma época), e atualizando os pesos
após cada amostra xj ser submetida à rede.
A.X. Falcão – p.10/11
Algoritmo
Para uma rede com pesos iniciais pequenos e
aleatoriamente escolhidos:
1. Escolha T > 0 de épocas, taxa η > 0, e erro ǫ > 0.
2. Faça E ← +∞, época t ← 1, e objeto j ← 1.
3. Enquanto E > ǫ e t ≤ T faça
4.
Propague xj pela rede com os pesos atuais.
5.
Calcule os erros de cada neurônio
(retropropagação).
6.
Atualize os pesos da rede.
7.
Calcule E usando os novos pesos e a Eq 1.
8.
Se j = N1 , então t ← t + 1 e j ← 1. Se não, j ← j + 1.
A.X. Falcão – p.11/11
Download