Feature Learning for Image Classification via Multiobjective Genetic Programming Seminários de...

Preview:

Citation preview

Feature Learning for Image Classification via Multiobjective

Genetic Programming

Seminários de Inteligência Artificial

Felipe de Paula Wanderley Barros (FPWB)

Introdução•Classificação de Imagens

▫ Extração de Características (feature extraction) Diversos algoritmos para extração de

bordas, quinas, orientação, cores...

Introdução•Problema

▫Grande maioria de algoritmos tem sua eficácia restrita a domínios específicos de imagens.

Como determinar quais os melhores algoritmos a serem utilizados para a

extração de determinada característica?

Introdução•Proposta

▫Definir características de propósito geral e propor uma solução ótima capaz de extraí-las de quaisquer domínio de imagens.

Como encontrar essa solução ótima?

Introdução•Abordagem

▫Utilizando o conceito de Genetic Programming (GP), ser capaz de se aproximar de uma solução ótima.

Genetic Programming?

Genetic Programming (GP)•Conceitos

▫Operadores Primitivos.▫Evolução (Crossovers e Mutações).▫Best Fitness.

Genetic Programming (GP)•Conceitos

Trabalhos Relatos•Feature-Focused: Técnicas

especializadas na extração de características específicas.▫Essas técnicas são sensíveis a mudança

de domínio. Podem ser excelentes para alguns domínios de imagens, e péssimas em outros.

Trabalhos Relatos•Whole Scene-Focused: Técnicas que

avaliam a imagem por completo.▫Todas as referências citadas são utilizadas

em características hand-crafted. Ou seja, tiveram o seu ambiente de teste preparado para a sua utilização.

Trabalhos Relatos•Deep Learning: Técnicas utilizando

massivos conjuntos de dados para treinamento.▫Essas técnicas extraem as características

de maneira estática. Ou seja, não “aprendem” a melhor maneira de realizar a extração de características.

Trabalhos Relatos•Genetic Programming: Técnicas

utilizando o conceito de programação genética para caracterização de imagens.▫Todas com uma única finalidade. Enquanto

que o artigo propõe uma abordagem de multifinalidade. Além disso, o artigo é o único a utilizar a complexidade da árvore como parâmetro.

Metodologia

MOGP

Estrutura do Programa MOGP

Estrutura do Programa MOGP•O programa MOGP está dividido em 4

partes:▫Input▫Filtering▫Max-polling▫Concatenation.

Segundo o autor, essa estrutura imita a estrutura do córtex humano.

Estrutura do Programa MOGP•Input•Filtering•Max-Polling•Concatenation

Estrutura do Programa MOGP

Estrutura do Programa MOGP•Conjunto Final

▫Conjunto de características extraídas pelo sistema. Componentes Azul, Verde, Vermelho (Ib, Ig,

Ir) Intensidade de Tom Cinza (Igray) Coeficiente C atribuído aleatoriamente para

cada sub-árvore.▫A saída possui estas informações a respeito

do programa gerado {Ib, Ig,Ir, Igray, C}

Estrutura do Programa MOGP•Conjunto Final

Estrutura do Programa MOGP

Estrutura do Programa MOGP•Conjunto Funções

▫Definição das funções que podem ser utilizadas para compor as árvores do programa (nós).

▫Programas se diferenciam de acordo com a composição de funções.

▫Extrair Informações Significativas▫Simples e Eficiente (Partículas Atômicas)

Estrutura do Programa MOGP•Conjunto Funções

Estrutura do Programa MOGP•Conjunto Funções - Filtering Layer

▫24 Funções distintas.▫Denoising, Contorno, Orientação...▫Conjunto Fechado de Funções

Tamanho da Entrada = Tamanho da Saída

Composição Irrestrita de Funções!

Estrutura do Programa MOGP•Conjunto Funções - Filtering Layer

Estrutura do Programa MOGP•Conjunto Funções – Max-Polling Layer

▫5 Funções distintas.▫Etapa fundamental do reconhecimento de

imagens no córtex cerebral.▫Conjunto Fechado de Funções

Tamanho da Entrada != Tamanho da Saída, MAS

as imagens são restauradas ao tamanho original por interpolação.

Composição Irrestrita de Funções!

Estrutura do Programa MOGP•Conjunto Funções – Max-Polling Layer

Estrutura do Programa MOGP•Conjunto Funções – Concatenation

Layer▫Funções responsáveis pela fusão de

informação de cada árvore em um único vetor.

▫Possuem mesma saída (Descritor de Característica Final)

Estrutura do Programa MOGP•Conjunto Funções – Concatenation

Layer

Estrutura do Programa MOGP

Estrutura do Programa MOGP•Fitness Function

▫Maneira de medir/avaliar os programas gerados.

▫Duas medidas: Taxa de Erro. Complexidade dá Árvore

Estrutura do Programa MOGP•Fitness Function – Taxa de Erro

▫Avalia o programa N vezes sobre o conjunto de dados.

▫Conjunto de treinamento: ((1-N)/N)ths▫Cross-Validation com o restante dos dados.

(SVM ou KNN).▫Taxa de erro final é a média das taxas de

cada avaliação.

Estrutura do Programa MOGP•Fitness Function – Complexidade da

Árvore▫Conta-se o número de nós da árvore.▫Tentativa de evitar bloat.

Explosão da árvore do programa, aumentando complexidade, e causando overfitting.

Estrutura do Programa MOGP•Fitness Function

▫Como determinar qual a melhor árvore se baseando em duas medidas?

Fronteira de Pareto!

Estrutura do Programa MOGP•Fitness Function

Estrutura do Programa MOGP

Experimentos•Implementação do MOPG

▫200 Indivíduos e 70 Gerações.▫Operadores Genéticos: CrossOvers(90%) e

Mutações (10%).▫Tournament como seleção de indivíduos.▫0.5% de taxa de erro.

Experimentos•Divisão dos Conjuntos de Dados

Experimentos•Descrição dos Conjuntos de Dados

Caltech-101

MIT Urban and Nature Scene

CMU PIE Face Set

Jochen Triesch Static Hand Posture

Database II

Resultados

ResultadosÁrvore Gerada para o conjunto de dados Caltech-101

ResultadosÁrvore Gerada para o conjunto de dados CMU PIE face data set

Conclusões• Segundo os pesquisadores:

▫ O método demonstrou autonomia na extração de features, sem nenhum tipo de informação a respeito do domínio de imagens.

Tambem mostrou, de alguma forma, a escalabilidade dessa abordagem na tentativa de reconhecimento de objetos em larga-escala.

▫ Tambem aferiram que a arquitetura abordada é, de fato, consistente com a estrutura física do córtex visual humano.

Os pesquisadores atribuem o sucesso da abordagem principalmente à capacidade do algoritmo em extrair e fundir os componentes de cores das imagens automaticamente.

Dúvidas?