Newsgroup: it.hobby.scacchi
Titolo: Ci siamo... (AlphaZero)

Contro ogni previsione (anche la mia), sembra che ci siamo arrivati...
 
A chi, profano o esperto che sia, argomentava che l'intelligenza 
artificiale avrebbe "ucciso" gli scacchi, o che lo aveva più o meno 
fatto con i potentissimi engine di oggi, rispondevo che l'intelligenza 
artificiale in realtà non c'entra nulla con gli scacchi.
 
Gli engine attuali sono dei velocissimi "mangia numeri" e nulla più, in 
cui sono stati aggiunti trucchetti algoritmici per renderli più furbi. 
Si tratta, in sintesi, di "calcolo numerico" (alcuni di voi proveranno 
un brivido ripensando agli anni dell'università...).
 
L'intelligenza artificiale è una branca che racchiude ben altro.
 
Ho sempre obiettato che l'intelligenza artificiale mal si applica agli 
scacchi perché è ghiotta di risorse, troppo macchinosa e lenta. Avremmo 
dovuto aspettare decenni, dicevo.
 
Mi sbagliavo:
 
https://arxiv.org/pdf/1712.01815.pdf
 
https://en.chessbase.com/post/the-future-is-here-alphazero-learns-chess
 
 
Questi qui, se non erro, si son ripromessi di pubblicare un 
aggiornamento, perché il primo articolo è tanto senzazionale quanto 
scarno. E trattandosi di una azienda parte del mostro Google, puzza di 
pubblicità lontano un miglio.
 
Ma il concetto è chiaro e suona come rivoluzionario.
 
L'intelligenza artificiale, nella fattispecie reti neurali e machine 
learning, sono entrati di prepotenza nel mondo degli scacchi...
 
A quelli che obiettano "Stockfish che hanno usato era monco, privato del 
libro delle aperture e dei finali, con un solo giga di RAM" rispondo: se 
quello che c'è scritto nell'articolo risponde a piena verità, non state 
a guardare il dito che indica le stelle...
 
(Ah, e pensavo si sarebbero fermati col Go, e invece...)

 
 
Giusto un appunto tecnico, perché a chi non è del mestiere queste cose
sembrano fantascienza o magia nera:
Un engine attuale minimizza una funzione lineare. AlphaZero, così come ogni
rete neurale, appossima il minimo di una funzione non lineare.
Qualsiasi computer "mangia numeri e nulla più". E non vedo come potrebbe
essere altrimenti.
 
Ciao!

 essere altrimenti.
 
La stessa differenza che c'è fra la geometria euclidea e, ad esempio, 
quella di Reimann. O la fisica di Newton e quella della relatività generale.
 
AlphaZero gira su una architettura diversa, che tra l'altro non usa CPU 
tradizionali.
 
Volendo normalizzare il risultato, significherebbe trasporre, 
approssimare da un dominio all'altro. Come dire, puoi approssimare la 
relatività generare e alla fine ti ritrovi con le stesse identiche leggi 
fisiche, quelle di Newton.
(Ammesso che si possa fare, dubito che l'algoritmo di AlphaZero giri su 
computer tradizionali attuali "lisci").
 
Ma poi addio viaggi spaziali e navigatore GPS.
 
 
AlphaZero gioca solo a scacchi (e a go, e a shogi), per adesso. Il 
risultato è semplice: vittoria, patta, sconfitta. Per cui, per quanto 
sia complesso quello che c'è dietro, l'"output" è banale... Ma è proprio 
quello che c'è dietro che rende interessante la differenza.
 
Quello che vogliono fare con 'sti scatoloni qui è ben altro, ed esula 
certamente dal gioco degli scacchi.


 
In realtà la teoria era a grandi linee pronta dagli anni 60/70. Solo oggi
la ricerca estensiva sulle ottimizzazioni e, più che ogni altra cosa, lo
aumento della potenza dei calcolatori, permette di mettere in pratica quello
che prima era impossibile.
 
Su questo sì possiamo fare un paragone con la RG: nel '19 Einstein ci mise
mesi per calcolare l'orbita di Mercurio con la sua nuova teoria, oggi per lo
stesso calcolo scarichi un qualsiasi software di matematica e sei pronto
in pochi minuti.
 
Ciao!

 quello nuovo è un'approssimazione.
 
In che senso corretto?
 
Dal punto di vista matematico, di puro calcolo, sì. Si dice infatti 
"deterministico". Data una certa posizione e un tempo prefissato, il 
risultato numerico sarà sempre lo stesso.
Nel secondo, nuovo metodo questo non è più vero.
 
Ma né il primo metodo né il secondo sono corretti, nel senso che il 
risultato, es. bianco in vantaggio di +4.18 o semplicemente "bianco 
muove e vince in xyz mosse" sono entrambi approssimazioni. Altrimenti il 
gioco sarebbe risolto, come con le tablebase.
 
Da quello che emerge dai risultati sembra che - dubbi ci sono ancora - 
il secondo metodo (AlphaZero) sia leggermente più preciso di quello 
tradizionale (Stockfish).
 
E (potrei sbagliarmi ancora) mi sa che ci dovremo accontentare di 
questo: come avvenne con Deep Blue e Hydra, non penso che Google 
investirà molto più tempo negli scacchi. Non ci sono interessi 
commerciali a mantenere un costosissimo "scatolotto" che gioca a scacchi 
(o a go o shogi). Lo scopo lo hanno raggiunto.
 
Il resto saranno altre operazioni di marketing e commerciali, per 
vendere lo "scatolotto" e i servizi che offre per ben altri scopi...


 
Chiaro.
E' più che altro interessante vedere fino a che livello un software non
progettato per un compito specifico riesca invece a svolgerlo a pieno.
Tieni conto che senza modifiche in un mese hai un engine: pensa quante
ore-uomo sono invece servite per scrivere stockfish.
 
Ciao!

 Contro ogni previsione (anche la mia), sembra che ci siamo arrivati...
 
Si, ma a prescidere da tutto il resto, quante possibilità ci sono che un programma - senza un libro di aperture attivo - giochi questa variante dell'Ovest Indiana?
 
White: AlphaZero, Black: Stockfish
1. Nf3 Nf6 2. d4 e6 3. c4 b6 4. g3 Bb7 5. Bg2 Be7 6. 0-0 0-0 7. d5 exd5 8. Nh4 c6 9. cxd5 Nxd5 10.
Nf5 Nc7 11. e4 d5 12. exd5 Nxd5 13. Nc3 Nxc3 14. Qg4 g6 15. Nh6+ Kg7 16. bxc3 Bc8 17. Qf4 Qd6
18. Qa4 g5 19. Re1 Kxh6 20. h4 f6 21. Be3 Bf5 22. Rad1 Qa3 23. Qc4 b5 24. hxg5+ fxg5 25. Qh4+
Kg6 26. Qh1 Kg7 27. Be4 Bg6 28. Bxg6 hxg6 29. Qh3 Bf6 30. Kg2 Qxa2 31. Rh1 Qg8 32. c4 Re8 33.
Bd4 Bxd4 34. Rxd4 Rd8 35. Rxd8 Qxd8 36. Qe6 Nd7 37. Rd1 Nc5 38. Rxd8 Nxe6 39. Rxa8 Kf6 40.
cxb5 cxb5 41. Kf3 Nd4+ 42. Ke4 Nc6 43. Rc8 Ne7 44. Rb8 Nf5 45. g4 Nh6 46. f3 Nf7 47. Ra8 Nd6+
48. Kd5 Nc4 49. Rxa7 Ne3+ 50. Ke4 Nc4 51. Ra6+ Kg7 52. Rc6 Kf7 53. Rc5 Ke6 54. Rxg5 Kf6 55.
Rc5 g5 56. Kd4 1-0

 Si, ma a prescidere da tutto il resto, quante possibilità ci sono che un programma - senza un libro di aperture attivo - giochi questa variante dell'Ovest Indiana?
 
Qui infatti mi piacerebbe approfondire di più il tema prettamente 
scacchistico.
 
Il mio livello di gioco di non mi permette di giudicare molte delle 
mosse che son state considerate "geniali". Per cui ben vengano commenti 
dai più esperti.
 
Ad esempio 18.Qa4 a prima vista sembra illogica: sposta la Donna lontano 
dal Re avversario sul lato dove il Nero è già di per sé "attappato" 
(come diavolo ci sia finito così Stockfish è un altro punto oscuro). E 
dopo 18...g5 AlphaZero se ne strafotte del Cavallo e continua. 32.c4 e 
la sequenza che segue è un altro esempio di puzzle che sembra abbia 
meravigliato gli spettatori.
 
I detrattori degli engine tradizionali anche oggi continuano a definirli 
"stupidi", ma allora qui ci son tre possibilità:
 
- AlphaZero gioca in maniera molto più "umana", come dovrebbe in realtà 
giocare un essere umano molto molto forte (i detrattori tremano);
- AlphaZero è semplicemente "meno stupido", ma pure sempre con un gioco 
"al silicio" (i detrattori continueranno a dormire tranquilli)
- AlphaZero gioca al di sopra delle possibilità di comprensione umana 
(qualcuno lo ha definito "alieno", stesso termine usato, tuttavia, anche 
per gli engine...)
 
Ovviamente, visto lo stupore iniziale, molti son propensi per la terza 
ipotesi. Ma io vorrei restare con i piedi per terra.
 
Questo è un esempio tratto da una discussione di Sagar Shah, 
simpaticissimo per carità, qui stra-gasatissimo:
 
https://www.youtube.com/watch?v=GWH4GHf8k6M
 
 
Anche questa posizione qui
 
rn3r1k/pn1p1ppq/bpp4p/7P/4N1Q1/6P1/PP3PB1/R1B1R1K1 w - - 0 21
 
(riportata da Chessbase e discussa da Sagar, un altro caso in cui 
Stockfish finisce con il lato di Donna completamente "attappato")
 
continua con la "strabiliante" 21.Bg5.
E' una mossa che un forte umano definirebbe giocabile?
 
Complessivamente, la cosa che è sembrata strabiliante nel gioco di 
AlphaZero, è che in più di una occasione se n'è strafottuto del 
materiale e ha continuato imperterrito per la sua strada. E si sa, gli 
engine alla fin fine ragionano in termine di materiale.
 
32.c4 mi ricorda molto la soluzione di una posizione tempo fa 
considerata (forse anche oggi) anti-computer
(la riporto dal sito istruttorescacchi, il Maestro Tarascio spero non si 
offenda):
 
4r1k1/1p2qp2/p1p2n1Q/3p1BN1/3P4/1PP5/1KP5/8 w - - 0 1
 
Conclusioni:
I dati disponibili non sono comunque sufficienti per trarne un verdetto 
accurato.
Io sarei propenso per una via di mezzo: una volta che gli engine 
tradizionali sono diventati fortissimi, almeno dal punto di vista 
"umano", ci siamo completamente disinteressati di analizzare il loro 
gioco e ci siamo concentrati di farli giocare fra loro e di ottimizzarli 
nel gioco fra loro.
Ora sta a vedere che, daje che te ridaje, modifica dopo modifica, gli 
engine sono sempre più bravi a battersi fra loro... ma la qualità del 
gioco non è migliorata affatto.
 
 
 

 meravigliato gli spettatori.
 
Io per curiosita' ho analizzato la partita postata con il mio antiquato 
Stockfish 7 (non so neanche a che numero siamo arrivati).
 
18.Qa4 e 32.c4 le gioca anche lui.
 
Quello che invece mi perplime e' che ad esempio NON giochi neanche sotto 
tortura 34...Rd8, che lui reputa perdente, mentre per il resto lui si 
reputava in parita'.
Che vuol dire ? Che ne so ?
 
frengo
 
 

 Che vuol dire ? Che ne so ?
 
Che a forza di giocare tra loro.. gli engine si son rincitrulliti :-)

