Corso gratuito di Harvard Introduzione all’IA con Python

Corso gratuito di Introduzione all'Intelligenza Artificiale con Python di Harvard

 

Uno dei problemi più grandi che i principianti affrontano quando cercano di imparare l’intelligenza artificiale è scegliere la migliore risorsa. Perché ci sono miliardi di risorse là fuori. CS50’s Introduction to Artificial Intelligence with Python insegnato all’Università di Harvard è un’ottima risorsa per imparare l’IA. 

Nel corso di 7 settimane, imparerai prima i concetti fondamentali della logica matematica e degli algoritmi di ricerca dei grafi. Successivamente, avrai anche la possibilità di esplorare l’apprendimento automatico, le reti neurali e i modelli di linguaggio. Ancora più importante, costruirai anche diversi progetti interessanti mentre segui questo corso. 

Se vuoi rinfrescare le tue basi di programmazione prima di fare questo corso, dai un’occhiata a CS50x Introduction to Computer Science, che è anche gratuito, per metterti al passo con le fondamenta della programmazione e dell’informatica.

Successivamente, daremo un’occhiata ai contenuti del corso.

Link del corso: CS50’s Introduction to Artificial Intelligence with Python

 

1. Ricerca 

 

Dati due punti A e B, gli algoritmi di ricerca mirano a trovare il percorso tra A e B. E la soluzione ottimale spesso è il percorso più breve tra A e B. Esempi includono app di navigazione che trovano il percorso più breve tra due posti.

Questo primo modulo sulla ricerca copre i seguenti argomenti:

  • Ricerca in profondità (DFS)
  • Ricerca in ampiezza (BFS)
  • Ricerca best-first greedy
  • Ricerca A*
  • Minimax
  • Potatura alpha-beta

I seguenti sono i progetti che costruirai per questo modulo:

  • Gradi di separazione tra due attori (ispirato al gioco dei Six Degrees of Kevin Bacon)
  • Un’intelligenza artificiale per giocare a tris

Link: Ricerca

 

2. Conoscenza

 

Il secondo modulo si concentra sugli agenti basati sulla conoscenza che utilizzano la conoscenza esistente per trarre conclusioni.

Quindi i moduli di ricerca (primo modulo) e di conoscenza si basano su algoritmi di grafi e logica matematica. Avrai la possibilità di imparare sull’apprendimento automatico e l’ottimizzazione nei moduli successivi.

Questo secondo modulo sulla conoscenza copre le seguenti tematiche:

  • Logica proposizionale
  • Implicazione
  • Inferenza
  • Verifica del modello
  • Risoluzione
  • Logica del primo ordine

I progetti che costruirai sono:

  • Cavaliere: un programma per risolvere enigmistiche logiche e un’intelligenza artificiale per giocare a campo minato
  • Costruire un’intelligenza artificiale per giocare a campo minato

Link: Conoscenza 

 

3. Incertezza

 

La probabilità è uno dei concetti più importanti nell’apprendimento automatico. Questo modulo ti insegnerà concetti essenziali di probabilità e variabili casuali. Avrai la possibilità di costruire due progetti interessanti per concludere questo modulo.

Questo modulo copre:

  • Probabilità
  • Probabilità condizionata
  • Variabili casuali
  • Indipendenza
  • Reti bayesiane
  • Campionamento
  • Modelli di Markov
  • Modelli di Markov nascosti

I progetti che costruirai sono:

  • Un’intelligenza artificiale che classifica le pagine web per importanza
  • Un’intelligenza artificiale che valuta la probabilità che una persona abbia una caratteristica genetica

Link: Incertezza

4. Ottimizzazione

L’ottimizzazione è uno strumento matematico importante che consente di risolvere una vasta gamma di problemi. In sostanza, l’ottimizzazione consente di trovare la soluzione più ottimale tra un insieme di soluzioni.

Questo modulo copre i seguenti algoritmi di ottimizzazione:

  • Ricerca locale
  • Salita della collina
  • Raffreddamento simulato
  • Programmazione lineare
  • Soddisfacimento dei vincoli
  • Ricerca all’indietro

Per questo modulo, costruirai un’intelligenza artificiale che genera cruciverba.

Link: Ottimizzazione

5. Apprendimento

Questo è il modulo in cui puoi esplorare l’apprendimento automatico e i dettagli dei vari algoritmi di apprendimento automatico. Imparerai i paradigmi di apprendimento supervisionato, non supervisionato e per rinforzo.

Gli argomenti trattati includono:

  • Classificazione del vicino più vicino
  • Apprendimento del percettrone
  • Support Vector Machine
  • Regressione
  • Funzioni di perdita
  • Regolarizzazione
  • Processo decisionale di Markov
  • Apprendimento Q
  • Raggruppamento K-Means

I seguenti sono i progetti per questo modulo:

  • Previsione se un cliente completerà un’operazione online
  • IA che apprende a giocare a Nim utilizzando l’apprendimento per rinforzo

Link: Apprendimento

6. Reti neurali

Questo modulo si concentra sui fondamenti dell’apprendimento profondo. Oltre a imparare le basi dell’apprendimento profondo, imparerai anche come costruire e allenare reti neurali con TensorFlow.

Ecco una panoramica degli argomenti trattati dal modulo delle reti neurali:

  • Reti neurali artificiali
  • Funzioni di attivazione
  • Discesa del gradiente
  • Backpropagation
  • Sovradattamento
  • TensorFlow
  • Convoluzione di immagini
  • Reti neurali convoluzionali
  • Reti neurali ricorrenti

Per concludere il tuo apprendimento, lavorerai su un progetto di riconoscimento dei segnali stradali.

Link: Reti neurali

7. Linguaggio

Questo modulo finale si concentra sul lavoro con il linguaggio naturale. Dai concetti di elaborazione del linguaggio alle trasformazioni e all’attenzione, ecco l’elenco degli argomenti trattati da questo modulo:

  • Sintassi
  • Semantica
  • Grammatica libera dal contesto
  • N-grammi
  • Borsa di parole
  • Attenzione
  • Trasformazioni

Ecco i progetti per questo modulo:

  • Un analizzatore che analizza frasi ed estrae gruppi nominali
  • Previsione di parole mascherate

Link: Linguaggio

Conclusione

Dagli algoritmi di grafici all’apprendimento automatico, all’apprendimento profondo e ai modelli di linguaggio, questo corso copre diversi argomenti fondamentali nell’ambito dell’intelligenza artificiale.

Sono sicuro che seguire le lezioni, rivedere gli appunti delle lezioni e lavorare su progetti ogni settimana sarà un’ottima esperienza di apprendimento. Buon apprendimento!

[Bala Priya C](https://twitter.com/balawc27)è una sviluppatrice e scrittrice tecnica indiana. Le piace lavorare nell’intersezione tra matematica, programmazione, data science e creazione di contenuti. I suoi ambiti di interesse e competenza includono DevOps, data science e natural language processing. Ama leggere, scrivere, programmare e il caffè! Attualmente sta lavorando per imparare e condividere la sua conoscenza con la comunità di sviluppatori scrivendo tutorial, guide pratiche, articoli di opinione e altro ancora.