QNA > C > Cosa Sono Le Reti Neurali Siamesi, Per Quali Applicazioni Sono Buone E Perché?

Cosa sono le reti neurali siamesi, per quali applicazioni sono buone e perché?

Nella mia esperienza personale, le reti siamesi possono offrire 3 vantaggi distinti rispetto alla CLASSIFICAZIONE Tradizionale!

Questi vantaggi sono in qualche modo veri per qualsiasi tipo di dati, e non solo per le immagini (dove sono attualmente più usate).

  1. Può essere più robusto all'estremo squilibrio di classe.
  2. POTREBBE ESSERE BUONO DA INSIEME CON UN CLASSIFICATORE.
  3. POTREBBE PRODURRE EMBEDDING MIGLIORI.

Diciamo che vogliamo imparare a predire quale animale è in una data immagine.

  • Caso 1: se si tratta solo di 2 classi di animali da predire (Gatto vs Cani) e date milioni di immagini di ogni classe, si potrebbe addestrare un classificatore CNN profondo. Facile!
  • Caso 2: ma cosa succede se abbiamo decine di migliaia di classi di animali e per la maggior parte di queste, abbiamo solo poche decine di esempi di immagini? Cercare di imparare ogni animale come una classe utilizzando il CNN profondo sembra meno fattibile ora. Un classificatore di questo tipo può funzionare male per classi di allenamento viste raramente, ad esempio, diciamo che ci sono solo 4 immagini di allenamento di 'anguille'

La rete siamese è un'architettura di modello usata insieme a una perdita basata sulla distanza.

  • Impara cosa rende 2 coppie di input uguali (es. cane-cane, anguilla-anguilla).
  • In confronto, la classificazione impara cosa rende un input un cane/gatto/anguilla etc.

Gli svantaggi di tale apprendimento possono essere:

  1. MAGGIORE ROBUSTEZZA ALL'IMBALLO DELLA CLASSE. Se il modello ha imparato bene cosa rende uguali 2 animali, un esempio di una classe come 'anguilla' in allenamento può essere sufficiente per prevedere/riconoscere un'anguilla in futuro. Questo è incredibile! Si veda l'apprendimento One-Shot
  2. BENE per essere abbinato al miglior classificatore. Dato che il suo meccanismo di apprendimento è in qualche modo diverso dalla classificazione, la semplice media di esso con un classificatore può fare molto meglio della media di 2 modelli supervisionati correlati (ad esempio GBM & RF classifier). L'ho sperimentato personalmente.
  3. BETTER EMBEDDINGS. Il siamese si concentra sull'apprendimento di embeddings (nel livello più profondo) che mettono le stesse classi / concetti vicini. Quindi, può imparare la somiglianza semantica.
    • Questo è diverso da Classification Loss (es. logistic loss) che è esplicitamente premiato solo per rendere le classi linearmente separabili.
    • Questo rende le sue embeddings più utili in senso generico, ad esempio si può calcolare la distanza su di esse. Per esempio, si potrebbero usare le sue embeddings dell'ultimo strato per costruire un'applicazione di 'ricerca per immagine'
    • Le immagini sottostanti mostrano le embeddings MNIST che ho ottenuto con l'allenamento:
      • Classificatore con 3 strati nascosti (dimensione 200-100-2 ) & Softmax loss
      • Architettura siamese con la stessa rete & Distance Loss.
      • Traccio come embeddings l'output del loro terzo strato nascosto su immagini di test. Chiaramente le embeddings siamesi non solo sono linearmente separabili ma anche adatte al calcolo della distanza.
main-qimg-d1fd949737da3ecf2e2e9013f5c005ff main-qimg-9b637f7f554ff5c8adb4e9345dfb5813

I lati negativi possono essere:

  • L'addestramento coinvolge l'apprendimento a coppie => coppie quadratiche da cui imparare (per vedere tutte le informazioni disponibili) => più lento della classificazione (apprendimento puntuale)
  • La previsione può aggiungere alcuni iperparametri e può essere leggermente più lenta. Non fornisce prontamente le probabilità delle classi, ma le distanze da ogni classe.

Di Lundgren Coonfield

Qual è l'alternativa al Raspberry Pi 3 con 4GB di RAM, processori più veloci e anche a basso costo? :: Come collegare un modulo Google a un dato foglio Google in modo che ogni risposta al modulo entri direttamente nelle celle corrispondenti del foglio
Link utili