best practice

In questa pagina vengono descritte le best practice per la preparazione dei dati, la valutazione dei modelli e il miglioramento delle prestazioni dei modelli.

Preparazione dei dati in corso...

  • I dati utilizzati per l'addestramento devono essere il più possibile simili a quelli su cui vuoi fare previsioni. Ad esempio, se il tuo caso d'uso prevede video sfocati e a bassa risoluzione (come i filmati delle videocamere di sicurezza), i dati di addestramento devono includere video sfocati e a bassa risoluzione. In generale, dovresti anche valutare la possibilità di fornire più angolazioni, risoluzioni e sfondi per i tuoi video di formazione.
  • I dati di addestramento devono soddisfare determinati requisiti minimi:

    • Tutti i dati devono avere etichette.
    • Le etichette devono essere stringhe valide (senza virgole).
    • Tutti i segmenti video devono avere timestamp validi. I segmenti devono avere un inizio e una fine, l'ora di fine deve essere maggiore di 0 e inferiore alla durata totale del video e l'ora di inizio deve essere inferiore all'ora di fine.
    • Tutti gli URI video nel file CSV devono essere archiviati in un bucket Cloud Storage accessibile.
    • I dati devono includere almeno due classi diverse e ogni classe deve contenere almeno 10 elementi.
  • Più dati di addestramento e test hai a disposizione, meglio è. Maggiore è la potenza del modello, maggiore è la quantità di dati che diventa necessaria.

  • La quantità di dati necessari per addestrare un buon modello dipende da diversi fattori:

    • Il numero di corsi. Maggiore è il numero di classi uniche, maggiore sono i campioni per ogni classe.
    • Complessità o diversità delle classi. Le reti neurali potrebbero distinguere rapidamente tra video di corsa e nuoto, ma avrebbero bisogno di molti più campioni per classificare 30 diversi stili di danza.
    • I modelli con più etichette sono più difficili da addestrare rispetto a quelli multi-classe. Se la maggior parte dei casi ha una sola etichetta per campione, valuta la possibilità di utilizzare un addestramento di modelli multiclasse anziché con più etichette.
  • Come regola generale, dovresti avere almeno 200 campioni di addestramento per classe se hai poche classi distintive e più di 1000 campioni di addestramento se le classi sono più specifiche e hai più di 50 classi diverse.

  • Evita di addestrare un modello con dati altamente sbilanciati. In molti casi, il numero di campioni per classe non è uguale. Anche se le differenze non sono grandi, non è poi così male. Tuttavia, quando si verifica uno squilibrio maggiore, ad esempio in alcune classi si presentano più di 10 volte più spesso di altre, questo diventa un problema. Sebbene AutoML Video tenti di correggere gli squilibri delle classi, non è una configurazione ideale per l'addestramento del modello.

Per saperne di più, consulta le informazioni sulla preparazione dei dati.

Suddivisione dei dati

Nel machine learning, in genere i set di dati vengono suddivisi in tre sottoinsiemi distinti: un set di dati di addestramento, un set di dati di convalida e un set di dati di test. Per creare un modello viene utilizzato un set di dati di addestramento. Il modello prova più algoritmi e parametri durante la ricerca di pattern nei dati di addestramento. Poiché il modello identifica i pattern, utilizza il set di dati di convalida per testare algoritmi e pattern. Gli algoritmi e i pattern con le prestazioni migliori vengono scelti tra quelli identificati durante la fase di addestramento.

Dopo aver identificato gli algoritmi e i pattern con le prestazioni migliori, vengono testati per determinare il tasso di errore, la qualità e l'accuratezza utilizzando il set di dati di test. Dovresti avere un set di dati di test separato che puoi usare per testare il modello in modo indipendente.

Vengono utilizzati sia un set di dati di convalida che di test per evitare bias nel modello. Durante la fase di convalida, vengono utilizzati parametri del modello ottimali, che possono generare metriche distorte. L'utilizzo del set di dati di test per valutare la qualità del modello dopo la fase di convalida fornisce una valutazione imparziale della qualità del modello.

