A cura di Luca Gilardi

Intelligenza artificiale e didattica

Insegniamo alle e con le macchine

Immagine decorativa - Illustrazione artistica di una IAIntelligenza artificiale e didattica: un connubio impossibile? Noi di Scuola di Robotica crediamo il contrario. Immaginiamo che l’intelligenza artificiale possa essere un valido strumento didattico. Infatti, è possibile utilizzarla – anche in modo semplice e accessibile per tutti – per realizzare lezioni divertenti, motivanti ed interattive. In questo modo si può fare didattica, e contemporaneamente si esplorano i concetti di Intelligenza Artificiale e Machine Learning.

L’IA è tra noi, nelle nostre vite quotidiane. Viene utilizzata nei nostri correttori automatici, nei sistemi di riconoscimento facciale, nei sistemi di riconoscimento vocale, nelle nostre fotocamere, negli assistenti vocali e così via. È quindi fondamentale fornire ai nostri studenti conoscenze e strumenti perché possano diventare fruitori attivi e consapevoli della tecnologia che ci circonda.

Prima di confrontarci con le applicazioni didattiche delle IA, però, cerchiamo di inquadrarle dal punto di vista tecnico e concettuale.

Cos’è l’Intelligenza Artificiale?

Secondo l’Enciclopedia della Scienza e della Tecnica (2008) Treccani (Edizione Online) “L’intelligenza artificiale studia i fondamenti teorici, le metodologie e le tecniche che consentono di progettare sistemi hardware e sistemi di programmi software atti a fornire all’elaboratore elettronico prestazioni che, a un osservatore comune, sembrerebbero essere di pertinenza esclusiva dell’intelligenza umana”. Si tratta, infatti, della scienza che tenta di realizzare elaboratori in grado di emulare il pensiero umano.  Tuttavia, al giorno d’oggi, ci riferiamo comunemente alle macchine dotate IA come macchine in grado di apprendere, anche se l’argomento è in realtà estremamente più ampio.

I metodi per poter realizzare una IA sono molti e in questo articolo non intendiamo – né possiamo – essere esaustivi. Forniremo qualche esempio di IA, dei motivi per cui le utilizziamo e di come ci possono essere utili, anche nell’educazione. Partiremo da problemi che per essere risolti non hanno bisogno di IA, per poi arrivare al Machine Learning: una delle strategie con cui è possibile realizzare le IA. Con l’avanzare dell’articolo percorreremo un’analisi che segue in parte il filo logico e storico l’evoluzione delle IA. Trascureremo, per semplicità, tanti aspetti. Questi potranno essere approfonditi su fonti esterne o in articoli futuri.

A cosa serve l’Intelligenza Artificiale?

Per quali ragioni abbiamo bisogno di algoritmi di Intelligenza Artificiale? Concentriamoci su sistemi che operano in un solo specifico ambito: le IA specializzate. Queste ci sono di fondamentale aiuto ogni qualvolta vogliamo risolvere problemi troppo complessi per una programmazione ordinaria.

A titolo di esempio riflettiamo su alcuni giochi, e valutiamo come sia possibile programmare una macchina in grado di giocarvi. Questa idea è poi estendibile in modo analogo anche ad altri esempi.

Innanzitutto: non sempre servono le Intelligenze Artificiali

Prendiamo in analisi il cubo di Rubik nella sua versione classica 3×3.

Immagine decorativa e illustrativa - Un cubo di Rubik 3 per 3Per la soluzione di questo problema esistono degli algoritmi. Ciò significa che è nota una sequenza di passi che se seguita porta inevitabilmente alla soluzione. Si è anche dimostrato che, da qualsiasi posizione iniziale si parta, è possibile risolvere il problema in massimo 20 mosse. In questo caso un sistema di Intelligenza Artificiale non ci serve: abbiamo a disposizione degli algoritmi noti ed efficienti.

Quando non abbiamo un algoritmo?

