Open vitalwarley opened 1 year 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).
Atualmente experimentando com perda CL tradicional (sem ser Hard) + FT (positivas).
https://github.com/vitalwarley/research/discussions/74#discussioncomment-9988162
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
Em 21/10 houve uma reunião de alinhamento de pesquisa. Definimos
Certamente há outros pontos de melhoria na escrita, como um aprofundamento maior na fundação teórica.
Experimentos serão registrados em Experimentos v2 - Rumo à defesa.
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