vitalwarley / research

2 stars 0 forks source link

Research log #38

Open vitalwarley opened 10 months ago

vitalwarley commented 10 months ago

Enquanto não penso em outro meio mais apropriado para o relatório abaixo, tratarei de inserir o log de tudo que foi feito na pesquisa desde julho.

Sprint 1

24

Basicamente revisei o que tínhamos até então baseado nos progressos de 2022, quando tentei reproduzir SOTA 2020 no FIW para o TCC. Não consegui reproduzir alguns resultados, logo desisti.

Sprint 2

25

Fui em busca de potenciais novos SOTAs e encontrei alguns surveys e trabalhos interessantes. Especificamente, em um desses trabalhos, encontrei o novo SOTA no RFIW 2021. Encontrei também o trabalho do desafio em si.

Após criar a issue sobre a leitura e reprodução do novo SOTA, fui em busca de outros surveys e trabalhos interessantes. Até o momento eu só terminei a leitura de A survey on kinship verification (Wang et al, 2023), mas não "Facial Kinship Verification: A Comprehensive Review and Outlook" (ainda em curso, pois comecei recentemente; seção 3).

26

Tratei de clonar o repositório e tentar reproduzir o trabalho. Obtive resultados equivalentes.

Reunião semanal

Acredito que apresentei os slides, onde explorei perguntas de pesquisa relacionadas com alguns trabalhos prévios no contexto de reconhecimento facial e com o tema machine unlearning.

Pouco depois, criei outra apresentação sobre o SOTA de 2021, mas não cheguei a apresentá-lo. Apenas em setembro, dia 15, que o apresentei para o pessoal do ZOIOZ, todavia noutra versão.

Sprint 3

27

Basicamente busquei reproduzir a análise visual via t-SNE das features aprendidas com o método proposto na #26. O processo está em tsne.ipynb, enquanto que em tsne_pairs.ipynb fui um pouco além (#29).

Sprint 4

28

Continuei a reprodução da análise visual com t-SNE.

29

É o que o nome diz: tentei fundir as featuers dos pares para visualizá-los. Os resultados são interessantes e creio valer retomar a análise em busca de insights (e.g. por que a fusão leva pares negativos de diferentes parentescos ao "mesmo lugar"?).

Sprint 5

32

@matheuslevi11 avaliou com objetivo de familiarizar-se com reconhecimento facial e transformers, bem como por curiosidade nossa sobre o trabalho em questão.

31

Obtive um SOTA para estimação de idade e gênero e apliquei no dataset. Os resultados estão no notebook rfiw_age_gender_analysis.ipynb. Mais detalhes na própria issue, mas conseguimos ali evidências para discrepâncias significativas nas diferenças de idade entre os diferentes tipos de parentesco ao compararmos pares positivos e negativos.

Sprint 6

33

Comecei um experimento para identificação de parentesco usando o mesmo backbone de #26, mas com uma camada de classificação. Os resultados não foram bons e ainda não retomei a issue; possivelmente farei com alguns ideias que surgiram ao longo do caminho.

Sprint 8

34

Criei, mas ainda não li.

35

Em um dado momento, nós pretendíamos adicionar informações de idade/gênero diretamente na perda contrastiva. Concluímos que isso não era possível, dado que necessitava criar tipos de parentescos arbitrários.

36

@matheuslevi11 analisou a acurácia do modelo de estimação de idade e gênero da #31. A ideia era validar a análise de idade que fizemos. Fica a questão: os erros encontrados nessa #36 (e.g. 33% de erro no test set são decorrentes da idade ou gênero)?.

Sprint 9

37

@matheuslevi11 iniciou uma análise dos erros do #26. Mais uma vez queríamos validar a hipótese da #31.


TODO

vitalwarley commented 2 months ago

2. Avaliar temperatura ajustável

Houve resultados interessantes, mas nada grandioso -- um pouco acima do baseline.

4. Experimentar com transformação de atributos (à lá Improving Contrastive Learning by Visualizing Feature Transformation)

Houve um resultado muito bom em termos de acurácia (~82%). Também abriu espaço uma discussão sobre transferência de métodos e técnicas usadas no contexto de self-supervision para supervision.

Atualmente experimentando com perda CL tradicional (sem ser Hard) + FT (positivas).

vitalwarley commented 2 months ago

Atualmente experimentando com perda CL tradicional (sem ser Hard) + FT (positivas).

https://github.com/vitalwarley/research/discussions/74#discussioncomment-9988162

vitalwarley commented 1 month ago

HCL + Transformação de Atributos - Extrapolação de Positivos - Parte 2

vitalwarley commented 1 month ago