Immagine decorativa - Pedine degli scacchiPensiamo al gioco degli scacchi. In questo caso non è noto un algoritmo risolutivo semplice. Non possiamo, quindi, scrivere un programma che porti inevitabilmente alla soluzione del problema. Alcuni software risolutivi analizzano, data una mossa di un giocatore, la lista delle possibili mosse successive. Ovvero valutano le strade che possono condurre alla vincita della partita. Se analizzassimo tutte le combinazioni sapremmo sempre quale sequenza è vincente (approccio che si chiama “di forza bruta” o nel caso di giochi o sistemi simili minmax).

In realtà è impossibile realizzare, a causa dell’immenso numero di possibili mosse, un software in grado di analizzare tutte le possibili combinazioni. Una soluzione è considerarne solo una parte, e non sino a conclusione della partita. Il programma dovrà valutare quali siano le scelte più promettenti grazie ad analisi statistiche.

Partendo da queste considerazioni si possono realizzare algoritmi che tendono ad essere efficienti, e a dare l’idea di azioni “intelligenti”. Proprio questi approcci sono efficaci per giocare a scacchi, così come nella soluzione di altri problemi. Basti notare che il 11 Marzo 1997 si concluse l’ultima partita di una gara di scacchi fra l’allora campione del mondo Garry Kasparov e il computer Deep Blue della IBM. Si trattò della prima partita in cui una macchina fu in grado di battere un campione del mondo in un torneo regolamentare.

Estendendo questo ragionamento al di fuori dei giochi, molte sono le situazioni in cui analisi statistiche e probabilistiche permettono la soluzione, o la soluzione approssimata, di un problema.

Ci sono anche altre strade

Immagine decorativa - Una scacchiera del Go

Esistono, tuttavia, classi di problemi che non possono essere risolti con algoritmi, per forza bruta o in modo statistico. Solitamente succede poiché gli algoritmi sono ignoti o troppo complessi ed inefficienti. Nel caso dei giochi possiamo pensare al gioco cinese del Go (圍棋).

In tutte queste situazioni bisogna sfruttare altri approcci ad Intelligenza Artificiale, come le reti neurali o l’Intelligenza Artificiale addestrata. Questi non sono programmati specificamente per la risoluzione del problema, bensì lo sono in modo tale da simulare il comportamento dei neuroni o per apprendere.

Ci concentriamo ora sui sistemi in grado di apprendere. Anche se questa è un’idea riduttiva di IA,  al giorno d’oggi si tende a immaginare le Intelligenze Artificiali proprio come sistemi di questo tipo. In questo contesto per “apprendere” si intende il migliorare le proprie prestazioni con il proseguire dell’agire o con l’aumentare dell’esperienza.

Il Machine Learning

Questi metodi sono quelli che vengono chiamati Machine Learning, o Apprendimento Automatico. Si tratta di uno dei tanti modi con possiamo progettare dei sistemi di Intelligenza Artificiale, e che risulta particolarmente efficace e ad oggi molto utilizzato. L’apprendimento automatico è realizzabile in diversi modi, concentriamoci su quello che si chiama “apprendimento supervisionato”, comune e più semplice da immaginare.

In questo caso alla macchina vengono forniti degli esempi e vengono associati a cosa si vuole ottenere in uscita. Supponiamo di volere riconoscere/categorizzare delle immagini. Nel ML si forniscono alla macchina diverse immagini di esempio, e le rispettive categorie in cui queste dovranno essere inserite. La macchina quindi estrae autonomamente delle regole che associano gli ingressi (immagine) all’uscita (categoria). Una volta ottenute le regole, poi, sarà anche in grado di utilizzarle per successivi ingressi (nuove immagini).

Possiamo immaginarlo come il metodo con cui un bambino impara ad esplorare il mondo. Supponiamo che veda per la prima volta un nuovo oggetto. Immaginiamo sia una bottiglia. Supponiamo, ora, che qualcuno dica al bambino: “questa è una bottiglia”. Egli la analizzerà e scoprirà, e la successiva volta in cui vedrà il medesimo oggetto potrà riconoscerlo di nuovo. Evidentemente, però, le bottiglie non sono tutte uguali, quindi non sarà in grado di riconoscere ogni tipo di bottiglia. Se, però, gli forniamo abbastanza esempi di diverse bottiglie, sarà in grado di riconoscerne ogni tipo.