Il giorno lunedì 11 dicembre 2017 20:33:27 UTC+1, M C ha scritto:
<cut>
 
"AlphaZero gira su una architettura diversa, che tra l'altro non usa CPU 
tradizionali"
 
Quindi abbiamo dato una Ducati da motoGP sotto le chiappe di Alphazero, gli abbiamo dato 4 ore di tempo per imparare a guidarla... e poi l'abbiamo messo a gareggiare con Stockfish a cui abbiamo dato un "Ciao".  Come dicono a Roma: Grazie, graziella e grazie al...
 
(prova che c'è qualcosa che non va è quanto scritto da Frengo: "(il mio Stockfish) ad esempio NON giochi neanche sotto 
tortura 34...Rd8, che lui reputa perdente, mentre per il resto lui si 
reputava in parita'" )
 

 Quindi abbiamo dato una Ducati da motoGP sotto le chiappe di Alphazero, gli abbiamo dato 4 ore di tempo per imparare a guidarla... e poi l'abbiamo messo a gareggiare con Stockfish a cui abbiamo dato un "Ciao".  Come dicono a Roma: Grazie, graziella e grazie al...
 
Beh, 64 core con 1 GB di hash non è il massimo, anche l'autore di 
Stockfish ha storto il naso "I 64 core non vengono sfruttati appieno con 
un solo GB di hash...". Ma non è neanche GnuChess 5 su di un 486.
 
Il punto non è tanto quello. Stiamo parlando di Stockfish in un range di 
rating comunque abbastanza alto.
 
Il punto è che 'sto qui nel software (e nell'hardware) non ha un bel 
niente di scacchi dentro: niente funzione di valutazione, niente SSE, 
niente null move, niente alpha-beta, niente minimax, niente trucchetti 
che i programmatori si son inventati negli ultimi 50 anni (forse più se 
contiamo Turing) di sviluppo prettamente scacchistico. E s'è imparato il 
tutto giocando da solo, senza l'ausilio di input esterno (es. partite 
dei GM o di altri engine).
 
