L’importanza di testare gli algoritmi nel mondo reale

Spesso può accadere che le prestazioni di ciò che viene sviluppato e testato in “condizioni ideali di laboratorio” risultino poi compromesse negli ambienti reali.
Le condizioni perfette in un tunnel aerodinamico potrebbero, sulla carta, far credere a un designer di aver progettato la migliore auto da corsa di Formula 1 al mondo. Ma una burrascosa giornata di aprile sulla costa portoghese potrebbe, letteralmente, gettare al vento i modelli di prova.

Lo stesso avviene con le analitiche video, perché i test in ambienti reali sono essenziali per garantire che gli algoritmi di apprendimento automatico siano efficaci per casi d’uso e scenari specifici.

 

Prima di effettuare i test, addestra gli algoritmi

Prima di eseguire i test nel mondo reale, è necessario però sviluppare e addestrare gli algoritmi di machine learning come quelli utilizzati per il rilevamento e il riconoscimento di oggetti nelle analitiche video.

Per sviluppare un’applicazione di analisi approfondita o basata sull’apprendimento automatico è necessario raccogliere grandi quantità di dati che, nella videosorveglianza, si traducono in immagini e filmati di persone e veicoli o altro. È bene precisare, tuttavia, che data la vastità degli oggetti di interesse per le analitiche video, i set di dati richiesti possono essere enormi.

Per rendere i dati riconoscibili a una macchina o un computer è necessario un processo di annotazione dei dati al fine di classificare ed etichettare gli oggetti rilevanti. I dati annotati devono coprire una varietà sufficientemente ampia di campioni rilevanti per il contesto in cui verrà utilizzata l’applicazione di analisi. L’annotazione dei dati, però, è purtroppo in larga misura un’attività manuale e laboriosa.

Il modello algoritmico viene alimentato con dati annotati e viene utilizzato un framework di addestramento per modificare e migliorare in modo iterativo il modello fino al raggiungimento della qualità desiderata. In altre parole, il modello è ottimizzato per risolvere il compito definito.

 

Metodi di addestramento del machine learning

L’addestramento dell’algoritmo basato sul machine learning può essere effettuato principalmente in tre modi:

  1. Apprendimento supervisionato: il modello impara a fare previsioni accurate
  2. Apprendimento non supervisionato: il modello impara a identificare i cluster
  3. Apprendimento per rinforzo: il modello impara dagli errori

L’apprendimento supervisionato è oggi il metodo più comune nel machine learning e può essere ampiamente descritto come “apprendimento mediante esempi”. I dati di addestramento vengono annotati chiaramente, il che significa che i dati di input sono già associati al risultato di output desiderato. L’apprendimento supervisionato generalmente richiede una grande quantità di dati annotati e le prestazioni dell’algoritmo addestrato dipendono direttamente dalla qualità di tali dati di addestramento.

L’aspetto più importante nell’apprendimento supervisionato riguarda l’utilizzo di un set di dati che rappresenti tutti i potenziali dati di input da una situazione di installazione reale. Per i rilevatori di oggetti, lo sviluppatore deve assicurarsi di addestrare l’algoritmo con un’ampia varietà di immagini, con diverse istanze di oggetti, orientamenti, scale, situazioni di luce, sfondi ed elementi di disturbo. Solo se i dati di addestramento saranno rappresentativi per il caso d’uso pianificato, l’applicazione di analisi finale sarà in grado di effettuare previsioni accurate durante l’elaborazione di nuovi dati.

L’apprendimento non supervisionato utilizza gli algoritmi per analizzare e raggruppare set di dati non etichettati. Questa, però, non è una modalità di training comune nel settore della sorveglianza perché il modello richiede molte tarature e diversi test e la qualità può essere ancora imprevedibile. I set di dati devono essere pertinenti per l’applicazione di analisi ma non devono essere etichettati o contrassegnati in modo chiaro.

Nell’apprendimento non supervisionato Il lavoro di annotazione manuale viene eliminato, ma il numero di immagini o video necessari per l’addestramento deve essere notevolmente incrementato, anche di diversi ordini di grandezza. Durante questa fase, il modello da addestrare identificherà le caratteristiche comuni nei dataset, supportato dal quadro di formazione. Nella fase di sviluppo ciò gli consentirà di raggruppare i dati in base a schemi e, allo stesso tempo, di rilevare anomalie che non rientrano in nessuno dei gruppi appresi.

