• Nenhum resultado encontrado

O Algoritmo Sequential com o IncLP

5.6 O Algoritmo Sequential

5.6.3 O Algoritmo Sequential com o IncLP

O Algoritmo 5.8 descreve o pseudocódigo do Sequential, que faz uso do IncLp para encontrar um conjunto de instâncias de uma mesma classe que é linearmente separável do restante do conjunto de treinamento.

Com o objetivo de encontrar o maior conjunto linearmente separável a cada iteração, o Sequential cria dois objetos IncLp, um para encontrar o maior conjunto de instâncias positivas (exPos, ver pseudocódigo em Algoritmo 5.8) e o outro para encontra o maior conjunto de instâncias negativas (exNeg) linearmente separáveis do resto do conjunto de treinamento.

22

Capítulo 5 - O Algoritmo Sequential

114 Algoritmo 5.8 – Pseudocódigo do Sequential usando o IncLp

O Sequential adicionará na camada intermediária apenas o neurônio que mais excluiu exemplos de treinamento (exPos ou exNeg). Após adicionado, os exemplos de treinamento que este excluiu são retirados do conjunto original de treinamento (getNewE()) e o neurônio é marcado como positivo ou negativo, de acordo com os exemplos que este excluiu.

Esta marcação é feita, pois os neurônios treinados com o IncLp podem produzir algumas saídas iguais a 0, fato que pode tornar a matriz de representação interna não confiável. Esse problema, todavia, pode ser resolvido da seguinte forma: Se o neurônio que

Class Sequential begin

Entradas: E - conjunto de treinamento com n instâncias da forma: (‘xk0’, xk1, xk2,..., xkp, Ck), sendo que 1 ≤ k ≤ n

MAX - número máximo de neurônios intermediários, pré-determinado} {Saída: objeto sequential que representa a rede neural criada}

CamadaMax ← MAX

Camada[CamadaMax]

method Sequential(Matrix E) begin

while not oneClass(E1) do begin

exPos ← new IncLp(E1, true) exNeg ← new IncLp(E1, false) cont ← 1

if (exPos.getNroL() ≥ exNeg.getNroL()) then begin Camada[cont] ← exPos E1 ← exPos.getNewE() Camada[cont].setClassL(true) end else begin Camada[cont] ← exNeg E1 ← exNeg.getNewE() Camada[cont].setClassL(false) end cont ← cont + 1 end indNeuronio ← 0 nroNeuronios ← cont while nroNeuronios > 0 do begin pesos[indNeuronio] ← 2nroNeuronios indNeuronio ← indNeuronio + 1 nroNeuronios ← nroNeuronios - 1 end for i ← 1 to cont do begin

bias ← bias + aux * pesos[i] aux ← aux * –1

end

bias ← bias + aux end {method} end {Class}

Capítulo 5 - O Algoritmo Sequential

115 gerou a saída 0 foi marcado como positivo, i.e. exclui exemplos de classe positiva, substituí- se o 0 por 1. Se, no entanto, o neurônio foi marcado como negativo, i.e. foi alocado para excluir instâncias negativas, substitui-se 0 por –1.

O processo chega ao fim quando houver somente exemplos de treinamento pertencentes a uma única classe no conjunto de treinamento original, quando oneClass(), no pseudocódigo, retornar verdadeiro.

5.6.3.1 Exemplo de Execução do Sequential em um Conjunto Não Linearmente Separável usando o IncLp

Para exemplificar o funcionamento do algoritmo Sequential com o IncLp, como descrito no pseudocódigo do Algoritmo 5.8, será usado o conjunto de treinamento Paridade-3, representado na Tabela 5.30.

Tabela 5.30 – Conjunto de exemplos que representa o problema Paridade-3 com a adição do termo bias Exemplos Ek (k = 1,..., 8) X0 (bias) X1 X2 X3 Classe Ck (k = 1,..., 8) E1 1 1 1 1 1 E2 1 1 1 –1 –1 E3 1 1 –1 1 –1 E4 1 1 –1 –1 1 E5 1 –1 1 1 –1 E6 1 –1 1 –1 1 E7 1 –1 –1 1 1 E8 1 –1 –1 –1 –1

O primeiro passo do algoritmo é criar dois objetos IncLp: um para separar exemplos positivos e o outro para separar exemplos negativos. Após criado ambos, o que separou mais instâncias é escolhido; no caso de separarem o mesmo número de instâncias o que separa exemplos positivos é escolhido.

Como no conjunto apresentado na Tabela 5.30 o maior conjunto inicial que pode ser separado possui apenas um elemento (positivo ou negativo), o neurônio que exclui exemplos positivos u1 é adicionado na camada intermediária. Suponha que esse neurônio obtenha o

vetor de pesos W1= 〈–3 –3 1 –1〉 através do IncLp. Esse vetor de pesos define um hiperplano

que separa a instância de classe positiva E6, que é retirada do conjunto de treinamento.

Como não restam apenas instâncias de uma mesma classe no conjunto de treinamento, o algoritmo segue adicionando neurônios na camada intermediária. Suponha que o segundo neurônio u2 adicionado, quando treinado defina o vetor de pesos W2 = 〈–1 3 –3 3〉. Esse vetor

