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:

    • Il numero minimo di riquadri di delimitazione per etichetta è 10.
    • Le etichette devono essere stringhe valide (senza virgole).
    • Tutti i fotogrammi video devono avere timestamp validi.
    • Tutti gli URI video nel file CSV devono essere archiviati in un bucket Cloud Storage accessibile.
  • 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.

    • Ogni etichetta dovrebbe avere circa 100 frame di video di addestramento. In ogni frame devono essere etichettati tutti gli oggetti interessati dalle etichette.

    • Complessità o diversità delle classi. Le reti neurali potrebbero distinguere rapidamente tra gatti e uccelli, ma avrebbero bisogno di molti più campioni per classificare correttamente 30 specie diverse di uccelli.

    • Per le risoluzioni dei fotogrammi video superiori a 1024 x 1024 pixel, è possibile che si verifichi una perdita di qualità dell'immagine durante il processo di normalizzazione del fotogramma.

  • Evita di addestrare un modello con dati altamente sbilanciati. In molti casi, il numero di campioni per classe non è uguale. Quando le differenze non sono eccessive, 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.

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 Object Tracking può suddividerli automaticamente in set di dati di addestramento, convalida e test. Puoi anche assegnare tu stesso le etichette di suddivisione del treno. Tieni presente che quando AutoML Video Object Tracking genera le suddivisioni di addestramento, convalida e test dal file CSV, il funzionamento a livello di video. Tutte le etichette di un video possono rientrare solo in uno dei tre set di dati. Pertanto, non è consigliabile avere solo pochi video se questi sono diversi o se la distribuzione delle etichette non è la stessa tra i vari 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:

    • Prepara una serie ben diversificata di video e esempi di fotogrammi 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 di rilevamento video disponibili pubblicamente:

  • YouTube-BB: set di dati per il rilevamento di oggetti video (5, 6 milioni di riquadri di delimitazione,240.000 video, 23 tipi di oggetti)
  • ImageNet-VID: ImageNet Video Object Detection Challenge (30 categorie di livello base)

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.

I concetti e le metriche comuni della valutazione del monitoraggio degli oggetti includono:

  • L'intersezione su unioni (IOU) misura la sovrapposizione tra due riquadri di delimitazione, che di solito si trovano tra i dati empirici reali e la previsione. Puoi utilizzarlo per misurare il grado di sovrapposizione del riquadro di delimitazione previsto con i dati empirici reali.
  • 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.
  • 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 le etichette mancanti.

Non tutte le metriche possono essere utilizzate per i diversi problemi di rilevamento degli oggetti video. Ad esempio, la comprensione intuitiva della precisione e del richiamo da un problema di monitoraggio degli oggetti 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 considerare la metrica media di 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 e anche dei diagrammi di precisione-richiamo per ciascuna classe di oggetti.

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.

  • A volte, un video di test presenta alcuni casi di scena tagliati in cui compaiono nuove scene senza un'associazione eccessiva di contesto. Ad esempio, nelle trasmissioni di partite di calcio dal vivo, la visualizzazione della videocamera passa dalla visualizzazione dall'alto verso il basso a quella laterale. In una situazione di questo tipo, di solito sono necessari 2-3 frame prima che il modello riesca a stare al passo con il cambiamento.

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

Test del modello

Il monitoraggio degli oggetti video di AutoML utilizza automaticamente il 20% dei dati per testare il modello oppure, se sei stato tu a scegliere la suddivisione dei dati, in base alla percentuale che hai scelto di utilizzare.

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).
  • Etichetta i frame più significativi:
    • Seleziona i frame da etichettare nei punti in cui appaiono più oggetti anziché un singolo oggetto o nessun oggetto presente.
    • Seleziona frame che contengono più oggetti in movimento. Ciò può fornire al modello informazioni più temporali durante l'addestramento.
    • Assicurati che tutti i frame selezionati siano etichettati completamente. Ad esempio, se addestra un modello di rilevamento dei veicoli, devi etichettare tutti i veicoli che possono essere osservati visivamente in un frame.
    • Non selezionare fotogrammi all'inizio del video. L'algoritmo può tornare indietro per recuperare i frame per l'addestramento al fine di acquisire il contesto di movimento. Queste informazioni possono andare perse se non ci sono frame prima di quelli selezionati.
  • 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 prestazioni relativamente peggiori.
  • 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.