Trasformare i dati in modelli
Obiettivi di apprendimento
Al completamento di questa unità, sarai in grado di:
- Spiegare le differenze tra algoritmi codificati manualmente e modelli addestrati.
- Definire il machine learning e come è correlato all'IA.
- Distinguere i dati strutturati da quelli non strutturati e spiegare come influiscono sull'addestramento.
Trailcast
Se vuoi ascoltare una registrazione di questo modulo, usa il player qui sotto. Quando hai finito, ricorda di tornare a ciascuna unità, consultare le risorse e completare le valutazioni associate.
Il trucco dietro alla magia
Quello che l'IA è in grado di fare sembra magia. E come per la magia, è naturale voler sbirciare dietro il sipario per vedere come si fa. Scoprirai che gli scienziati e i ricercatori informatici utilizzano molti dati, calcoli e potenza di elaborazione al posto degli specchi e dell'illusionismo. Imparare a capire come funziona veramente l'IA ti aiuterà a sfruttarne appieno il potenziale, evitando le insidie dovute ai suoi limiti.
Il passaggio dalla creazione all'addestramento
Per decenni i programmatori hanno scritto codice che riceve un input, lo elabora usando una serie di regole e restituisce un output. Ad esempio, ecco come trovare la media di un insieme di numeri.
- Input: 5, 8, 2, 9
- Processo: sommare i valori [5 + 8 + 2 + 9], quindi dividere per il numero di input [4]
- Output: 6
Questo semplice insieme di regole per la trasformazione di un input in un output è un esempio di algoritmo. Sono stati scritti algoritmi per eseguire operazioni molto sofisticate. Ma alcune operazioni hanno così tante regole (ed eccezioni) che è impossibile catturarle tutte in un algoritmo fatto a mano. Il nuoto è un buon esempio di attività difficile da incapsulare in un insieme di regole. Si possono ricevere consigli prima di tuffarsi in piscina, ma si capisce davvero come funziona solo quando si cerca di tenere la testa fuori dall'acqua. Alcune cose si imparano meglio con l'esperienza.
E se potessimo addestrare un computer nello stesso modo? Non gettandolo in una piscina, ma lasciando che capisca da solo cosa funziona per eseguire correttamente un'operazione? Imparare a nuotare è molto diverso dall'imparare a parlare una lingua straniera, per questo il tipo di addestramento dipende dall'operazione da eseguire. Vediamo alcuni dei modi in cui l'intelligenza artificiale viene addestrata.
Esperienza richiesta
Immagina che ogni volta che vai a comprare il latte in un negozio, riporti i dettagli del tragitto in un foglio di calcolo. È un po' strano, ma prova a immaginarlo. Imposti le colonne seguenti.
- È il fine settimana?
- Ora del giorno
- Sta piovendo o è bel tempo?
- Distanza dal negozio
- Totale minuti di viaggio
Dopo alcuni viaggi inizi a capire come le condizioni influiscano sul tempo necessario. Ad esempio, la pioggia allunga il tragitto, ma se piove c'è meno gente a fare la spesa. Il tuo cervello fa dei collegamenti tra gli input (weekend (fine settimana) [W], time (ora) [T], raining (pioggia) [R], distance (distanza) [D]) e l'output (minuti [M])).
Ma come possiamo fare perché un computer noti le tendenze nei dati in modo da poter elaborare anche una stima? Un modo è il metodo "prova, controlla e riprova". Ecco come si fa.
Passaggio 1: Assegna un "peso" a tutti gli input. Si tratta di un numero che rappresenta in che misura un input dovrebbe influire sull'output. Va bene iniziare con lo stesso peso per tutti.
Passaggio 2: Usa i pesi con i dati esistenti (e alcuni calcoli intelligenti che ora non approfondiamo) per stimare i minuti richiesti dal tragitto per comprare il latte. Possiamo confrontare la stima con i dati della cronologia. Non sarà affatto precisa, ma va bene così.
Passaggio 3: Lascia che il computer indovini un nuovo peso per ogni input, rendendone alcuni un po' più importanti di altri. Ad esempio, l'ora del giorno potrebbe essere più importante del fatto che stia piovendo o meno.
Passaggio 4: Esegui di nuovo i calcoli per verificare se i nuovi pesi generano una stima migliore. Se è così, significa che i pesi sono più adatti e stanno cambiando nella giusta direzione.
Passaggio 5: Ripeti i passaggi 3 e 4, lasciando che il computer modifichi i pesi fino a quando le stime non migliorano più.
A questo punto il computer ha stabilito i pesi per ogni input. Se consideri il peso come un'espressione della forza della connessione tra un input e l'output, puoi creare un diagramma che utilizza lo spessore delle linee per rappresentare il peso di una connessione.
In questo esempio sembra che l'ora del giorno abbia la connessione più forte e che apparentemente la pioggia non faccia molta differenza.
Questo processo per tentativi ha creato un modello per i nostri tragitti verso il negozio del latte. E come il modellino di una barca, possiamo portarlo in piscina per vedere se galleggia, per così dire. Quindi lo testiamo nel mondo reale e per i prossimi viaggi al negozio per comprare il latte, prima di partire, il modello può fare una stima di quanto tempo ci vorrà. Se ha ragione per un numero sufficiente di volte di seguito, puoi lasciare che il computer elabori una stima per tutti i viaggi futuri.
[Immagine generata da IA usando DreamStudio su stability.ai con il prompt "A robot is at a workbench putting together the pieces of a small model sailboat. The picture is drawn in 2D vector art style". (Un robot è al banco di lavoro e sta assemblando i pezzi di un modellino di barca a vela. L'immagine è disegnata nello stile di un'immagine vettoriale in 2D).]
Usare i dati giusti per il processo giusto
Si tratta di un esempio molto semplice di utilizzo dell'addestramento per creare un modello di IA, ma accenna ad alcune questioni importanti. In primo luogo, è un esempio di machine learning (ML), ovvero il processo in cui vengono usate grandi quantità di dati per addestrare un modello a fare previsioni, invece di creare manualmente un algoritmo.
In secondo luogo, non tutti i dati sono uguali. Nel nostro esempio di tragitto per il latte, il foglio di calcolo è ciò che possiamo chiamare dati strutturati. È bene organizzato, con etichette in ogni colonna in modo da conoscere il significato di ogni cella. I dati non strutturati invece sono qualcosa di simile a un articolo nelle notizie o un file con un'immagine senza etichetta. Il tipo di dati che hai a disposizione influirà sul tipo di addestramento che puoi effettuare.
In terzo luogo, con i dati strutturati del nostro foglio di calcolo, i computer possono eseguire l'apprendimento supervisionato. È considerato supervisionato perché possiamo assicurarci che ogni dato di input abbia un risultato corrispondente e atteso che possiamo verificare. Al contrario, i dati non strutturati vengono utilizzati per l'apprendimento non supervisionato, ovvero quando l'IA cerca di trovare connessioni nei dati senza sapere esattamente cosa sta cercando.
Fare in modo che il computer determini un singolo peso per ciascun input è solo un tipo di regime di addestramento. Ma spesso i sistemi interconnessi sono più complicati di quanto la ponderazione 1 a 1 possa rappresentare. Per fortuna, come vedremo nella prossima unità, ci sono altri modi per addestrare i modelli.