O que são redes neurais siamesas, para que aplicações elas servem e por quê?
Na minha própria experiência, as Redes Siamêses podem oferecer 3 vantagens distintas sobre a CLASSIFICAÇÃO Tradicional!
Estas vantagens são um pouco verdadeiras para qualquer tipo de dados, e não apenas para Imagens (onde estas são atualmente mais utilizadas).
- PODERÁ SER MAIS ROBUSTOSO EXTREME A IMBALANÇA DE CLASSE.
- PODERÁ SER BEM-VINDO COM UM CLASSIFICADOR.
- CAN YIELD BETTER EMBEDDEDDINGS.
Vamos dizer que queremos aprender a prever o que é um animal numa dada imagem.
- Fase 1 : se são apenas 2 classes de animais para prever (Gato vs Cão) e dados milhões de imagens de cada classe, pode-se treinar um Classificador CNN profundo. Easy!
- Caso 2 : mas e se tivermos dezenas de milhares de classes de animais e para a maioria destas, temos apenas algumas dezenas de exemplos de imagens? Tentar aprender cada animal como uma Classe usando a CNN profunda parece menos viável agora. Tal classificador pode funcionar mal para classes de treinamento raramente vistas, por exemplo, digamos que havia apenas 4 imagens de treinamento de 'enguias'
Siamese Network is a Model Architecture used alongside a Distance-based Loss.
>ul>< aprende o que faz com que 2 pares de entradas sejam iguais (por exemplo, cão cão cão, enguia).> Em Comparação, a Classificação aprende o que faz com que uma entrada seja um cão/ gato/ enguia, etc.Vantagens dessa aprendizagem podem ser:
- MAIS ROBUST TO CLASS IMBALANCE. Se o modelo aprendeu bem o que torna qualquer 2 animais iguais, um exemplo de uma aula como 'enguia' em treinamento pode ser suficiente para prever / reconhecer uma enguia no futuro. Isto é incrível! Veja One-Shot learning>li>NICE TO ENSEMBLE WITH BEST CLASSIFIER. Dado que o seu mecanismo de aprendizagem é um pouco diferente da Classificação, o cálculo da média simples com um Classificador pode fazer muito melhor do que calcular a média de 2 modelos supervisionados correlacionados (por exemplo, GBM & RF classifier). Experimentei-o pessoalmente.>li>BETTER EMBEDDDINGS. O Siamês foca na aprendizagem de embutimentos (em camada mais profunda) que colocam as mesmas aulas / conceitos próximos uns dos outros. Assim, pode aprender similaridade semântica.
- Esta é diferente da Perda de Classificação (por exemplo, perda logística) que é explicitamente recompensada apenas para tornar as classes linearmente separáveis.
- Isto torna as suas incrustações mais úteis num sentido genérico, por exemplo, pode-se calcular a distância sobre ela. Por exemplo, pode-se usar seus últimos embeddings de camada para construir um aplicativo 'search-by-image'. Claramente as incrustações siamesas não são apenas separáveis linearmente, mas também adequadas para o cálculo da distância.
Downside can be:
- Training involves Pairwise Learning => quadratic pairs to learn from (in order to see all information available) => slower than Classification (pointwise learning)
- Prediction can add a few HyperParameters and can be slightly slower. Não produz facilmente Probabilidades de Classe, mas distâncias de cada Classe.