E' la stessa cosa che mettere Bobby Fischer da solo su di un'isola 
deserta con una scacchiera, i pezzi e il libretto di istruzioni (no 
libri, no esempi di aperture, solo le regole base base). Poi torni dopo 
25 anni e vedi se ti batte Spasski (forse sì :-) ). Probabilmente 
avrebbe giovato al suo carattere...

 
 
Eheh, che l'analisi sia stata studiata apposta per far "tornare il risultato"
e in breve tempo è ovvio: a me in realtà erano saltate all'occhio altre
domande forse più correlate con un analisi simile:
- perché giocare solo contro stockfish? Capisco nella fase d'apprendimento,
ma dopo si poteva anche far giocare contro altri engine.
- perché stockfish è stato sempre settato nello stesso modo? Probabilmente
variando i parametri l'apprendimento non funzionava (il che è curiosamente
capibile anche per un uomo: immaginate di essere cresciuti con un padre GM!)
- perché la rete è stata monitorata in una sola configurazione? Anche questo,
forse perché c'hanno messo un po' a tararla e, come spesso succede, non
volevano spendere altri mesi a cercare di capire il perché per completare
la pubblicazione.
- perché non ci sono i boundaries di scalabilità? :( Questa è forse la cosa
che più fa pensare.
 
Capiamoci, è sempre un incredibile risultato. Ma, come ho già detto, chi
non è del settore sappia che, invece di farsi viaggi filosofici, dovrebbe
prenderlo con le pinze.
 
Ciao!

 
 
Questa sarebbe stata un'altra cosa interessante da vedere: farlo giocare
contro un engine scarso e vedere se il proprio livello si attestava intorno
a quello dell'"insegnante".
 
Ciao!

 
 
 
Prenderlo con le pinze e buttarlo nel cesso. Più approfondisco più vedo che ci sono troppi "punti oscuri" che puzzano di "Bufala marcia". Se questi di Alphazero fossero intellettualmente onesti, organizzerebbero un paio di match "seri" contro Komodo o Houdini (i due recenti finalisti TCEC), con impostazioni e tempi di riflessioni congrui, diciamo proprio stile TCEC. POi vediamo i risultati. 
Così come è ora, questo alphazero mi sa tanto di (poco) arrosto (magari buonissimo, eh!) e parecchio fumo negli occhi dei non esperti 
 

 - perché stockfish è stato sempre settato nello stesso modo?
 
Perchè quasi sicuramente non si sono presi la briga di programmare, in A0, la gestione dinamica dei controlli del tempo da torneo, ma solo la semplice "x per mossa", che per il concept che volevano provare era sufficente e non introduceva ulteriori variabili nella partite. Inoltre, dovendo ripetere la prova a parità esatta di hardware, è più semplice riprodurre l'output.
 
Alla fina della fiera, non è stato un "match", è stato un esperimento di programmazione, e in questo senso come ha detto su Reddit anche l'autore stesso di Stockfish, è perfettamente valido e perfettamente riuscito.
 
Poi ha anche evidenziato quali sarebbero state le condizioni e i parametri migliori di SF per un "evento sportivo" equo, ma visto che non lo era, se non ha problemi lui in merito...
 
 
 
 

 Non mi pare di aver capito che abbia giocato con stockfish nella fase di apprendimento... ha giocato con se stesso, e finita quella fase, hanno fatto la prova con SF
 
Oggi e' uscito un altro articolo su Chessbase (non so se anche in altri canali) e confermano che AZ ha giocato contro SF *anche* nella fase di apprendimento, durante la quale qualche legnata l'ha presa.

 Così come è ora, questo alphazero mi sa tanto di (poco) arrosto (magari buonissimo, eh!) e parecchio fumo negli occhi dei non esperti
 
Lungi da me difendere Google, hanno sicuramente gia' un bel pool di avvocati per conto loro. Ma non mi stanco di ribadire che lo scopo di Google era:
 
- fare ovviamente pubblicita' a se stessi: far girare quel coso costa XYZ$/ora, tutti soldi investiti come operazione di marketing;
 
- effettuare un esperimento di deep learning non supervisionato. Lo scopo NON era dimostrare di essere i piu' forti a scacchi. Lo scopo era dimostrare che POSSONO essere i piu' forti. A Google non interessava battere Stockfish, Komodo e Houdini di per se (dubito che abbiano potuto usare gli ultimi due per motivi commerciali), ma dimostrare il funzionamento di un algoritmo e di un'architettura nuovi e... "rivoluzionari" (qui si potrebbe aprire un'altra parentesi grande come il traforo del Monte Bianco).
 
