Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Dal percettrone ad AlphaGo (e SAI)
1. Dal percettrone ad AlphaGo (e SAI)
Gianluca Amato
Università “G. d’Annunzio” di Chieti–Pescara
Dipartimento di Economia Aziendale
GDG DevFest Pescara 2019
2. Dal percettrone ad AlphaGo (e SAI)
Gianluca Amato
Università “G. d’Annunzio” di Chieti–Pescara
Dipartimento di Economia Aziendale
GDG DevFest Pescara 2019
Ringraziamenti
Queste slide sono stare realizzate saccheggiando a mani basse le
slide dei miei coautori del team SAI, Francesco Morandin e
Maurizio Parton.
3. Piano del talk
1 Breve storia delle reti neurali
2 AlphaGo, Leela Zero e SAI
3 That’s all folks
4. Piano del talk
1 Breve storia delle reti neurali
2 AlphaGo, Leela Zero e SAI
3 That’s all folks
5. Il neurone biologico
Il neurone somma i segnali provenienti dai dendriti e “spara”
un impulso dagli assoni quando si supera una certa soglia.
7. Cibernetica
I primi esperimenti con neuroni artificiali nascono nel campo
della cibernetica.
Obiettivo: costruire cervelli artificiali per capire meglio come
funziona il cervello degli esseri viventi
Si tratta di macchine analogiche e non di computer digitali.
1948, Elmer and Elsie, le tartarughe di W. Grey Walter.
ELectroMEchanical Robot, Light-Sensitive.
Robot autonomi sensibili alla luce.
8. Nascita del percettrone
1957, Perceptron, Frank Rosenblatt: la prima rete neurale.
New York Times, 8 July 1958
The Navy revealed the embryo of an electronic computer today
that it expects will be able to walk, talk, see, write, reproduce itself
and be conscious of its existence.
10. Il percettrone: un esempio
Esempio: MNIST, immagini di cifre con risoluzione 28 × 28.
Vogliamo riconoscere una cifra.
Un neurone per ogni cifra.
wi : uno per input/pixel.
Alcuni positivi, per attivarsi con la cifra cercata.
Alcuni negativi, per escludere altre cifre.
11. Il percettrone: un esempio
Esempio: MNIST, immagini di cifre con risoluzione 28 × 28.
Vogliamo riconoscere una cifra.
Un neurone per ogni cifra.
wi : uno per input/pixel.
Alcuni positivi, per attivarsi con la cifra cercata.
Alcuni negativi, per escludere altre cifre.
12. Il percettone: scegliere i pesi
Come si scelgono effettivamente i pesi?
Si impara per imitazione:
Servono esempi.
Addestramento: si adattano i pesi per far sì che, sugli esempi,
gli output dei percettroni corrispondano a quanto voluto.
Su MNIST i percettroni singoli si comportano male.
Tasso di errore del 12%.
Per migliorare servirebbe addestrare delle reti multi-strato.
13. Rete neurale multistrato
Struttura a strati.
Strato di input, nascosto e di output.
Maggiore complessità, prestazioni e capacità.
Pesi più difficili da interpretare (ed addestrare).
14. Il primo inverno delle reti neurali: 1969-1981
1969, il libro “Perceptrons”, di Marvin Minsky e Seymour
Papert: prima analisi matematica di un rete neurale.
Descrive i fallimenti (XOR), i meriti (AND, OR, NOT) e il
futuro (reti multistrato) dei percettroni.
Ma nessuno sa come addestrare efficacemente reti multistrato.
15. Il primo inverno delle reti neurali: 1969-1981
1969, il libro “Perceptrons”, di Marvin Minsky e Seymour
Papert: prima analisi matematica di un rete neurale.
Descrive i fallimenti (XOR), i meriti (AND, OR, NOT) e il
futuro (reti multistrato) dei percettroni.
Ma nessuno sa come addestrare efficacemente reti multistrato.
16. Rinascita delle reti neurali, 1982-1993
1974, Paul Werbos, Beyond Regression: New Tools for
Prediction and Analysis in the Behavioral Sciences, PhD
thesis:
algoritmo backpropagation;
è ora possibile addestrare reti neurali con più di uno strato.
1986, Geoffrey Hinton e David Rumelhart rendono popolare la
backpropagation.
Reinforcement Learning, tecnica di apprendimento che non
richiede un insieme di addestramento:
1995, TD-gammon, una rete neurale addestrata con
reinforcement learning che gioca a backgammon al livello di un
campione del mondo.
17. Reti Feed-Forward a strati
Una rete profonda è un rete con vari strati nascosti. Di solito,
vari vuol dire ≥ 3.
18. Il secondo inverno delle reti neurali: 1994-2006
1991, Sepp Hochreiter, Untersuchungen zu dynamischen
neuronalen Netzen, Diploma thesis:
la radiopropagazione applicata a reti neurali profonde soffre del
problema del “vanishing or exploding gradient”;
Effetto simile al libro Perceptrons.
Le reti superficiali (shallow) possono essere usate solo per
compiti semplici.
Le tecniche usate per il backgammon non funzionano su
scacchi e Go.
Ma Deep Blue nel 1997 sconfigge il campione del mondo di
scacchi usando tecniche più tradizionali.
Appaiono altre tecniche promettenti non basate su reti
neurali: random forests e support vector machines.
19. Gli irriducibili
Tabella: Geoffrey Hinton, Yann LeCun, Yoshua Bengio
Alcuni ricercatori perseverano il lavoro sulle reti neurali, grazie
al Canadian Institute for Advanced Research (CIFAR).
Popolarizzano il termine Deep Learning.
Geoffrey Hinton, Simon Osindero, Yee-Whye Teh, 2006
Alleviano il problema del vanishing / exploding gradient:
finalmente si possono addestrare le reti neurali profonde.
20. Dopo il 2006
Competizione MNIST per il riconoscimento di cifre scritte a
mano vinto con un tasso di errore dell’1% (2006).
Riconoscimento vocale con tasso d’errore del 23% (2011).
Riconoscimento di immagini con le reti convoluzionali: vince
la ILSVRC-2012 (Olympics of computer vision) con un tasso
di errore del 15.3% – il secondo classificato ha un tasso di
errore del 26.2%!
Traduzione in tempo reale di Skype: 2014.
21. Dopo il 2006
Atari Breakout:
https://www.youtube.com/watch?v=V1eYniJ0Rnk, 2015.
AlphaGo, apprendimento supervisionato e reinforcement
learning, 2016. Vince contro i migliori giocatori umani.
AlphaGo Zero, reinforcement learning, 2017. Vince contro
AlphaGo senza usare nessuna conoscenza umana.
Alpha Zero, gioca a Go, Scacchi e Shogi con reinforcement
learning: 2017, vince contro il miglior software di scacchi.
22. Perché sta accadendo ora?
Legge di Moore: x2 ogni 18 mesi.
Schede grafiche (GPU): potenza computazionale a basso
costo.
Capacità di addestrare le reti neurali profonde.
Big Data: sono disponibili una enorme quantità di dati per
addestrare le reti.
1998: MNIST, 60 ∗ 103
immagini.
2012: ImageNet, 1.2 ∗ 106
immagini.
23. Piano del talk
1 Breve storia delle reti neurali
2 AlphaGo, Leela Zero e SAI
3 That’s all folks
25. Il gioco del go
Il gioco del Go è stato inventato in Cina 4000 anni fa.
È un gioco a informazione perfetta e somma zero per due
giocatori.
Si gioca su una goban con 19x19 intersezioni. Una volta
piazzata una pietra, non può più essere mossa. Quando il
gioco finisce, il vincitore è determinato contando chi ha
circondato con le sue pietre più territorio. Questo è il
punteggio del giocatore.
Il Go ha rappresentato per molto tempo una sfida per
l’intelligenza artificiale: fino al 2016 non c’era nessun software
in grado di giocare a livello professionistico.
26. AlphaGo
2016, AlphaGo, apprendimento supervisionato e reinforcement
learning.
Vince contro i migliori giocatori umani.
2017, AlphaGo Zero, reinforcement learning.
Vince contro AlphaGo senza usare nessuna conoscenza umana.
2017, Alpha Zero, gioca a Go, Scacchi e Shogi con
reinforcement learning.
Vince contro il miglior software di scacchi.
27. Funzionamento di AlphaGo Zero
Reti neurali — data una configurazione di pietre nel goban,
predicono:
value, probabilità di vittoria;
policy, la bontà di ognuna delle possibili mosse successive.
Reinforcement learning — per addestrare le reti neurali,
AlphaGo Zero gioca centinaia di migliaia di partite contro se
stesso, aggiustando di volta in volta sulla base dei risultati i
pesi delle reti.
Monte Carlo Tree Search — algoritmo che gioca a Go
esplorando in maniera casuale l’albero delle mosse, guidato
dalla reti neurali per policy e value.
30. Leela Zero
Leela Zero è una implementazione open-source di AlphaGo
Zero (https://github.com/leela-zero/leela-zero).
Progetto creato da Gian-Carlo Pascutto, Mozilla Corporation.
Non avendo a disposizione la potenza di calcolo di Google,
Leela Zero funziona in maniera distribuita:
un server coordina le operazioni:
memorizza tutte le partite giocate;
fornisce ai client che si collegano i task da effettuare, di solito
partite di addestramento.
i client, che possono essere installati sulla propria macchina da
chiunque:
si collegano al server e scaricano le reti neurali da utilizzare;
giocano partite di allenamento e inviano il risultato al server.
32. Da Leela Zero a SAI
AlphaGo (normale o Zero) e Leela Zero non sono in grado di
giocare per ottenere un punteggio elevato, poiché sono
addestrati unicamente per migliorare la probabilità di vittoria
Quando sono in vantaggio, tendono a giocare mosse non
ottimali
Inoltre, non possono giocare con handicap, quindi non sono
adatti ad essere utilizzati dagli essere umani per addestrarsi
SAI è una evoluzione di Leela Zero che cerca di risolvere
questi problemi
33. SAI: il nome
SAI sta per Sensible Artificial Intelligence, nel senso che gioca
in maniera ragionevole, non solo per vincere...
34. SAI: il nome
SAI sta per Sensible Artificial Intelligence, nel senso che gioca
in maniera ragionevole, non solo per vincere...
... ma l’acronimo è solo su una scusa.
35. SAI: il nome
SAI sta per Sensible Artificial Intelligence, nel senso che gioca
in maniera ragionevole, non solo per vincere...
... ma l’acronimo è solo su una scusa.
Gli appassionati di Go e/o manga sapranno bene che in verità
il nome SAI deriva da lui:
36. SAI: il team
Gli esseri umani:
Francesco Morandin — Università di Parma
Gianluca Amato — Università “G. d’Annunzio”
Marco Fantozzi
Rosa Gini — Agenzia regionale di sanità della Toscana
Carlo Metta — Università di Firenze
Maurizio Parton — Università “G. d’Annunzio”
37. SAI: il team
Gli esseri umani:
Francesco Morandin — Università di Parma
Gianluca Amato — Università “G. d’Annunzio”
Marco Fantozzi
Rosa Gini — Agenzia regionale di sanità della Toscana
Carlo Metta — Università di Firenze
Maurizio Parton — Università “G. d’Annunzio”
Gli esseri digitali:
il server sai.unich.it, gentilmente offerto dal Dipartimento
di Economia dell’Università “G. d’Annunzio”;
la workstation di training, ovvero il PC desktop di Maurizio
Parton;
(adesso svolge egregiamente anche il ruolo di impianto di
riscaldamento del mio ufficio)
i client della community che ci donano risorse.
38. SAI vs Leela Zero
La rete neurale
La rete neurale di Leela Zero restituisce, per ogni
configurazione del goban:
probabilità di vittoria;
la policy, ovvero una misura della bontà di ogni mossa.
possibile
In SAI restituiamo anche;
la differenza stimata di punti tra i due giocatori;
il livello di incertezza nell’esito della partita.
39. SAI vs Leela Zero
Struttura delle partite
Leela Zero fa giocare i client a partire dalla goban vuota.
SAI può far giocare una partita:
a partire da una configurazione incontrata in una precedente
partita che sembra interessante;
con una differenza di punteggio prefissato iniziale tra bianco e
nero (tecnicamente, il komi).
40. SAI vs Leela Zero
Politica di promozione
In Leela Zero una nuova rete viene addestrata dopo un
numero consistente di partite giocate dalla vecchia: se si
comporta meglio della precedente viene promossa e sostituisce
la vecchia.
In SAI usiamo il principio “Release early, release often”:
aspettiamo molte meno partite per addestrare la nuova rete, e
la sostituiamo a quella precedente anche se non sembra
migliorare il gioco.
41. SAI vs Leela Zero
Agente più sofisticato
Sfruttando le maggiori informazioni che la rete neurale ci
fornisce, l’agente è in grado di puntare a vincere con un
punteggio alto.
Per far ciò gioca sempre massimizzando la probabilità di
vittoria, ma sottostimando deliberatamente il proprio
vantaggio, per spingersi ad aumentarlo.
42. Risultati di SAI
Usando solo i nostri PC, abbiamo addestrato versioni
superumane di SAI per il Go 7x7 e 9x9.
È in corso l’addestramento di SAI 19x19 cercando di
coinvolgere la community che ha sostenuto il progetto Leela
Zero:
abbiamo circa 100 macchine client che ci forniscono potenza di
calcolo;
ogni partita dura circa un paio di minuti su un PC desktop con
scheda GPU di potenza medio/alta.
SAI gioca attualmente al livello amatoriale.
Provatelo!
Client: https://github.com/sai-dev/sai
Server: https://github.com/sai-dev/sai-server
Il sito web: http://sai.unich.it/
44. Piano del talk
1 Breve storia delle reti neurali
2 AlphaGo, Leela Zero e SAI
3 That’s all folks
45.
46. Licenza
Permission is granted to copy, distribute and/or modify this
document under the terms of the GNU Free Documentation
License, Version 1.3 or any later version published by the Free
Software Foundation; with no Invariant Sections, no
Front-Cover Texts, and no Back-Cover Texts. A copy of the
license is included in the section entitled "GNU Free
Documentation License" at the URL:
https://www.gnu.org/licenses/fdl-1.3.en.html