L’apprendimento per rinforzo viene utilizzato, ad esempio, nella robotica, nell’automazione industriale e nella strategia aziendale di pianificazione, ma a causa della necessità di grandi quantità di feedback, oggi questo metodo viene poco utilizzato nella sorveglianza. L’apprendimento per rinforzo consiste nell’intraprendere azioni adeguate per massimizzare la potenziale ricompensa in una specifica situazione, una ricompensa che diventa maggiore quando il modello fa le scelte giuste. L’algoritmo non utilizza binomi dati/etichetta per l’addestramento, ma è ottimizzato testando le sue scelte attraverso l’interazione con l’ambiente durante la misurazione della ricompensa. L’obiettivo dell’algoritmo è quello di apprendere una politica per le azioni che aiuti a massimizzare la ricompensa.

 

Test nel mondo reale prima dello sviluppo

Una volta che il modello è stato addestrato, deve essere testato a fondo, in genere combinando una parte automatizzata con test approfonditi in situazioni di implementazione reale. Nella parte automatizzata, l’applicazione viene comparata con nuovi set di dati, non rilevati dal modello durante il suo addestramento. Se questi parametri di riferimento non sono dove dovrebbero essere, il processo ricomincia da capo: vengono raccolti nuovi dati di addestramento, vengono eseguite o perfezionate annotazioni e il modello viene riaddestrato.

Dopo aver raggiunto il livello qualitativo desiderato, inizia il test sul campo, esponendo l’applicazione a scenari e situazioni del mondo reale. La quantità e la variazione dipendono dall’ambito dell’applicazione: più sarà ristretto, meno variazioni dovranno essere testate; più ampio sarà il campo di applicazione, più test saranno necessari. I risultati vengono poi nuovamente confrontati e valutati e potrebbe essere necessario anche far ricominciare il processo se i risultati non dovessero essere corretti. Un altro possibile esito potrebbe essere poi la definizione dei prerequisiti, illustrando uno scenario noto in cui non è consigliato l’uso dell’applicazione o se ne raccomanda l’uso solo in parte.

Esporre un’applicazione di analisi a scenari del mondo reale, tuttavia, non equivale a eseguire l’applicazione nel mondo reale. Lo sviluppo, chiamato anche inferenza o previsione, è il processo di esecuzione di un modello di apprendimento automatico addestrato su un sistema di sorveglianza che monitora scene di vita reale per verificare se l’algoritmo utilizza ciò che ha appreso durante la fase di addestramento per produrre l’output desiderato. È solo in questa fase, quando i dati “puliti” utilizzati durante lo sviluppo e il test vengono sostituiti con quelli reali (che possono variare notevolmente in termini di qualità), che scopriamo se l’algoritmo è adatto allo scopo per il quale è stato progettato.

 

Test di analisi: spesso trascurati

Forse è la percezione della crescente “intelligenza” di processori e analitiche che fa credere agli utenti che l’analisi funzionerà perfettamente e immediatamente, ma non è così. I test nel mondo reale sono fondamentali e devono essere valutati nei costi di implementazione dell’analisi.

L’analisi nella videosorveglianza continuerà a progredire, migliorando sempre più in precisione ed efficienza, ma spesso viene già realizzata in condizioni perfette. Sappiamo bene, però, che il mondo imperfetto in cui viviamo può minare qualsiasi algoritmo e testare queste imperfezioni è fondamentale.

Le imperfezioni non sono provocate automaticamente dall’applicazione stessa, ma tendono ad essere causate ancora più spesso da una mancata corrispondenza delle aspettative. Ciò significa che i test non solo aiuteranno a trovare difetti o limitazioni, ma miglioreranno notevolmente anche la comprensione delle capacità generali dell’analisi. A sua volta, si potrà poi preparare l’installazione del sensore (telecamera) nel miglior modo possibile e persino apportare possibili modifiche alla scena stessa (ad esempio per quanto riguarda l’illuminazione).

 

Per saperne di più sull’intelligenza artificiale applicata alle analitiche video, consulta il nostro white paper:

White Paper

 

Questo articolo è stato pubblicato originariamente in lingua inglese sul blog globale Secure Insights