Capítulo 5 - O Algoritmo Sequential

116 define um hiperplano que separa as instâncias negativas E2, E5 e E8 que são então retiradas do conjunto de treinamento.

O conjunto restante formado pelas instâncias E1, E3, E4 e E7 ainda não possui apenas uma classe e desse modo, um terceiro neurônio u3 deve ser adicionado. Suponha que quando

treinado, o vetor de pesos associado a u3 seja W3 = 〈4 –2 2 –2〉, que define um hiperplano que

separa as instâncias E1, E4 e E7. Após a retirada dessas instâncias do conjunto de treinamento, sobra apenas a instância E3 e o critério de parada é satisfeito.

A Tabela 5.31 representa a matriz de representações internas da rede Sequential. Como dito anteriormente, o Sequential com o IncLp pode gerar alguns valores iguais a 0 nesta matriz, o que pode torná-la não confiável. Neste exemplo somente o neurônio u1 gerou 0, e

como este neurônio foi marcado como positivo troca-se os zeros por –1 como mostra a Tabela 5.32.

Tabela 5.31 – Matriz de representação interna do exemplo de execução do Sequential com o IncLp Exemplos Ek (k = 1,..., 8) Ou1 Ou2 Ou3 Classe Ck (k = 1,..., 8) E1 –1 1 1 1 E2 –1 –1 1 –1 E3 –1 1 –1 –1 E4 –1 1 1 1 E5 0 –1 1 –1 E6 1 –1 1 1 E7 –1 1 1 1 E8 0 –1 1 –1

Tabela 5.32 – Matriz de representação interna do exemplo de execução do Sequential com o IncLp corrigida Exemplos Ek (k = 1,...,8) Ou1 Ou2 Ou3 Classe Ck (k = 1,..., 8) E1 –1 1 1 1 E2 –1 –1 1 –1 E3 –1 1 –1 –1 E4 –1 1 1 1 E5 –1 –1 1 –1 E6 1 –1 1 1 E7 –1 1 1 1 E8 –1 –1 1 –1

A Figura 5.11 ilustra a arquitetura da rede Sequential com o IncLp criada para esse exemplo. Note que a rede possui quatro neurônios na camada de entrada, uma vez que esta variação do Sequential faz uso do termo bias adicionado ao conjunto de treinamento.

Capítulo 5 - O Algoritmo Sequential

117

Figura 5.11 – Rede Sequential com o IncLp representando o conceito Paridade-3 2 4 8 = 5 u1 u2 u3 X1 X2 X3 X0 (bias)

118

6

6

6.1 Introdução

Muitos problemas relacionados à classificação de padrões envolvem classificação em mais do que duas classes. Como visto anteriormente (Capítulo 2), uma única TLU pode ser treinada para discriminar instâncias que pertencem a uma de duas classes apenas. O aprendizado da aproximação de uma função que discrimina instâncias pertencentes a m classes distintas (com m > 2)23

envolve o treinamento de m TLUs [Nilsson 1965].

Cada uma das m TLUs é associada a uma classe. Durante a fase de classificação, a classe de uma nova instância é dada pela classe associada à TLU que a instância ativar. Para que uma dentre as m TLUs seja ativada, é preciso que o seu valor de ativação seja maior do que o valor de ativação de todas as outras. Assim, a TLU com o maior valor de ativação terá saída 1 e as demais terão saídas –1.

Durante a fase de treinamento, uma instância é classificada incorretamente quando ativar uma TLU associada a uma classe diferente da sua. Um outro problema ocorre quando não existe um único valor de ativação maior que os demais. Desse modo duas ou mais TLUs possuirão o mesmo valor de ativação para uma determinada instância; nesse caso todas as m TLUs tornam-se inativas (saída –1).

O treinamento de TLUs para conjuntos multiclasses pode ser feito de duas maneiras: individualmente ou utilizando a abordagem winner-takes-all (WTA) [Gallant 1994]. No treinamento individual cada um dos m neurônios é treinado independentemente dos demais; para essa abordagem, é necessário que o conjunto utilizado para o treinamento de cada TLU possua duas classes.

A abordagem individual não leva em conta o relacionamento entre as classes. Este método de treinamento também não garante que a pertinência de uma instância a uma determinada classe inviabilize sua pertinência a qualquer outra classe. Já na abordagem WTA

23

Para o restante do texto m será considerado maior que 2.

Aprendizado em Domínios

Multiclasses – Versões Estendidas

dos Algoritmos PMR e BCP

Capítulo 6 - As Versões Multiclasses dos Algoritmos PMR e BCP – Abordagem Individual

119 os m neurônios são treinados em conjunto garantindo a interação entre classes e explorando o fato de que uma instância pertence, idealmente, a uma única classe.

A abordagem de treinamento WTA oferece uma vantagem significativa sobre o treinamento individual para problemas multiclasses. Instâncias de classes que são separáveis duas a duas podem ser corretamente classificadas usando a abordagem WTA, enquanto a