
Sviluppatori curiosi di Data Science e AI che vogliono capire i concetti fondamentali prima di mettere le mani sui dati.

Disciplina che applica il metodo scientifico ai dati per estrarne conoscenza utile, combinando programmazione, matematica e statistica. Trasforma dati grezzi in modelli e analisi a supporto delle decisioni. Concetto di Data Science introdotto da Tukey (1962), formalizzato da Cleveland (2001).

Quale domanda vogliamo rispondere con i dati?
Raccolta da database, API, file, sensori
Gestione valori mancanti, duplicati, outlier
Visualizzazioni, correlazioni, pattern
Algoritmi di ML, validazione, tuning
Report, dashboard, storytelling con i dati


Python • R • SQL • Julia
Pandas • NumPy • Polars
Matplotlib • Seaborn • Plotly
scikit-learn • XGBoost • LightGBM
TensorFlow • PyTorch • Keras
Spark • Hadoop • Dask
Jupyter • VS Code • Colab
AWS SageMaker • Databricks • MLflow

L'intelligenza artificiale è lo sviluppo di sistemi capaci di risolvere problemi che richiederebbero intelletto umano. Branca dell'informatica che studia come progettare sistemi in grado di percepire, ragionare, apprendere e agire in modo autonomo.

Capacità di una macchina di esibire comportamenti che, se osservati in un essere umano, sarebbero considerati "intelligenti" (Test di Turing).
1950: Alan Turing si chiede "Can machines think?"
"Un giudice umano fa una conversazione testuale con due interlocutori nascosti, uno umano e uno macchina. Se il giudice non riesce a distinguerli, la macchina pensa*."
O almeno fa qualcosa di indistinguibile.

