You are on page 1of 4

Questo 7: Pesquise sobre algoritmos de poda em redes neurais do tipo

perceptrons com mltiplas camadas incluindo o algoritmo do Cirurgio Cerebral


timo.
A complexidade de uma rede neural, traduzida aqui como a quantidade de pesos
e neurnios, traz consigo alguns problemas, dentre os quais podemos citar: apresentam,
geralmente, uma pobre generalizao, so mais lentas e mais caras de se construir. Por
outro lado, uma rede neural simples pode no ser capaz de aprender com os dados de
treinamento.
Ento o ideal encontrar a menor configurao de rede que gere uma sada
adequada para o problema. Entretanto, esta menor configurao no normalmente
bvia e uma prtica comum treinar sucessivamente redes pequenas at encontrar
aquela mais adequada ao problema em questo. Este tipo de abordagem costuma
consumir bastante tempo.
Uma outra abordagem, que a que ser tratada nos prximos pargrafos,
treinar uma rede maior (excesso de pesos e neurnios) e ento aplicar algoritmos que
removam partes as descessrias da rede. Esses algoritmos so conhecidos como
algoritmos de poda.
Os algoritmos de poda do s redes neurais complexas a capacidade de
generalizao pela eliminao de alguns de seus pesos sinpticos e e evitam que elas
perdam a sua capacidade de aprender devido a uma retirada em excesso de tais pesos.
Entretanto, algumas questes vm a tona: Que pesos devem ser eliminados? Os pesos
restantes devem ser ajustados ou permanecer como estavam? Qual a forma mais
eficiente para realizar esta poda do ponto de vista computacional?
Tentaremos responder a estas perguntas nos prximos pargrafos enquanto
comparamos alguns dos principais algoritmos de poda em redes neurais do tipo
perceptrons com mltiplas camadas.
Fora bruta
Esse mtodo tem o objetivo de detectar e anular os pesos sinpticos que tm
pouca alterao na soma dos erros quadrticos mdios.
Uma abordagem simples ajustar um peso para zero e avaliar a mudana no
erro. Se o erro aumentar muito ento o peso deve ser restaurado, caso contrrio, deve ser
removido. Uma abordagem mais conservadora avaliar a mudana no erro para todos
os pesos e deletar aquele com menor efeito. Isso dever ser repetido at que a ltima
mudana no erro atinja algum valor de limiar.
Esse mtodo tambm pode ser aplicado para remover neurnios, seguindo a
mesma lgica bsica: definir um neurnio com valor de sada zero (zerar todos os pesos
que conectam o referido neurnio s camadas de entrada e de sada) e avaliar a alterao
provocada no erro. Se o neurnio tiver pouca influncia no erro ele pode ser removido.
Para avaliar a influncia de um peso (ou neurnio) na sada da rede, este tipo de
algoritmo utiliza uma medida de sensibilidade da funo de erro com relao remoo
de um elemento; quele que tiver o menor efeito removido. Uma das medidas de
sensibilidade utilizada representada pela equao a seguir para o peso w
ij
:
(0) ( )
f
ij
S E E w =
Onde: w
f
o valor final do peso depois do treinamento, E(w
f
) o valor do erro
de treinamento com todos os pesos da rede e E(0) o valor do erro quando o peso w
ij

removido.
Ao invs de remover o peso w
ij
e calcular E(0) diretamente para determinar o
valor da sensibilidade uma estimativa pode ser obtida como
1
0

( )
f
N
ij
ij ij f i
n
ij ij ij
w
E
S w n
w w w

=
c
= A
c


Onde: N o nmero de pocas de treinamento e w
i
o peso inicial. Todos esses
termos esto disponveis durante o treinamento e, portanto, no h a necessidade de uma
fase de clculo da sensibilidade separada.
Aps o treinamento, cada peso tem associado a si um valor de sensibilidade
estimada e o peso de menor sensibilidade pode ser removido.
Aps cada passo de poda, h a necessidade de retreinamento e o esforo
computacional pode ser muito grande dependendo do tamanho da rede.
Dano Cerebral timo
Esse mtodo consiste em detectar e remover os pesos que possuem o menor
efeito no erro de treinamento (salincia). Para tal, ele usa a derivada segunda da funo
custo com respeito aos pesos para calcular as medidas de salincia de todos os pesos.
Segue uma descrio analtica do processo.
Partindo da aproximao da funo de custo E pela srie de Taylor
( )
3
2
1 1
2 2
i i ii i ij i j
i i i j
E g u h u h u u O U o o o o o o
=
= + + +


Onde: representa uma variao dos pesos,