Estado da Arte em Verificação de Parentesco

Ontem reproduzi o melhor modelo até agora (f05ce2f3) nos conjuntos de validação e teste. Abaixo os resultados de treino (val. para seleção de modelo), validação (para seleção de limiar) e teste. Esses conjuntos de dados foram os mesmos da FaCoRNet.

run       label                                            auc       accuracy  accuracy/bb  accuracy/ss  accuracy/sibs  accuracy/fd  accuracy/md  accuracy/fs  accuracy/ms  accuracy/gfgs  accuracy/gmgs  accuracy/gfgd  accuracy/gmgd
a971a297  eval HCLFTPos f05ce2f3 on FIW test set           0.892344  0.818181  0.833491     0.835392     0.815465       0.786527     0.822711     0.842595     0.795149     0.714285       0.603351       0.812641       0.736059
e68957e6  eval HCLFTPos f05ce2f3 on FIW threshold val set  0.875716  0.805923  0.864748     0.856235     0.845076       0.791551     0.816594     0.809926     0.795107     0.594425       0.655492       0.602362       0.603641
f05ce2f3  SOTA2021-like + Sampler + HCL (FTPos, no +1)     0.875999  0.813000  0.835748     0.878378     0.853276       0.8125       0.806366     0.830835     0.792362     0.662790       0.691176       0.472972       0.728571

Abaixo agregação dos últimos trabalhos de verificação de parentesco. Minha proposta atual está em segundo lugar em termos de acurácia média. Todavia, é importante lembrar que FaCoRNet é mais complexo (Contrastive + FaCoR + Rel-Guide) do que o meu (Sampler + HCLoss + Positive Feature Transformation). Além disso, computo o resultado em TODOS tipos de parentesco, o que acredito ser uma tarefa mais difícil.

Method FD FS MD MS GFGD GFGS GMGD GMGS BB SS SIBS Avg
FaCoRNet (AdaFace) 79.50 84.80 81.80 80.20 nan nan nan nan 83.20 83.60 82.40 82.00
Ours 78.65 84.26 82.27 79.51 81.26 71.43 73.61 60.34 83.35 83.54 81.55 81.82
SCLFF - Finetuned backbone 78.60 82.50 81.70 81.90 70.40 72.90 76.60 69.70 86.20 85.10 81.60 81.10
FaCoRNet (ArcFace) 77.30 82.60 80.40 78.80 nan nan nan nan 82.00 83.30 81.00 80.60
Contrastive (AdaFace) 76.60 82.80 80.60 76.70 nan nan nan nan 82.10 83.31 79.80 80.20
Contrastive (ArcFace) 75.30 82.30 80.30 75.10 nan nan nan nan 80.30 82.90 79.40 79.30
Unified Approach 77.40 74.90 76.90 75.60 nan nan nan nan 85.90 86.30 78.00 79.30
GLANet 77.00 83.00 77.00 79.00 80.00 72.00 78.00 67.00 81.00 80.00 78.00 79.00
SCLFF - Frozen backbone 76.40 78.30 77.70 79.60 69.10 71.30 65.70 62.80 82.20 81.40 84.60 78.60
Vuvko 75.00 81.00 78.00 74.00 78.00 69.00 76.00 60.00 80.00 80.00 77.00 78.00
Ustc-nelslip 76.00 82.00 75.00 75.00 79.00 69.00 76.00 67.00 75.00 74.00 72.00 76.00
DeepBlueAI 74.00 81.00 75.00 74.00 72.00 73.00 67.00 68.00 77.00 77.00 75.00 76.00
Stefhoer 77.00 80.00 77.00 78.00 70.00 73.00 64.00 60.00 66.00 65.00 76.00 74.00
Contrastive (AdaFace; no pretraining) 66.30 73.60 68.70 68.70 nan nan nan nan 63.00 77.60 73.10 72.80
Benchmark 69.30 68.50 71.80 69.50 nan nan nan nan 71.90 77.30 72.00 71.20
ResNet SDMLoss 68.30 68.00 71.30 68.80 nan nan nan nan 72.60 79.40 74.00 71.20
Dual-VGGFace 65.20 64.00 67.40 66.20 nan nan nan nan 73.00 65.80 66.90 66.90
KFC (multi-task) 79.05 84.63 83.61 78.25 nan nan nan nan nan nan nan nan
KFC (adversarial) 78.81 81.69 82.56 77.43 nan nan nan nan nan nan nan nan

Retirei as entradas dos trabalhos abaixo

Depois organizo melhor, referenciando cada um e os anos que foram publicados (#79).

Por fim, ainda há experimentos a realizar sobre o método