Introdurre Intelligenza Artificiale e Machine Learning nella didattica

A proposito di ML potete provare ad utilizzare la Teachable Machine di Google. Con questo software è possibile proprio scoprire ed esplorare il mondo dell’apprendimento automatico. Il medesimo approccio può essere utilizzato anche con un’estensione di mBlock 5, software derivato da Scratch. In mBlock è possibile addestrare una macchina a riconoscere le immagini, e quindi associare ad un riconoscimento un’azione di uno sprite o di un robot. Entrambi i software possono essere utilizzati sia nella didattica ordinaria, ma soprattutto per introdurre l’apprendimento automatico.

Un altro metodo interessante per introdurre il ML a scuola è utilizzare Quick, Draw! software con cui si può introdurre il concetto di categorizzazione e di apprendimento. Inoltre è possibile vedere tutti gli esempi con cui la macchina è stata addestrata. Il medesimo esperimento si può utilizzare anche per riflettere sul linguaggio, la comunicazione e l’iconografia, e su come la rappresentazione di un concetto sia anche dipendente dalla cultura e dalla società.

Se queste sono attività in cui andiamo ad addestrare un algoritmo, altrettanto possiamo utilizzarne altre in cui la macchina è già addestrata e noi ne sfruttiamo le capacità. Possiamo sfruttare dei sistemi in grado di riconoscere testi, o immagini, così come interpreti e assistenti vocali. Ancora, sono tanti gli esperimenti offerti da Google oltre alle Teachable Machine e Quick, Draw!

Fra i tanti, perché non sfruttare il Machine Learning per scoprire figure ricorrenti in pergamene e dipinti giapponesi con Beyond Scrolls & Screens? Oppure perché non fare lezione di storia e parlare dell’Antico Egitto, discutendo dei geroglifici, di come vengano studiati e di come venissero realizzati e interpretati, con un esperimento dedicato? Ancora potremmo realizzare una lezione di musica, in cui andiamo a scrivere una melodia su un pentagramma. Un un sistema di Machine Learning la armonizzerà ispirandosi allo stile di Bach con Assisted Melody.

Etica e società

Ricordiamoci, però, che i risvolti e gli aspetti etici, legali e sociali legati all’utilizzo delle macchine sono davvero tanti (vedi ad esempio questo articolo di approfondimento di Gianluca Pedemonte). Sulla base di questi possiamo chiedere ai nostri studenti che effettuino delle ricerche, o elaborino un loro pensiero o un dibattito a riguardo. Vi forniamo alcuni spunti di riflessione, ma tanti altri possono essere immaginati.

  • Possiamo definire una macchina effettivamente “intelligente”?
  • Possiamo assumere che una macchina “pensi”?
  • Da dove vengono i set di dati utilizzati per il training delle macchine? In alcuni casi siamo noi utenti a fornirle, talvolta in modo eticamente e socialmente poco chiaro (come ad esempio da registrazioni di richieste ai nostri assistenti vocali, sulla base di immagini caricate su servizi online più o meno “etici”, …). Da qui possiamo collegarci ad aspetti di privacy ed etica.
  • Nel caso in cui un sistema dotato di IA effettui una scelta che comporta un danno di chi è la responsabilità?

Concludiamo questo approfondimento con il seguente video estratto dal corso “Halocode: dalla programmazione visuale al Python”. Viene introdotto il concetto di Intelligenza Artificiale e di Machine Learning, e mostrata un’idea di applicazione. Si propone, appunto, di utilizzare la scheda programmabile Halocode per la realizzazione di un dispositivo a comando vocale.

Se vuoi scoprire di più a riguardo, insieme ad altre esperienze di programmazione e a spunti metodologici e didattici puoi iscriverti al corso.

Ulteriori spunti e riferimenti bibliografici

Intelligenza Artificiale – Wikipedia ITA

Introduzione all’ Intelligenza Artificiale – Paola Mello – Dipartimento di Informatica – Scienza e Ingegneria DISI Università di Bologna

intelligenzaartificiale.it

Deep Blue IBM – Wikipedia

Articolo sulla soluzione di forza bruta degli scacchi

Articolo di approfondimento sugli approcci software per soluzioni di giochi

