• Nenhum resultado encontrado

A Versão Multiclasse do Algoritmo PMR – Abordagem WTA

A versão multiclasse WTA do algoritmo PMR, como descrita em [Parekh et al. 2000] é uma extensão direta do algoritmo original para duas classes. A única alteração está no fato da versão treinar tantos neurônios quantos forem as classes ao invés de apenas um, como o PMR original.

A cada um dos m neurônios é associada uma determinada classe antes do início do treinamento; esta associação determina qual dos m neurônios deverá estar ativo para determinada classe. A associação é feita conforme a ordem em que as classes são encontradas no conjunto de treinamento, i.e. a enésima classe encontrada é associada ao enésimo neurônio.

Como visto anteriormente, o treinamento de uma TLU usando instâncias de treinamento descritas por p atributos e uma classe associada resulta na obtenção de um vetor de pesos W de dimensão p + 1 (considerando o bias). O treinamento de m TLUs resulta na obtenção de um vetor de vetores de pesos, W, no qual cada posição Wj (1 ≤ j ≤ m) representa

o vetor de pesos obtido no treinamento da TLU identificada por j.

Como o algoritmo treina m neurônios em paralelo a saída será um vetor com m posições, no qual cada posição Okj representa a saída do neurônio j para a instancia Ek.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 -1 5 4 3 2 1 10 9 8 7 6 -1 -2 Y X + – * + + + + – – – – * * * * * * * + + – – – + H1 H2 H3

Capítulo 6 - A Versão Multiclasse do Algoritmo PMR – Abordagem WTA

124 Seja Ok = O1k,Ok2,...,Okm o vetor obtido com as saídas dos m neurônios para a instância Ek. O vetor saída Ok = O1k,Ok2,...,Omk é calculado como segue:

(1) Se ∃ j ∈ {1,...,m} tal que WjEk > WiEk ∀i ≠ j, i ∈ {1,...,m} então Okj =1 e

1

Oki =− para todo i ≠ j.

(2) Se, no entanto, ∃ j1, j2, ...,jr ∈ {1,...,m} tal que Wj1Ek = Wj2Ek = ... = WjrEk e

Wj1Ek > WiEk ∀i ∉ {j1, j2,...,jr} então Okj= –1 ∀j ∈ {1,...,m}.

Durante o treinamento, considere que Dk = D1k,Dk2,...,Dkm seja o vetor que representa a saída esperada dos m neurônios para a instância Ek. Se ao final de uma iteração o vetor Ok for igual ao vetor Dk então o algoritmo classifica a instância Ek corretamente. Se, no entanto, os vetores Ok e Dk forem diferentes, os vetores de pesos que geraram saída diferente são atualizados de acordo com a regra do Perceptron, dada pela equação (6.1).

(

D O

)

E j

{

1,...,m

}

W W k k j k j j j ← +η − ∀ ∈ (6.1)

na qual η é a taxa de aprendizado. Não existe uma regra geral para determinar um valor para a taxa de aprendizado. Na verdade esse valor depende do conjunto de treinamento sendo tratado. Uma abordagem satisfatória, no entanto, é inicializar η com o valor 1 e cada vez que o número de iterações do algoritmo for divisível pelo número de instâncias de treinamento, η tem seu valor multiplicado por 0,95. Isso faz com que a variação de W diminua de intensidade à medida que o treinamento progride.

No pseudocódigo apresentado em Algoritmo 6.2, o algoritmo armazena o conjunto de vetores de pesos W que classifica mais instâncias de treinamento corretamente em Wpoc. Assim como na versão original, para que Wpoc seja atualizado com os pesos de W é necessário que, além de classificar corretamente mais instâncias de treinamento consecutivas que Wpoc, W também classifique maior número de instâncias de treinamento distintas que Wpoc. O número de instâncias consecutivas classificadas corretamente por W e por Wpoc são armazenados, no pseudocódigo, em consecW e consecWpoc respectivamente. Os totais de instâncias classificadas corretamente por W e Wpoc (calculado pelo método nroCorretos()) são armazenados em corretosW e corretosWpoc respectivamente.

Capítulo 6 - A Versão Multiclasse do Algoritmo PMR – Abordagem WTA

125 Algoritmo 6.2 – Pseudocódigo do algoritmo PMRWTA

Class PMRWTA begin

{Entradas: E - conjunto de treinamento com n instâncias, distribuídas em m classes, da forma: (xk0, xk1, xk2,..., xkp, Ck), sendo que 1 ≤ k ≤ n

MAX - número de iterações, pré-determinado}

{Saída: objeto pmrwta que contém os m vetores de pesos} method PMRWTA(Matrix E)

begin

for i ← 1 to m do

Wi← 〈0, 0, 0,..., 0〉 {Wi é iniciado como um vetor nulo com p+1 posições }

Wpoc ← W; consecW ← 0; consecWpoc ← 0; corretosW ← 0; corretosWpoc ← 0 it ← 0; itMax ← MAX {número máximo de iterações, pré-determinado}

← 1 {taxa de aprendizado} D ← criaSaidaEsperada() while it < itMax do begin k ← seleciona(1,n) Ok ← saidaM(k) if ( Ok = Dk ) then begin consecW ← consecW + 1 if consecW > consecWpoc then begin corretosW← nroCorretos()

