Il pacchetto Python TensorFlow Similarity

Facile, veloce e intuitiva: così appare la prima versione di TensorFlow Similarity, un pacchetto Python che consente di addestrare modelli di similarità usando TensorFlow.
Oggi un’abilità importantissima per qualsiasi app o programma è trovare le correlazioni. Dal suggerire oggetti simili a quelli già acquistati, ai titoli di giornale che ti vengono proposti sulla base delle tue preferenze: ogni ricerca multimediale, ogni sistema che si basa sul suggerimento prende le mosse dalla similarità.
Il recupero di contenuti correlati deve però essere rapido e non farti perdere tempo, è quindi fondamentale la massima velocità di gestione.
L’apprendimento contrastivo in TensorFlow Similarity
I modelli di deep learning sono ottimi per i sistemi di raccomandazione perché sono addestrati tramite l’apprendimento contrastivo, una tecnica che insegna al modello ad apprendere una suddivisione di spazi in cui gli esempi simili sono messi insieme, mentre quelli diversi vengono collocati in un punto lontano.
Ad esempio, immaginiamo un’ideale mappa in cui tutti gli oggetti di un certo colore sono raggruppati l’uno vicino all’altro, mentre i colori diversi sono collocati a distanze relative l’una dall’altra a seconda del livello di contrasto con il colore principale.
Il contrasto si misura trovando la distanza tra due punti in uno spazio come quello descritto sopra.
TensorFlow Similarity è anche in grado di verificare gli attributi degli oggetti, determinando cosa li rende simili e dissimili (ovvero valutando cosa determina la distanza dei punti).
Per esempio, possiamo vedere dall’addestramento su un dataset di Oxford-IIIT Pet: qui i lead generano cluster significativi con razze come bulldog e carlini raggruppate insieme, e con i gatti in un loro cluster separato dai cani e dagli umani.

Una volta che il modello è addestrato, viene creato un indice con i vari elementi incorporati e ricercabili. TensorFlow Similarity usa la ricerca approssimativa veloce dei “vicini più prossimi” (ANN) per porre gli elementi più vicini dall’indice in un tempo sub-lineare.
Questa rapida ricerca sfrutta lo spazio di incorporazione metrica di TensorFlow, che soddisfa le condizioni di disuguaglianza del triangolo, portando ad un’elevata precisione. Questa è una buona rappresentazione di come funziona la similarità per TensorFlow.
A cosa serve Tensor Flow Similarity
Un aspetto molto interessante dei modelli di somiglianza è che si possono aggiungere illimitatamente nuove classi al tuo indice senza bisogno di riqualificazione. Servono solo alcune incorporazioni per elementi rappresentativi di questi gruppi appena aggiunti, e saranno automaticamente memorizzate sul posto in modo da non interrompere alcun processo di formazione in corso.
Le aggiunte dinamiche sono particolarmente utili quando si affrontano problemi i cui numeri non possono essere conosciuti in anticipo, vuoi perché ignoti, vuoi perché costantemente in cambiamento. Se il dataset emerge in modo imprevedibile, le aggiunte dinamiche sono utilissime.
TensorFlow Similarity è stato sviluppato per rendere intuitivo l’addestramento e la valutazione delle query di similarità. La novità di TensorFlow Similarity è il SimilarityModel(), un nuovo modello Keras che supporta in modo nativo l’indicizzazione e l’interrogazione di embedding. Questo permette agli utenti di eseguire l’addestramento e la valutazione end-to-end in modo rapido ed efficiente. Bastano 20 righe di codice per allenare, indicizzare e cercare sui dati MNIST.

La prima versione di TensorFlow Similarity fornisce tutti i componenti necessari per costruire modelli di somiglianza basati sull’apprendimento contrastivo, ad esempio:
- Perdite
- indicizzazione
- campionatori batch.
Qui è possibile trovare il link Github.
E ora… Buon lavoro con la similarità!
apprendimento apprendimento contrastivo contrastivo intelligenza artificiale machine learning python tensor flow TensorFlow Similarity