Immaginate di voler creare un software per svolgere un compito. Ci sono due modi principali per farlo e un modo intermedio.
Il metodo del codice
Il primo modo è quello di programmare il software per svolgere il compito, che chiamerò "metodo del codice". In questo caso, conoscete tutte le interazioni che possono verificarsi e le anticipate nel vostro programma. L'esempio più elementare è la sequenza "Se allora", in cui si dice al computer: se succede questo, allora fai questo. Ad esempio, se questo pulsante viene cliccato, allora mostra questa schermata.
Il metodo del codice non utilizza dati e non comporta alcuna formazione. La sequenza programmata avviene in modo deterministico, indipendentemente dai dati. Per essere chiari, i programmi possono essere creati utilizzando il metodo del codice scritto con codice reale o utilizzando strumenti visuali o simili.
Il metodo del treno
Il secondo metodo consiste nell'addestrare il software a svolgere il compito utilizzando i big data, che chiameremo "metodo di addestramento". In questo caso, si scrive un algoritmo, come una rete neurale, per consentire al software di essere addestrato sui dati. Quindi si scatena il software sui dati e il computer impara, attraverso un ciclo di feedback, a svolgere il compito. Ad esempio, si può insegnare al software a riconoscere i gatti addestrandolo con immagini di gatti.
Il metodo di addestramento è, ovviamente, l'essenza dell'intelligenza artificiale. È noto come approccio "big data" perché più dati di addestramento di alta qualità sono disponibili, migliore sarà il risultato. È necessario un numero minimo di dati di addestramento per ottenere risultati ragionevoli.
Nella sua forma più pura, il metodo train può utilizzare dati non strutturati e l'apprendimento stesso avviene in modo non supervisionato. Ciò significa che l'uomo non aiuta affatto il software nell'addestramento.
L'algoritmo apprenderà dal contesto implicito (non dall'etichettatura esplicita) se una data foto è di un gatto o meno. Ad esempio, gli utenti comuni di una piattaforma potrebbero inserire in modo spontaneo e ad hoc la parola gatto nella descrizione della loro foto, la parola gatto potrebbe essere presente nell'articolo in cui appare la foto, o se si tratta di un video, le persone potrebbero pronunciare la parola gatto quando appare il gatto. Tutti questi dati degli utenti sono ovviamente totalmente destrutturati (il che significa disordinati) e l'algoritmo dovrebbe capire cosa sia un gatto da questi dati disordinati.
Naturalmente, un algoritmo non supervisionato presenta potenzialmente grandi vantaggi. Ciò significa che potenzialmente si risparmierà un enorme sforzo da parte dell'uomo in termini di etichettatura e categorizzazione dei dati. Non è banale (né stimolante) etichettare accuratamente centomila immagini di gatti.
I problemi
Il problema principale del metodo di addestramento non strutturato è che necessita di molti più dati. Se i dati non sono disponibili, non è possibile addestrarlo in questo modo. Anche gli approcci supervisionati hanno bisogno di molti dati e soffrono dello stesso problema.
Questo è, ovviamente, il motivo per cui si cercano opportunità di applicazione dell'IA piuttosto che applicare l'IA a tutto. Gli algoritmi di IA funzionano meglio quando sono disponibili molti dati per l'addestramento (o possono generare molti dati, nel caso dei giochi).
Un altro problema dell'approccio non strutturato e non supervisionato è che è molto più difficile scrivere e testare l'algoritmo sui dati a disposizione. L'algoritmo deve essere più sofisticato per gestire i dati non strutturati rispetto a quelli ordinati e categorizzati.
Un approccio supervisionato aggiunge l'intenzionalità umana al processo in termini di categorizzazione dei dati, ma è ancora un metodo a treno, un approccio ai big data. Gli esseri umani che conoscono gli algoritmi possono etichettare i dati e, così facendo, ridurre il lavoro dell'algoritmo.
Il metodo dei piccoli dati
Esiste un metodo che è un mix tra il metodo del codice e quello del treno, che chiamerò "metodo dei piccoli dati". Questo è l'approccio dei piccoli dati a cui ho alluso nel titolo. È possibile combinare entrambe le tecniche di codice e di addestramento per ridurre in modo massiccio la quantità di dati necessari per addestrare un algoritmo.
Per il metodo dei piccoli dati, lo sviluppatore crea un modello di interazioni, ma poi questo modello viene addestrato su un set di dati molto più piccolo di quello necessario per l'approccio ai grandi dati. In questo modo il modello viene addestrato molto più velocemente di quanto sarebbe necessario con il metodo di addestramento puro.
Naturalmente questo approccio basato su dati ridotti ha senso se il tempo necessario per creare il modello e addestrare i dati è molto inferiore al tempo necessario per raccogliere i dati e addestrare l'algoritmo.
Ci sono scenari in cui la soluzione dei piccoli dati ci permetterebbe di fare cose che attualmente non sono fattibili. Il metodo dei piccoli dati è l'unico metodo disponibile se i dati necessari per il metodo di addestramento non esistono. In questo caso, l'algoritmo deve essere addestrato su dati creati manualmente. Di solito non è pratico creare decine di migliaia di record a mano.
L'approccio dei piccoli dati è attualmente oggetto di ricerca da parte di aziende di IA, tra cui botpress.io, e mi aspetto che diventi una tecnica mainstream negli anni a venire.
Condividi questo articolo su:
Costruite gratuitamente il vostro chatbot AI personalizzato
Iniziate a costruire un bot GPT personalizzato con la nostra intuitiva interfaccia drag & drop.
Iniziare è gratis! 🤖Non è richiesta la carta di credito
Rimanete aggiornati sulle ultime novità in materia di IA chatbots