representa os componentes de
,

s so os componentes do gradiente de E com relao U e

so os
componentes da matriz Hessiana de E com relao U:
i
i
E
g
u
c
=
c
e
2
ij
i j
E
h
u u
c
=
c c

O objetivo encontrar o conjunto de pesos cuja remoo ir causar o menor
aumento de E.
Isso pode se tornar um problema insolvel devido a dificuldade de se computar
uma matriz Hessiana de grandes dimenses (a dimenso da matriz Hessiana
proporcional quantidade de pesos).
Para contornar esse problema, algumas aproximaes podem ser feitas. A
aproximao diagonal assume que o causado pela remoo de vrios pesos a
soma dos s causados pela remoo de cada peso individualmente (no h correlao
cruzada entre as variaes de mltiplos pesos), portanto o terceiro termo da funo de
custo pode ser descartado. A aproximao extrema assume que a remoo de pesos
ser executada aps o treinamento convergir e, portanto, o vetor de pesos est em um
mnimo local de E, de onde conclui-se que o primeiro termo da expresso de custo pode
ser negligenciado. Por ltimo, a aproximao quadrtica assume que a funo de
custo aproximadamente uma funo quadrtica (srie de Taylor de segunda ordem),
tal que o ltimo termo da expresso tambm pode ser descartado. Com isso a expresso
da funo custo se resume a
2
1
2
ii i
i
E h u o o =


Em outras palavras, o mtodo assume que a matriz Hessiana diagonal, o que
nem sempre verdade e pode levar eliminao de pesos incorretos para redes com
Hessianas fortemente no-diagonais.
O procedimento do algoritmo Dano Cerebral timo pode ser executado como:
1. Escolher uma arquitetura de rede razovel;
2. Treinar a rede at que uma soluo satisfatria seja obtida;
3. Computar as segundas derivadas h
kk
para cada peso;
4. Computar as salincias para cada peso:
2
2
k kk k
s h u = ;
5. Ordenar os pesos por ordem de salincia e remover aqueles com valores
mais baixos de salincia;
6. Repetir o passo 2.
Cirurgio Cerebral timo
Este mtodo toma como base o mtodo do Dano Cerebral timo, entretanto com
algumas modificaes e consideraes, conforme ser apresentado nos pargrafos
seguintes.
Considere uma rede treinada em um mnimo local e com o mesmo funcional da
srie de Taylor com relao aos pesos que o mtodo anterior, mas com a notao
reescrita por motivo de simplicidade:
( )
3 1
2
T
T
E
E O o o o o o
c | |
= + +
|
c
\ .
w w H w w
w

Onde
2 2
E = c c H w representa a matriz Hessiana.
Podemos ignorar o primeiro e o ltimo termo, tal como no mtodo anterior. O
objetivo ento minimizar o aumento no erro ao se ajustar um dos pesos (

) para
zero. Isso pode ser expresso como
0
q q
w w o + =
Ou mais geralmente como
0
T
q q
w o + = e w
Onde e
q
um vetor unitrio no espao de pesos correspondente ao peso

.
Assim, o objetivo torna-se resolver
1
min min 0
2
T T
q q
q
w
o
o o o
| |
+ =
`
|
\ . )
w
w H w e w
Para resolver a expresso acima forma-se um Lagrangiano com os dois termos
(o funcional e a restrio)
( )
1
2
T T
q q
L w o o o = + + w H w e w
Onde o multiplicador de Lagrange. Com isso encontra-se o a mudana de
peso tima e a mudana no erro
1
1
q
q
qq
w
o

=
(

w H e
H

2
1
1
2
q
q
qq
w
L

=
(

H

L
q
representa a salincia do peso q, ou seja, o aumento no erro quando o peso
removido.
Para esse mtodo nem H ou H
-1
precisam ser diagonais.
Alm de detectar e remover pesos, o algoritmo do Cirurgio Cerebral timo
tanbm calcula e modifica o valor dos pesos sem a necessidade do gradiente
descendente ou outro retreinamento incremental.
O algoritmo bsico encontra-se sumarizado abaixo:
1. Treinar uma rede razoavelmente grande para um erro mnimo;
2. Computar H
-1
;
3. Encontrar o peso w
q
que resulta na menor salincia. Se ele for muito menor
que E, ento deve ser removido e o passo 4 realizado, caso contrrio, seguir
para o passo 5 ;
4. Usar o w
q
do passo 3 para atualizar todos os pesos e seguir para o passo 2;
5. Mais nenhum peso pode ser removido sem provocar um grande aumento em
E. Neste ponto pode ser desejvel retreinar a rede.

You might also like