Misura di sovrintendenza con supervisione

Anziché confrontare i dati delle funzionalità combinati manualmente, puoi ridurre i dati delle caratteristiche per rappresentazioni chiamate incorporamentos e quindi confrontare gli incorporamenti. Gli incorporamenti vengono generati addestrando una rete neurale profonda (DNN) supervisionata nei dati delle caratteristiche stesse. Gli incorporamenti mappano i dati delle caratteristiche a un vettore in uno spazio di incorporamento. In genere, lo spazio di incorporamento ha meno dimensioni rispetto ai dati dell'elemento, in modo da acquisire una struttura latente del set di dati dell'elemento. I vettori che incorporano esempi simili, come i video di YouTube guardati dagli stessi utenti, finiscono per essere vicini nello spazio di incorporamento. Vedremo in che modo la misura di similitudine utilizza questa "chiusura" per quantificare la somiglianza per coppie di esempi.

Ricorda che stiamo parlando di un apprendimento supervisionato solo per creare la nostra misura di somiglianza. La misura di somiglianza, manuale o supervisionato, viene quindi utilizzata da un algoritmo per eseguire il clustering non supervisionato.

Confronto delle misure manuali e supervisionate

In questa tabella viene spiegato quando utilizzare una misurazione manuale o con supervisione simile a seconda dei requisiti.

RequisitoManualeCon supervisione
Elimina le informazioni ridondanti nelle funzionalità correlate. No, devi esaminare separatamente le correlazioni tra le funzionalità. Sì, il servizio DNN elimina le informazioni ridondanti.
Forniscono informazioni sulle somiglianze calcolate. No, gli incorporamenti non possono essere decifrati.
Adatto per piccoli set di dati con poche funzionalità. Sì, progettare una misurazione manuale con alcune funzionalità è facile. No, i piccoli set di dati non forniscono dati di addestramento sufficienti per un DNN.
Adatto per grandi set di dati con molte funzionalità. No, eliminare manualmente le informazioni ridondanti da più funzionalità e combinarle è molto difficile. Sì, il DNN elimina automaticamente le informazioni ridondanti e combina funzionalità.

Procedura per la misurazione della somiglianza supervisionato

La seguente figura mostra come creare una misura di similitudine:

Dati di input. Scegli DNN: codificatore automatico o predittore.
      Estrazione degli incorporamenti. Scegli la misurazione: punto a forma di puntino, coseno o distanza euclidea.
Figura 1: passaggi per creare una misura di somiglianza supervisionata.

Hai già imparato il primo passaggio. In questa pagina viene illustrato il passaggio successivo, e le pagine successive descrivono i passaggi rimanenti.

Scegli DNN in base alle etichette di addestramento

Riduci i dati delle tue funzionalità agli incorporamenti addestrando un DNN che utilizza gli stessi dati delle caratteristiche sia come input che come etichette. Ad esempio, nel caso di dati autopromozionali, il DNN userebbe le funzionalità (come prezzo, dimensioni e codice postale) per prevedere tali funzionalità. Per utilizzare i dati delle caratteristiche per prevedere gli stessi dati delle caratteristiche, il DNN è tenuto a ridurre i dati delle caratteristiche di input per incorporamenti. Puoi utilizzare questi incorporamenti per calcolare la somiglianza.

Un DNN che apprende gli incorporamenti dei dati di input prevedendo i dati di input stessi è chiamato autoencoder. Poiché i livelli nascosti di un codificatore automatico sono più piccoli dei livelli di input e di output, il codificatore automatico è tenuto ad apprendere una rappresentazione compressa dei dati della funzionalità di input. Dopo aver addestrato il DNN, estrai gli incorporamenti dall'ultimo livello nascosto per calcolare la somiglianza.

Un confronto tra un codificatore e un DNN del predittore.
       Gli input iniziali e i livelli nascosti sono gli stessi, ma l'output viene filtrato in base alla funzionalità principale del modello predittore.
Figura 2: confronto tra un codificatore automatico e un predittore.

Un codificatore automatico è la scelta più semplice per generare incorporamenti. Tuttavia, un codificatore automatico non è la scelta ottimale quando determinate funzionalità potrebbero essere più importanti di altre nel determinare la somiglianza. Ad esempio, per i dati autopromozionali, supponiamo che il "prezzo" sia più importante del "codice postale". In questi casi, utilizza solo la funzionalità importante come etichetta di addestramento per il DNN. Poiché questo DNN prevede una funzionalità di input specifica, anziché prevedere tutte le funzionalità di input, è chiamato DNN previsione. Attieniti alle seguenti linee guida per scegliere una funzionalità come etichetta:

  • Preferisci le caratteristiche numeriche alle caratteristiche categoriche come etichette, perché la perdita è più facile da calcolare e interpretare per le caratteristiche numeriche.

  • Non utilizzare caratteristiche categoriche con cardinalità \(\lesssim\) 100 come etichette. In tal caso, il DNN non sarà forzato a ridurre i dati di input verso gli incorporamenti perché un DNN può prevedere facilmente etichette categoriche a bassa cardinalità.

  • Rimuovi la funzionalità che utilizzi come etichetta dall'input al DNN; in caso contrario, il DNN prevederà perfettamente l'output.

A seconda delle etichette che scegli, il DNN risultante è un DNN del codificatore automatico o un DNN del predittore.

Perdita funzione per DNN

Per addestrare l'DNN, devi creare una funzione di perdita seguendo questi passaggi:

  1. Calcola la perdita per ogni output del DNN. Per gli output che:
    • Utilizza valori numerici come errore quadrato medio (MSE).
    • Univalent categoric, use log Loss. Tieni presente che non avrai bisogno di implementare la perdita di log personalmente perché puoi utilizzare una funzione di libreria per calcolarla.
    • Categoria multivalente, utilizza la perdita softmax entroentropy. Tieni presente che non dovrai implementare personalmente la perdita di entropia trasversale softmax perché puoi utilizzare una funzione di libreria per calcolarla.
  2. Calcola la perdita totale sommando la perdita per ogni output.

Quando sommi le perdite, assicurati che ogni funzionalità contribuisca proporzionalmente alla perdita. Ad esempio, se converti i dati di colore in valori RGB, hai tre output. La somma della perdita di tre output significa che la perdita di colore è ponderata tre volte di più rispetto ad altre funzionalità. Piuttosto, moltiplica ogni output per 1/3.

Utilizzo di DNN in un sistema online

Un sistema di machine learning online dispone di un flusso continuo di nuovi dati di input. Dovrai addestrare il tuo DNN sui nuovi dati. Tuttavia, se reimposti il tuo DNN da zero, i tuoi incorporamenti saranno diversi perché i DNN vengono inizializzati con ponderazioni casuali. Piuttosto, avvia sempre il DNN con il peso iniziale con le ponderazioni esistenti e poi aggiorna il DNN con i nuovi dati.