Per la suddivisione dei dati, attieniti alle seguenti best practice:

  • Consigliamo che tutti i set di dati (chiamati anche suddivisioni del set di dati) rappresentino la stessa popolazione, abbiano video simili e una distribuzione delle etichette simile.

    Quando fornisci i tuoi dati, AutoML Video può suddividerli automaticamente in set di dati di addestramento, convalida e test. Puoi anche assegnare tu stesso le etichette di suddivisione del treno. Tutti i campioni possono provenire da un singolo video o da più video. Avere solo pochi video potrebbe essere pericoloso se i video sono diversi o se la distribuzione delle etichette non è la stessa all'interno dei video. Il motivo è che quando AutoML Video genera le suddivisioni train-validation-test, lo fa a livello di video.

    Ad esempio, se hai solo 3 video con migliaia di segmenti di video con annotazioni, ma alcune classi sono presenti solo nei singoli video, può succedere che il modello non si addestra per alcune etichette e perciò le etichette potrebbero mancare durante la previsione.

  • Evita la fuga di dati. La fuga di dati si verifica quando l'algoritmo è in grado di utilizzare informazioni che durante l'addestramento del modello non dovrebbero utilizzare e queste informazioni non saranno disponibili nelle previsioni future. Ciò può portare a risultati eccessivamente ottimistici sui set di dati di addestramento, convalida e test, ma potrebbe non funzionare altrettanto bene quando viene chiesto di fare previsioni di dati futuri non visualizzati.

    Alcuni esempi di perdita di dati includono: un bias basato sull'angolo di visione della videocamera o sulle condizioni di luce (mattina/sera); un bias relativo ai video con commentatori rispetto a quelli che non lo hanno; un bias basato sui video con determinate etichette che provengono da regioni, gruppi di lingue, commentatori specifici o che includono lo stesso logo.

    Per evitare fuga di dati:

    • Disponi di un insieme ben diversificato di video ed esempi di segmenti video.
    • Esamina i video per assicurarti che non ci siano indizi nascosti (ad esempio, i video con campioni positivi sono stati acquisiti nel pomeriggio, mentre i video con campioni negativi sono stati acquisiti la mattina).

Per saperne di più, consulta le informazioni sulla preparazione dei dati.

Esempi di origini dati

Per un esempio di origine dati, consulta i seguenti set di dati video disponibili pubblicamente:

  • UCF-101: set di dati di riconoscimento delle azioni (101 classi; multiclasse; 13.320 video brevi/campioni)
  • HMDB-51: Human Motion DataBase (51 classi; multiclasse; 6849 video brevi/campioni)
  • Kinetics: un set di dati su larga scala per il riconoscimento delle azioni (classi 400/600/800; multiclasse; oltre 400.000 video/campioni brevi)
  • Qualcosa-Qualcosa: Azioni umane con oggetti (174 classi; 220847 video/esempi)
  • AVA: azioni visive atomiche con molte annotazioni (80 classi; con più etichette; 1,58 milioni di annotazioni in 430 video clip da 15 minuti)

Addestramento del modello

Gli stessi dati possono essere utilizzati per addestrare modelli diversi e generare diversi tipi di previsione, a seconda delle esigenze. Inoltre, l'addestramento dello stesso modello sugli stessi dati potrebbe portare a risultati leggermente diversi. L'addestramento del modello di rete neurale prevede operazioni randomizzate, in modo che non si possa garantire l'addestramento esatto dello stesso modello con gli stessi input e le previsioni potrebbero essere leggermente diverse.

Per saperne di più, consulta le informazioni sulla gestione dei modelli.

Valutazione del modello

Al termine dell'addestramento del modello, puoi valutare le prestazioni sui set di dati di convalida e test o sui tuoi nuovi set di dati.

Le metriche di classificazione comuni includono:

  • Area sotto la curva (AUC), nota anche come "area sotto la curva della caratteristica operativa del ricevitore". La curva traccia il richiamo rispetto alla probabilità di falso allarme a soglie di punteggio diverse. L'intervallo di valori AUC è compreso tra 0,5 e 1,0. Questa metrica viene utilizzata principalmente per problemi di classificazione binaria.
  • Area sotto la curva di precisione/richiamo (AuPRC), nota anche come precisione media (AP). È l'integrale dei valori di precisione nell'intervallo dei valori di richiamo. È meglio interpretata per i problemi binari.
  • La precisione media media (mAP o MAP) può essere considerata come la media delle metriche di precisione media (AP) su più classi o etichette. A volte, mAP e AP sono utilizzati in modo intercambiabile.
  • L'accuratezza rappresenta il rapporto di campioni che sono stati classificati correttamente.
  • Per problemi binari e multi-classe, puoi anche esaminare la precisione e il richiamo in base a varie soglie di punteggio di affidabilità in modo indipendente.
  • Se non ci sono troppe etichette multiclasse, puoi esaminare la matrice di confusione che mostra quali etichette sono state classificate in modo errato in base a quali previsioni. In alternativa, l'UI mostra le principali classi erroneamente classificate all'interno della matrice.

Non tutte le metriche possono essere utilizzate per i diversi problemi di classificazione dei video. Ad esempio, la comprensione intuitiva della precisione e del richiamo da una classificazione binaria diventa più ambigua se si considerano più classi (problema multi-classe) o se esistono più etichette valide per campione (problema con più etichette). Soprattutto per i casi successivi, non esiste una metrica unica e ben adottata. Tuttavia, puoi prendere in considerazione la metrica Precisione media per le decisioni di valutazione.