if corretosW > corretosWpoc then begin consecWpoc ← consecW corretosWpoc ← corretosW for i ← 1 to m do Wpoci← Wi end end end else begin consecW ← 0 for i ← 1 to m do Wi ←Wi +η(Dki −Oik)Ek end

if (it mod n) = 0 then η ← 0,95η it ← it + 1 end end {method}

method Vector saidaM(Integer k) begin

O ← 〈0, 0, 0,..., 0〉 ; P ← 〈0, 0, 0,..., 0〉 for i ← 1 to m do

Pi← Wi Ek {vetor P armazena os m potenciais de ativação para a instância k}

maior ← P1; ind ← 1

for j ← 2 to m do if maior < Pj then

begin

Oind ← -1; maior ← Pj; Oj← 1; ind ← j

end

else if maior = Pj then

for i ← 1 to m do Oi ← –1

return O end {method} end {Class}

Capítulo 6 - A Versão Multiclasse do Algoritmo PMR – Abordagem WTA

126 Assim como no PMR original, na sua versão multiclasse o conjunto de treinamento é acessado de maneira aleatória. No pseudocódigo, o método seleciona() gera um número inteiro e aleatório k dentro do intervalo passado como parâmetro (no caso k ∈ {1,..., n}). Este número é usado como índice e é passado para o método saidaM(), que gera o vetor saída, com base no W atual, para a instância k em questão.

O vetor saída Ok gerado por saidaM() é então comparado com a linha k da matriz D, que é a matriz com as saídas esperadas para todas as instância de treinamento. A saída esperada D é gerada antes do inicio do treinamento pelo método criaSaidaEsperada(). Se todas as posições dos vetores forem iguais, a instância é classificada corretamente, caso contrário os vetores de pesos que apresentam saída errada são atualizados de acordo com a regra apresentada na equação (6.1). Note que dentre os m vetores de pesos, só serão atualizados os que geraram saída diferente da saída esperada.

6.3.1 Exemplo do PMR Multiclasse – Abordagem WTA

Para este exemplo de execução, considere o conjunto de treinamento com três classes representado na Tabela 6.1 com a inclusão do termo bias (não representado na Tabela 6.1). As classes ‘+’, ‘–’ e ‘*’ apresentadas no conjunto de treinamento continuam sendo associadas aos vetores de saída 〈1 –1 –1〉, 〈–1 1 –1〉 e 〈–1 –1 1〉 respectivamente.

A Tabela 6.2 mostra os vetores de pesos W1, W2 e W3 e o número de instâncias

corretamente classificadas a cada 100 iterações do algoritmo, obtidas da execução do algoritmo PMRWTA, tendo o conjunto da Tabela 6.1 como entrada. Note que apesar do valor dos exemplos classificados corretamente variar bastante, o conjunto de vetores de pesos ótimo é obtido ao final da execução.

Tabela 6.2 – Vetores de pesos obtidos da execução do algoritmo PMRWTA para o conjunto de treinamento da Tabela 6.1

Iteração W1 W2 W3 Número de acertos

0 〈0 0 0〉 〈0 0 0, 〈0 0 0, 8 100 〈2 6 8〉 〈0 0 0〉 〈0 0 0〉 8 200 〈22 –2 20〉 〈–8 28 –38〉 〈–10 –14 30〉 14 300 〈40 –20 20〉 〈–14 34 –44〉 〈–22 –2 36〉 18 400 〈60 –16 24〉 〈–26 38 –58〉 〈–30 –10 46〉 20 500 〈74 –24 36〉 〈–32 36 –60〉 〈–38 0 36〉 21 600 〈80 –26 6〉 〈–36 50 –54〉 〈–40 –12 60〉 16 700 〈92 –44 34〉 〈–42 56 –62〉 〈–46 0 40〉 19 800 〈106 –28 42〉 〈–50 54 –74〉 〈–50 –6 46〉 19 900 〈122 –12 38〉 〈–64 42 –80〉 〈–52 –10 56〉 14 1000 〈126 –24 32〉 〈–66 50 –74〉 〈–54 –6 52〉 24

Capítulo 6 - A Versão Multiclasse do Algoritmo BCP – Abordagem WTA

127 Os vetores de pesos obtidos W1, W2 e W3 geram os hiperplanos H1, H2 e H3,

graficamente mostrados na Figura 6.3, cujas equações são: H1: –24X + 32Y + 126 = 0;

H2: 50X – 74Y – 66 = 0 e H3: –6X + 52Y – 54 = 0 respectivamente. Neste exemplo de

execução o hiperplano H1 está associado às instâncias de treinamento representadas por ‘+’; o

hiperplano H2, porsua vez, está associado às instâncias representadas por ‘-’ e o hiperplano

H3 às instâncias representadas por ‘*’. Note a disposição dos hiperplanos obtidos na Figura

6.3, que um hiperplano não separa a classe que representa, das outras duas classes, como acontece com a abordagem individual.

Figura 6.3 – Classificação multiclasse feita pelo PMRWTA