A cura di Luca Gilardi

Intelligenza artificiale e didattica

Insegniamo alle e con le macchine

Immagine decorativa - Illustrazione artistica di una IAIntelligenza artificiale e didattica: un connubio impossibile? Noi di Scuola di Robotica crediamo il contrario. Immaginiamo che l’intelligenza artificiale possa essere un valido strumento didattico. Infatti, è possibile utilizzarla – anche in modo semplice e accessibile per tutti – per realizzare lezioni divertenti, motivanti ed interattive. In questo modo si può fare didattica, e contemporaneamente si esplorano i concetti di Intelligenza Artificiale e Machine Learning.

L’IA è tra noi, nelle nostre vite quotidiane. Viene utilizzata nei nostri correttori automatici, nei sistemi di riconoscimento facciale, nei sistemi di riconoscimento vocale, nelle nostre fotocamere, negli assistenti vocali e così via. È quindi fondamentale fornire ai nostri studenti conoscenze e strumenti perché possano diventare fruitori attivi e consapevoli della tecnologia che ci circonda.

Prima di confrontarci con le applicazioni didattiche delle IA, però, cerchiamo di inquadrarle dal punto di vista tecnico e concettuale.

Cos’è l’Intelligenza Artificiale?

Secondo l’Enciclopedia della Scienza e della Tecnica (2008) Treccani (Edizione Online) “L’intelligenza artificiale studia i fondamenti teorici, le metodologie e le tecniche che consentono di progettare sistemi hardware e sistemi di programmi software atti a fornire all’elaboratore elettronico prestazioni che, a un osservatore comune, sembrerebbero essere di pertinenza esclusiva dell’intelligenza umana”. Si tratta, infatti, della scienza che tenta di realizzare elaboratori in grado di emulare il pensiero umano.  Tuttavia, al giorno d’oggi, ci riferiamo comunemente alle macchine dotate IA come macchine in grado di apprendere, anche se l’argomento è in realtà estremamente più ampio.

I metodi per poter realizzare una IA sono molti e in questo articolo non intendiamo – né possiamo – essere esaustivi. Forniremo qualche esempio di IA, dei motivi per cui le utilizziamo e di come ci possono essere utili, anche nell’educazione. Partiremo da problemi che per essere risolti non hanno bisogno di IA, per poi arrivare al Machine Learning: una delle strategie con cui è possibile realizzare le IA. Con l’avanzare dell’articolo percorreremo un’analisi che segue in parte il filo logico e storico l’evoluzione delle IA. Trascureremo, per semplicità, tanti aspetti. Questi potranno essere approfonditi su fonti esterne o in articoli futuri.

A cosa serve l’Intelligenza Artificiale?

Per quali ragioni abbiamo bisogno di algoritmi di Intelligenza Artificiale? Concentriamoci su sistemi che operano in un solo specifico ambito: le IA specializzate. Queste ci sono di fondamentale aiuto ogni qualvolta vogliamo risolvere problemi troppo complessi per una programmazione ordinaria.

A titolo di esempio riflettiamo su alcuni giochi, e valutiamo come sia possibile programmare una macchina in grado di giocarvi. Questa idea è poi estendibile in modo analogo anche ad altri esempi.

Innanzitutto: non sempre servono le Intelligenze Artificiali

Prendiamo in analisi il cubo di Rubik nella sua versione classica 3×3.

Immagine decorativa e illustrativa - Un cubo di Rubik 3 per 3Per la soluzione di questo problema esistono degli algoritmi. Ciò significa che è nota una sequenza di passi che se seguita porta inevitabilmente alla soluzione. Si è anche dimostrato che, da qualsiasi posizione iniziale si parta, è possibile risolvere il problema in massimo 20 mosse. In questo caso un sistema di Intelligenza Artificiale non ci serve: abbiamo a disposizione degli algoritmi noti ed efficienti.

Quando non abbiamo un algoritmo?

