vuoi
o PayPal
tutte le volte che vuoi
RIASSO MACHINE LEARNING
INTRODUZIONE
Differenza tra intelligenza e intelligenza artificiale
- Pensare, generalizzare, elaborare modelli astratti della realtà
- Ragionare
→ Riproduzione parziale dell'attività intellettuale dell'uomo Apprendere, riconoscere, scegliere
TIPOLOGIE DI RAGIONAMENTO
- Deduttivo → La verità delle premesse garantisce quella della conclusione. (Aristotele) Fondamento di logica, dimostrazioni teoriche, matematici, non pratico in situazioni reali.
- Induttivo → Le premesse (evidenze pratiche) permettono di sviluppare ma non garantiscono la verità della conclusione (generalizzazioni). Ragionamento quindi probabilistico, dipendenza dai rischi, generalizzazione. L'analogia è una forma di ragion. induttivo poco potente.
- Abduttivo → Ragionamento probabilistico, come l'induttivo, ma non si generalizza! Si esegue: tutte gli indizi (evidenze) scorrono istantaneamente verso una unica spiegazione (verità).
MACHINE LEARNING
Sottoinsieme dell'I.A. (Intelligenza Artificiale) - apprendimento automatico. Apprendere da esempi (learning) e in grado di generalizzare (ragion. induttivo). Apprendere, migliorare, evolversi; esplorare e comprendere i dati senza programmazione esplicita.
BRUTE FORCE E WEAK AI
Forza Bruta (→ ricerca esaustiva) → Risolvere problema al calcolatore testando tutte le possibili alternative, spesso non applicabile a problemi complessi Sistemi capaci di risolvere problemi senza ragionamento e comprensione (weak AI).
LE STAGIONI DELL'AI
- 1940-1974 (nascita e anni d'oro) → previsioni troppo ottimistiche! Parti calcolatori + test su neuroni artificiali generano entusiasmo
- 1974-1980 (primo inverno) → Esplode con l'accelerare delle aspettative, scarsa capacità computazionale, elaborazione non infantibile, esperienze teoriche/dominarie e non tratturali.
- 1980-1987 (nuova primavera) → Nascita dei sistemi esperti, algortimi backpropagation x reti neurali, finanziamenti governo significativi (Giappone, EU, USA vocali di calcolatori).
- 1987-1993 (secondo inverno) → Flop 5° gen. (potenza) finanziamenti rete neurali non scalano
- 1993-2011 (tempi moderni) → hardware potente, classificatori robusti, sistemi specifici per lo scopo, Watson, guida automatica successi in test discipline.
- 2011-Oggi → Deep Learning, CNN (Convolutional Neural Networks) ora molto utili e potenti, passi in avanti nella computer vision riconoscimento del parlato, traduzione lingua.
SINGOLARITÀ TECNOLOGICA
Punto, previste nello sviluppo di una civiltà dove il progresso tecnologico accelera oltre le capacità di comprensione e di previsione; per il calcolatore e intelligenza dell'essere umano. Sviluppo esponenziale
FONDAMENTI
★ Dati Essenziali nel ML (Machine Learning) → comportamento degli algoritmi non descritto da dataset. Dati → Pattern.
★ Pattern Un volto, un carattere scritto a mano,...
Il termine pattern senso usato per riconoscere dati in varie categorie:
- Numerici: Valori associati a caratteri misurabili, concetti rappresentabili come numeri (Es. nella PCA in multidimensionale, spesso va ordinato. Es. età di una persona, ecc...)
- Categorici: Valori associati a caratteri qualitativi e (sistema valori a volte discreti) Usato per ordinamento e preordinamento. Es. Sens → Clustering (Es. sesso, colore occhi, ecc...)
- Sequenze: Pattern sequenziali con relazioni spaziali e temporali. Es. stream audio, video, frasi, ecc... Spesso lunga variabilità, unione nella sequenza importante - Matriali per tener conto del passato. Allineamento spaziale/temporale
- Altri dati strutturati: Output organizzato in strutture complesse quali alberi e grafi. - Natural Language Processing, riconoscimento di parlato, ecc... Approcci: structured SVMs, HMM, ecc...
★ Classificazione: = Riconoscimento Assegna una classe a un pattern. Necessario apprendere una funzione - il mapping dallo spazio dei pattern - space delle classi. 2 sole classi → Binary Classification. Più di 2 classi → Multi-Class Classification. La classe = l'insieme dei pattern aventi caratteristiche comuni. 2 classi per distinguere cane da gatto - 21 classi per riconoscimenti delle lettere dell'alfabeto italiano.
★ Regressione Assegna un valore continuo ad un pattern. Necessario apprendere una funzione approssimando delle coppie input, output → date utili → predizione di valori continui. Es. statura altezze di una persona in base ai peso.
★ Clustering Individua gruppi di pattern con caratteri simili, più complesso della classificazione. Le classi non sono note a priori e i pattern non etichettati. Spesso mettendo il numero di cluster noto a priori. 2 cluster individuati, possono far fungeere da classi. (Es. raggruppare individui in base all'analisi del DNA, operazioni non supervisionate).
★ Riduzione di dimensionalità Riduce il numero di dimensioni dei pattern di input. Necessario un mapping da Rd a Rk con Kd. Operazione corretta perdita non informazione, bisogna conservare quelle importanti. Le linee a scalto usandidati e/o unsabili.
★ Representation Learning → Feature learning Apprendimento automatico di features efficaci per la rappresentazione del pattern. Permette di rinvenire pattern grezzi (raw data). Usate tecniche di deep learning → multi livelli di apprendimento.
★ Problemi nel dominio della visione
- Classification → Descrimina la classe dell'oggetto.
- Classification/Localization → Assegna, la localizzazione (Bounding Box) dell'oggetto.
- Detection → Per ogni classe e assegna classi + bounding box.
- Segmentation → Segmenta determine regioni, assegnazione classi e etichette.
- Instance Segmentation → Identifica Istanze concrete dell'oggetto della classe (es. persone in immagini).
Esempio
Anche le etichette (in classificazione) o i valori target (in regressione). La funzione train_test_split di scikit-learn automatizza questa fase.
Selezione automatica degli iperparametri
Automatizzazione di ricerca degli iperparametri.
- Grid Search
- Se non performa, si definisce un insieme di valori da provare. Si provano tutte le combinazioni di tutti gli iperparametri. Funziona incertezza dei valori può essere eso. Attenzione: il numero di combinazioni possibile può essere alto: 10^k. Il sistema selezionato è il più performante
- Randot Search
- Si eseguono casualmente valori di iperparametri da range!! Distribuzioni specificate, eseguendo un n. Int. pressato di iterazioni.
Convergenza
Durante l'addestramento si cerca convergenza su training set. Si ha convergenza quando:
- il loss (output della loss-function) ha andamento decrescente
- l'accuratezza ha andamento crescente. 100%
Possibili problemi
- il loss non decresce o oscilla: sul iperparam. sono fuori range metodi di ottimizz. non efficace, ecc.
- il loss decresce ma l'accuratezza non cresce: scelta loss-function errata (acc.)
- l'accuratezza non si avvicina al 100%. Sul train: i gradi di libertà del classifical. sono sempre sufficiente x gestire la complessità del problema.
Generalizzazione Overfitting
Per generalizzazione s'intende la capacità di trasferire l'elevata accuratezza aggiunta su train a valid. Se i gradi di libertà dei classificatori sono eccessivi -> alta accur. su train ma non su valid (c'è scarsa generalizzazione) -> overfitting su train.
- 100%
- accurat. (train)
- accurat. (valid)
È consigliabile arrestare l'addestramento nel punto ideale: controllo dell'overfitting x migliorare la generalizzazione.
Punto ideale Iterazioni