• Nenhum resultado encontrado

com 25 atributos para classicação de falhas estatóricas

E.3 Conjunto de dados biomédicos relacionados a doenças da coluna vertebral

4.2 O Método CAPE

4.2 O Método CAPE

O procedimento descrito nesta seção é um método de poda, isto é, o usuário deve inicialmente treinar a rede MLP com um número relativamente grande de neurônios na camada escondida, e então descartar os pesos desnecessários ou redundantes com a apli- cação do procedimento. É assumido que a rede foi treinada para apresentar o menor valor possível de εtrain. Para uma rede sobredimensionada em parâmetros, esse procedimento

certamente levará a um modelo sobreajustado, com desempenho pobre na generalização. Todavia, o raciocínio é que o procedimento de poda eliminará conexões redundantes, melhorando assim o desempenho da rede na generalização.

4.2.1 Poda dos Pesos Entre as Camadas Escondida e de Saída

O procedimento de poda começa com a submissão do conjunto de treinamento uma vez mais à rede treinada. Nenhuma adaptação de pesos ocorre neste estágio. Uma vez que todos os N exemplos de treinamento tenham sido apresentados, construa as seguintes matrizes de erro Eo =       

e(o)1 (1) e(o)2 (1) · · · e(o)M(1) e(o)1 (2) e(o)2 (2) · · · e(o)M(2)

... ... ... ... e(o)1 (N ) e(o)2 (N ) · · · e(o)M(N )

       N ×M (4.3) e Eh =        e(h)0 (1) e(h)1 (1) · · · e(h)Q (1) e(h)0 (2) e(h)1 (2) · · · e(h)Q (2) ... ... ... ... e(h)0 (N ) e (h) 1 (N ) · · · e (h) Q (N )        N ×(Q+1) . (4.4)

As linhas da matriz Eo correspondem aos erros gerados pelos neurônios de saída

para um dado exemplo de treinamento. Então, esta matriz é denominada a partir de agora como a matriz dos erros de saída, em contraste com a matriz Eh, cujas linhas

correspondem aos erros retropropagados associados aos neurônios da camada escondida. Em particular, a primeira coluna de Eh corresponde aos erros retropropagados associados

aos limiares mk0 = θ(o)k , k = 1, . . . , M.

O segundo passo consiste em calcular o seguinte produto de matrizes

4.2 O Método CAPE 53 no qual T denota o transposto de uma matriz. Note que o (k, i)-ésimo elemento de Coh,

denotado por Coh[k, i], corresponde ao produto escalar (correlação) da k-ésima coluna de

Eo com a i-ésima coluna de Eh,

Coh[k, i] = N X t=1 e(o)k (t)e(h)i (t), (4.6) para k = 1, . . . , M, e i = 0, . . . , Q.

O terceiro passo requer a organização dos valores absolutos dos elementos Coh[k, i]

em ordem crescente

|Coh[r1]| < |Coh[r2]| < · · · < |Coh[rL]|, (4.7)

cujo vetor rl= (kl, il)contém as coordenadas da posição ocupada pelo elemento l na la,

e L = dim(Coh) = M × (Q + 1) é o número de elementos em Coh.

O quarto passo envolve a execução do procedimento de poda mostrado na Tabela 4.1. Nesta tabela, Jtrain representa um dado índice usado para avaliação do desempenho da

rede no conjunto de dados de treinamento, tal como o erro médio quadrado εtrain ou a

taxa de classicação CRtrain. A constante Jtol é um valor denido pelo usuário.

Tabela 4.1: Procedimento de poda para pesos entre as camadas escondida e de saída.

1. Faça l = 1; // atribua 1 ao índice de contagem

2. ENQUANTO l ≤ L FAÇA // comece o ciclo de poda

2.1. Faça a = mrl; // salve o valor corrente

2.2. Faça mrl = 0; // atribua zero ao peso

2.3. Calcule Jtrain; // índice de desempenho no conjunto de treinamento 2.4. SE Jtrain < Jtol,

ENTÃO

Faça mrl = a; // recupere o valor

FIM DO SE

2.5. Faça l = l + 1; // continue a poda

FIM DO ENQUANTO