Tuttavia, tieni presente che è eccessivamente semplificato valutare le prestazioni del modello in base a un singolo numero o metrica. Prendi in considerazione l'analisi di diverse metriche, ad esempio i grafici delle curve di precisione-richiamo, o le distribuzioni di campioni classificati in modo errato, come nella matrice di confusione.

Ecco altri suggerimenti utili per valutare il tuo modello:

  • Presta attenzione alla distribuzione delle etichette nei set di dati di addestramento e test. Se i set di dati sono sbilanciati, le metriche ad alta precisione potrebbero essere fuorvianti. Poiché per impostazione predefinita ogni campione ha la stessa ponderazione durante la valutazione, un'etichetta più frequente può avere un peso maggiore. Ad esempio, se ci sono 10 volte più etichette positive rispetto a quelle negative e la rete decide semplicemente di assegnare tutti i campioni alle etichette positive, puoi comunque raggiungere una precisione del 91%, ma non significa che il modello addestrato sia così utile.

  • Puoi anche provare ad analizzare i dati empirici reali e le etichette di previsione, ad esempio in uno script Python, utilizzando scikit-learn. A questo punto, potresti cercare diversi modi per valutare le etichette durante la valutazione: gli approcci comuni includono la media macro (le metriche vengono calcolate per classe e poi calcolate in base alla media), ponderata (le metriche vengono calcolate per classe e quindi calcolate in base alla media con ponderazioni basate sulla frequenza delle singole classi), micro (ogni campione ha la stessa ponderazione, indipendentemente da qualsiasi sbilanciamento potenziale).

  • Il debug di un modello riguarda più il debug dei dati che il modello stesso. Se a un certo punto il modello inizia ad agire in modo imprevisto mentre ne valuti le prestazioni prima e dopo il passaggio in produzione, dovresti tornare sui dati e controllarli per capire dove potrebbero essere migliorati.

Per saperne di più, consulta le informazioni sulla valutazione del modello.

Valutazione del modello nella console Google Cloud

Nella scheda Valuta dell'interfaccia utente di AutoML Video, puoi valutare le prestazioni del modello personalizzato utilizzando l'output del modello su esempi di test e le metriche comuni di machine learning. Nella scheda vengono visualizzate le seguenti informazioni sul modello:

  • L'output del modello
  • Soglia di punteggio
  • Veri positivi, veri negativi, falsi positivi e falsi negativi
  • Precisione e richiamo
  • Curve di precisione/richiamo.
  • Precisione media