Branca dell'IA, consente ai programmi di imparare dai dati invece di seguire regole scritte a mano dal programmatore tramite pattern statistici estratti da grandi quantità di esempi.
Dati (tanti, e di qualità)
Modello (l'algoritmo che impara)
Obiettivo (cosa vogliamo che impari)
Nel ML il programma scopre le regole basandosi sui dati che noi forniamo, cambio di paradigma: dal "cosa fare" al "cosa imparare a fare".

Approccio più diffuso negli ultimi anni grazie a:
Disponibilità massiva di dati
Potenza di calcolo
Algoritmi più sofisticati

La programmazione classica funziona bene quando le regole sono esprimibili in modo esplicito: se età ≥ 18 → maggiorenne.
Funziona però meno bene per problemi dove i dati sono sporchi o incompleti, difficile scrivere in maniera esplicita il pattern.
Riconoscere un gatto in una foto
Capire l'intento dietro una frase
Filtrare lo spam in milioni di email diverse

Symbolic AI (anni 50-80): codifichiamo a mano la conoscenza in regole logiche. Funziona bene per problemi chiusi (scacchi, sistemi esperti medici degli anni '80), fallisce su problemi del mondo reale per le troppe eccezioni da scrivere.
Search & Planning (anni 60-90): l'intelligenza è cercare la soluzione migliore in uno spazio di possibilità. Funziona bene dove le regole sono chiare e lo spazio è esplorabile (Deep Blue agli scacchi), fallisce dove non sai nemmeno definire bene il problema.

Machine Learning (anni 2010-oggi): non scrivo né regole né algoritmi di ricerca, faccio imparare al sistema dai dati. Funziona bene quando ci sono dati abbondanti e strutturati (approccio più usato oggi).

L'AI è un campo composito, fatto di tante discipline, approcci e applicazioni diverse. Esistono diverse "viste", ciascuna risponde a una domanda diversa.
Tassonomia tecnica → da cosa è fatta l'AI
Modalità di apprendimento → come imparano i modelli ML
Domini applicativi → a cosa serve in pratica?

Impara dai dati
Logica, regole, ontologie
Algoritmi, ottimizzazione
Percezione, controllo
Computer Vision, NLP, Speech, GenAI...

"Imparo dagli esempi etichettati"
Predire prezzo casa, classificare spam
"Scopro pattern senza etichette"
Clustering di clienti, riduzione dimensionalità
"Imparo per tentativi ed errori"
AlphaGo, robot autonomi, auto a guida autonoma

Riconoscimento immagini, object detection
Traduzione, chatbot, sentiment analysis
Speech-to-text, assistenti vocali
LLM, image generation, code generation
Forecasting, fraud detection, scoring
Game AI, robotica, ottimizzazione

1936: Alan Turing formalizza la "macchina di Turing" ponendo le basi teoriche dell'informatica moderna.
1943: primo modello matematico di neurone, idea è che il cervello sia come rete di unità che si attivano o no.
1950: Turing pubblica "Computing Machinery and Intelligence" (Test di Turing).
1956: Conferenza di Dartmouth, nasce il termine "Artificial Intelligence".

1958: Percettrone e la prima rete neurale artificiale fisica.
1966: ELIZA, il primo "chatbot" che simula uno psicoterapeuta con poche regole.
1969: Inizia il primo "inverno dell'AI".
1986: Backpropagation, l'algoritmo che rende possibile addestrare reti neurali profonde.

1997: Deep Blue (IBM) batte Garry Kasparov a scacchi, per la prima volta una macchina batte il campione del mondo.
2011: IBM Watson vince a Jeopardy! Una macchina capisce e risponde in linguaggio naturale, in TV.
2011-2014: Siri, Cortana, Alexa entrano nelle case, per molti è il primo contatto quotidiano con un'AI.
2012: AlexNet vince la ImageNet Challenge. Le reti neurali profonde stracciano i metodi classici. Inizia l'era del Deep Learning moderno.

2014: Implementate prime reti generative. La base concettuale dietro l'AI generativa.
2015: Nasce OpenAI, fondata da Elon Musk, Sam Altman e altri come laboratorio no-profit per un'AI "sicura e benefica per l'umanità".
2016: AlphaGo batte Lee Sedol a Go. Una macchina supera l'uomo in un gioco a stati infiniti.
2017: Paper "Attention is All You Need" (Google). Nascono i Transformer, l'architettura dietro tutti gli LLM moderni.

2020: GPT-3 (OpenAI), il modello pre-ChatGPT, già con 175 miliardi di parametri.
2022: Lancio di ChatGPT, l'AI entra nelle mani di centinaia di milioni di persone.

1968: 2001: Odissea nello Spazio (Kubrick)
1982: Blade Runner (Scott)
1983: WarGames (Badham)
1984: Terminator (Cameron)
1995: Ghost in the Shell (Oshii)
2001: A.I. Intelligenza Artificiale (Spielberg)
2004: I, Robot (Proyas)
2008: Iron Man (Favreau)
2013: Her (Jonze)

Data Science e AI sono due cerchi che si sovrappongono parzialmente. L'area di sovrapposizione è il Machine Learning.
Solo DS: statistica classica, EDA, BI, reporting.
Solo AI: Symbolic AI, Search, Robotics.
Intersezione (ML): il lavoro del data scientist moderno (RL nei robot, computer vision standalone).

Data Science: disciplina che usa dati per prendere decisioni.
cosa ci dicono i dati?
Machine Learning: tecnica per costruire modelli predittivi imparando dai dati.
come faccio prevedere/classificare automaticamente?
IA: campo molto più ampio, include il ML + sistemi a regole, ricerca, pianificazione, robotica.
come faccio una macchina che si comporti in modo intelligente?

Data Science senza AI esiste: dashboard, statistica descrittiva, BI.
AI senza DS esiste: motori scacchistici classici, sistemi esperti.
ML è il punto di contatto: tecnica usata da entrambe.

Quando diciamo che un modello "impara dai dati", concretamente intendiamo:
Dati: esempi (x, y), input e output desiderati
Modello: una famiglia di funzioni f possibili
Training: trovare i parametri di f che fanno f(x) ≈ y sui dati che ho
Predizione: usare f trovata su nuovi x mai visti
Errore: quanto f(x) si discosta da y

Modelli lineari: Regressione lineare, Regressione logistica. Sono algoritmi semplici, interpretabili, veloci.
Forecasting di vendite, analisi causale in economia, modelli di pricing
Alberi: Decision Tree, Random Forest, XGBoost. Flessibili, gestiscono bene dati tabellari complessi.
Sistemi anti-frode, ranking di Spotify/Netflix, previsioni di churn nelle telco
Reti neurali: MLP, CNN, RNN, Transformer. Potentissime su immagini, testo, audio. Richiedono molti dati e potenza di calcolo.

Reti neurali: MLP, CNN, RNN, Transformer. Potentissime su immagini, testo, audio. Richiedono molti dati e potenza di calcolo.
ChatGPT, GitHub Copilot, Midjourney, Google Translate, Tesla Autopilot
Modelli probabilistici: Naive Bayes, Gaussian Mixture, HMM. Ragionamento esplicito sull'incertezza.
Filtri antispam classici (Gmail dei primi anni), diagnosi medica assistita, NLP

Modelli basati su distanze: k-NN, K-Means. Idea: "cose simili stanno vicine". Semplici e intuitivi.
Sistemi di raccomandazione "prodotti simili", riconoscimento di volti su iPhone (parzialmente)

L'obiettivo del ML è imparare dai dati una funzione f tale che f(x) ≈ y.
L'obiettivo della regressione lineare è trovare la f più semplice possibile: una funzione lineare.