Ovviamente la comunita' si e' sentita in un certo senso tradita, offesa o anche umiliata per il fatto che il loro beniamino di casa sia stato a sua volta umiliato in un match a detta di molti impari. E' stato impari se lo si guarda sotto l'ottica di un match per il titolo ufficiale. Non lo e' se lo si guarda come un'esperimento.
 
E un esperimento e' stato.
 
Moralmente sbagliato perche' appunto impari e nonostante cio' sbandierato come la conquista della luna?
OK, avete mai sentito parlare di campagne di MARKETING eque, chiare, cristalline e soprattutto veritiere? Volete altri nomi? Microsoft? Apple?
 
Ve la ricordate la batosta di Adams contro Hydra? Michey prese due briciole di compenso per essere brutalizzato dalla macchina: a sua discolpa il fatto che non si fosse potuto preparare perche' Hydra non era pubblicamente disponibile, e che venisse da una serie estenuante di tornei. E che... non si fosse preparato affatto, direi, perche' gioco' linee non propriamente anti-computer (a quel tempo erano qualcosa di reale) e - per sua ammissione - e' pigro e non si prepara mai comunque.
Molto simile con AZ e SF, con la differenza che SF non si stanca :-) e che l'autore di SF non ne sapeva nulla! (Il bello/brutto del freeware)

 Così come è ora, questo alphazero mi sa tanto di (poco) arrosto (magari buonissimo, eh!) e parecchio fumo negli occhi dei non esperti
 