Quando leggi i dati di valutazione del modello nella console Google Cloud, tieni presente quanto segue:

  • AutoML Video estrae segmenti video di esempio dai dati di test per presentare sfide completamente nuove per il tuo modello. Per ogni esempio, il modello restituisce una serie di numeri che indicano il livello di associazione di ogni etichetta all'esempio in questione. Se il numero è alto, il modello ha un'elevata probabilità di applicare l'etichetta al documento.

  • Puoi convertire i numeri di affidabilità in un valore "on/off" binario impostando una soglia di punteggio. La soglia di punteggio si riferisce al livello di affidabilità che il modello deve assegnare per assegnare una categoria a un elemento di test. Il dispositivo di scorrimento della soglia di punteggio nell'interfaccia utente è uno strumento visivo per testare l'impatto di soglie diverse per tutte le categorie e singole categorie nel tuo set di dati. Se la soglia di punteggio è bassa, il modello classifica più segmenti video, ma rischia di classificare erroneamente alcuni segmenti video (meno falsi negativi, ma molti falsi positivi). Se la soglia di punteggio è alta, il modello classifica meno segmenti video, ma presenta un rischio inferiore di classificare erroneamente i segmenti video (pochi falsi positivi, ma molti falsi negativi). Per sperimentare, puoi modificare le soglie per categoria nell'interfaccia utente. Tuttavia, quando utilizzi il modello in produzione, devi applicare le soglie che ritieni ottimali sul tuo lato.

  • Dopo aver applicato la soglia di punteggio, le previsioni effettuate dal modello rientrano in una delle seguenti quattro categorie:

    • Vero positivo: il modello ha previsto correttamente l'etichetta.
    • Vero negativo: il modello non ha previsto correttamente questa etichetta.
    • Falso positivo: il modello ha previsto erroneamente l'etichetta per un segmento video.
    • Falso negativo: il modello non è riuscito a prevedere l'etichetta vera.

    Puoi utilizzare queste categorie per calcolare precisione e richiamo, le metriche che ti aiutano a misurare l'efficacia del modello.

  • La precisione e il richiamo ti aiutano a capire in che misura il tuo modello sta acquisendo le informazioni e quante ne vengono escluse. Da tutti gli esempi di test a cui è stata assegnata un'etichetta, il punteggio di precisione misura quanti effettivamente avrebbero dovuto essere categorizzati con quell'etichetta. Da tutti gli esempi di test a cui avrebbe dovuto essere assegnata l'etichetta, il punteggio di richiamo misura quanti ne è stata effettivamente assegnata.

  • Puoi confrontare le prestazioni del modello su ogni etichetta utilizzando una matrice di confusione. In un modello ideale, tutti i valori sulla diagonale sono alti, mentre tutti gli altri valori sono bassi. Questo mostra che le categorie desiderate vengono identificate correttamente. Se altri valori sono alti, significa che il modello sta classificando in modo errato le immagini di test.

  • Lo strumento Soglia punteggio consente di capire in che modo la soglia di punteggio scelta influisce su precisione e richiamo. Mentre trascini il dispositivo di scorrimento sulla barra della soglia del punteggio, puoi vedere dove tale soglia ti posiziona nella curva di compromesso precisione-richiamo, nonché come questa soglia influisce individualmente su precisione e richiamo. Per i modelli multiclasse, in questi grafici, precisione e richiamo significa che l'unica etichetta utilizzata per calcolare le metriche di precisione e richiamo è l'etichetta con il punteggio più alto nell'insieme di etichette restituite. Questo può aiutarti a trovare un buon equilibrio tra falsi positivi e falsi negativi.

    Dopo aver scelto una soglia che sembra accettabile per il tuo modello nel complesso, puoi fare clic sulle singole etichette e vedere dove rientra la soglia sulla curva di precisione-richiamo per etichetta. In alcuni casi, possono verificarsi molte previsioni errate per alcune etichette, il che potrebbe aiutarti a decidere di scegliere una soglia per classe personalizzata in base a quelle etichette.

  • Una metrica utile per l'accuratezza del modello è l'area sotto la curva di precisione-richiamo. Misura le prestazioni del modello su tutte le soglie di punteggio. In AutoML Video, questa metrica si chiama Precisione media. Più questo punteggio è vicino a 1,0, migliori saranno le prestazioni del tuo modello nel set di test; un modello che effettua ipotesi casuali per ogni etichetta otterrà una precisione media di circa 0,5.

Test del modello

AutoML Video utilizza automaticamente il 30% dei tuoi dati per testare il modello oppure, se sei tu a scegliere la suddivisione dei dati, in base alla percentuale che hai scelto di utilizzare. La scheda Valuta nell'interfaccia utente di AutoML Video mostra le prestazioni del modello sui dati di test. Se però vuoi eseguire un controllo di integrità del modello, puoi farlo in diversi modi. Un modo è fornire un file CSV con i dati video per i test nella scheda "Testa e utilizza" e controllare le etichette che il modello prevede per i video. Spero che questo risponda alle tue aspettative.

Puoi regolare la soglia per la visualizzazione delle previsioni e esaminare le previsioni su tre scale temporali: intervalli di 1 secondo, riprese della videocamera dopo il rilevamento automatico dei confini delle scene e interi segmenti video.

Miglioramento delle prestazioni del modello

Se ottieni le prestazioni iniziali del modello e vuoi continuare a migliorarle, puoi provare alcuni approcci diversi:

  • Aumenta il numero di campioni etichettati (soprattutto per le classi sottorappresentate).
  • Esamina attentamente dove il tuo modello non funziona così bene:

    • Forse un corso è troppo ampio e sarebbe sensato suddividerlo in due o più classi?
    • O forse alcune classi sono troppo specifiche e potrebbero essere unite senza influire sull'obiettivo finale del progetto?
    • Valuta la possibilità di etichettare più campioni, soprattutto per le classi con il rendimento peggiore.
  • Se applicabile, passa da un problema multi-classe a un problema con più etichette, dal momento che di solito è più facile addestrare un modello di rete neurale che tenta di classificare i campioni in classi disgiunte anziché provare a prevedere per ogni campione un insieme di etichette di lunghezza sconosciuta.

  • Riduci lo squilibrio dei dati. Aggiungi altri campioni o prova potenzialmente a ridurre il numero di campioni di classe ad alta frequenza, in particolare nei casi in cui è presente un grande squilibrio, ad esempio da 1 a 100 o più.

  • Controlla attentamente e cerca di evitare potenziali fughe di dati.

  • Elimina i corsi meno importanti per concentrarti su quelli meno importanti.

  • Esamina le altre opzioni disponibili nella pagina Assistenza.