Immagine decorativa - Pedine degli scacchiPensiamo al gioco degli scacchi. In questo caso non è noto un algoritmo risolutivo semplice. Non possiamo, quindi, scrivere un programma che porti inevitabilmente alla soluzione del problema. Alcuni software risolutivi analizzano, data una mossa di un giocatore, la lista delle possibili mosse successive. Ovvero valutano le strade che possono condurre alla vincita della partita. Se analizzassimo tutte le combinazioni sapremmo sempre quale sequenza è vincente (approccio che si chiama “di forza bruta” o nel caso di giochi o sistemi simili minmax).

In realtà è impossibile realizzare, a causa dell’immenso numero di possibili mosse, un software in grado di analizzare tutte le possibili combinazioni. Una soluzione è considerarne solo una parte, e non sino a conclusione della partita. Il programma dovrà valutare quali siano le scelte più promettenti grazie ad analisi statistiche.

Partendo da queste considerazioni si possono realizzare algoritmi che tendono ad essere efficienti, e a dare l’idea di azioni “intelligenti”. Proprio questi approcci sono efficaci per giocare a scacchi, così come nella soluzione di altri problemi. Basti notare che il 11 Marzo 1997 si concluse l’ultima partita di una gara di scacchi fra l’allora campione del mondo Garry Kasparov e il computer Deep Blue della IBM. Si trattò della prima partita in cui una macchina fu in grado di battere un campione del mondo in un torneo regolamentare.

Estendendo questo ragionamento al di fuori dei giochi, molte sono le situazioni in cui analisi statistiche e probabilistiche permettono la soluzione, o la soluzione approssimata, di un problema.

Ci sono anche altre strade

Immagine decorativa - Una scacchiera del Go

Esistono, tuttavia, classi di problemi che non possono essere risolti con algoritmi, per forza bruta o in modo statistico. Solitamente succede poiché gli algoritmi sono ignoti o troppo complessi ed inefficienti. Nel caso dei giochi possiamo pensare al gioco cinese del Go (圍棋).

In tutte queste situazioni bisogna sfruttare altri approcci ad Intelligenza Artificiale, come le reti neurali o l’Intelligenza Artificiale addestrata. Questi non sono programmati specificamente per la risoluzione del problema, bensì lo sono in modo tale da simulare il comportamento dei neuroni o per apprendere.

Ci concentriamo ora sui sistemi in grado di apprendere. Anche se questa è un’idea riduttiva di IA,  al giorno d’oggi si tende a immaginare le Intelligenze Artificiali proprio come sistemi di questo tipo. In questo contesto per “apprendere” si intende il migliorare le proprie prestazioni con il proseguire dell’agire o con l’aumentare dell’esperienza.

Il Machine Learning

Questi metodi sono quelli che vengono chiamati Machine Learning, o Apprendimento Automatico. Si tratta di uno dei tanti modi con possiamo progettare dei sistemi di Intelligenza Artificiale, e che risulta particolarmente efficace e ad oggi molto utilizzato. L’apprendimento automatico è realizzabile in diversi modi, concentriamoci su quello che si chiama “apprendimento supervisionato”, comune e più semplice da immaginare.

In questo caso alla macchina vengono forniti degli esempi e vengono associati a cosa si vuole ottenere in uscita. Supponiamo di volere riconoscere/categorizzare delle immagini. Nel ML si forniscono alla macchina diverse immagini di esempio, e le rispettive categorie in cui queste dovranno essere inserite. La macchina quindi estrae autonomamente delle regole che associano gli ingressi (immagine) all’uscita (categoria). Una volta ottenute le regole, poi, sarà anche in grado di utilizzarle per successivi ingressi (nuove immagini).

Possiamo immaginarlo come il metodo con cui un bambino impara ad esplorare il mondo. Supponiamo che veda per la prima volta un nuovo oggetto. Immaginiamo sia una bottiglia. Supponiamo, ora, che qualcuno dica al bambino: “questa è una bottiglia”. Egli la analizzerà e scoprirà, e la successiva volta in cui vedrà il medesimo oggetto potrà riconoscerlo di nuovo. Evidentemente, però, le bottiglie non sono tutte uguali, quindi non sarà in grado di riconoscere ogni tipo di bottiglia. Se, però, gli forniamo abbastanza esempi di diverse bottiglie, sarà in grado di riconoscerne ogni tipo.