La comunita' scacchistica se l'e' preso a male, OK, ma non dimentichiamo che sto coso qui ha battuto ANCHE i migliori software di shogi e go, cioe' se stesso versione precedente che aveva battuto il migliore umano ...

 Lo scopo era dimostrare che POSSONO essere i piu' forti.
 
No, lo scopo era dimostrare che sono allo stato dell'arte negli algoritmi
di AI, e direi che ci sono riusciti.
Possiamo stare qui a tirargliene quante vogliamo, ma nessuno, ad oggi,
riesce a scrivere qualcosa del genere a parte loro.
 
 
Ciao!


Va preso con le pinze nel senso che hanno usato gli scacchi come scusa
per testare il software, che ha avuto buoni risultati. Magari i risultati
scacchistici sono un po' "pompati", ma le potenzialità che volevano
dimostrare rimangono.
 
Tieni presente che una rete, prima di iniziare l'apprendimento, non sa
nulla, nemmeno come si sposta un pedone, o se la scacchiera potrebbe in
futuro essere un ottagono irregolare con 100 caselle, se è per questo.
Spiegarlo su un giornale è difficile, quindi meglio il titolone.
 
Ciao!


 
Mi stupirei se nei primi giorni avesse mai vinto nessuna partita, a dire il
vero :/
 
Sinceramente mi stupisco che non abbia mai perso nel test finale, visto che,
in teoria, apprendendo da lui può solo giocare peggio o al massimo uguale
(a patto che stockfish non abbia un particolare bug su certi patterns, cosa
che mi sentirei di escludere - ma tutto può essere).
 
 
Ciao!

 che mi sentirei di escludere - ma tutto può essere).
 
In realtà la rete era addestrata per vincere. (O alla peggio pattare). E 
questo a prescindere dall'avversario.
 
Stockfish è servito probabilmente per accelerare l'apprendimento e 
sicuramente per avere un paragone in termini di rating.
 
Se guardi il loro grafico, AlphaZero ha continuato a migliorare anche 
DOPO essere diventato più forte di Stockfish, per poi rallentare. E lo 
stesso è accaduto nello shogi e nel go.
 
