Implementazione di una rete Siamese in Keras e TensorFlow

Implementazione di una rete Siamese in Keras e TensorFlow

Foto di Markus Spiske su Unsplash

Impara le tecniche dietro al riconoscimento degli oggetti (e molto altro) con il codice di esempio.

Le reti neurali sono ottime e molto popolari nello spazio dell’IA/ML, ma richiedono troppi dati per essere addestrate. Per compiti come il riconoscimento degli oggetti, la verifica delle firme, la verifica della voce e il riconoscimento delle pillole prescritte, le tecniche delle reti neurali tradizionali richiederebbero molto più tempo e sarebbero più costose a causa di questa eccessiva richiesta di dati. In questo tipo di lavoro, una rete Siamese può essere molto potente perché richiede molti meno dati rispetto a una rete neurale tradizionale. Inoltre, un dataset sbilanciato può anche funzionare bene.

Questo tutorial ti fornirà una panoramica di alto livello di una Rete Siamese e un esempio completo di come lavorare con essa. Ho lavorato qui con il dataset fashion-mnist, ma questa struttura simile è adatta per molti altri casi d’uso.

Cosa è una Rete Siamese?

Le reti Siamesi contengono una o più reti identiche, e queste reti identiche hanno gli stessi parametri e pesi. Se i pesi di una rete vengono aggiornati, i pesi dell’altra rete vengono aggiornati anche. Devono essere identiche. Lo strato finale è di solito uno strato di embedding che calcola la distanza tra le uscite.

Si alimentano con una coppia di input. Ogni rete calcolerà le caratteristiche degli input e troverà la similarità tra due input utilizzando la distanza tra le due immagini. Quindi, ci sono solo due classi. O le immagini sono simili o dissimili.

Il concetto sarà molto più chiaro quando lavorerai su un esempio. Imparare facendo è sempre la migliore idea.

Importazioni Necessarie e Definizione delle Funzioni

Cominciamo con le importazioni necessarie. Importeremo altro se necessario.

import osimport tensorflow.keras.backend as Kimport matplotlib.pyplot as pltimport numpy as npimport tensorflow as tffrom tensorflow.keras.models import Modelfrom tensorflow.keras.layers import Inputfrom tensorflow.keras.layers import Conv2Dfrom tensorflow.keras.layers import Densefrom tensorflow.keras.layers import...