• Nenhum resultado encontrado

M´odulo 4 Generaliza¸c˜ao da base de conhecimento

5.2 Proposta de constru¸c˜ao do classificador

5.2.4 M´odulo 4 Generaliza¸c˜ao da base de conhecimento

Este m´odulo visa estabelecer a completeza do classificador. Considerando-se que o classi- ficador est´a sendo moldado para reconhecer uma classe espec´ıfica de cores, por exemplo,

5.2 Proposta de constru¸c˜ao do classificador 76

verde-esmeralda (uma situa¸c˜ao t´ıpica poderia ser um robˆo vasculhando uma galeria in- salubre `a procura de esmeraldas). Ap´os o treinamento do classificador, a agrega¸c˜ao e defini¸c˜ao desta classe de cores formar´a uma “nuvem” de contornos difusos no espa¸co de atributos. Assim, qualquer ponto no interior desta nuvem poder´a ser considerado perten- cente `a classe, esperando-se que, quanto mais interior, maior a pertinˆencia.

Com o classificador de cores constru´ıdo de acordo com os m´odulos 1 a 3, ´e poss´ıvel realizar testes de detec¸c˜ao em novos conjuntos de treinamento. Mas, ainda resta um problema: ao se executar a detec¸c˜ao (testes), a base de conhecimento restringe-se apenas aos dados de treinamento. Resta incluir no classificador um processo de generaliza¸c˜ao, ou um m´odulo para inferir a pertinˆencia de uma “nova” cor.

De acordo com a teoria de aprendizado PAC (VALIANT, 1984) (ver anexo 2), um n´umero muito grande de imagens de treinamento ´e necess´ario para preencher todo o interior desta nuvem, definindo bem o seu formato. Por´em, algumas considera¸c˜oes sobre o dom´ınio de aplica¸c˜ao podem fornecer uma heur´ıstica que otimizam o treinamento. No caso de imagens naturais, a varia¸c˜ao de uma cor caracter´ıstica de um objeto na cena ´e suave, logo, espera-se que estes cores xk estejam todas em uma vizinhan¸ca compacta, formando um grupo – a assun¸c˜ao feita para se empregar algoritmos de agrupamento no m´odulo 1.

Ap´os um n´umero razo´avel de imagens utilizadas para moldar tal nuvem, seus contor- nos ainda poder˜ao ser difusos, mas seu interior talvez seja descont´ınuo, contendo “buracos” que deveriam estar preenchidos.

Como a abordagem utilizada para a representa¸c˜ao de classes ´e aquela baseada em instˆancias, a solu¸c˜ao escolhida para este preenchimento foi o algoritmo “fuzzy k-nearest neighbor” (FkNN). A regra nebulosa dos k vizinhos mais pr´oximos (“fuzzy kNN rule”) considera os valores de pertinˆencia como fun¸c˜ao de distˆancia dos k vizinhos mais pr´oximos, e tamb´em a pertinˆencia uij em rela¸c˜ao `as classes i destes vizinhos xj. Aqui, uma ligeira mudan¸ca de nota¸c˜ao, em rela¸c˜ao `a utilizada, para seguir a literatura: classes i, pontos j, vizinhos k. A pertinˆencia final do elemento a ser classificado no espa¸co de atributos ´e uma m´edia entre as pertinˆencias dos k vizinhos, ponderada pelas distˆancias (de acordo com alguma m´etrica) que minimizam a fun¸c˜ao objetivo dada na eq. 3.17. Esta pertinˆencia ´e

calculada de uma maneira parecida com o algoritmo FCM-GK, sendo expressa por ui(x) = k X j=1 uijkx − xjk −2 m−1 k X j=1 kx − xjk −2 m−1 (5.3)

onde x ´e o vetor de atributos a ser classificado com a pertinˆencia ui em rela¸c˜ao `as classes ωi dos xj vizinhos mais pr´oximos, com grau de nebulosidade m. Em vez do elemento desconhecido x ser atribu´ıdo `a classe da maioria dos k vizinhos, ele passa a compartilhar das classes envolvidas, com a respectiva pertinˆencia ui a cada uma delas.

Para a constru¸c˜ao do classificador aqui proposto, em particular, a regra kNN nebulosa foi escolhida pelas seguintes raz˜oes:

• “buracos” no interior da nuvem de pontos que representa uma classe ter˜ao uma pertinˆencia atribu´ıda conforme a pertinˆencia dos vizinhos;

• pr´oximo `a borda, que ´e difusa, a pertinˆencia ser´a uma composi¸c˜ao das pertinˆencias de pontos vizinhos, que mistura cores pertencentes `a classe (pertinˆencia alta) e cores de outras classes (pertinˆencia baixa). Esta borda ´e de transi¸c˜ao suave.

Vantagens e desvantagens da regra nebulosa kNN. As vantagens da regra nebulosa kNN s˜ao as seguintes:

• permite um c´alculo mais preciso da pertinˆencia do dado a ser generalizado, pois agora se trata de uma m´edia ponderada das pertinˆencias da vizinhan¸ca. Se a va- ria¸c˜ao da pertinˆencia pela vizinhan¸ca for suave, o novo dado ser´a interpolado;

• pode dispensar a tarefa de generaliza¸c˜ao do sistema (m´odulo 4), se esta regra for aplicada para classificar instˆancias de teste, usando a base de conhecimento obtida no m´odulo 3. Por´em, o procedimento de teste fica bem mais custoso em termos computacionais;

• n˜ao importa qu˜ao esparsa est´a a nuvem de dados para um determinado grupo no espa¸co de atributos, pois a regra busca os k vizinhos mais pr´oximos, e sua distˆancia de busca pode ser controlada, para n˜ao expandir a nuvem de modo indesejado;

• classifica apenas os dados da instˆancia de teste, n˜ao necessitando explorar o espa¸co completo.

5.2 Proposta de constru¸c˜ao do classificador 78

Este procedimento apresenta tamb´em algumas desvantagens:

• necessita, como parˆametro adicional, um alcance, isto ´e, uma distˆancia m´axima para considerar o tamanho da vizinhan¸ca. Isto porque os classificadores do tipo vizinho mais pr´oximo genericamente atribuem a classe mais freq¨uente dos vizinhos mais pr´oximos, n˜ao importando a posi¸c˜ao da instˆancia x a ser classificada;

• apresenta custo computacional alto, pois o n´umero total de vizinhos cresce com o n´umero de camadas vizinhas elevado ao cubo, no caso do espa¸co de atributos ser discreto. Cada camada neste tipo de vizinhan¸ca ´e uma “casca” c´ubica, de arestas dadas por um n´umero ´ımpar de pontos. H´a um problema a ser resolvido experimentalmente: escolher o melhor valor para k. Por exemplo, uma vizinhan¸ca tridimensional c´ubica de uma camada apresenta 26 vizinhos; duas camadas, 142 vizinhos; trˆes camadas, 460 vizinhos; e assim segue. Por exemplo, a express˜ao geral para vizinhan¸ca ´e

Nvizinhos= Mcamadas X i=1 2i£4 + (2i + 1)2¤ (5.4) .

• se for aplicado como tarefa de generaliza¸c˜ao do sistema, ap´os a etapa de treinamento, necessita testar todos os pontos do espa¸co de atributos, pois n˜ao se sabe a princ´ıpio os limites do grupo provenientes do treinamento. Se um dado testado estiver fora da nuvem correspondente ao grupo, receber´a pertinˆencia nula (eq. 5.3), e se estiver no interior da nuvem, ter´a pertinˆencia dada pela varia¸c˜ao de densidade da nuvem. Se estiver na fronteira, sendo ela nebulosa, esta equa¸c˜ao pondera a pertinˆencia da vizinhan¸ca;

• se for aplicado apenas para classificar os dados de teste, dispensa a etapa de genera- liza¸c˜ao ap´os o treinamento, mas ter´a que ser aplicado para todos os dados de teste, para a classifica¸c˜ao.

Uma boa estrat´egia de aplica¸c˜ao para a generaliza¸c˜ao ´e usar o classificador kNN nebuloso para testar todo o espa¸co de atributos apenas uma vez e comparando cada cor x com sua vizinhan¸ca nebulosa na base de conhecimentos. Com isto, evita-se classificar toda vez os pixels das imagens de teste.

Um cuidado extra deve ser observado ao se empregar o algoritmo kNN nebuloso (ou mesmo o cl´assico): s˜ao selecionados os k primeiros vizinhos a qualquer distˆancia do ponto

testado. Como o objetivo aqui ´e preencher os interst´ıcios da classe no espa¸co de cores, os k primeiros vizinhos devem ser restritos a uma distˆancia limite do ponto de teste.

Portanto, o melhor conjunto de procedimentos para a constru¸c˜ao e utiliza¸c˜ao da base de conhecimentos consiste em:

• efetuar o treinamento do sistema, (m´odulos 1, 2 e 3);

• executar a generaliza¸c˜ao via regra nebulosa kNN, testando todo o espa¸co de atributos contendo o grupo da classe que se quer obter (m´odulo 4);

• para cada conjunto de teste, classificar os dados usando a base de conhecimentos j´a generalizada. Neste caso, esta base fica inalterada, e a detec¸c˜ao ´e agilizada.

O quadro 2 ilustra o procedimento de utiliza¸c˜ao do algoritmo kNN nebuloso para generaliza¸c˜ao do modelo constru´ıdo por aprendizado.

Quadro 2 Aplica¸c˜ao do algoritmo kNN nebuloso.

1. informar coordenadas [RGB]inicial e [RGB]f inal do espa¸co de cores, onde ser´a exe-

cutado o processo de preenchimento dos vizinhos faltantes (com pertinˆencia nula) em uma classe espec´ıfica;

2. informar no k de vizinhos considerados para pondera¸c˜ao da pertinˆencia;

3. informar a “distˆancia de alcance” δ para que um ponto seja considerado vizinho; // evita a dilata¸c˜ao da nuvem al´em desta distˆancia

4. informar o fator de nebulosidade m; 5. para x = [RGB]inicial at´e [RGB]f inal

• para j = 1 at´e k

– se kx − xjk < δ // vizinho dentro do alcance considerado

ent˜ao calcular o numerador e o denominador da eq. 5.3; • armazenar a pertinˆencia u(x);