Ora, è il rallentamento (+ o - asintotico) la parte più interessante. 
Rallenta e in pratica si ferma (ovvero migliorando poco o niente) per 
motivi architetturali (quindi se si migliora l'algoritmo / potenzia 
l'hardware potrebbe crescere), perché l'avversario non offriva più tanta 
resistenza (difficile imparare da uno più brocco di te) o perché il 
Gioco è quasi risolto?
 
Escludendo la terza, fantascientifica possibilità, sarebbe interessante 
sapere che peso hanno le altre due.

 sapere che peso hanno le altre due.
 
Come sopra, penso il motivo sia quello. Il "perché" questo succeda va al
di sopra delle mie conoscenze sia di scacchi che di AI; considerando che
nessuno l'ha scritto probabilmente non è una domanda di facile risposta.
 
 
Ciao!

[cut]
 
Ciao, mi aggancio qui per chiederti una cosa (un po OT) visto che mi sembri abbastanza ferrato sull'argomento:
dove posso trovare in rete documenti, articoli, ecc. per iniziare uno studio sulla A.I. e le reti neurali?
 
Tieni presente che sono un informatico ma che nel mio percorso di studi e di lavoro non ho mai avuto occasione di occuparmi di AI, quindi partirei praticamente da zero. Lo studio che vorrei fare è per pura curiosità nei confronti di un argomento che mi ha sempre intrigato molto, ma che per svariati motivi ho sempre rimandato
 
Grazie
Ciao


Tieni conto che con l'informatica non c'entra nulla, eh. E' un ramo della
statistica, quindi preparati a ritirare fuori libri di matematica ;)
 
Se parti da zero puoi provare con qualche lecture sul machine learning,
c'è tutto un corso del professor Andrew Ng alla Standford su youtube
(che è veramente eccezionale).
 
Quando sai su cosa ti vuoi concentrare di libri ne trovi a iosa su ogni
singolo argomento (su reti poi ne trovi a sfare), ma senza una base di ML
è quasi impossibile seguirne uno.
 
Ciao!

 (difficile imparare da uno piů brocco di te)
 
questa č una questione sulla quale sarebbe interessante aprire una
discussione.
Se fosse vero in assoluto, allora come fanno i grandi campioni
mondiali ad essere tali se allenati da giocatori naturalmente meno
preparati?
E allora, forse c'č una bella differenza fra saper giocare e saper
insegnare.
Ecco dove dovrebbe entrare l'I.A., ma ho la sensazione che sarebbe
cosa pressochč impossibile.

 
 
Ok quindi il consiglio è comunque di partire da ML.
Grazie
Ciao
 

Comincerei da alberi binari e sistemi esperti banalissimi


Scusate se entro a gamba tesa... e permettetemi di fare qualche 
considerazione e dare qualche consiglio.
 
L'AI in generale non è solo un argomento di informatica, è anche una 
questione filosofica: prima di tutto non c'è accordo tra gli addetti ai 
lavori nemmeno sulla esatta definizione di AI. Si parla di AI forte e AI 
debole, di cognitivismo, strutturalismo e funzionalismo (che sono teorie 
psicologiche) e altre amenità. Magari puoi cominciare facendoti un giro 
su Wikipedia e cercare di chiarire a te stesso quale approccio ti 
sfagiola maggiormente.
 
Io personalmente ho sempre apprezzato questa definizione: AI è tutto ciò 
che una macchina fa, e che se fosse fatto da un essere umano denoterebbe 
senz'altro intelligenza. :-)
 
In pratica si parte dal tentativo di definire la mente per capire se e 
come la possiamo replicare (ecco perché si tira in ballo la psicologia e 
in particolare la psicologia sperimentale). Approcci più pragmatici se ne 
sbattono di tutte le considerazioni filosofiche/psicologiche e si 
focalizzano su come ottenere risultati in ambiti ben definiti 
(rinunciando quindi in pratica a un concetto generale di AI o una teoria 
unitaria in cui far rientrare tutti i tentativi di risolvere problemi 
astratti mediante algoritmi o euristiche).
 
A questo punto entrano in gioco le reti neurali che attualmente sono la 
migliore approssimazione possibile, a quanto pare, di come funziona un 
cervello. E' da notare che una rete neurale NON è un normale computer 
(macchina di von Neumann) ma possiamo usare un computer per SIMULARE una 
rete neurale e in pratica evitare di dover costruire un hardware dedicato.
 
Come argomenti semplici ma che ti dovrebbero accendere come una miccia se 
ti interessa la materia, potresti guardarti come funziona un sistema 
esperto, e magari gli alberi binari. Con queste due robette se ti ci 
metti sei già in grado di scrivere programmi da paura, in particolare per 
fare un semplice sistema esperto ci vuole davvero pochissimo. Ho dei 
sorgenti da qualche parte tratti da un libercolo dal titolo "Intelligenza 
artificiale con il QL", (ti puoi benissimo immaginare l'alto livello 
accademico che presentava, oltretutto negli anni 80...) che poi avevo 
rielaborato in proprio ottenendo alcune cose interessanti.
 
Se ti interessa un approccio più serioso, quindi meno da smanettone 
dilettante ma più teorico, esistono programmi già belli e pronti che ti 
permettono di studiare a fondo il funzionamento delle reti neurali senza 
doverti scrivere in proprio gli algoritmi, quindi focalizzandoti sui dati, 
i meccanismi di backpropagation e reinforcement, ecc. ecc.
 
