MO434A Projeto Final

Fazer download em pdf ou txt
Fazer download em pdf ou txt
Você está na página 1de 5

MO434A - Projeto Final

Talles Viana Vargas


Julho 2023

Nesse trabalho, analisamos diferentes modelos de redes neurais convolucionais (CNNs) aplicados
aos conjuntos de dados Fish e Corel. Comparamos o desempenho de três modelos CNNs criados
manualmente com dois modelos de redes neurais profundas (DNNs) pré-treinados na ImageNet
(EfficientNetB4 e ResNet50), tanto fine-tuned quanto treinados do zero. Em seguida, utilizamos a
melhor CNN para realizar análises de gradientes (Grad-CAM) nos dois conjuntos de dados, a fim
de identificar as regiões mais relevantes das imagens para a classificação. Além disso, realizamos o
pré-treinamento da mesma CNN utilizando aprendizado contrastivo, utilizando Contrastive Loss e
depois a Triplet Loss. Por fim, visualizamos a projeção 2D das imagens do conjunto de dados Corel
após os treinamentos contrastivos. Nossos resultados mostram que das CNNs, a mais profunda
obteve um melhor desempenho. As DNNs pré-treinadas na ImageNet apresentaram ótima acurácia
com estabilização rápida. Vimos que o background foi levado em consideração em algumas classes do
conjunto de dados Fish, e na análise de separação das classes, vimos que o aprendizado contrastivo
fornece bons resultados visivelmente na projeção 2D.

As seções desse relatório acompanham as seções do notebook ProjetoFinalMO434A.ipynb

1 Preparação dos conjuntos de dados


Foram utilizados dois conjuntos de dados para a classificação: Fish e Corel. O conjunto de dados
Fish (Figura 1) contém 9000 imagens, sendo 1000 imagens para cada uma das nove classes: Black-
SeaSprat, GiltHeadBream, HourseMackerel, RedMullet, RedSeaBream, SeaBass, Shrimp, StripedRed-
Mullet e Trout. As imagens neste conjunto de dados são geradas com técnicas de aumento de dados
e possuem backgrounds pouco variados. Apesar de não ser um conjunto de dados muito diversi-
ficado, ele permite uma análise interessante sobre como o background pode afetar ou enviesar as
classificações.
Por outro lado, o conjunto de dados Corel, Figura 2, consiste em 355 imagens distribuı́das em seis
classes. É um conjunto de dados menor, porém as imagens são mais gerais e ricas, o que possibilita
a aplicação de técnicas de aumento de dados para melhorar os resultados.
Para ambos os conjuntos de dados, foram realizadas análises utilizando diferentes proporções
de divisão entre conjuntos de treinamento, validação e teste durante o processo de treinamento dos
modelos, no qual para as divisões uma seed constante foi setada, de forma a compararmos os modelos
utilizando sempre o mesmo conjunto de dados.
Na etapa de classificação, renomeamos as imagens para ”00X YYYYY.png”, onde X representa a
classe da imagem, variando de 0 a 8, e YYYYY é o número da imagem, permitindo a classe Dataset
identificar a classe de cada imagem pelo nome.
No aprendizado contrastivo, utilizamos as mesma imagens, porém utilizamos duas abordagens
diferentes: para a Contrastive Loss são amostradas duas imagens em cada get no Dataset, e o alvo
binário é determinado comparando o inı́cio dos nomes das imagens. Já para a Triplet Loss, a geração
de triplets é realizada de forma online, utilizando o próprio batch de imagens vindo do DataLoader.
Essa abordagem pode ser observada em detalhes na ”Seção 5: Contrastive Learning” do notebook.

1
Figure 1: Algumas samples do dataset Fish

Figure 2: Algumas samples do dataset Corel

2 Definição das CNNs e treinamentos


Foram construı́das três redes neurais convolucionais (CNNs) para fins de comparação. Cada uma
dessas CNNs possui caracterı́sticas distintas em termos de arquitetura e quantidade de parâmetros.

1. A primeira CNN é baseada na implementação encontrada no notebook ”pytorch-convnet.ipynb”


e possui um total de 51,455,846 parâmetros.
2. A segunda CNN é derivada do notebook ”visualize-pytorch-model-outputs.ipynb” e apresenta
uma arquitetura mais complexa, contendo um total de 64,235,542 parâmetros.
3. A terceira CNN proposta possui uma arquitetura simplificada, composta por apenas quatro
camadas convolucionais seguidas por uma camada de pooling adaptativa. Essa abordagem
resultou em uma rede com menor quantidade de parâmetros, totalizando 6,084,134.

