commit
1fe1913e17
@ -0,0 +1,108 @@
|
||||
# Introduzione a machine learning
|
||||
|
||||
[](https://youtu.be/lTd9RSxS9ZE "ML, AI, deep learning: qual è la differenza?")
|
||||
|
||||
> 🎥 Fare clic sull'immagine sopra per un video che illustra la differenza tra machine learning, intelligenza artificiale (AI) e deep learning.
|
||||
|
||||
## [Quiz Pre-Lezione](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/1/)
|
||||
|
||||
### Introduzione
|
||||
|
||||
Benvenuti in questo corso su machine learning classico per principianti! Che si sia completamente nuovo su questo argomento, o un professionista esperto di ML che cerca di rispolverare un'area, è un piacere avervi con noi! Si vuole creare un punto di partenza amichevole per lo studio di ML e saremo lieti di valutare, rispondere e incorporare il vostro [feedback](https://github.com/microsoft/ML-For-Beginners/discussions).
|
||||
|
||||
[](https://youtu.be/h0e2HAPTGF4 " Introduzione a ML")
|
||||
|
||||
> 🎥 Fare clic sull'immagine sopra per un video: John Guttag del MIT introduce machine learning
|
||||
|
||||
### Iniziare con machine learning
|
||||
|
||||
Prima di iniziare con questo programma di studi, è necessario che il computer sia configurato e pronto per eseguire i notebook in locale.
|
||||
|
||||
- **Si configuri la propria macchina con l'aiuto di questi video**. Si scopra di più su come configurare la propria macchina in questa [serie di video](https://www.youtube.com/playlist?list=PLlrxD0HtieHhS8VzuMCfQD4uJ9yne1mE6).
|
||||
- **Imparare Python**. Si consiglia inoltre di avere una conoscenza di base di [Python](https://docs.microsoft.com/learn/paths/python-language/?WT.mc_id=academic-15963-cxa), un linguaggio di programmazione utile per i data scientist che si utilizzerà in questo corso.
|
||||
- **Imparare Node.js e JavaScript**. Talvolta in questo corso si usa anche JavaScript durante la creazione di app web, quindi sarà necessario disporre di [node](https://nodejs.org) e [npm](https://www.npmjs.com/) installati, oltre a [Visual Studio Code](https://code.visualstudio.com/) disponibile sia per lo sviluppo Python che JavaScript.
|
||||
- **Creare un account GitHub**. E' probabile che si [](https://github.com)disponga già di un account GitHub, ma in caso contrario occorre crearne uno e poi eseguire il fork di questo programma di studi per utilizzarlo autonomamente. (Sentitevi liberi di darci anche una stella 😊)
|
||||
- **Esplorare Scikit-learn**. Familiarizzare con Scikit-learn,[]([https://scikit-learn.org/stable/user_guide.html) un insieme di librerie ML a cui si farà riferimento in queste lezioni.
|
||||
|
||||
### Che cos'è machine learning?
|
||||
|
||||
Il termine "machine learning" è uno dei termini più popolari e usati di oggi. C'è una buona possibilità che si abbia sentito questo termine almeno una volta se si ha una sorta di familiarità con la tecnologia, indipendentemente dal campo in cui si lavora. I meccanismi di machine learning, tuttavia, sono un mistero per la maggior parte delle persone. Per un principiante di machine learning l'argomento a volte può sembrare soffocante. Pertanto, è importante capire cos'è effettivamente machine learning e impararlo passo dopo passo, attraverso esempi pratici.
|
||||
|
||||

|
||||
|
||||
> Google Trends mostra la recente "curva di hype" del termine "machine learning"
|
||||
|
||||
Si vive in un universo pieno di misteri affascinanti. Grandi scienziati come Stephen Hawking, Albert Einstein e molti altri hanno dedicato la loro vita alla ricerca di informazioni significative che svelino i misteri del mondo circostante. Questa è la condizione umana dell'apprendimento: un bambino impara cose nuove e scopre la struttura del suo mondo anno dopo anno mentre cresce fino all'età adulta.
|
||||
|
||||
Il cervello e i sensi di un bambino percepiscono i fatti dell'ambiente circostante e apprendono gradualmente i modelli di vita nascosti che aiutano il bambino a creare regole logiche per identificare i modelli appresi. Il processo di apprendimento del cervello umano rende l'essere umano la creatura vivente più sofisticata di questo mondo. Imparare continuamente scoprendo schemi nascosti e poi innovare su questi schemi ci consente di migliorarsi sempre di più per tutta la vita. Questa capacità di apprendimento e capacità di evoluzione è correlata a un concetto chiamato [plasticità cerebrale](https://www.simplypsychology.org/brain-plasticity.html). Superficialmente, si possono tracciare alcune somiglianze motivazionali tra il processo di apprendimento del cervello umano e i concetti di machine learning.
|
||||
|
||||
Il [cervello umano](https://www.livescience.com/29365-human-brain.html) percepisce le cose dal mondo reale, elabora le informazioni percepite, prende decisioni razionali ed esegue determinate azioni in base alle circostanze. Questo è ciò che viene chiamato comportarsi in modo intelligente. Quando si programma un facsimile del processo comportamentale intelligente su una macchina, si parla di intelligenza artificiale (AI).
|
||||
|
||||
Sebbene i termini possano essere confusi, machine learning (ML) è un importante sottoinsieme dell'intelligenza artificiale. **Machine learning si occupa di utilizzare algoritmi specializzati per scoprire informazioni significative e trovare modelli nascosti dai dati percepiti per corroborare il processo decisionale razionale**.
|
||||
|
||||

|
||||
|
||||
> Un diagramma che mostra le relazioni tra intelligenza artificiale (AI), machine learning, deep learning e data science. Infografica di [Jen Looper](https://twitter.com/jenlooper) ispirata a [questa grafica](https://softwareengineering.stackexchange.com/questions/366996/distinction-between-ai-ml-neural-networks-deep-learning-and-data-mining)
|
||||
|
||||
## Ecco cosa si imparerà in questo corso
|
||||
|
||||
In questo programma di studi, saranno tratteti solo i concetti fondamentali di machine learning che un principiante deve conoscere. Si tratterà di ciò che viene chiamato "machine learning classico" principalmente utilizzando Scikit-learn, una eccellente libreria che molti studenti usano per apprendere le basi. Per comprendere concetti più ampi di intelligenza artificiale o deep learning, è indispensabile una forte conoscenza fondamentale di machine learning, e quindi la si vorrebbe offrire qui.
|
||||
|
||||
In questo corso si imparerà:
|
||||
|
||||
- concetti fondamentali di machine learning
|
||||
- la storia di ML
|
||||
- ML e correttezza
|
||||
- tecniche di regressione ML
|
||||
- tecniche di classificazione ML
|
||||
- tecniche di clustering ML
|
||||
- tecniche di elaborazione del linguaggio naturale ML
|
||||
- tecniche ML di previsione delle serie temporali
|
||||
- reinforcement learning
|
||||
- applicazioni del mondo reale per ML
|
||||
## Cosa non verrà trattato
|
||||
|
||||
- deep learning
|
||||
- reti neurali
|
||||
- AI (intelligenza artificiale)
|
||||
|
||||
Per rendere l'esperienza di apprendimento migliore, si eviteranno le complessità delle reti neurali, del "deep learning" (costruzione di modelli a più livelli utilizzando le reti neurali) e dell'AI, di cui si tratterà in un altro programma di studi. Si offrirà anche un prossimo programma di studi di data science per concentrarsi su quell'aspetto di questo campo più ampio.
|
||||
## Perché studiare machine learning?
|
||||
|
||||
Machine learning, dal punto di vista dei sistemi, è definito come la creazione di sistemi automatizzati in grado di apprendere modelli nascosti dai dati per aiutare a prendere decisioni intelligenti.
|
||||
|
||||
Questa motivazione è vagamente ispirata dal modo in cui il cervello umano apprende determinate cose in base ai dati che percepisce dal mondo esterno.
|
||||
|
||||
✅ Si pensi per un minuto al motivo per cui un'azienda dovrebbe provare a utilizzare strategie di machine learning rispetto alla creazione di un motore cablato a codice basato su regole codificate.
|
||||
|
||||
### Applicazioni di machine learning
|
||||
|
||||
Le applicazioni di machine learning sono ormai quasi ovunque e sono onnipresenti come i dati che circolano nelle società, generati dagli smartphone, dispositivi connessi e altri sistemi. Considerando l'immenso potenziale degli algoritmi di machine learning all'avanguardia, i ricercatori hanno esplorato la loro capacità di risolvere problemi multidimensionali e multidisciplinari della vita reale con grandi risultati positivi.
|
||||
|
||||
**Si può utilizzare machine learning in molti modi**:
|
||||
|
||||
- Per prevedere la probabilità di malattia dall'anamnesi o dai rapporti di un paziente.
|
||||
- Per sfruttare i dati meteorologici per prevedere gli eventi meteorologici.
|
||||
- Per comprendere il sentimento di un testo.
|
||||
- Per rilevare notizie false per fermare la diffusione della propaganda.
|
||||
|
||||
La finanza, l'economia, le scienze della terra, l'esplorazione spaziale, l'ingegneria biomedica, le scienze cognitive e persino i campi delle scienze umanistiche hanno adattato machine learning per risolvere gli ardui problemi di elaborazione dati del proprio campo.
|
||||
|
||||
Machine learning automatizza il processo di individuazione dei modelli trovando approfondimenti significativi dal mondo reale o dai dati generati. Si è dimostrato di grande valore in applicazioni aziendali, sanitarie e finanziarie, tra le altre.
|
||||
|
||||
Nel prossimo futuro, comprendere le basi di machine learning sarà un must per le persone in qualsiasi campo a causa della sua adozione diffusa.
|
||||
|
||||
---
|
||||
## 🚀 Sfida
|
||||
|
||||
Disegnare, su carta o utilizzando un'app online come [Excalidraw](https://excalidraw.com/), la propria comprensione delle differenze tra AI, ML, deep learning e data science. Aggiungere alcune idee sui problemi che ciascuna di queste tecniche è in grado di risolvere.
|
||||
|
||||
## [Quiz post-lezione](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/2/)
|
||||
|
||||
## Revisione e Auto Apprendimento
|
||||
|
||||
Per saperne di più su come si può lavorare con gli algoritmi ML nel cloud, si segua questo [percorso di apprendimento](https://docs.microsoft.com/learn/paths/create-no-code-predictive-models-azure-machine-learning/?WT.mc_id=academic-15963-cxa).
|
||||
|
||||
## Compito
|
||||
|
||||
[Tempi di apprendimento brevi](assignment.it.md)
|
@ -0,0 +1,9 @@
|
||||
# Tempi di apprendimento brevi
|
||||
|
||||
## Istruzioni
|
||||
|
||||
In questo compito senza valutazione, si dovrebbe rispolverare Python e rendere il proprio ambiente attivo e funzionante, in grado di eseguire notebook.
|
||||
|
||||
Si segua questo [percorso di apprendimento di Python](https://docs.microsoft.com/learn/paths/python-language/?WT.mc_id=academic-15963-cxa) e quindi si configurino i propri sistemi seguendo questi video introduttivi:
|
||||
|
||||
https://www.youtube.com/playlist?list=PLlrxD0HtieHhS8VzuMCfQD4uJ9yne1mE6
|
@ -0,0 +1,118 @@
|
||||
# Storia di machine learning
|
||||
|
||||

|
||||
> Sketchnote di [Tomomi Imura](https://www.twitter.com/girlie_mac)
|
||||
|
||||
## [Quiz Pre-Lezione](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/3/)
|
||||
|
||||
In questa lezione, si camminerà attraverso le principali pietre miliari nella storia di machine learning e dell'intelligenza artificiale.
|
||||
|
||||
La storia dell'intelligenza artificiale, AI, come campo è intrecciata con la storia di machine learning, poiché gli algoritmi e i progressi computazionali alla base di machine learning hanno contribuito allo sviluppo dell'intelligenza artificiale. È utile ricordare che, mentre questi campi come distinte aree di indagine hanno cominciato a cristallizzarsi negli anni '50, importanti [scoperte algoritmiche, statistiche, matematiche, computazionali e tecniche](https://wikipedia.org/wiki/Timeline_of_machine_learning) hanno preceduto e si sono sovrapposte a questa era. In effetti, le persone hanno riflettuto su queste domande per [centinaia di anni](https://wikipedia.org/wiki/History_of_artificial_intelligence); questo articolo discute le basi intellettuali storiche dell'idea di una "macchina pensante".
|
||||
|
||||
## Scoperte rilevanti
|
||||
|
||||
- 1763, 1812 [Teorema di Bayes](https://it.wikipedia.org/wiki/Teorema_di_Bayes) e suoi predecessori. Questo teorema e le sue applicazioni sono alla base dell'inferenza, descrivendo la probabilità che un evento si verifichi in base alla conoscenza precedente.
|
||||
- 1805 [Metodo dei Minimi Quadrati](https://it.wikipedia.org/wiki/Metodo_dei_minimi_quadrati) del matematico francese Adrien-Marie Legendre. Questa teoria, che verrà trattata nell'unità Regressione, aiuta nell'adattamento dei dati.
|
||||
- 1913 [Processo Markoviano](https://it.wikipedia.org/wiki/Processo_markoviano) dal nome del matematico russo Andrey Markov è usato per descrivere una sequenza di possibili eventi basati su uno stato precedente.
|
||||
- 1957 [Percettrone](https://it.wikipedia.org/wiki/Percettrone) è un tipo di classificatore lineare inventato dallo psicologo americano Frank Rosenblatt che sta alla base dei progressi nel deep learning.
|
||||
- 1967 [Nearest Neighbor](https://wikipedia.org/wiki/Nearest_neighbor) è un algoritmo originariamente progettato per mappare i percorsi. In un contesto ML viene utilizzato per rilevare i modelli.
|
||||
- 1970 [La Retropropagazione dell'Errore](https://it.wikipedia.org/wiki/Retropropagazione_dell'errore) viene utilizzata per addestrare [le reti neurali feed-forward](https://it.wikipedia.org/wiki/Rete_neurale_feed-forward).
|
||||
- Le [Reti Neurali Ricorrenti](https://it.wikipedia.org/wiki/Rete_neurale_ricorrente) del 1982 sono reti neurali artificiali derivate da reti neurali feedforward che creano grafici temporali.
|
||||
|
||||
✅ Fare una piccola ricerca. Quali altre date si distinguono come fondamentali nella storia del machine learning e dell'intelligenza artificiale?
|
||||
## 1950: Macchine che pensano
|
||||
|
||||
Alan Turing, una persona davvero notevole che è stata votata [dal pubblico nel 2019](https://wikipedia.org/wiki/Icons:_The_Greatest_Person_of_the_20th_Century) come il più grande scienziato del XX secolo, è accreditato per aver contribuito a gettare le basi per il concetto di "macchina in grado di pensare". Ha affrontato gli oppositori e il suo stesso bisogno di prove empiriche di questo concetto in parte creando il [Test di Turing](https://www.bbc.com/news/technology-18475646), che verrà esplorato nelle lezioni di NLP (elaborazione del linguaggio naturale).
|
||||
|
||||
## 1956: Progetto di Ricerca Estivo Dartmouth
|
||||
|
||||
"Il Dartmouth Summer Research Project sull'intelligenza artificiale è stato un evento seminale per l'intelligenza artificiale come campo", qui è stato coniato il termine "intelligenza artificiale" ([fonte](https://250.dartmouth.edu/highlights/artificial-intelligence-ai-coined-dartmouth)).
|
||||
|
||||
> In linea di principio, ogni aspetto dell'apprendimento o qualsiasi altra caratteristica dell'intelligenza può essere descritto in modo così preciso che si può costruire una macchina per simularlo.
|
||||
|
||||
Il ricercatore capo, il professore di matematica John McCarthy, sperava "di procedere sulla base della congettura che ogni aspetto dell'apprendimento o qualsiasi altra caratteristica dell'intelligenza possa in linea di principio essere descritta in modo così preciso che si possa costruire una macchina per simularlo". I partecipanti includevano un altro luminare nel campo, Marvin Minsky.
|
||||
|
||||
Il workshop è accreditato di aver avviato e incoraggiato diverse discussioni tra cui "l'ascesa di metodi simbolici, sistemi focalizzati su domini limitati (primi sistemi esperti) e sistemi deduttivi contro sistemi induttivi". ([fonte](https://wikipedia.org/wiki/Dartmouth_workshop)).
|
||||
|
||||
## 1956 - 1974: "Gli anni d'oro"
|
||||
|
||||
Dagli anni '50 fino alla metà degli anni '70, l'ottimismo era alto nella speranza che l'AI potesse risolvere molti problemi. Nel 1967, Marvin Minsky dichiarò con sicurezza che "Entro una generazione... il problema della creazione di 'intelligenza artificiale' sarà sostanzialmente risolto". (Minsky, Marvin (1967), Computation: Finite and Infinite Machines, Englewood Cliffs, N.J.: Prentice-Hall)
|
||||
|
||||
La ricerca sull'elaborazione del linguaggio naturale è fiorita, la ricerca è stata perfezionata e resa più potente ed è stato creato il concetto di "micro-mondi", in cui compiti semplici sono stati completati utilizzando istruzioni in linguaggio semplice.
|
||||
|
||||
La ricerca è stata ben finanziata dalle agenzie governative, sono stati fatti progressi nel calcolo e negli algoritmi e sono stati costruiti prototipi di macchine intelligenti. Alcune di queste macchine includono:
|
||||
|
||||
* [Shakey il robot](https://wikipedia.org/wiki/Shakey_the_robot), che poteva manovrare e decidere come eseguire i compiti "intelligentemente".
|
||||
|
||||

|
||||
> Shakey nel 1972
|
||||
|
||||
* Eliza, una delle prime "chatterbot", poteva conversare con le persone e agire come una "terapeuta" primitiva. Si Imparerà di più su Eliza nelle lezioni di NLP.
|
||||
|
||||

|
||||
> Una versione di Eliza, un chatbot
|
||||
|
||||
* Il "mondo dei blocchi" era un esempio di un micromondo in cui i blocchi potevano essere impilati e ordinati e si potevano testare esperimenti su macchine per insegnare a prendere decisioni. I progressi realizzati con librerie come [SHRDLU](https://it.wikipedia.org/wiki/SHRDLU) hanno contribuito a far progredire l'elaborazione del linguaggio.
|
||||
|
||||
[](https://www.youtube.com/watch?v=QAJz4YKUwqw "Il mondo dei blocchi con SHRDLU")
|
||||
|
||||
> 🎥 Fare clic sull'immagine sopra per un video: Blocks world con SHRDLU
|
||||
|
||||
## 1974 - 1980: "L'inverno dell'AI"
|
||||
|
||||
Verso la metà degli anni '70, era diventato evidente che la complessità della creazione di "macchine intelligenti" era stata sottovalutata e che la sua promessa, data la potenza di calcolo disponibile, era stata esagerata. I finanziamenti si sono prosciugati e la fiducia nel settore è rallentata. Alcuni problemi che hanno influito sulla fiducia includono:
|
||||
|
||||
- **Limitazioni**. La potenza di calcolo era troppo limitata.
|
||||
- **Esplosione combinatoria**. La quantità di parametri necessari per essere addestrati è cresciuta in modo esponenziale man mano che veniva chiesto di più ai computer, senza un'evoluzione parallela della potenza e delle capacità di calcolo.
|
||||
- **Scarsità di dati**. C'era una scarsità di dati che ostacolava il processo di test, sviluppo e perfezionamento degli algoritmi.
|
||||
- **Stiamo facendo le domande giuste?**. Le stesse domande che venivano poste cominciarono ad essere messe in discussione. I ricercatori hanno iniziato a criticare i loro approcci:
|
||||
- I test di Turing furono messi in discussione attraverso, tra le altre idee, la "teoria della stanza cinese" che postulava che "la programmazione di un computer digitale può far sembrare che capisca il linguaggio ma non potrebbe produrre una vera comprensione". ([fonte](https://plato.stanford.edu/entries/chinese-room/))
|
||||
- L'etica dell'introduzione di intelligenze artificiali come la "terapeuta" ELIZA nella società è stata messa in discussione.
|
||||
|
||||
Allo stesso tempo, iniziarono a formarsi varie scuole di pensiero sull'AI. È stata stabilita una dicotomia tra pratiche ["scruffy" contro "neat AI"](https://wikipedia.org/wiki/Neats_and_scruffies). I laboratori _scruffy_ ottimizzavano i programmi per ore fino a quando non ottenevano i risultati desiderati. I laboratori _Neat_ "si focalizzavano sulla logica e sulla risoluzione formale dei problemi". ELIZA e SHRDLU erano ben noti _sistemi scruffy_. Negli anni '80, quando è emersa la richiesta di rendere riproducibili i sistemi ML, l'_approccio neat_ ha gradualmente preso il sopravvento in quanto i suoi risultati sono più spiegabili.
|
||||
|
||||
## Sistemi esperti degli anni '80
|
||||
|
||||
Man mano che il settore cresceva, i suoi vantaggi per le imprese diventavano più chiari e negli anni '80 lo stesso accadeva con la proliferazione di "sistemi esperti". "I sistemi esperti sono stati tra le prime forme di software di intelligenza artificiale (AI) di vero successo". ([fonte](https://wikipedia.org/wiki/Expert_system)).
|
||||
|
||||
Questo tipo di sistema è in realtà _ibrido_, costituito in parte da un motore di regole che definisce i requisiti aziendali e un motore di inferenza che sfrutta il sistema di regole per dedurre nuovi fatti.
|
||||
|
||||
Questa era ha visto anche una crescente attenzione rivolta alle reti neurali.
|
||||
|
||||
## 1987 - 1993: AI 'Chill'
|
||||
|
||||
La proliferazione di hardware specializzato per sistemi esperti ha avuto lo sfortunato effetto di diventare troppo specializzato. L'ascesa dei personal computer ha anche gareggiato con questi grandi sistemi centralizzati specializzati. La democratizzazione dell'informatica era iniziata e alla fine ha spianato la strada alla moderna esplosione dei big data.
|
||||
|
||||
## 1993 - 2011
|
||||
|
||||
Questa epoca ha visto una nuova era per ML e AI per essere in grado di risolvere alcuni dei problemi che erano stati causati in precedenza dalla mancanza di dati e potenza di calcolo. La quantità di dati ha iniziato ad aumentare rapidamente e a diventare più ampiamente disponibile, nel bene e nel male, soprattutto con l'avvento degli smartphone intorno al 2007. La potenza di calcolo si è ampliata in modo esponenziale e gli algoritmi si sono evoluti di pari passo. Il campo ha iniziato a maturare quando i giorni a ruota libera del passato hanno iniziato a cristallizzarsi in una vera disciplina.
|
||||
|
||||
## Adesso
|
||||
|
||||
Oggi, machine learning e intelligenza artificiale toccano quasi ogni parte della nostra vita. Questa era richiede un'attenta comprensione dei rischi e dei potenziali effetti di questi algoritmi sulle vite umane. Come ha affermato Brad Smith di Microsoft, "La tecnologia dell'informazione solleva questioni che vanno al cuore delle protezioni fondamentali dei diritti umani come la privacy e la libertà di espressione. Questi problemi aumentano la responsabilità delle aziende tecnologiche che creano questi prodotti. A nostro avviso, richiedono anche un'attenta regolamentazione del governo e lo sviluppo di norme sugli usi accettabili" ([fonte](https://www.technologyreview.com/2019/12/18/102365/the-future-of-ais-impact-on-society/)).
|
||||
|
||||
Resta da vedere cosa riserva il futuro, ma è importante capire questi sistemi informatici e il software e gli algoritmi che eseguono. Ci si augura che questo programma di studi aiuti ad acquisire una migliore comprensione in modo che si possa decidere in autonomia.
|
||||
|
||||
[](https://www.youtube.com/watch?v=mTtDfKgLm54 " storia del deep learning")
|
||||
> 🎥 Fare clic sull'immagine sopra per un video: Yann LeCun discute la storia del deep learning in questa lezione
|
||||
|
||||
---
|
||||
|
||||
## 🚀 Sfida
|
||||
|
||||
Approfondire uno di questi momenti storici e scoprire
|
||||
di più sulle persone che stanno dietro ad essi. Ci sono personaggi affascinanti e nessuna scoperta scientifica è mai stata creata in un vuoto culturale. Cosa si è scoperto?
|
||||
|
||||
## [Quiz post-lezione](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/4/)
|
||||
|
||||
## Revisione e Auto Apprendimento
|
||||
|
||||
Ecco gli elementi da guardare e ascoltare:
|
||||
|
||||
[Questo podcast in cui Amy Boyd discute l'evoluzione dell'AI](http://runasradio.com/Shows/Show/739)
|
||||
|
||||
[](https://www.youtube.com/watch?v=EJt3_bFYKss "La storia dell'AI di Amy Boyd")
|
||||
|
||||
## Compito
|
||||
|
||||
[Creare una sequenza temporale](assignment.it.md)
|
@ -0,0 +1,11 @@
|
||||
# Creare una sequenza temporale
|
||||
|
||||
## Istruzioni
|
||||
|
||||
Usando [questo repository](https://github.com/Digital-Humanities-Toolkit/timeline-builder), si crei una sequenza temporale di alcuni aspetti della storia di algoritmi, matematica, statistica, AI o ML, o una combinazione di questi. Ci si può concentrare su una persona, un'idea o un lungo lasso di tempo di pensiero. Ci si assicuri di aggiungere elementi multimediali.
|
||||
|
||||
## Rubrica
|
||||
|
||||
| Criteri | Ottimo | Adeguato | Necessita miglioramento |
|
||||
| -------- | ------------------------------------------------- | --------------------------------------- | ---------------------------------------------------------------- |
|
||||
| | Una sequenza temporale distribuita viene presentata come una pagina GitHub | Il codice è incompleto e non è stato distribuito | La sequenza temporale è incompleta, non ben studiata e non implementata |
|
@ -0,0 +1,11 @@
|
||||
# Esplorare Fairlearn
|
||||
|
||||
## Istruzioni
|
||||
|
||||
In questa lezione si è appreso di Fairlearn, un "progetto open source guidato dalla comunità per aiutare i data scientist a migliorare l'equità dei sistemi di intelligenza artificiale". Per questo compito, esplorare uno dei [notebook](https://fairlearn.org/v0.6.2/auto_examples/index.html) di Fairlearn e riportare i propri risultati in un documento o in una presentazione.
|
||||
|
||||
## Rubrica
|
||||
|
||||
| Criteri | Ottimo | Adeguato | Necessita miglioramento |
|
||||
| -------- | --------- | -------- | ----------------- |
|
||||
| | Viene presentato un documento o una presentazione powerpoint in cui si discutono i sistemi di Fairlearn, il notebook che è stato eseguito e le conclusioni tratte dall'esecuzione | Viene presentato un documento senza conclusioni | Non viene presentato alcun documento |
|
@ -0,0 +1,110 @@
|
||||
# Tecniche di Machine Learning
|
||||
|
||||
Il processo di creazione, utilizzo e mantenimento dei modelli di machine learning e dei dati che utilizzano è un processo molto diverso da molti altri flussi di lavoro di sviluppo. In questa lezione si demistifica il processo, e si delineano le principali tecniche che occorre conoscere. Si dovrà:
|
||||
|
||||
- Comprendere i processi ad alto livello alla base di machine learning.
|
||||
- Esplorare concetti di base come "modelli", "previsioni" e "dati di addestramento".
|
||||
|
||||
## [Quiz Pre-Lezione](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/7/)
|
||||
|
||||
## Introduzione
|
||||
|
||||
Ad alto livello, il mestiere di creare processi di apprendimento automatico (ML) comprende una serie di passaggi:
|
||||
|
||||
1. **Decidere circa la domanda**. La maggior parte dei processi ML inizia ponendo una domanda alla quale non è possibile ottenere risposta da un semplice programma condizionale o da un motore basato su regole. Queste domande spesso ruotano attorno a previsioni basate su una raccolta di dati.
|
||||
2. **Raccogliere e preparare i dati**. Per poter rispondere alla domanda, servono dati. La qualità e, a volte, la quantità dei dati determineranno quanto bene sarà possibile rispondere alla domanda iniziale. La visualizzazione dei dati è un aspetto importante di questa fase. Questa fase include anche la suddivisione dei dati in un gruppo di addestramento (training) e test per costruire un modello.
|
||||
3. **Scegliere un metodo di addestramento**. A seconda della domanda e della natura dei dati, è necessario scegliere come si desidera addestrare un modello per riflettere al meglio i dati e fare previsioni accurate su di essi. Questa è la parte del processo di ML che richiede competenze specifiche e, spesso, una notevole quantità di sperimentazione.
|
||||
4. **Addestrare il modello**. Usando i dati di addestramento, si utilizzeranno vari algoritmi per addestrare un modello a riconoscere modelli nei dati. Il modello potrebbe sfruttare pesi interni che possono essere regolati per privilegiare alcune parti dei dati rispetto ad altre per costruire un modello migliore.
|
||||
5. **Valutare il modello**. Si utilizzano dati mai visti prima (i dati di test) da quelli raccolti per osservare le prestazioni del modello.
|
||||
6. **Regolazione dei parametri**. In base alle prestazioni del modello, si può ripetere il processo utilizzando parametri differenti, o variabili, che controllano il comportamento degli algoritmi utilizzati per addestrare il modello.
|
||||
7. **Prevedere**. Usare nuovi input per testare la precisione del modello.
|
||||
|
||||
## Che domanda fare
|
||||
|
||||
I computer sono particolarmente abili nello scoprire modelli nascosti nei dati. Questa caratteristica è molto utile per i ricercatori che hanno domande su un determinato campo a cui non è possibile rispondere facilmente creando un motore di regole basato su condizioni. Dato un compito attuariale, ad esempio, un data scientist potrebbe essere in grado di costruire manualmente regole sulla mortalità dei fumatori rispetto ai non fumatori.
|
||||
|
||||
Quando molte altre variabili vengono introdotte nell'equazione, tuttavia, un modello ML potrebbe rivelarsi più efficiente per prevedere i tassi di mortalità futuri in base alla storia sanitaria passata. Un esempio più allegro potrebbe essere fare previsioni meteorologiche per il mese di aprile in una determinata località sulla base di dati che includono latitudine, longitudine, cambiamento climatico, vicinanza all'oceano, modelli della corrente a getto e altro ancora.
|
||||
|
||||
✅ Questa [presentazione](https://www2.cisl.ucar.edu/sites/default/files/0900%20June%2024%20Haupt_0.pdf) sui modelli meteorologici offre una prospettiva storica per l'utilizzo di ML nell'analisi meteorologica.
|
||||
|
||||
## Attività di pre-costruzione
|
||||
|
||||
Prima di iniziare a costruire il proprio modello, ci sono diverse attività da completare. Per testare la domanda e formare un'ipotesi basata sulle previsioni di un modello, occorre identificare e configurare diversi elementi.
|
||||
|
||||
### Dati
|
||||
|
||||
Per poter rispondere con sicurezza alla domanda, serve una buona quantità di dati del tipo giusto. Ci sono due cose da fare a questo punto:
|
||||
|
||||
- **Raccogliere dati**. Tenendo presente la lezione precedente sull'equità nell'analisi dei dati, si raccolgano i dati con cura. Ci sia consapevolezza delle fonti di questi dati, di eventuali pregiudizi intrinseci che potrebbero avere e si documenti la loro origine.
|
||||
- **Preparare i dati**. Ci sono diversi passaggi nel processo di preparazione dei dati. Potrebbe essere necessario raccogliere i dati e normalizzarli se provengono da fonti diverse. Si può migliorare la qualità e la quantità dei dati attraverso vari metodi come la conversione di stringhe in numeri (come si fa in [Clustering](../../../5-Clustering/1-Visualize/transaltions/README.it.md)). Si potrebbero anche generare nuovi dati, basati sull'originale (come si fa in [Classificazione](../../../4-Classification/1-Introduction/translations/README.it.md)). Si possono pulire e modificare i dati (come verrà fatto prima della lezione sull'[app Web](../../../3-Web-App/translations/README.it.md) ). Infine, si potrebbe anche aver bisogno di renderli casuali e mescolarli, a seconda delle proprie tecniche di addestramento.
|
||||
|
||||
✅ Dopo aver raccolto ed elaborato i propri dati, si prenda un momento per vedere se la loro forma consentirà di rispondere alla domanda prevista. Potrebbe essere che i dati non funzionino bene nello svolgere il compito assegnato, come si scopre nelle lezioni di [Clustering](../../../5-Clustering/1-Visualize/translations/README.it.md)!
|
||||
|
||||
### Selezione della variabile caratteristica
|
||||
|
||||
Una [caratteristica](https://www.datasciencecentral.com/profiles/blogs/an-introduction-to-variable-and-feature-selection) è una proprietà misurabile dei propri dati. In molti insiemi di dati è espressa come un'intestazione di colonna come "data", "dimensione" o "colore". La propria variabile caratteristica, solitamente rappresentata come `y` nel codice, rappresenta la risposta alla domanda che si sta cercando di porre ai propri dati: a dicembre, di che **colore** saranno le zucche più economiche? A San Francisco, quali quartieri avranno il miglior **prezzo** immobiliare?
|
||||
|
||||
🎓 **Selezione ed estrazione della caratteristica** Come si fa a sapere quale variabile scegliere quando si costruisce un modello? Probabilmente si dovrà passare attraverso un processo di selezione o estrazione delle caratteristiche per scegliere le variabili giuste per il modello più efficace. Tuttavia, non è la stessa cosa: "L'estrazione delle caratteristiche crea nuove caratteristiche dalle funzioni delle caratteristiche originali, mentre la selezione delle caratteristiche restituisce un sottoinsieme delle caratteristiche". ([fonte](https://it.wikipedia.org/wiki/Selezione_delle_caratteristiche))
|
||||
|
||||
### Visualizzare i dati
|
||||
|
||||
Un aspetto importante del bagaglio del data scientist è la capacità di visualizzare i dati utilizzando diverse eccellenti librerie come Seaborn o MatPlotLib. Rappresentare visivamente i propri dati potrebbe consentire di scoprire correlazioni nascoste che si possono sfruttare. Le visualizzazioni potrebbero anche aiutare a scoprire pregiudizi o dati sbilanciati (come si scopre in [Classificazione](../../../4-Classification/2-Classifiers-1/translations/README.it.md)).
|
||||
|
||||
### Dividere l'insieme di dati
|
||||
|
||||
Prima dell'addestramento, è necessario dividere l'insieme di dati in due o più parti di dimensioni diverse che rappresentano comunque bene i dati.
|
||||
|
||||
- **Addestramento**. Questa parte dell'insieme di dati è adatta al proprio modello per addestrarlo. Questo insieme costituisce la maggior parte dell'insieme di dati originale.
|
||||
- **Test**. Un insieme di dati di test è un gruppo indipendente di dati, spesso raccolti dai dati originali, che si utilizzano per confermare le prestazioni del modello creato.
|
||||
- **Convalida**. Un insieme di convalida è un gruppo indipendente più piccolo di esempi da usare per ottimizzare gli iperparametri, o architettura, del modello per migliorarlo. A seconda delle dimensioni dei propri dati e della domanda che si sta ponendo, si potrebbe non aver bisogno di creare questo terzo insieme (come si nota in [Previsione delle Serie Temporali](../../../7-TimeSeries/1-Introduction/translations/README.it.md)).
|
||||
|
||||
## Costruire un modello
|
||||
|
||||
Utilizzando i dati di addestramento, l'obiettivo è costruire un modello o una rappresentazione statistica dei propri dati, utilizzando vari algoritmi per **addestrarlo** . L'addestramento di un modello lo espone ai dati e consente di formulare ipotesi sui modelli percepiti che scopre, convalida e accetta o rifiuta.
|
||||
|
||||
### Decidere un metodo di addestramento
|
||||
|
||||
A seconda della domanda e della natura dei dati, si sceglierà un metodo per addestrarlo. Passando attraverso [la documentazione di Scikit-learn](https://scikit-learn.org/stable/user_guide.html), che si usa in questo corso, si possono esplorare molti modi per addestrare un modello. A seconda della propria esperienza, si potrebbe dover provare diversi metodi per creare il modello migliore. È probabile che si attraversi un processo in cui i data scientist valutano le prestazioni di un modello fornendogli dati non visti, verificandone l'accuratezza, i pregiudizi e altri problemi che degradano la qualità e selezionando il metodo di addestramento più appropriato per l'attività da svolgere.
|
||||
|
||||
### Allenare un modello
|
||||
|
||||
Occorre armarsi dei propri dati di allenamento, per essere pronti per "adattarli" per creare un modello. Si noterà che in molte librerie ML si trova il codice "model.fit" - è in questo momento che si inviano i propri dati come un vettore di valori (di solito "X") e una variabile di caratteristica (di solito "y" ).
|
||||
|
||||
### Valutare il modello
|
||||
|
||||
Una volta completato il processo di addestramento (potrebbero essere necessarie molte iterazioni, o "epoche", per addestrare un modello di grandi dimensioni), si sarà in grado di valutare la qualità del modello utilizzando i dati di test per valutarne le prestazioni. Questi dati sono un sottoinsieme dei dati originali che il modello non ha analizzato in precedenza. Si può stampare una tabella di metriche sulla qualità del proprio modello.
|
||||
|
||||
🎓 **Adattamento del modello**
|
||||
|
||||
Nel contesto di machine learning, l'adattamento del modello si riferisce all'accuratezza della funzione sottostante del modello mentre tenta di analizzare dati con cui non ha familiarità.
|
||||
|
||||
🎓 **Inadeguatezza** o **sovraadattamento** sono problemi comuni che degradano la qualità del modello, poiché il modello non si adatta abbastanza bene o troppo bene. Ciò fa sì che il modello esegua previsioni troppo allineate o troppo poco allineate con i suoi dati di addestramento. Un modello overfit (sovraaddestrato) prevede troppo bene i dati di addestramento perché ha appreso troppo bene i dettagli e il rumore dei dati. Un modello underfit (inadeguato) non è accurato in quanto non può né analizzare accuratamente i suoi dati di allenamento né i dati che non ha ancora "visto".
|
||||
|
||||

|
||||
> Infografica di [Jen Looper](https://twitter.com/jenlooper)
|
||||
|
||||
## Sintonia dei parametri
|
||||
|
||||
Una volta completato l'addestramento iniziale, si osservi la qualità del modello e si valuti di migliorarlo modificando i suoi "iperparametri". Maggiori informazioni sul processo [nella documentazione](https://docs.microsoft.com/en-us/azure/machine-learning/how-to-tune-hyperparameters?WT.mc_id=academic-15963-cxa).
|
||||
|
||||
## Previsione
|
||||
|
||||
Questo è il momento in cui si possono utilizzare dati completamente nuovi per testare l'accuratezza del proprio modello. In un'impostazione ML "applicata", in cui si creano risorse Web per utilizzare il modello in produzione, questo processo potrebbe comportare la raccolta dell'input dell'utente (ad esempio, la pressione di un pulsante) per impostare una variabile e inviarla al modello per l'inferenza, oppure valutazione.
|
||||
|
||||
In queste lezioni si scoprirà come utilizzare questi passaggi per preparare, costruire, testare, valutare e prevedere - tutti gesti di un data scientist e altro ancora, mentre si avanza nel proprio viaggio per diventare un ingegnere ML "full stack".
|
||||
|
||||
---
|
||||
|
||||
## 🚀 Sfida
|
||||
|
||||
Disegnare un diagramma di flusso che rifletta i passaggi di un professionista di ML. Dove ci si vede in questo momento nel processo? Dove si prevede che sorgeranno difficoltà? Cosa sembra facile?
|
||||
|
||||
## [Quiz post-lezione](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/8/)
|
||||
|
||||
## Revisione e Auto Apprendimento
|
||||
|
||||
Cercare online le interviste con i data scientist che discutono del loro lavoro quotidiano. Eccone [una](https://www.youtube.com/watch?v=Z3IjgbbCEfs).
|
||||
|
||||
## Compito
|
||||
|
||||
[Intervista a un data scientist](assignment.it.md)
|
@ -0,0 +1,11 @@
|
||||
# Intervista a un data scientist
|
||||
|
||||
## Istruzioni
|
||||
|
||||
Nella propria azienda, in un gruppo di utenti, o tra amici o compagni di studio, si parli con qualcuno che lavora professionalmente come data scientist. Si scriva un breve documento (500 parole) sulle loro occupazioni quotidiane. Sono specialisti o lavorano "full stack"?
|
||||
|
||||
## Rubrica
|
||||
|
||||
| Criteri | Ottimo | Adeguato | Necessita miglioramento |
|
||||
| -------- | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------ | --------------------- |
|
||||
| | Un saggio della lunghezza corretta, con fonti attribuite, è presentato come file .doc | Il saggio è attribuito male o più corto della lunghezza richiesta | Non viene presentato alcun saggio |
|
@ -0,0 +1,22 @@
|
||||
# Introduzione a machine learning
|
||||
|
||||
In questa sezione del programma di studi, verranno presentati i concetti di base sottostanti machine learning, di cosa si tratta, e si imparerà la sua storia e le tecniche utilizzate dai ricercatori per lavorarci. Si esplorerà insieme questo nuovo mondo di ML!
|
||||
|
||||

|
||||
> Foto di <a href="https://unsplash.com/@bill_oxford?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText">Bill Oxford</a> su <a href="https://unsplash.com/s/photos/globe?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText">Unsplash</a>
|
||||
|
||||
### Lezioni
|
||||
|
||||
1. [Introduzione a machine learning](../1-intro-to-ML/translations/README.it.md)
|
||||
1. [La storia di machine learning e dell'AI](../2-history-of-ML/translations/README.it.md)
|
||||
1. [Equità e machine learning](../3-fairness/translations/README.it.md)
|
||||
1. [Tecniche di machine learning](../4-techniques-of-ML/translations/README.it.md)
|
||||
### Crediti
|
||||
|
||||
"Introduzione a Machine Learning" scritto con ♥️ da un team di persone tra cui [Muhammad Sakib Khan Inan](https://twitter.com/Sakibinan), [Ornella Altunyan](https://twitter.com/ornelladotcom) e [Jen Looper](https://twitter.com/jenlooper)
|
||||
|
||||
"La Storia di Machine Learning" scritto con ♥️ da [Jen Looper](https://twitter.com/jenlooper) e [Amy Boyd](https://twitter.com/AmyKateNicho)
|
||||
|
||||
"Equità e Machine Learning" scritto con ♥️ da [Tomomi Imura](https://twitter.com/girliemac)
|
||||
|
||||
"Tecniche di Machine Learning" scritto con ♥️ da [Jen Looper](https://twitter.com/jenlooper) e [Chris Noring](https://twitter.com/softchris)
|
Loading…
Reference in new issue