Ecco un interessante documento sulle reti neurali e la logica fuzzy:
 
RETI NEURALI SU PERSONAL COMPUTER + FUZZY LOGIC di Luca Marchese
 
E’ possibile trovare questo libro in formato HTML presso i seguenti 
indirizzi:
- 
http://www.ulisse.it/~marchese/book/neurbook.html
 
- 
http://space.tin.it/clubnet/blimar/neurbook/neurbook.html
 
- 
http://digilander.iol.it/lucamarchese/neurbook/neurbook.html
 
- 
http://web.tiscalinet.it/luca_marchese/neurbook/neurbook.html
 
La versione PDF è stata adattata da Stefano SteO Arcidiacono 
(
in...@steo.it
), ed è disponibile
presso i seguenti indirizzi:
- 
http://www.
.steo.it/ici
- 
http://www.gameprog.it
 
 
Puoi leggerti Bar Kosko, "Il fuzzy-pensiero", che è stimolante, per 
capire cos'è la fuzzy-logic (basterà comunque la solita Wikipedia per una 
infarinatura).
 
Per adesso mi fermo qui, facci sapere appena avrai scritto Alpha-One come 
si comporterà con Stockfish ennesimo... :-)
 
Dan

 Dan
 
- l'AI sta all'informatica come sta alla filosofia, ovvero pochissimo: come
già detto ML/DL sono branche della statistica. Dirò di più: se si trova un
libro che inizia a parlare di filosofia o psicologia (sempre non sia
fantascienza) è da buttare.
 
- "le reti neurali sono attualmente la  migliore approssimazione possibile
di come funziona un cervello". Ma nemmeno per idea.
 
- il libro fa più casino che altro. E non vedo come potrebbe essere
altrimenti, visto che "butta lì" idee a caso senza filo logico. Quei tipi
di rete sono casi specifici di classificatori non lineari che non vedo cosa
abbiano di particolare.
 
- la fuzzy logic era un hype degli anni 80/90. Non la trovi più da nessuna
parte. Oddio, da qualche parte in robotica ancora si usa, ma di sicuro non
su questo tipo di problemi.
 
 
Si vede che sei un appassionato, ma più che dare consigli mi metterei prima
"a pari" con i tempi :)
 
 
Ciao!

 
Certamente l'ultima volta che mi sono interessato all'AI è stato un bel 
po' di tempo fa, :-) ma questo non è necessariamente un problema: i 
concetti fondamentali non sono cambiati a quanto mi risulta.
 
Dan

 
 
Tra le cose che citi e oggi c'è stato il cosiddetto "AI winter": dopo anni
di bei finanziamenti all'intelligenza artificiale che non arrivavano a
nulla, c'è stato un fermo di una decina di anni.
Adesso è "tornata alla ribalta" non perché di moda, ma perché i risultati
sono effettivi, e lo sono perché l'approccio, o le "basi" come dici te,
è completamente diverso.
Seguiti un corso di ML, che è considerata la nuova "base" (di cui infatti
reti neurali sono una piccola parte), e vedrai che di righe di codice non
ne scriverai neppure una.
 
Quindi direi sì, i concetti di base sono cambiati eccome.
 
 
Ciao!

[cut]
 
Anzitutto vi ringrazio tutti per i suggerimenti. Diciamo che le cose che mi interessano di più sono 2:
1) sistemi in grado di apprendere. L'apprendimento in generale è una cosa che mi ha sempre molto interessato, sia quando si parla di apprendimento strettamente umano, ma anche quello non umano 
2) reti neurali. Semplicemente perchè ne ho sempre sentito molto parlare relativamente alla AI, ma non ho idea di come funzionino e quindi la mia curiosità è sempre stata tanta
 
All'università trattammo di sfuggita i sistemi esperti e devo dire che questi non mi avevano entusiasmato più di tanto.
Quando invece parlate di alberi binari cosa intendete esattamente?
 
Un'ultima curiosità che mi passa per la testa in questo momento mentre sto scrivendo: una roba tipo Akinator rientra in qualche categoria di software tra quelle che avete citato?

 
Beh mi leggerò senz'altro qualcosa...ma per ora resto della mia idea!
 
Dan

 tra quelle che avete citato?
 
Akinator è esattamente un sistema esperto, di quelli che probabilmente hai
anche scritto in prolog :)
 
Ciao!

 software tra quelle che avete citato?
 
Sorry ma non so cos'è. Francesco?...
 