Todas as redes foram treinadas para classificação utilizando o otimizador Adam com um termo de
regularização (weight decay) definido como 1e-5. A função de perda utilizada foi a CrossEntropyLoss.
Além disso, foi aplicado um scheduler de taxa de aprendizado do tipo ”Cosine Annealing”, em que
a taxa de aprendizado variou de 5e-4 a 5e-6 ao longo do treinamento das redes. Para o conjunto
de dados Fish, não utilizamos augmentation pois as imagens foram geradas com a técnica, também
para cada rede treinamos 3 vezes durante 20 épocas, para obtenção de média e desvio padrão das
métricas. Para o conjunto de dados Corel, utilizamos data augmentation, e treinamos cada rede 4
vezes por 100 épocas.
ADICIONAR RESULTADOS, COMPARACOES E GRAFICOS DO TREINAMENTO

3 Definição das DNNs e treinamentos


Foram incluı́das duas redes neurais profundas (DNNs) bem conhecidas:
1. A EfficientNetB4 com um total de 17,559,374 parâmetros;
2. E a ResNet50 com 23,520,326 parâmetros.
Para ambas as redes, apenas a camada linear de saı́da foi modificada para se adequar ao número
de classes do conjunto de dados especı́fico utilizado no experimento. Essa adaptação permitiu que
as DNNs gerassem previsões corretas para a tarefa de classificação em questão.

2
As DNNs foram avaliadas em dois cenários: uma em que foram pré-treinadas na base de dados
ImageNet e outra em que foram treinadas do zero. Essa abordagem foi adotada para investigar
se o pré-treinamento na ImageNet realmente contribui para o desempenho dos modelos na tarefa
especı́fica em estudo. Nos treinamentos, foram utilizados os mesmos parâmetros explicitados na
seção sobre as CNNs.
ADICIONAR RESULTADOS, COMPARACOES E GRAFICOS DO TREINAMENTO

4 Análise de gradientes e ativações


A análise visual dos heatmaps usando Grad-CAM [3] proporciona uma compreensão mais pro-
funda das regiões da imagem que são relevantes para a classificação realizada pela rede neural,
permitindo insights valiosos sobre como o modelo toma decisões e quais caracterı́sticas são consid-
eradas importantes para cada classe especı́fica.
Para essa análise nos dois conjuntos de dados, utilizamos a terceira CNN (com 4 camadas convolu-
cionais) após seu treinamento completo, e fazemos a visualização da última camada convolucional.
Para o conjunto de dados de peixes, observamos pontos positivos do aprendizado, na qual o
modelo enxerga como relevante partes do corpo dos peixes, como rabo, olho, cor, como os exemplos
nas Figuras 3 e 4. Porém, como não há muitas variação de background e existe a marca d’água de
data em algumas fotos, o modelo acaba sendo enviesado por tais itens nas imagens, como podemos
observar nas Figuras 5 e 6.

Figure 3: Red mullet: relevância do corpo

Figure 4: Hourse Mackerel: relevância do rabo

Figure 5: Exemplo do background sendo relevante classificação

3
Figure 6: Exemplo da marca d’água da data sendo relevante classificação

5 Aprendizado Contrastivo
Paragrafo sobre implementacao da Contrastive Loss [1]
Paragrafo sobre implementação da Triplet Loss [2]

6 Análise de separação das classes


Depois da triplet loss:

Figure 7: Projeções das ativações para cada convolucional após utilizar a Triplet Loss

Depois da contrastive loss:

Figure 8: Projeções das ativações para cada convolucional após utilizar a Contrastive Loss

4
References
[1] Raia Hadsell, Sumit Chopra, and Yann LeCun. “Dimensionality reduction by learning an in-
variant mapping”. In: 2006 IEEE computer society conference on computer vision and pattern
recognition (CVPR’06). Vol. 2. IEEE. 2006, pp. 1735–1742.
[2] Florian Schroff, Dmitry Kalenichenko, and James Philbin. “Facenet: A unified embedding for
face recognition and clustering”. In: Proceedings of the IEEE conference on computer vision
and pattern recognition. 2015, pp. 815–823.
[3] Ramprasaath R. Selvaraju et al. “Grad-CAM: Visual Explanations from Deep Networks via
Gradient-Based Localization”. In: International Journal of Computer Vision 128.2 (Oct. 2019),
pp. 336–359. doi: 10 . 1007 / s11263 - 019 - 01228 - 7. url: https : / / doi . org / 10 . 1007 %
2Fs11263-019-01228-7.

Você também pode gostar