Introdurre Intelligenza Artificiale e Machine Learning nella didattica

A proposito di ML potete provare ad utilizzare la Teachable Machine di Google. Con questo software è possibile proprio scoprire ed esplorare il mondo dell’apprendimento automatico. Il medesimo approccio può essere utilizzato anche con un’estensione di mBlock 5, software derivato da Scratch. In mBlock è possibile addestrare una macchina a riconoscere le immagini, e quindi associare ad un riconoscimento un’azione di uno sprite o di un robot. Entrambi i software possono essere utilizzati sia nella didattica ordinaria, ma soprattutto per introdurre l’apprendimento automatico.

Un altro metodo interessante per introdurre il ML a scuola è utilizzare Quick, Draw! software con cui si può introdurre il concetto di categorizzazione e di apprendimento. Inoltre è possibile vedere tutti gli esempi con cui la macchina è stata addestrata. Il medesimo esperimento si può utilizzare anche per riflettere sul linguaggio, la comunicazione e l’iconografia, e su come la rappresentazione di un concetto sia anche dipendente dalla cultura e dalla società.

Se queste sono attività in cui andiamo ad addestrare un algoritmo, altrettanto possiamo utilizzarne altre in cui la macchina è già addestrata e noi ne sfruttiamo le capacità. Possiamo sfruttare dei sistemi in grado di riconoscere testi, o immagini, così come interpreti e assistenti vocali. Ancora, sono tanti gli esperimenti offerti da Google oltre alle Teachable Machine e Quick, Draw!

Fra i tanti, perché non sfruttare il Machine Learning per scoprire figure ricorrenti in pergamene e dipinti giapponesi con Beyond Scrolls & Screens? Oppure perché non fare lezione di storia e parlare dell’Antico Egitto, discutendo dei geroglifici, di come vengano studiati e di come venissero realizzati e interpretati, con un esperimento dedicato? Ancora potremmo realizzare una lezione di musica, in cui andiamo a scrivere una melodia su un pentagramma. Un un sistema di Machine Learning la armonizzerà ispirandosi allo stile di Bach con Assisted Melody.

Etica e società

Ricordiamoci, però, che i risvolti e gli aspetti etici, legali e sociali legati all’utilizzo delle macchine sono davvero tanti (vedi ad esempio questo articolo di approfondimento di Gianluca Pedemonte). Sulla base di questi possiamo chiedere ai nostri studenti che effettuino delle ricerche, o elaborino un loro pensiero o un dibattito a riguardo. Vi forniamo alcuni spunti di riflessione, ma tanti altri possono essere immaginati.

  • Possiamo definire una macchina effettivamente “intelligente”?
  • Possiamo assumere che una macchina “pensi”?
  • Da dove vengono i set di dati utilizzati per il training delle macchine? In alcuni casi siamo noi utenti a fornirle, talvolta in modo eticamente e socialmente poco chiaro (come ad esempio da registrazioni di richieste ai nostri assistenti vocali, sulla base di immagini caricate su servizi online più o meno “etici”, …). Da qui possiamo collegarci ad aspetti di privacy ed etica.
  • Nel caso in cui un sistema dotato di IA effettui una scelta che comporta un danno di chi è la responsabilità?

Concludiamo questo approfondimento con il seguente video estratto dal corso “Halocode: dalla programmazione visuale al Python”. Viene introdotto il concetto di Intelligenza Artificiale e di Machine Learning, e mostrata un’idea di applicazione. Si propone, appunto, di utilizzare la scheda programmabile Halocode per la realizzazione di un dispositivo a comando vocale.

Se vuoi scoprire di più a riguardo, insieme ad altre esperienze di programmazione e a spunti metodologici e didattici puoi iscriverti al corso.

Ulteriori spunti e riferimenti bibliografici

Intelligenza Artificiale – Wikipedia ITA

Introduzione all’ Intelligenza Artificiale – Paola Mello – Dipartimento di Informatica – Scienza e Ingegneria DISI Università di Bologna

intelligenzaartificiale.it

Deep Blue IBM – Wikipedia

Articolo sulla soluzione di forza bruta degli scacchi

Articolo di approfondimento sugli approcci software per soluzioni di giochi