Le basi dell'AI: l'addestramento
Entrati oramai nel lessico comune, intelligenza artificiale (AI - Artificial intelligence) e apprendimento automatico (ML - Machine Learning) sono due termini utilizzati per descrivere la capacità di una macchina di riprodurre le funzioni cognitive di un essere umano come la percezione, il ragionamento e la capacità di risolvere i problemi. Grazie alla capacità di “pensare” in maniera del tutto assimilabile a quella degli esseri umani, l'intelligenza artificiale è ora in grado di espletare compiti molto diversificati tra loro in molteplici ambiti applicativi.
La possibilità di effettuare il riconoscimento delle immagini risulta particolarmente utile nel settore della diagnostica medica e per svolgere attività di sorveglianza finalizzate a garantire la sicurezza. Riconoscimento del parlato, traduzioni, sviluppo e scoperta di nuovi farmaci, rilevamento di frodi finanziarie sono solo alcuni esempi di utilizzo dell'intelligenza artificiale tratti da un elenco in continua e rapida espansione. L'intelligenza artificiale rivestirà un ruolo di fondamentale importanza per il funzionamento dei dispositivi IoT (Internet of Things), sempre più utilizzati in applicazioni quali veicoli autonomi, robot chirurgici e droni militari e per i quali si prevedono tassi di crescita di tipo esponenziale.
Ispirato al comportamento del cervello, l'apprendimento profondo (Deep Learning) è un sottoinsieme dell'apprendimento automatico che converte immagini, voce o testi in numeri i quali vengono analizzati mediante diversi livelli di manipolazioni di natura matematica (da qui l'aggettivo profondo). Nel corso di questo processo i vari strati di analisi formano una gerarchia di concetti, o un sistema di pensiero, in grado di destrutturare (ovvero scomporre nei vari elementi costitutivi) un ingresso e identificare le tendenze o i pattern sottostanti. Sono molteplici le differenze tra cervello e apprendimento profondo. Il primo è formato da differenti tipi di neuroni e zone funzionali, mentre il secondo attualmente si focalizza sull'attività di classificazione delle informazioni che viene condotta con il più elevato livello di accuratezza possibile.
Il processo di apprendimento
Come accade per gli esseri umani, l'intelligenza artificiale deve apprendere un compito (task) prima di poterlo eseguire. Per dar vita a uno schema di pensiero da poter utilizzare per risolvere problemi non ancora affrontati il cervello umano dapprima apprende da stimoli esterni. Nel caso dell'apprendimento automatico è invece presente un algoritmo, che può essere un insieme di regole o un procedimento di problem-solving – che apprende dai dati ricevuti e successivamente genera modelli, oppure un insieme di parametri come pesi (weight) e bias (scostamenti), in modo da rendere più efficiente e accurata possibile la soluzione di futuri problemi. In questo articolo sarà illustrato come addestrare le macchine a fare ”auto-apprendimento”.
Le diverse tipologie di apprendimento automatico rientrano nelle seguenti sei categorie principali:
- Supervisionato
- Per trasferimento
- Non supervisionato
- Semi-supervisionato
- Ensemble (basato su più ipotesi)
- Rinforzato
Apprendimento supervisionato
Quando uno studente studia sotto la guida di un supervisore, quest'ultimo deve assicurarsi che lo studente stia imparando correttamente e che il suo ragionamento segue un filo logico. In maniera del tutto analoga, nell'apprendimento supervisionato, un algoritmo apprende da un set completo di dati etichettati contrassegnati con le risposte mentre nel contempo riceve riscontri su base continua circa l'accuratezza delle sue soluzioni. L'apprendimento supervisionato è utile per tutti quei compiti che prevedono la classificazione o la stima delle relazioni che intercorrono tra le variabili (regressione). Tra le principali applicazioni si possono segnalare l'identificazione di attività sospette nei sistemi finanziari e il riconoscimento di volti, oggetti, voci, gesti o scrittura.
Le reti neurali, formate da uno strato d ingresso, uno o più strati intermedi (o strati nascosti) e uno strato di uscita sono un esempio di apprendimento supervisionato. Segnali come immagini, voce o testi sono convertiti in numeri nello strato di ingresso ed elaborati negli strati nascosti e di uscita.
Le tipologie di reti neurali più comuni sono le reti neurali convoluzionali (CNN – Convolutional Neural Network) e le reti neurali ricorrenti (Recurrent Neural Network). Una rete neurale convoluzionale estrae le caratteristiche di un segnale di ingresso, che può essere rappresentato da file vocali o di immagine, preservando la relazione spaziale tra le caratteristiche per ulteriori analisi. Particolarmente efficaci nel settore della visione artificiale per applicazioni quali riconoscimento facciale e del parlato, le reti CNN risultano adatte nell'ambito della guida autonoma. In tale contesto le capacità di riconoscimento delle immagini delle reti neurali riveste un'importanza cruciale per identificare altri veicoli, pedoni e ostacoli di vario tipo presenti sul percorso, oltre che per “avvertire” il veicolo a guida autonoma di qualsiasi altro potenziale pericolo.
In una rete neurale ricorrente, un'uscita dello strato di elaborazione viene inviata nuovamente (processo di retroazione) allo stesso strato da cui proviene, questa volta sotto forma di ingresso da utilizzare per la correzione. Se la previsione è errata, il sistema apprende automaticamente l'errore in modo da migliorare la previsione la volta successiva. Una rete neurale di questo tipo risulta molto efficiente nella operazioni di sintesi vocale (text-to-speech). In particolare le reti RNN vengono solitamente impiegate nel caso di testi lunghi che devono essere contestualizzati e contengono parole con più significati (a esempio la parola gru potrebbe indicare un uccello o un macchinario utilizzato nel settore delle costruzioni a secondo del contesto) oppure di file audio che prevedono la presenza di differenti parole che hanno la medesima pronuncia (come le parole inglesi “their” e “there”).
Per compiti complessi e di grandi dimensioni potrebbe essere richiesta una rete neurale modulare (MNN – Modular Neural Network) che risulta formata di reti differenti che operano in modalità autonoma per eseguire sotto-compiti. Grazie al funzionamento indipendente, queste reti non si ostacolano a vicenda con conseguente aumento della velocità di elaborazione complessiva.
Apprendimento per trasferimento
L'apprendimento supervisionato richiede la disponibilità di un insieme di dati (dataset) di grandi dimensioni completamente etichettato. L'assemblaggio di tali dataset per ogni specifica applicazione è un compito decisamente arduo e, spesso, di scarsa utilità. L'apprendimento per trasferimento affronta il problema della carenza di dataset completi specifici riutilizzando gli strati di ingresso e intermedi di un modello che è stato già addestrato con un dataset (il modello pre-addestrato): in questo modo è sufficiente riaddestrare gli strati finali per il nuovo compito. I parametri del modello pre-addestrato saranno utilizzati nella fase iniziale e quindi opportunamente modificati nel corso dell'addestramento in modo da ottenere la massima precisione. A questo punto val la pena osservare che eliminando la necessità di addestrare tutti gli strati a partire da zero, il “transfer learning” permetterà di ridurre drasticamente il tempo di addestramento complessivo per ogni specifica applicazione.
Tra i numerosi modelli pre-addestrati disponibili si possono annoverare il dataset Mask R-CNN per la segmentazione delle istanze degli oggetti, YOLOv2 per il rilevamento di oggetti, il modello VGG-Face per il riconoscimento facciale, il modello Keras VGG-16 per la classificazione dei pomodori in base al loro grado di maturazione e il dataset Stanford Car per la classificazione delle vetture. Sebbene l'apprendimento per trasferimento consenta di ovviare al problema legato alla mancanza di dataset completi e unici, presenta tuttavia alcuni svantaggi. Il processo di apprendimento è lento al fine di evitare alterazioni ed è vincolato dai parametri preesistenti contenuti nel dataset pre-addestrato.
Apprendimento non supervisionato
In questo tipo di apprendimento l'algoritmo cerca di estrarre caratteristiche da un insieme di dati non etichettati che possono essere esempi o segnali con diverse caratteristiche al fine di individuare i pattern sottostanti senza ricevere alcuna istruzione esplicita. L'apprendimento non supervisionato è utile nei casi in cui viene richiesto di determinare l'associazione tra caratteristiche o attributi mediante raggruppamento (clustering). La comprensione delle associazioni può aiutare, a esempio, a prevedere a quale prodotto potrebbero essere interessati i clienti sulla base degli acquisti fatti in precedenza. L'apprendimento senza supervisione è in grado di organizzare i dati in modo differente in funzione della domanda che viene posta. Di conseguenza, sottoporre la giusta domanda, oppure formulare la domanda nel modo corretto, sono azioni che hanno un'importanza maggiore nell'apprendimento non supervisionato rispetto ad altri tipi di apprendimento.
Apprendimento Semi-Supervisionato
In questo tipo di apprendimento, l'algoritmo è addestrato con dataset parzialmente etichettati. Si consideri a esempio l'identificazione di tumori mediante tomografia computerizzata o immagini acquisite tramite risonanza magnetica. In questo caso, la presenza di un radiologo esperto in grado di etichettare un ridotto sotto-insieme di tumori contribuirà a migliorare in modo significativo l'accuratezza dell'algoritmo rispetto al caso in cui si proceda a un apprendimento senza supervisione, con conseguente incremento del numero di diagnosi corrette.
Apprendimento Ensemble
Questo tipo di apprendimento abbina molteplici algoritmi per ottenere previsioni più accurate rispetto a quelle conseguibili utilizzando ciascun algoritmo da solo. Un'applicazione famosa di questo metodo è quella relativa all'assegnazione del Netflix Prize che si è svolta nel 2006: in quell'occasione ai vari team in competizione venivano fornite informazioni su come la metà degli utilizzatori presenti in un dataset aveva valutato un gran numero di film e l'obiettivo era capire come la restante metà degli utenti del dataset in questione avrebbe valutato gli stessi film. Il team vincitore ha utilizzato il metodo ensemble per battere l'algoritmo usato internamente da Netflix.
Apprendimento rinforzato
Un apprendimento di questo tipo analizza su base continua gli stimoli provenienti dall'ambiente al fine di calcolare l'azione migliore da intraprendere per il passo successivo. L'apprendimento rinforzato viene utilizzato in particolar modo nei problemi di controllo o nei giochi come gli scacchi o Go. Verso la fine degli anni '90 il computer Deep Blu di IBM ha utilizzato questo tipo di apprendimento per battere il campione del mondo di scacchi Garry Kasparov, mentre in tempi più recenti, nel 2018, AlphaGo ha sfruttato lo stesso metodo per sconfiggere Lee Sedol, uno dei migliori giocatori al mondo di Go.
Apprendimento automatico: dal cloud ai margini della rete
Solitamente l'apprendimento automatico utilizzato in applicazioni industriali era un processo che veniva svolto in un data center fisico o su un cloud virtuale, dove erano disponibili le risorse necessarie in termini di capacità di elaborazione (e di energia elettrica). Con l'avvento di IoT questo modello è stato posto in discussione. I dispositivi IoT che si trovano lontani dal cloud (quindi “at the edge”, ovvero ai margini o alla periferia della rete) acquisiscono continuamente grandi quantità di dati. Il trasferimento di questi dati verso un cloud centrale per l'apprendimento e la successiva ridistribuzione alla periferia è un processo non solo costoso ma anche particolarmente oneroso in termini di tempo.
Il ritardo temporale associato a questi trasferimenti rende di fatto impossibile lo svolgimento di attività che richiedono decisioni (o inferenze) in tempo reale, come accade in applicazioni quali guida autonoma e droni militari. Senza dimenticare che il trasferimento dei dati pone non pochi problemi in termini di sicurezza e integrità degli stessi.
Una via percorribile per risolvere questo problema consiste nell'eseguire il processo di apprendimento automatico direttamente ai margini della. Una soluzione di questo tipo non è comunque esente da svantaggi. I dispositivi IoT, a esempio, sono solitamente alimentati da piccole batterie e installati in luoghi che rendono difficile (se non addirittura impossibile) la loro sostituzione, per cui la fornitura di energia rappresenta un problema significativo.
www.mouser.it
..
Mark Patrick
Technical Marketing Manager EMEA Marketing
As Mouser Electronics’ Technical Marketing Manager for EMEA, Mark Patrick is responsible for the creation and circulation of technical content within the region — content that is key to Mouser’s strategy to support, inform and inspire its engineering audience.
Prior to leading the Technical Marketing team, Patrick was part of the EMEA Supplier Marketing team and played a vital role in establishing and developing relationships with key manufacturing partners.
In addition to a variety of technical and marketing positions, Patrick’s previous roles include eight years at Texas Instruments in Applications Support and Technical Sales.
A “hands-on” engineer at heart, with a passion for vintage synthesizers and motorcycles, he thinks nothing of carrying out repairs on either. Patrick holds a first class Honours Degree in Electronics Engineering from Coventry University.
Richiedi maggiori informazioni…