Dan

 
 
Spero di averti dato un buon suggerimento, e aspetto la tua sicura euforica
risposta quando vedrai dove siamo arrivati! ;)
 
 
Ciao!

 scacchi... :-)
 
Scusami, ma questa è una supercazzola :)
A-B-pruning lo puoi fare su qualsiasi grafo orientato, quindi ogni tipo
di albero.
Un programma di scacchi che usi l'AB lo fa su un N-albero (dove N è il
numero di mosse possibili in quella specifica posizione).
 
Ciao!

 qualsiasi grafo orientato
 
qualsiasi grafo *aciclico* orientato
 

 
 
Tu confondi l'AI intesa come branca del sapere con la programmazione, 
l'ingegneria della conoscenza ecc. ovvero le discipline pratiche, le 
TECNICHE che fanno parte dell'AI, la quale è molto più vasta e ha 
implicazioni etiche, psicologiche e culturali in senso più ampio. Il che 
è perfettamente scientifico, dato che sono tutti argomenti oggetto della 
indagine scientifica. Tu prendi la parte per il tutto insomma... 
 
Comunque non ho intenzione di continuare a polemizzare, anzi io intendevo 
interloquire soprattutto con l'OP, il quale a questo punto si sarà fatto 
un'idea e si documenterà come meglio crede.
Dopotutto questo è un NG di scacchi e siamo già abbastanza OT.
 
Comunque se stai lavorando a qualche progetto inerente l'IA, auguri!
Dan

 Comunque se stai lavorando a qualche progetto inerente l'IA, auguri!
 
Grazie ;)
 
 
Mi spiace te la sia presa, non era mia intenzione polemizzare con te o
con nessun'altro.
 
Ciao!

 
 
Ok, immaginavo infatti che si potesse catalogare come sistema esperto. Probabilmente anche abbastanza banale.
 
Grazie
Ciao
 

 
 
Ok, è chiaro. E' una tipologia di software abbastanza diffusa direi.
Grazie
Ciao

 
 
Per rimanere in tema di scacchi, mi immetto nella discussione.
 
Questo ragazzo ha (recentemente) basato la sua tesi su un lavoro 
incentrato nell'uso di due tipi di reti neurali applicate agli scacchi:
 
https://github.com/paintception/DeepChess
 
 


 
Mi ero marcato il post, ma tra vacanze e resto me l'ero perso... Spero di
recuperare ora :)
 
Una precisazione evidentemente necessaria è che cercherò di essere il più
tecnico possibile, perché su quella parte qualcosina posso dire; per la
parte "umanistica" invece mi tiro completamente fuori.
 
Come prima cosa "rete" non è un termine intuitivo. A seconda del campo ci
sono definizioni diverse, il che volendo rende un po' misteriosa la stessa
domanda.
 
La regina delle definizioni applicabili è sicuramente quella matematica nel
campo della topologia generale: una rete R in uno spazio topologico T è una
funzione da un insieme diretto (la cui definizione è un po' troppo lunga da
scrivere in due righe, ma semplicemente implica forti relazioni d'ordine
dei suoi elementi) a T.
Se la cosa sembra molto astratta o non dice molto non c'è da preoccuparsi:
non dice molto a nessuno. E' però importante quando si decide di chiamare
"rete" qualcosa che a livello intuitivo magari non lo è.
 
In statistica quando si dice "rete" senza niente a fianco si sta quasi
sicuramente parlando di una rete di Markov o di Bayes. Queste reti si
applicano così tanto in così tanti campi dello scibile umano che non
potevano non essere applicate anche in AI. Ed infatti lo sono.
Curiosamente, una particolare applicazione delle reti di Bayes è chiamata
PNN (probabilistic neural network), anche se non ne so il motivo.
 
Siccome una rete neurale "classica", ovvero multilivello a perceptron, è
un caso speciale dei GLA, molti degli algoritmi della stessa classe hanno
"neural" nel nome originale (per semplicità credo), anche se storicamente
non dovrebbero essere identificate come ANN (artifical neural networks).
Altre volte invece intuitivamente dovrebbero, come le reti a convoluzione.
 
Comunque, a stringere:
è solo una questione di nomi e definizioni di modelli a volte simili a
volte no.
Il "neurale" nel nome non identifica nemmeno più un modello: anche nei
calcolatori, non esistono tante parti uguali che arrivano ad un risultato
finale. Anche una MLP classica, scritta come si usa oggi, è solo una serie
di moltiplicazioni vettoriali (eh sì, con due "for()" scrivi una rete
neurale - a saperlo quando da piccolo scrivevo in basic!).
 
Ciao!