Se Jtrain = CRtrain, então Jtol é a taxa de reconhecimento mínima aceita para o

conjunto de treinamento. Assim, elimina-se uma dada conexão mrl apenas se o valor de Jtrain, calculado após a eliminação da mesma, permanece acima de um valor previamente

especicado de Jtol.

No caso em que Jtrain = εtrain, então Jtol é um valor de erro máximo permitido para o

conjunto de dados de treinamento e a expressão condicionante na linha 2.4 da Tabela 4.1 passa a ser Jtrain > Jtol. Nesse caso, elimina-se uma dada conexão mrl apenas se o valor de Jtrain, calculado após a eliminação da mesma, permanece abaixo de Jtol.

4.2 O Método CAPE 54

4.2.2 Poda de Pesos Entre as Camadas de Entrada e Escondida

Para a poda dos pesos que conectam as unidades de entrada aos neurônios da camada escondida, wij, é necessário retropropagar os erros relacionados aos neurônios da camada

escondida, e(h)(t), com o objetivo de obter os erros projetados nas unidades de entrada

e(i)j (t) = Q

X

i=1

wij(t)δ(h)i (t), j = 0, . . . , P. (4.8)

Após a apresentação dos N vetores de treinamento, os erros resultantes podem ser organizados numa matriz de erros

Ei =       

e(i)0 (1) e(i)1 (1) · · · e(i)P (1) e(i)0 (2) e(i)1 (2) · · · e(i)P (2)

... ... ... ... e(i)0 (N ) e(i)1 (N ) · · · e(i)P (N )

       N ×(P +1) . (4.9)

Similarmente ao procedimento descrito na seção anterior, deve-se calcular o seguinte produto de matrizes

Chi= (E−h)TEi, (4.10)

onde a matriz E−

h é o resultado da remoção da primeira coluna da matriz Eh. Isto se deve

ao fato de que não há conexões entre os limiares dos neurônios pertencentes à camada escondida e qualquer elemento pertencente à camada de entrada. O (i, j)-ésimo elemento de Chi, denotado por Chi[i, j], é dado por

Chi[i, j] = N X t=1 e(h)i (t)e (i) j (t), (4.11)

para i = 1, . . . , Q, and j = 0, . . . , P . Então, os valores absolutos dos elementos Chi[i, j]

devem ser organizados em ordem crescente

|Chi[s1]| < |Chi[s2]| < · · · < |Chi[sL]|, (4.12)

onde o vetor sl = (il, jl) contém as coordenadas do elemento ocupante da posição l na

la, e L = dim(Chi) = Q× (P + 1) é o número de elementos em Chi.

O passo nal envolve a execução do procedimento de poda mostrado na Tabela 4.2. Um aspecto importante da aplicação do método proposto é que a estrutura neural deve ser submetida ao algoritmo de poda sucessivas vezes, até que não haja mais pesos a

4.2 O Método CAPE 55

Tabela 4.2: Procedimento de poda para pesos entre as camadas de entrada e escondida.

1. Faça l = 1; // atribua 1 ao índice de contagem

2. ENQUANTO l ≤ L FAÇA // comece o ciclo de poda

2.1. Faça b = wrl; // salve o valor corrente

2.2. Faça wrl = 0; // atribua zero ao peso

2.3. Calcule Jtrain; // índice de desempenho no conjunto de treinamento 2.4. SE Jtrain < Jtol,

ENTÃO

Faça wrl = b; // recupere o valor

FIM DO SE

2.5. Faça l = l + 1; // continue a poda

FIM DO ENQUANTO

serem podados (uxograma na Figura 4.2). Isto se justica pelo fato de que a poda de uma ou mais conexões sinápticas de um determinado neurônio oculto, por exemplo, altera o posicionamento do seu respectivo hiperplano, o que pode tornar redundante a presença de outras conexões sinápticas ou até mesmo de outros neurônios ocultos.

Figura 4.2: Fluxograma de aplicação do algoritmo CAPE.

O procedimento descrito nesta seção foi limitado à aplicação em uma rede MLP com apenas uma camada escondida. Entretanto, o CAPE pode facilmente ser estendido para aplicação em redes com duas ou mais camadas escondidas.