<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>SlashCode &#187; AI e Neuroscienze</title>
	<atom:link href="http://davideaversa.it/slashcode/category/artificial-intelligence/feed/" rel="self" type="application/rss+xml" />
	<link>http://davideaversa.it/slashcode</link>
	<description></description>
	<lastBuildDate>Thu, 03 May 2012 14:28:53 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Solo questione di ricerca?</title>
		<link>http://davideaversa.it/slashcode/2012/04/solo-questione-di-ricerca/</link>
		<comments>http://davideaversa.it/slashcode/2012/04/solo-questione-di-ricerca/#comments</comments>
		<pubDate>Mon, 02 Apr 2012 06:00:37 +0000</pubDate>
		<dc:creator>THeK3nger</dc:creator>
				<category><![CDATA[AI e Neuroscienze]]></category>
		<category><![CDATA[ai]]></category>
		<category><![CDATA[ricerca]]></category>

		<guid isPermaLink="false">http://davideaversa.it/slashcode/?p=802</guid>
		<description><![CDATA[Era il 1971 quando in un celebre libro comparve la frase Nell&#8217;analizzare variazioni complicate si deve esaminare ogni ramo dell&#8217;albero una ed una sola volta. A scriverla non un informatico ne un matematico bensì il maestro di scacchi sovietico Alexander Kotov nel suo famoso Pensa come un Grande Maestro. La cosa che più sorprende della <a href='http://davideaversa.it/slashcode/2012/04/solo-questione-di-ricerca/' class='excerpt-more'>[...]</a>]]></description>
			<content:encoded><![CDATA[<div style="height:33px;" class="really_simple_share robots-nocontent snap_nopreview"><div class="really_simple_share_facebook_like" style="width:100px;"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fdavideaversa.it%2Fslashcode%2F2012%2F04%2Fsolo-questione-di-ricerca%2F&amp;layout=button_count&amp;show_faces=false&amp;width=100&amp;action=like&amp;colorscheme=light&amp;send=false&amp;height=27" 
						scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:100px; height:27px;" allowTransparency="true"></iframe></div><div class="really_simple_share_google1" style="width:90px;"><div class="g-plusone" data-size="medium" data-href="http://davideaversa.it/slashcode/2012/04/solo-questione-di-ricerca/" ></div></div><div class="really_simple_share_twitter" style="width:110px;"><a href="http://twitter.com/share" class="twitter-share-button" data-count="horizontal" 
						data-text="Solo questione di ricerca?" data-url="http://davideaversa.it/slashcode/2012/04/solo-questione-di-ricerca/" 
						data-via=""  ></a></div></div>
		<div style="clear:both;"></div><p>Era il 1971 quando in un celebre libro comparve la frase</p>
<blockquote><p>
Nell&#8217;analizzare variazioni complicate si deve esaminare ogni ramo dell&#8217;albero una ed una sola volta.
</p></blockquote>
<p>A scriverla non un informatico ne un matematico bensì il maestro di scacchi sovietico <strong><a href="http://it.wikipedia.org/wiki/Aleksandr_Aleksandrovi%C4%8D_Kotov">Alexander Kotov</a></strong> nel suo famoso <em>Pensa come un Grande Maestro</em>.</p>
<p><span id="more-802"></span>La cosa che più sorprende della frase, nonché di tutta l&#8217;opera di Kotov, è che in un epoca in cui l&#8217;informatica muoveva i suoi primi passi, un maestro sovietico di scacchi usasse con tanta naturalezza termini come <em>ramo</em> ed <em>albero</em> per descrivere il processo umano di analisi di una posizione scacchistica e della <strong>ricerca</strong> della migliore soluzione.</p>
<p>Ed è proprio la parola <em>&#8220;ricerca&#8221;</em>, secondo Kotov, il centro nevralgico di tutto il gioco: il grande maestro si differenzia dal principiante per la sua capacità di organizzare la mente, di strutturare il pensiero e di cercare in modo efficiente la migliore mossa possibile.</p>
<p>Oggi, a 40 anni di distanza da quelle parole, sappiamo che quelle parole erano vere e sono ancora oggi la base di tutta l&#8217;AI moderna. Il concetto di ricerca infatti rappresenta le fondamenta di tutte le tecniche di AI. Sia che si tratti di cercare un percorso,  pianificare una serie di azioni, trovare una mossa in un gioco o il minimo di una funzione non-lineare, tutta l&#8217;intelligenza sintetica ha in comune lo stesso principio: navigare l&#8217;incerto alla <em>ricerca</em> della soluzione migliore.</p>
<p>La differenza vera riguarda il <em>come</em> questa ricerca viene effettuata. Gli algoritmi di ricerca solitamente si possono descrivere in 20 righe di pseudocodice, eppure nessuno di questi algoritmi, preso così com&#8217;è, potrebbe essere applicato con successo ad un problema reale. Prendiamo ad esempio l&#8217;<a href="http://en.wikipedia.org/wiki/Alpha-beta_pruning">alpha-beta pruning</a>, algoritmo alla base di un infinità di intelligenze artificiali di giochi.</p>
<div class="codecolorer-container python dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="python codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #ff7700;font-weight:bold;">def</span> alphabeta<span style="color: black;">&#40;</span>node<span style="color: #66cc66;">,</span> depth<span style="color: #66cc66;">,</span> alpha<span style="color: #66cc66;">,</span> beta<span style="color: #66cc66;">,</span> Player<span style="color: black;">&#41;</span> &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; <span style="color: #ff7700;font-weight:bold;">if</span> &nbsp;depth <span style="color: #66cc66;">==</span> <span style="color: #ff4500;">0</span> <span style="color: #ff7700;font-weight:bold;">or</span> node <span style="color: #ff7700;font-weight:bold;">is</span> a terminal node<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #ff7700;font-weight:bold;">return</span> the heuristic value of node<br />
&nbsp; &nbsp; <span style="color: #ff7700;font-weight:bold;">if</span> &nbsp;Player <span style="color: #66cc66;">==</span> MaxPlayer<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #ff7700;font-weight:bold;">for</span> each child <span style="color: #ff7700;font-weight:bold;">in</span> node<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; alpha <span style="color: #66cc66;">=</span> <span style="color: #008000;">max</span><span style="color: black;">&#40;</span>alpha<span style="color: #66cc66;">,</span> alphabeta<span style="color: black;">&#40;</span>child<span style="color: #66cc66;">,</span> depth-<span style="color: #ff4500;">1</span><span style="color: #66cc66;">,</span> alpha<span style="color: #66cc66;">,</span> beta<span style="color: #66cc66;">,</span> <span style="color: #ff7700;font-weight:bold;">not</span><span style="color: black;">&#40;</span>Player<span style="color: black;">&#41;</span> <span style="color: black;">&#41;</span><span style="color: black;">&#41;</span> &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #ff7700;font-weight:bold;">if</span> beta ? alpha<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #ff7700;font-weight:bold;">break</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #808080; font-style: italic;">#(* Beta cut-off *)</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #ff7700;font-weight:bold;">return</span> alpha<br />
&nbsp; &nbsp; <span style="color: #ff7700;font-weight:bold;">else</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #ff7700;font-weight:bold;">for</span> each child of node<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; beta <span style="color: #66cc66;">=</span> <span style="color: #008000;">min</span><span style="color: black;">&#40;</span>beta<span style="color: #66cc66;">,</span> alphabeta<span style="color: black;">&#40;</span>child<span style="color: #66cc66;">,</span> depth-<span style="color: #ff4500;">1</span><span style="color: #66cc66;">,</span> alpha<span style="color: #66cc66;">,</span> beta<span style="color: #66cc66;">,</span> <span style="color: #ff7700;font-weight:bold;">not</span><span style="color: black;">&#40;</span>Player<span style="color: black;">&#41;</span> <span style="color: black;">&#41;</span><span style="color: black;">&#41;</span> &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #ff7700;font-weight:bold;">if</span> beta ? alpha<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #ff7700;font-weight:bold;">break</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #808080; font-style: italic;">#(* Alpha cut-off *)</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #ff7700;font-weight:bold;">return</span> ?beta<br />
<span style="color: #808080; font-style: italic;">#(* Initial call *)</span><br />
alphabeta<span style="color: black;">&#40;</span>origin<span style="color: #66cc66;">,</span> depth<span style="color: #66cc66;">,</span> -infinity<span style="color: #66cc66;">,</span> +infinity<span style="color: #66cc66;">,</span> MaxPlayer<span style="color: black;">&#41;</span></div></div>
<p>L&#8217;algoritmo è tutto qui, poco meno di 20 righe, eppure preso così è inutile. Prima bisogna rispondere a domande del tipo <strong>&#8220;Come costruisco l&#8217;albero?&#8221;</strong> o <strong>&#8220;Come posso valutare in modo preciso un nodo?&#8221;</strong> e <strong>&#8220;Come minimizzare il numero di nodi esplorati?&#8221;</strong>. Risposte che richiedono centinaia e centinaia di righe di codice e dalla cui risposta dipendono drammaticamente le prestazioni di ricerca.</p>
<p>Ad esempio sia <strong>Deep Blue</strong> che <strong>Junior</strong> utilizzano come base l&#8217;alpha-beta pruning per la ricerca e l&#8217;analisi di una posizione scacchistica, eppure Deep Blue, che altro non è che un gigantesco mainframe divora mosse, viene tranquillamente stracciato da Junior (che tra l&#8217;altro gira su un normalissimo PC) grazie ad una serie di ottimizzazioni che rendono il suo gioco molto più intelligente.</p>
<p>A questo punto la domanda sorge spontanea: quanto è simile tutto questo all&#8217;intelligenza umana? Onestamente credo che la risposta non abbia molta importanza. Per dirla come <strong>Drew McDermott</strong> </p>
<blockquote><p>Dire che Deep Blue non pensa davvero quando gioca a scacchi equivale dire che un aereo non vola davvero perchè non sbatte le ali.</p></blockquote>
 <p><a href="http://davideaversa.it/slashcode/?flattrss_redirect&amp;id=802&amp;md5=06c3aa832db2cb731138c740e9a2ec6a" title="Flattr" target="_blank"><img src="http://davideaversa.it/slashcode/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://davideaversa.it/slashcode/2012/04/solo-questione-di-ricerca/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<atom:link rel="payment" href="https://flattr.com/submit/auto?user_id=thek3nger&amp;popout=1&amp;url=http%3A%2F%2Fdavideaversa.it%2Fslashcode%2F2012%2F04%2Fsolo-questione-di-ricerca%2F&amp;language=it_IT&amp;category=text&amp;title=Solo+questione+di+ricerca%3F&amp;description=Era+il+1971+quando+in+un+celebre+libro+comparve+la+frase+Nell%26%238217%3Banalizzare+variazioni+complicate+si+deve+esaminare+ogni+ramo+dell%26%238217%3Balbero+una+ed+una+sola+volta.+A+scriverla+non+un+informatico...&amp;tags=ai%2Cricerca%2Cblog" type="text/html" />
	</item>
		<item>
		<title>Cobra Draughts</title>
		<link>http://davideaversa.it/slashcode/2011/07/cobra-draughts/</link>
		<comments>http://davideaversa.it/slashcode/2011/07/cobra-draughts/#comments</comments>
		<pubDate>Sat, 30 Jul 2011 17:49:28 +0000</pubDate>
		<dc:creator>THeK3nger</dc:creator>
				<category><![CDATA[AI e Neuroscienze]]></category>
		<category><![CDATA[Algoritmica]]></category>
		<category><![CDATA[ai]]></category>
		<category><![CDATA[dama]]></category>
		<category><![CDATA[giochi]]></category>

		<guid isPermaLink="false">http://davideaversa.it/slashcode/?p=778</guid>
		<description><![CDATA[<div><a href="http://davideaversa.it/slashcode/2011/07/cobra-draughts/"><img title="Cobra Draughts" src="http://davideaversa.it/slashcode/wp-content/uploads/2011/07/cobra-150x150.png" alt="Cobra Draughts"  width="200" height="200" /></a></div><br/>Chi mi segue su Google+ o Twitter sa già tutta la storia. Per chi invece non lo fa eccola qui. Un paio di settimane fa stavo pensando a quale progetto portare per l&#8217;esame di Machine Learning. Dopo aver scartato un po&#8217; di idee perché troppo banali e altre perché troppo complesse mi si è accesa <a href='http://davideaversa.it/slashcode/2011/07/cobra-draughts/' class='excerpt-more'>[...]</a>]]></description>
			<content:encoded><![CDATA[<div style="height:33px;" class="really_simple_share robots-nocontent snap_nopreview"><div class="really_simple_share_facebook_like" style="width:100px;"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fdavideaversa.it%2Fslashcode%2F2011%2F07%2Fcobra-draughts%2F&amp;layout=button_count&amp;show_faces=false&amp;width=100&amp;action=like&amp;colorscheme=light&amp;send=false&amp;height=27" 
						scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:100px; height:27px;" allowTransparency="true"></iframe></div><div class="really_simple_share_google1" style="width:90px;"><div class="g-plusone" data-size="medium" data-href="http://davideaversa.it/slashcode/2011/07/cobra-draughts/" ></div></div><div class="really_simple_share_twitter" style="width:110px;"><a href="http://twitter.com/share" class="twitter-share-button" data-count="horizontal" 
						data-text="Cobra Draughts" data-url="http://davideaversa.it/slashcode/2011/07/cobra-draughts/" 
						data-via=""  ></a></div></div>
		<div style="clear:both;"></div><p><a href="http://davideaversa.it/slashcode/wp-content/uploads/2011/07/cobra.png"><img src="http://davideaversa.it/slashcode/wp-content/uploads/2011/07/cobra-150x150.png" alt="" title="cobra" width="150" height="150" class="alignleft size-thumbnail wp-image-779" /></a></p>
<p>Chi mi segue su <a href="https://plus.google.com/107808852439129263602/">Google+</a> o <a href="https://twitter.com/thek3nger">Twitter</a> sa già tutta la storia. Per chi invece non lo fa eccola qui.</p>
<p>Un paio di settimane fa stavo pensando a quale progetto portare per l&#8217;esame di <strong>Machine Learning</strong>. Dopo aver scartato un po&#8217; di idee perché troppo banali e altre perché troppo complesse mi si è accesa la lampadina. Ho pensato di progettare un intelligenza artificiale per il gioco della dama in grado di apprendere con l&#8217;esperienza.</p>
<p><span id="more-778"></span></p>
<p>Per l&#8217;apprendimento ho avuto subito le idee chiare: usare gli algoritmi genetici. Il fatto che la dama sia un gioco suggerisce subito un ambiente <em>competitivo</em>. Si fanno sfidare AI con parametri diversi fra loro e si selezionano i migliori, che si fanno riprodurre e di nuovo combattere fra loro. Dopo un certo numero di generazioni si ottiene un AI con i parametri migliori.</p>
<p>A questo punto mancava una grossa parte secondaria del progetto, un motore di gioco. Senza una AI che giochi a dama tutto il resto non è fattibile.</p>
<p>Dopo una ricerca infruttuosa di motori di dama adatti allo scopo ho deciso di farmelo da me. Il motore doveva avere le seguenti caratteristiche:</p>
<ul>
<li>Essere discretamente veloce.</li>
<li>Essere di facile realizzazione per non diventare il collo di bottiglia nello sviluppo dell&#8217;intero progetto.</li>
<li>Offrire la possibilità di variare i parametri di analisi della damiera.</li>
<li>Offrire la possibilità di auto-sfidarsi con due coppie di parametri differenti.</li>
</ul>
<p>Così, dopo qualche giorno di programmazione ho tirato fuori <strong>Cobra Draughts</strong>, un software damistico che soddisfa tutti i requisiti che ho elencato precedentemente. Certo, se l&#8217;avessi scritto in C (bene) sarebbe stato più veloce ma avrei aggiunto una marea di lavoro in più.</p>
<p>Il programma è discretamente performante, in un secondo riesce ad analizzare l&#8217;albero di ricerca fino al 6° livello, tuttavia credo che non lo spingerò oltre al 4° dato che una buona euristica (appresa automaticamente) può compensare i livelli mancanti (o almeno vorrei dimostrare questo).</p>
<p>Potete trovare maggiori informazioni sul progetto nell&#8217;apposita <a href="http://code.google.com/p/cobra-draughts/">pagina google code</a> dove presto metterò anche materiale più tecnico per chi vuole usare il programma a scopo didattico o semplicemente aiutarmi a migliorarlo.</p>
 <p><a href="http://davideaversa.it/slashcode/?flattrss_redirect&amp;id=778&amp;md5=0d0614adfbffed914515cf0e31c69439" title="Flattr" target="_blank"><img src="http://davideaversa.it/slashcode/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://davideaversa.it/slashcode/2011/07/cobra-draughts/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		<atom:link rel="payment" href="https://flattr.com/submit/auto?user_id=thek3nger&amp;popout=1&amp;url=http%3A%2F%2Fdavideaversa.it%2Fslashcode%2F2011%2F07%2Fcobra-draughts%2F&amp;language=it_IT&amp;category=text&amp;title=Cobra+Draughts&amp;description=Chi+mi+segue+su+Google%2B+o+Twitter+sa+gi%C3%A0+tutta+la+storia.+Per+chi+invece+non+lo+fa+eccola+qui.+Un+paio+di+settimane+fa+stavo+pensando+a+quale+progetto...&amp;tags=ai%2Cdama%2Cgiochi%2Cblog" type="text/html" />
	</item>
		<item>
		<title>Storia della logica non-monotona</title>
		<link>http://davideaversa.it/slashcode/2011/07/storia-della-logica-non-monotona/</link>
		<comments>http://davideaversa.it/slashcode/2011/07/storia-della-logica-non-monotona/#comments</comments>
		<pubDate>Tue, 05 Jul 2011 13:05:20 +0000</pubDate>
		<dc:creator>THeK3nger</dc:creator>
				<category><![CDATA[AI e Neuroscienze]]></category>
		<category><![CDATA[ai]]></category>
		<category><![CDATA[logica]]></category>
		<category><![CDATA[ragionamento]]></category>

		<guid isPermaLink="false">http://davideaversa.it/slashcode/?p=764</guid>
		<description><![CDATA[<div><a href="http://davideaversa.it/slashcode/2011/07/storia-della-logica-non-monotona/"><img title="Storia della logica non-monotona" src="http://davideaversa.it/slashcode/wp-content/uploads/2011/07/Thinkerl-220x300.jpg" alt="Storia della logica non-monotona"  width="146" height="200" /></a></div><br/>Per anni si è cercato di applicare la logica classica alla mente umana senza successo fino a quando, in tempi recenti, si è scoperta la logica non-monotona. Eppure incarna un principio antico come il mondo: errare è umano. Vediamo come.]]></description>
			<content:encoded><![CDATA[<div style="height:33px;" class="really_simple_share robots-nocontent snap_nopreview"><div class="really_simple_share_facebook_like" style="width:100px;"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fdavideaversa.it%2Fslashcode%2F2011%2F07%2Fstoria-della-logica-non-monotona%2F&amp;layout=button_count&amp;show_faces=false&amp;width=100&amp;action=like&amp;colorscheme=light&amp;send=false&amp;height=27" 
						scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:100px; height:27px;" allowTransparency="true"></iframe></div><div class="really_simple_share_google1" style="width:90px;"><div class="g-plusone" data-size="medium" data-href="http://davideaversa.it/slashcode/2011/07/storia-della-logica-non-monotona/" ></div></div><div class="really_simple_share_twitter" style="width:110px;"><a href="http://twitter.com/share" class="twitter-share-button" data-count="horizontal" 
						data-text="Storia della logica non-monotona" data-url="http://davideaversa.it/slashcode/2011/07/storia-della-logica-non-monotona/" 
						data-via=""  ></a></div></div>
		<div style="clear:both;"></div><p><a href="http://davideaversa.it/slashcode/wp-content/uploads/2011/07/Thinkerl.jpg"><img class="alignleft size-medium wp-image-765" title="Robo-Thinker" src="http://davideaversa.it/slashcode/wp-content/uploads/2011/07/Thinkerl-220x300.jpg" alt="" width="220" height="300" /></a></p>
<p>L&#8217;uso della logica come tentativo di emulare il ragionamento umano è un arte antica. Già Aristotele nel IV secolo A.C., spinto dal suo enorme desiderio di razionalizzare il mondo, si era spinto fino al punto di cercare di meccanizzare il pensiero umano. Aristotele ci provò con i <strong>sillogismi</strong> che definiva come <em>&#8220;un discorso nel quale, supposta la verità di alcune cose, si deduce la necessaria verità di una conclusione diversa dai presupposti&#8221;</em>.</p>
<p>Verso la fine del 1200, il filosofo catalano <strong>Ramon Llull</strong> passò gran parte del suo tempo nel tentativo di creare macchine in grado di generare automaticamente ragionamenti utili (<em>Ars generalis ultima</em>). Sebbene il suo scopo fosse un po&#8217; ardito (Ramon tentava di dimostrare la supremazia del Cristianesimo sull&#8217;Islam e l&#8217;Ebraismo facendo derivare automaticamente la dottrina Cristiana a partire da alcuni principi di base) la mole di tecniche di calcolo e di ragionamento create dal filosofo catalano fu decisamente elevata per l&#8217;epoca.</p>
<p>Tuttavia sia Aristotele che Lull che tutti gli altri che ci hanno provato nei secoli a venire (e ci provano tutt&#8217;ora) hanno fallito: i loro metodi si sono sempre trovati davanti al problema di non essere scalabili alla complessità del mondo reale. Apparve chiaro, insomma, che l&#8217;uomo non è una raffinata macchina risolutiva di formule logiche o, almeno, non solo.</p>
<p><span id="more-764"></span></p>
<p>La mente umana infatti, a differenza dei modelli logici classici, <strong>assume</strong> e <strong>ipotizza</strong>. Cosa significa matematicamente? Significa che la mente umana conclude più cose di quelle che sa (o che può logicamente dedurre) e, quindi, l&#8217;aggiunta di nuove informazioni non aumenta ed eventualmente modifica il numero delle conclusioni precedenti. Questo meccanismo prende il nome di <strong>logica non-monotona</strong>. Ma andiamo per gradi.</p>
<p>L&#8217;esempio classico di ragionamento non-monotono è dato dagli uccelli.</p>
<p style="text-align: center;"><img src='http://s.wordpress.com/latex.php?latex=%5Cforall%20x%20Uccello%28x%29%20%5Crightarrow%20Vola%28x%29&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='\forall x Uccello(x) \rightarrow Vola(x)' title='\forall x Uccello(x) \rightarrow Vola(x)' class='latex' /></p>
<p>Secondo la logica classica questa frase va interpretata come <em>&#8220;Per ogni x, se x è un Uccello allora x Vola&#8221; </em>. Tuttavia sappiamo benissimo che i pinguini, pur essendo uccelli, non volano. Quindi:</p>
<p style="text-align: center;"><img src='http://s.wordpress.com/latex.php?latex=%5Cforall%20x%20Uccello%28x%29%20%5Cwedge%20%5Cneg%20Pinguino%28x%29%20%5Crightarrow%20Vola%28x%29&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='\forall x Uccello(x) \wedge \neg Pinguino(x) \rightarrow Vola(x)' title='\forall x Uccello(x) \wedge \neg Pinguino(x) \rightarrow Vola(x)' class='latex' /></p>
<p>Purtroppo nella logica classica non possiamo dire che una certa x non è un Pinguino a meno che non sappiamo <strong>esplicitamente</strong> che non lo sia. Quindi non posso concludere nulla su ciò che non sia esplicitamente un non-pinguino. Mi spiego meglio.</p>
<p>Supponiamo di sapere che <em>Polly</em> è un uccello ma di non avere nessuna informazione sul fatto che sia o no un pinguino. Notate bene, non sapere nulla su un fatto significa che non posso dire ne che <em>Pinguino(Polly)</em> ne il contrario. Se chiediamo ad un agente logico se <em>Vola(Polly)</em> la risposta sarà solo una <strong>BOH</strong>. Poiché non ho informazioni su <em>Pinguino(Polly)</em> non posso in alcun modo utilizzare la regola precedente.</p>
<p>Se invece chiedo ad un agente umano se Polly vola, dato che è un uccello, la risposta sarà rapida e veloce: <strong>SI</strong>. Questo perché la mente umana assume più o meno in modo inconscio che se una cosa non viene menzionata significa che sia falsa e rimane falsa fino a prova contraria. Questo comportamento permette di prendere decisioni e di dedurre nuove informazioni anche nei casi in cui la logica classica fallisce ed è un comportamento che vorremmo simulare con le nostre macchine.</p>
<p>Il primo tentativo al riguardo risale agli anni 80 del secolo scorso quando John McCarthy formalizzò la tecnica chiamata <strong>Circumscription</strong>. Il meccanismo è semplice quanto potente:</p>
<p style="text-align: center;"><img src='http://s.wordpress.com/latex.php?latex=%5Cforall%20x%20Uccello%28x%29%20%5Cwedge%20%5Cneg%20Anormale%28x%29%20%5Crightarrow%20Vola%28x%29&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='\forall x Uccello(x) \wedge \neg Anormale(x) \rightarrow Vola(x)' title='\forall x Uccello(x) \wedge \neg Anormale(x) \rightarrow Vola(x)' class='latex' /></p>
<p>Il meccanismo introduce un nuovo predicato Anormale(x) il quale, se non può essere provato che sia vero, è considerato falso. Anormale è un predicato che aggrega tutte le eccezioni che vanno contro il senso comune o la generalità di un affermazione, in particolare nel nostro esempio Anormale sarà vero se x è un pinguino, se x è una gallina e così via.</p>
<p>Notiamo ora la caratteristica non-monotona di questa logica. Se sappiamo solo che Polly è un uccello possiamo dedurre che vola, se <strong>aggiungiamo</strong> che Polly è <em>Anormale</em> deduciamo che non vola mentre <strong>invalidiamo</strong> la conclusione precedente!</p>
<p>Sempre in quel periodo viene formalizzata la <strong>logica di default</strong> che si basa sugli stessi principi ma che, essendo più complicata (e da certi punti di vista, potente) non è il caso di approfondirla. </p>
<p>Tutti questi formalismi però hanno lo stesso effetto: formalizzare una conoscenza che muta, varia, sbaglia e si corregge. La logica classica infatti impone che aggiungendo informazioni ad un insieme di conoscenze o entra in contraddizione (ed è quindi da buttare) oppure cresce nel senso che tutte le conclusioni precedenti devono continuare a valere. La bellezza della logica non-monotona invece sta proprio nel fatto che l&#8217;insieme di conoscenze che produce è aggiornabile ed evolve <em>adattandosi</em> alla realtà. Non importa che possa arrivare a conclusioni errate (ma coerenti con le sue conoscenze) perché è possibile correggerlo. La logica non-monotona incarna il principio dell&#8217;errore e della possibilità di correggersi. Un comportamento umano, umanissimo.</p>
<p>Insomma, ci abbiamo messo più di duemila anni per capire che a renderci così abili nel ragionare è proprio la nostra <em>libertà di sbagliare</em>. Errare è umano e anche le macchine, per essere umane, devono poter sbagliare.</p>
 <p><a href="http://davideaversa.it/slashcode/?flattrss_redirect&amp;id=764&amp;md5=aa4fd64172d5ac7f4770896a79fcfdba" title="Flattr" target="_blank"><img src="http://davideaversa.it/slashcode/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://davideaversa.it/slashcode/2011/07/storia-della-logica-non-monotona/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<atom:link rel="payment" href="https://flattr.com/submit/auto?user_id=thek3nger&amp;popout=1&amp;url=http%3A%2F%2Fdavideaversa.it%2Fslashcode%2F2011%2F07%2Fstoria-della-logica-non-monotona%2F&amp;language=it_IT&amp;category=text&amp;title=Storia+della+logica+non-monotona&amp;description=L%26%238217%3Buso+della+logica+come+tentativo+di+emulare+il+ragionamento+umano+%C3%A8+un+arte+antica.+Gi%C3%A0+Aristotele+nel+IV+secolo+A.C.%2C+spinto+dal+suo+enorme+desiderio+di+razionalizzare+il+mondo%2C+si...&amp;tags=ai%2Clogica%2Cragionamento%2Cblog" type="text/html" />
	</item>
		<item>
		<title>Compressione Dati Tramite Reti Neurali</title>
		<link>http://davideaversa.it/slashcode/2010/10/compressione-dati-tramite-reti-neurali/</link>
		<comments>http://davideaversa.it/slashcode/2010/10/compressione-dati-tramite-reti-neurali/#comments</comments>
		<pubDate>Wed, 20 Oct 2010 20:36:17 +0000</pubDate>
		<dc:creator>THeK3nger</dc:creator>
				<category><![CDATA[AI e Neuroscienze]]></category>
		<category><![CDATA[Algoritmica]]></category>
		<category><![CDATA[compressione]]></category>
		<category><![CDATA[lossy]]></category>
		<category><![CDATA[neural net]]></category>

		<guid isPermaLink="false">http://davideaversa.it/slashcode/?p=714</guid>
		<description><![CDATA[<div><a href="http://davideaversa.it/slashcode/2010/10/compressione-dati-tramite-reti-neurali/"><img title="Compressione Dati Tramite Reti Neurali" src="http://davideaversa.it/slashcode/wp-content/uploads/2010/10/data-150x150.jpg" alt="Compressione Dati Tramite Reti Neurali"  width="200" height="200" /></a></div><br/>Abbiamo già parlato delle reti neurali. Una rete neurale è, in sintesi, una fitta interconnessione di elementi semplici chiamati percettroni. Tali unità, disposte in due o più strati, sono in grado di adattarsi tramite algoritmi particolari in modo tale che dato un ingresso X la rete &#8220;apprenda&#8221; l&#8217;uscita Y. Non entrerò oltre nel dettaglio, la materia <a href='http://davideaversa.it/slashcode/2010/10/compressione-dati-tramite-reti-neurali/' class='excerpt-more'>[...]</a>]]></description>
			<content:encoded><![CDATA[<div style="height:33px;" class="really_simple_share robots-nocontent snap_nopreview"><div class="really_simple_share_facebook_like" style="width:100px;"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fdavideaversa.it%2Fslashcode%2F2010%2F10%2Fcompressione-dati-tramite-reti-neurali%2F&amp;layout=button_count&amp;show_faces=false&amp;width=100&amp;action=like&amp;colorscheme=light&amp;send=false&amp;height=27" 
						scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:100px; height:27px;" allowTransparency="true"></iframe></div><div class="really_simple_share_google1" style="width:90px;"><div class="g-plusone" data-size="medium" data-href="http://davideaversa.it/slashcode/2010/10/compressione-dati-tramite-reti-neurali/" ></div></div><div class="really_simple_share_twitter" style="width:110px;"><a href="http://twitter.com/share" class="twitter-share-button" data-count="horizontal" 
						data-text="Compressione Dati Tramite Reti Neurali" data-url="http://davideaversa.it/slashcode/2010/10/compressione-dati-tramite-reti-neurali/" 
						data-via=""  ></a></div></div>
		<div style="clear:both;"></div><p><a href="http://davideaversa.it/slashcode/wp-content/uploads/2010/10/data.jpg"><img class="alignleft size-thumbnail wp-image-715" title="data compression" src="http://davideaversa.it/slashcode/wp-content/uploads/2010/10/data-150x150.jpg" alt="" width="150" height="150" /></a>Abbiamo già parlato delle reti neurali. Una rete neurale è, in sintesi, una fitta interconnessione di elementi semplici chiamati <em>percettroni. </em>Tali unità, disposte in due o più strati, sono in grado di adattarsi tramite algoritmi particolari in modo tale che dato un ingresso X la rete &#8220;apprenda&#8221; l&#8217;uscita Y. Non entrerò oltre nel dettaglio, la materia è infatti piuttosto complicata acnhe trattata in modo superficiale.</p>
<p>A questo punto è bene precisare che questa procedura è quasi esclusivamente una mia particolare speculazione. Non ho letto nessuna pubblicazione al riguardo ma dai miei piccolissimi test sembra funzionare correttamente. Ma veniamo al punto.</p>
<p>Supponiamo di avere una rete neurale come quella in figura:</p>
<p style="text-align: left;"><a href="http://davideaversa.it/slashcode/wp-content/uploads/2010/10/Untitleddrawing.png"><img class="size-medium wp-image-716 aligncenter" title="Untitleddrawing" src="http://davideaversa.it/slashcode/wp-content/uploads/2010/10/Untitleddrawing-300x127.png" alt="" width="300" height="127" /></a>Abbiamo una rete con 4 ingressi binari e altrettante uscite. Poi, subito prima dell&#8217;uscita e subito dopo l&#8217;ingresso, ci sono due blocchi nascosti. Tali blocchi sono composti da uno o più strati della rete, <strong>l&#8217;importante è che le due sotto-reti siano simmetriche</strong>. Infine abbiamo due strati centrali, l&#8217;importante è che tali strati contengano un numero di unità minori di quelle in ingresso e uscita.</p>
<p style="text-align: left;">A questo punto addestriamo la rete in modo tale che ad un ingresso X corrisponde un uscita Y <strong>del tutto uguale all&#8217;uscita</strong>. Vi chiederete, a che diavolo serve una rete neurale che non faccia altro che dare in uscita lo stesso valore in ingresso? A nulla, ovviamente, ma proviamo a separare la rete in due reti all&#8217;altezza dello strato centrale. In questo modo abbiamo due reti: una con 4 ingressi e 2 uscite e una con 2 ingressi e 4 uscite.</p>
<p style="text-align: left;">Per il modo in cui la rete è stata addestrata possiamo trattare la prima rete come un <strong>coder</strong> e  la seconda rete è un <strong>decoder</strong>. L&#8217;utilizzo di questa rete può essere, ad esempio, di codificare un&#8217;immagine spezzandola a blocchi di 4 bit e passandola nel coder. Il risultato sarà un file ridotto del 50%. La decodifica, analogamente, avviene spezzando il file codificato in blocchi da 2 bit per riottenere i 4 bit originali.</p>
<p style="text-align: left;">È bene precisare che questa compressione è solitamente lossy (quindi ha utilità solo per codifiche video/audio/immagini) in quanto le reti neurali solitamente sono &#8220;approssimazioni&#8221; oltre che statisticamente fonte di errore. Inoltre, il caso di 4 bit ridotti a 2 è poco efficente, solitamente andrebbero usato un ingresso molto più numeroso e un fattore di compressione variabile. Più il valore di compressione è alto più, ovviamente, la possibilità di errori e l&#8217;approssimazione aumenta.</p>
<p style="text-align: left;">Il vantaggio di questa tecnica è che, poiché la rete può essere facilmente addestrata partendo da pezzi del file da codificare, la rete apprende <strong>la migliore codifica da N a M per quello specifico file.</strong></p>
<p style="text-align: left;">Questo è un piccolo esempio di come sia possibile utilizzare una tecnologia nata dall&#8217;intelligenza artificiale per compiti che apparentemente non hanno nulla a cui spartire con essa come la codifica multimediale.</p>
 <p><a href="http://davideaversa.it/slashcode/?flattrss_redirect&amp;id=714&amp;md5=de4e6e6fbcb11d8905a959e94409ef16" title="Flattr" target="_blank"><img src="http://davideaversa.it/slashcode/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://davideaversa.it/slashcode/2010/10/compressione-dati-tramite-reti-neurali/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		<atom:link rel="payment" href="https://flattr.com/submit/auto?user_id=thek3nger&amp;popout=1&amp;url=http%3A%2F%2Fdavideaversa.it%2Fslashcode%2F2010%2F10%2Fcompressione-dati-tramite-reti-neurali%2F&amp;language=it_IT&amp;category=text&amp;title=Compressione+Dati+Tramite+Reti+Neurali&amp;description=Abbiamo+gi%C3%A0+parlato+delle+reti+neurali.+Una+rete+neurale+%C3%A8%2C+in+sintesi%2C+una+fitta+interconnessione+di+elementi+semplici+chiamati%C2%A0percettroni.+Tali+unit%C3%A0%2C+disposte+in+due+o+pi%C3%B9+strati%2C+sono+in+grado...&amp;tags=compressione%2Clossy%2Cneural+net%2Cblog" type="text/html" />
	</item>
		<item>
		<title>Questione di Entropia</title>
		<link>http://davideaversa.it/slashcode/2010/10/questione-di-entropia/</link>
		<comments>http://davideaversa.it/slashcode/2010/10/questione-di-entropia/#comments</comments>
		<pubDate>Sun, 17 Oct 2010 09:38:11 +0000</pubDate>
		<dc:creator>THeK3nger</dc:creator>
				<category><![CDATA[AI e Neuroscienze]]></category>
		<category><![CDATA[Algoritmica]]></category>
		<category><![CDATA[ai]]></category>
		<category><![CDATA[alberi decisionali]]></category>
		<category><![CDATA[entropia]]></category>

		<guid isPermaLink="false">http://davideaversa.it/slashcode/?p=706</guid>
		<description><![CDATA[<div><a href="http://davideaversa.it/slashcode/2010/10/questione-di-entropia/"><img title="Questione di Entropia" src="http://davideaversa.it/slashcode/wp-content/uploads/2010/10/tennis-150x150.jpg" alt="Questione di Entropia"  width="200" height="200" /></a></div><br/>Vi avevo parlato già degli alberi decisionali in relazione al famoso gioco 20q. Ne avevo parlato in questo articolo facendovi vedere come un semplice albero binario potesse mostrare caratteristiche di apprendimento molto ampie. Questa volta voglio invece mostrarvi un concetto molto utilizzato negli alberi decisionali per migliorare l'efficienza dell'albero stesso: l'entropia. Prima di questo però è necessario che precisare che esistono due metodologie di apprendimento.]]></description>
			<content:encoded><![CDATA[<div style="height:33px;" class="really_simple_share robots-nocontent snap_nopreview"><div class="really_simple_share_facebook_like" style="width:100px;"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fdavideaversa.it%2Fslashcode%2F2010%2F10%2Fquestione-di-entropia%2F&amp;layout=button_count&amp;show_faces=false&amp;width=100&amp;action=like&amp;colorscheme=light&amp;send=false&amp;height=27" 
						scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:100px; height:27px;" allowTransparency="true"></iframe></div><div class="really_simple_share_google1" style="width:90px;"><div class="g-plusone" data-size="medium" data-href="http://davideaversa.it/slashcode/2010/10/questione-di-entropia/" ></div></div><div class="really_simple_share_twitter" style="width:110px;"><a href="http://twitter.com/share" class="twitter-share-button" data-count="horizontal" 
						data-text="Questione di Entropia" data-url="http://davideaversa.it/slashcode/2010/10/questione-di-entropia/" 
						data-via=""  ></a></div></div>
		<div style="clear:both;"></div><p><a href="http://davideaversa.it/slashcode/wp-content/uploads/2010/10/tennis.jpg"><img class="alignleft size-thumbnail wp-image-713" title="tennis" src="http://davideaversa.it/slashcode/wp-content/uploads/2010/10/tennis-150x150.jpg" alt="" width="150" height="150" /></a>Vi avevo parlato già degli<strong> alberi decisionali</strong> in relazione al famoso gioco <strong>20q</strong>. Ne avevo parlato <a href="http://davideaversa.it/slashcode/2010/04/alberi-decisionali-in-20q/">in questo articolo</a> facendovi vedere come un semplice albero binario potesse mostrare caratteristiche di apprendimento molto ampie. Questa volta voglio invece mostrarvi un concetto molto utilizzato negli alberi decisionali per migliorare l&#8217;efficienza dell&#8217;albero stesso: l&#8217;entropia. Prima di questo però è necessario che precisare che esistono due metodologie di apprendimento.</p>
<p><strong>APPRENDIMENTO GLOBALE E APPRENDIMENTO STOCASTICO</strong></p>
<p>Il gioco 20q è un ottimo esempio di apprendimento stocastico. In questo caso infatti l&#8217;algoritmo apprende domanda per domanda e si aggiorna progressivamente verso la forma definitiva. L&#8217;apprendimento avviene <strong>alla fine di ogni esempio</strong>.</p>
<p>L&#8217;apprendimento globale invece si svolge in maniera diversa. Si prende un insieme numeroso di esempi, li si da al programma <strong>tutti insieme</strong>, e il programma apprende. In questo caso l&#8217;apprendimento avviene globalmente <strong>alla fine di tutti gli esempi</strong>.</p>
<p>L&#8217;apprendimento stocastico è solitamente il più usato nella pratica (specie nelle reti neurali) per la sua migliore efficienza, adattabilità e possibilità di successo. Nonostante ciò in questo esempio useremo un apprendimento globale per semplificarci i conti.</p>
<p><strong>L&#8217;ENTROPIA</strong></p>
<p>Supponiamo di dover scrivere un applicazione in grado di apprendere quale sono le giornate ideali per andare a giocare a tennis. La prima cosa da fare è elencare alcuni attributi della giornata: <strong>tempo, temperatura, umidità </strong>e<strong> vento</strong>. A questo punto forniamo al programma 10 &#8220;giornate&#8221; e indichiamo se la giornata è adatta al tennis o meno. Ad esempio:</p>
<ol>
<li>sole, caldo, secco, lieve = si</li>
<li>sole, caldo, umido, lieve = no</li>
<li>nuvoloso, freddo, umido, forte = no</li>
<li>nuvoloso, caldo, secco, lieve = si</li>
<li>pioggia, caldo, umido, forte = no</li>
<li>pioggia, freddo, umido, lieve = no</li>
<li>sole, freddo, secco, lieve = si</li>
<li>sole, freddo, umido, forte = no</li>
<li>nuvoloso, caldo, secco, forte = no</li>
<li>sole, caldo, secco, forte = si</li>
</ol>
<p>A questo punto dobbiamo costruire un albero a partire da questi dati. Ma quale attributo testiamo alla radice? Ovviamente dobbiamo testare l&#8217;attributo la cui risposta ci da il maggior numero di informazioni (detto diversamente, quella che ci permette di eliminare il maggior numero di ipotesi). Per far questo utilizziamo l&#8217;<strong>entropia</strong>. Essa infatti ci è molto utile per calcolare l&#8217;<strong>information gain</strong> ovvero il grado di informazione associato ad ogni attributo.</p>
<p>L&#8217;entropia è espressa dalla seguente formula:</p>
<p><a href="http://davideaversa.it/slashcode/wp-content/uploads/2010/10/CodeCogsEqn3.gif"><img class="aligncenter size-full wp-image-710" title="CodeCogsEqn(3)" src="http://davideaversa.it/slashcode/wp-content/uploads/2010/10/CodeCogsEqn3.gif" alt="" width="240" height="51" /></a></p>
<p>Dove <em>c </em>è il numero di possibili risposte (nel nostro caso sono due, &#8220;si&#8221; e &#8220;no&#8221;), e i vari p sono la frazione di esempi che hanno come risultato l&#8217;i-esima risposta. Ad esempio nella nostra lista di 10 giornate ce ne sono 4 con esito positivo e 6 con esito negativo. L&#8217;entropia del nostro insieme sarà:</p>
<p><a href="http://davideaversa.it/slashcode/wp-content/uploads/2010/10/CodeCogsEqn4.gif"><img class="aligncenter size-full wp-image-711" title="CodeCogsEqn(4)" src="http://davideaversa.it/slashcode/wp-content/uploads/2010/10/CodeCogsEqn4.gif" alt="" width="296" height="21" /></a></p>
<p>Cioè circa 0.97.</p>
<p><strong>INFORMATION GAIN</strong></p>
<p>A questo punto dobbiamo cacolare l&#8217;<strong>information gain</strong> per ogni attributo. Secondo questa formula:</p>
<p><a href="http://davideaversa.it/slashcode/wp-content/uploads/2010/10/CodeCogsEqn2.gif"><img class="aligncenter size-full wp-image-712" title="CodeCogsEqn(2)" src="http://davideaversa.it/slashcode/wp-content/uploads/2010/10/CodeCogsEqn2.gif" alt="" width="428" height="53" /></a>La formula sembra complicata ma non lo è. Vediamo infatti un rapido esempio. Cominciamo trovando il <em>gain</em> dell&#8217;attributo <strong>tempo</strong>. Tale attributo ha 3 valori possibili: <em>sole, nuvoloso </em>e <em>pioggia</em>.  La prima cosa da fare è trovare il sottoinsieme S(v) per ogni valore di tempo, cominciamo con S(sole). Per fare ciò dobbiamo identificare tutte le giornale che hanno come attributo di tempo il valore &#8220;sole&#8221; e fra queste contare quante sono associate ad una giornata &#8220;si&#8221; e quante ad una giornata &#8220;no&#8221;.</p>
<p>Il risultato è 3 &#8220;si&#8221; (la 1, la 7 e la 10) e 2 &#8220;no&#8221; (2,8). A questo punto calcoliamo l&#8217;entropia di questo sotto-insieme e moltiplichiamola per la frazione di giornate assolate (5/10). Ottenendo: 0.48. Facciamo lo stesso per tutti gli altri valori ottenendo che il gain per tempo vale esattamente 0.23.</p>
<p>Facciamo lo stesso per tutti gli altri attributi ottenendo:</p>
<ul>
<li>tempo = 0.23</li>
<li>temperatura = 0.05</li>
<li>umidità =  0.61</li>
<li>vento = 0.13</li>
</ul>
<p>Bene. A questo punto sappiamo cosa scegliere: <strong>umidità</strong>. Possiamo quindi porre come nodo radice la domanda &#8220;è umido o secco?&#8221;. Inoltre notiamo che l&#8217;entropia per l&#8217;insierme S(umido) è esattamente <strong>zero</strong>. Questo ci indica che se la risposta è &#8220;umido&#8221; possiamo già dare la risposta: <strong>no</strong>.</p>
<p>Se invece la risposta è &#8220;secco&#8221; dobbiamo continuare. Per fare ciò dobbiamo togliere dall&#8217;insieme tutte le giornate umide. A questo punto rifacciamo tutto il calcolo da capo, ricalcoliamo il nuovo gain per ogni attributo restante (tempo, temperatura e vento) e scegliamo nuovamente il maggiore. Così fino alla fine.</p>
<p>Ovviamente, tutti questi conti che abbiamo fatto a mano possono essere facilmente automatizzati, altrimenti non parleremmo di apprendimento automatico <img src='http://davideaversa.it/slashcode/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />   In un prossimo post infatti presenterò un piccolo script che dato un insieme di esempi calcola l&#8217;albero decisionale migliore in base ai dati forniti con tanto di dati sull&#8217;entropia del sistema.</p>
 <p><a href="http://davideaversa.it/slashcode/?flattrss_redirect&amp;id=706&amp;md5=80c6ea31ef6e6e526707253ee46de5e0" title="Flattr" target="_blank"><img src="http://davideaversa.it/slashcode/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://davideaversa.it/slashcode/2010/10/questione-di-entropia/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<atom:link rel="payment" href="https://flattr.com/submit/auto?user_id=thek3nger&amp;popout=1&amp;url=http%3A%2F%2Fdavideaversa.it%2Fslashcode%2F2010%2F10%2Fquestione-di-entropia%2F&amp;language=it_IT&amp;category=text&amp;title=Questione+di+Entropia&amp;description=Vi+avevo+parlato+gi%C3%A0+degli+alberi+decisionali+in+relazione+al+famoso+gioco+20q.+Ne+avevo+parlato+in+questo+articolo+facendovi+vedere+come+un+semplice+albero+binario+potesse+mostrare+caratteristiche+di...&amp;tags=ai%2Calberi+decisionali%2Centropia%2Cblog" type="text/html" />
	</item>
		<item>
		<title>La Ricerca Informata &#8211; A*</title>
		<link>http://davideaversa.it/slashcode/2010/10/la-ricerca-informata-a/</link>
		<comments>http://davideaversa.it/slashcode/2010/10/la-ricerca-informata-a/#comments</comments>
		<pubDate>Sat, 16 Oct 2010 21:17:37 +0000</pubDate>
		<dc:creator>THeK3nger</dc:creator>
				<category><![CDATA[AI e Neuroscienze]]></category>
		<category><![CDATA[Algoritmica]]></category>
		<category><![CDATA[a*]]></category>
		<category><![CDATA[ai]]></category>
		<category><![CDATA[algoritmi]]></category>
		<category><![CDATA[grafi]]></category>

		<guid isPermaLink="false">http://davideaversa.it/slashcode/?p=701</guid>
		<description><![CDATA[<div><a href="http://davideaversa.it/slashcode/2010/10/la-ricerca-informata-a/"><img title="La Ricerca Informata &#8211; A*" src="http://davideaversa.it/slashcode/wp-content/uploads/2010/10/web-manhattan-sky-view-01-150x150.jpg" alt="La Ricerca Informata &#8211; A*"  width="200" height="200" /></a></div><br/>Supponiamo di trovarci in una città a noi sconosciuta e di avere un appuntamento importante con una stupenda ragazza (o ragazzo a seconda dei casi). La cosa più semplice da fare è chiedere indicazioni ai passanti. Purtroppo però siamo sfortunati e quel giorno diluvia che dio la manda e non c’è anima viva in giro. <a href='http://davideaversa.it/slashcode/2010/10/la-ricerca-informata-a/' class='excerpt-more'>[...]</a>]]></description>
			<content:encoded><![CDATA[<div style="height:33px;" class="really_simple_share robots-nocontent snap_nopreview"><div class="really_simple_share_facebook_like" style="width:100px;"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fdavideaversa.it%2Fslashcode%2F2010%2F10%2Fla-ricerca-informata-a%2F&amp;layout=button_count&amp;show_faces=false&amp;width=100&amp;action=like&amp;colorscheme=light&amp;send=false&amp;height=27" 
						scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:100px; height:27px;" allowTransparency="true"></iframe></div><div class="really_simple_share_google1" style="width:90px;"><div class="g-plusone" data-size="medium" data-href="http://davideaversa.it/slashcode/2010/10/la-ricerca-informata-a/" ></div></div><div class="really_simple_share_twitter" style="width:110px;"><a href="http://twitter.com/share" class="twitter-share-button" data-count="horizontal" 
						data-text="La Ricerca Informata &#8211; A*" data-url="http://davideaversa.it/slashcode/2010/10/la-ricerca-informata-a/" 
						data-via=""  ></a></div></div>
		<div style="clear:both;"></div><p id="internal-source-marker_0.778890807862262"><a href="http://davideaversa.it/slashcode/wp-content/uploads/2010/10/web-manhattan-sky-view-01.jpg"><img class="alignleft size-thumbnail wp-image-703" title="streets" src="http://davideaversa.it/slashcode/wp-content/uploads/2010/10/web-manhattan-sky-view-01-150x150.jpg" alt="" width="150" height="150" /></a>Supponiamo  di trovarci in una città a noi sconosciuta e di avere un appuntamento  importante con una stupenda ragazza (o ragazzo a seconda dei casi). La  cosa più semplice da fare è chiedere indicazioni ai passanti. Purtroppo  però siamo sfortunati e quel giorno diluvia che dio la manda e non c’è  anima viva in giro. Non c’è speranza.</p>
<p><strong>LA RICERCA IN AMPIEZZA</strong></p>
<p>In  questo caso l’unica soluzione che avete è di tentare tutte le strade.  Partite dal punto A e verificate tutti gli incroci a cui si arriva  direttamente da A, se non siete arrivati tornate ad A e verificate tutti  gli incroci a cui si arriva partendo da A e attraversando un solo  incrocio, e così via, aumentanto ad ogni passo la profondità della ricerca. Questo tipo di ricerca prende il nome di <strong>ricerca in ampiezza</strong>. Funziona? Sicuro, prima o poi arriverete a destinazione. Tuttavia la domanda sorge spontanea: quanto poi?</p>
<p>Supponendo,  come avviene spesso in realtà, che ad ogni incrocio si dipanino 3  strade (oltre a quella da cui siete venuti) se disgraziatamente la  ragazza si trova a solo 10 incroci di distanza dovrete testare circa  59.049 incroci e un numero maggiore di strade. Un compito decisamente  eccessivo anche per il più motivato.</p>
<p><a href="http://davideaversa.it/slashcode/wp-content/uploads/2010/10/Animated_BFS.gif"><img class="aligncenter size-full wp-image-704" title="Animated_BFS" src="http://davideaversa.it/slashcode/wp-content/uploads/2010/10/Animated_BFS.gif" alt="" width="187" height="175" /></a></p>
<p>Dobbiamo trovare un alternativa. Appare evidente che abbiamo bisogno di un <strong>informazione</strong> che ci permetta di scartare le strade che sicuramente non ci portano a  destinazione. Chiamiamo quindi la ragazza e scopriamo che è una nerd  d’alta categoria. Ella infatti vole metterci alla prova. Invece di dirci  la strada ci promette solo di dirci<strong> la distanza in linea retta che separa ogni incrocio che vogliamo da lei</strong>. È sufficiente? Si, e non solo troviamo una strada che ci conduce da lei ma troviamo <strong>la migliore.</strong></p>
<p><strong>LA RICERCA GOLOSA<br />
</strong></p>
<p>La  prima soluzione che ci viene in mente è semplice: fra tutti gli incroci  che posso raggiungere da A scelgo quello che è più vicino alla ragazza e  così via per ogni incrocio su cui vado a finire. Questo tipo di ricerca  (che prende il nome di <strong>ricerca golosa</strong>) è sicuramente migliore della ricerca in ampiezza tuttavia ha due grossi problemi: non trova la strada più breve e, nel caso di grafo con cicli, può finire per ciclare all&#8217;infinito.</p>
<p><strong>LA RICERCA A*</strong></p>
<p><a href="http://davideaversa.it/slashcode/wp-content/uploads/2010/10/AstarExample.gif"><img class="aligncenter size-full wp-image-705" title="AstarExample" src="http://davideaversa.it/slashcode/wp-content/uploads/2010/10/AstarExample.gif" alt="" width="400" height="283" /></a></p>
<p>Scegliamo  questa strategia: assegno a tutti gli incroci che posso raggiungere  dall’incrocio in cui sono un numero <strong>N</strong> corrispondente alla <strong>somma della  strada percorsa fino a quel punto più la distanza in linea retta che  separa quell’incrocio dalla ragazza</strong>. A questo punto scelgo l’incrocio  che ha il numero N <strong>più basso</strong> fra quelli che ho assegnato fin’ora. Questa  ricerca prende il nome di<strong> A*</strong> ed è l’algoritmo di ricerca più efficiente  su un grafo pesato (come ad esempio una mappa stradale).</p>
<p>I punti a favore di A* sono fondamentalmente due: l’<strong>efficienza computazionale</strong> e il fatto che, in alcune condizioni, <strong>il percorso trovato è ottimo</strong>.</p>
<p><strong>EURISTICHE AMMISSIBILI</strong></p>
<p>Ma  quali sono queste condizioni? Torniamo all’informazione che ci forniva  la ragazza: la distanza in linea retta di ogni incrocio da lei. Questa  prende il nome di <strong>funzione euristica</strong>.  In parole povere è una funzione che esprime una stima della “distanza”  dall’obiettivo. Bene, affinché la ricerca di A* sia ottima è necessario  che la funzione euristica non sovrastimi mai la distanza reale dall’obiettivo! Quando questa condizione è soddisfatti si dice che la funzione euristica è <strong>ammissibile</strong>.</p>
<p>Nel  nostro caso la funzione euristica soddisfa questa condizione in quanto  la distanza in linea retta fra un incrocio e la ragazza non può mai  essere maggiore della distanza reale (per definizione la retta è la  distanza più breve fra due punti). La funzione è quindi ammissibile soluzione che troveremo sarà  quindi ottima.</p>
<p>La non ammissibilità di una funzione non è però un limite stringente, spesso infatti trovare una funzione euristica ammissibile necessita di un quantitativo di calcoli troppo elevato che vanificherebbe i vantaggi di A*. In questi casi si può scegliere di usare una funzione non ammissibile ma di facile calcolo a patto di accontentarsi di una soluzione che <strong>potrebbe</strong> non essere ottimale.</p>
<p>Abbiamo imparato tanto in questa uscita. La ragazza al nostro arrivo sarà sicuramente soddisfatta.</p>
 <p><a href="http://davideaversa.it/slashcode/?flattrss_redirect&amp;id=701&amp;md5=ceb454a6e03db0f18153a148d8d3533e" title="Flattr" target="_blank"><img src="http://davideaversa.it/slashcode/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://davideaversa.it/slashcode/2010/10/la-ricerca-informata-a/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		<atom:link rel="payment" href="https://flattr.com/submit/auto?user_id=thek3nger&amp;popout=1&amp;url=http%3A%2F%2Fdavideaversa.it%2Fslashcode%2F2010%2F10%2Fla-ricerca-informata-a%2F&amp;language=it_IT&amp;category=text&amp;title=La+Ricerca+Informata+%26%238211%3B+A%2A&amp;description=Supponiamo+di+trovarci+in+una+citt%C3%A0+a+noi+sconosciuta+e+di+avere+un+appuntamento+importante+con+una+stupenda+ragazza+%28o+ragazzo+a+seconda+dei+casi%29.+La+cosa+pi%C3%B9+semplice+da...&amp;tags=a%2A%2Cai%2Calgoritmi%2Cgrafi%2Cblog" type="text/html" />
	</item>
		<item>
		<title>Pensieri Seriali</title>
		<link>http://davideaversa.it/slashcode/2010/08/pensieri-seriali/</link>
		<comments>http://davideaversa.it/slashcode/2010/08/pensieri-seriali/#comments</comments>
		<pubDate>Tue, 31 Aug 2010 13:01:16 +0000</pubDate>
		<dc:creator>THeK3nger</dc:creator>
				<category><![CDATA[AI e Neuroscienze]]></category>
		<category><![CDATA[ai]]></category>
		<category><![CDATA[cervello]]></category>
		<category><![CDATA[parallelo]]></category>
		<category><![CDATA[serie]]></category>

		<guid isPermaLink="false">http://davideaversa.it/slashcode/?p=693</guid>
		<description><![CDATA[<div><a href="http://davideaversa.it/slashcode/2010/08/pensieri-seriali/"><img title="Pensieri Seriali" src="http://davideaversa.it/slashcode/wp-content/uploads/2010/08/poteri-mente-150x150.jpg" alt="Pensieri Seriali"  width="200" height="200" /></a></div><br/>Nella quasi totalità dei libri informatici e dei testi introduttivi ai calcolatori elettronici il computer, e in particolare la CPU, viene descritta come un dispositivo analogo al cervello umano, in grado di elaborare e memorizzare dati allo stesso modo in cui il cervello umano elabora e memorizza gli stimoli esterni. Questa analogia è ottima per dare <a href='http://davideaversa.it/slashcode/2010/08/pensieri-seriali/' class='excerpt-more'>[...]</a>]]></description>
			<content:encoded><![CDATA[<div style="height:33px;" class="really_simple_share robots-nocontent snap_nopreview"><div class="really_simple_share_facebook_like" style="width:100px;"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fdavideaversa.it%2Fslashcode%2F2010%2F08%2Fpensieri-seriali%2F&amp;layout=button_count&amp;show_faces=false&amp;width=100&amp;action=like&amp;colorscheme=light&amp;send=false&amp;height=27" 
						scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:100px; height:27px;" allowTransparency="true"></iframe></div><div class="really_simple_share_google1" style="width:90px;"><div class="g-plusone" data-size="medium" data-href="http://davideaversa.it/slashcode/2010/08/pensieri-seriali/" ></div></div><div class="really_simple_share_twitter" style="width:110px;"><a href="http://twitter.com/share" class="twitter-share-button" data-count="horizontal" 
						data-text="Pensieri Seriali" data-url="http://davideaversa.it/slashcode/2010/08/pensieri-seriali/" 
						data-via=""  ></a></div></div>
		<div style="clear:both;"></div><p><a href="http://davideaversa.it/slashcode/wp-content/uploads/2010/08/poteri-mente.jpg"><img class="alignleft size-thumbnail wp-image-694" title="mente" src="http://davideaversa.it/slashcode/wp-content/uploads/2010/08/poteri-mente-150x150.jpg" alt="" width="150" height="150" /></a>Nella quasi totalità dei libri informatici e dei testi introduttivi ai calcolatori elettronici il computer, e in particolare la CPU, viene descritta come un dispositivo analogo al cervello umano, in grado di elaborare e memorizzare dati allo stesso modo in cui il cervello umano elabora e memorizza gli stimoli esterni.</p>
<p>Questa analogia è ottima per dare l&#8217;idea di cosa sia un computer ma se scendiamo nei dettagli ci rendiamo conto che il paragone è tutt&#8217;altro che preciso. L&#8217;architettura del cervello umano e quella di una CPU sono completamente differenti: la prima è estremamente <strong>parallelizzata</strong> mentre la seconda è praticamente <strong>seriale</strong>.</p>
<p>Nel cervello ogni cellula celebrale delle <strong>decine di miliardi di cellule nel cervello umano </strong>lavora quasi in completa autonomia, ogni zona del cervello lavora senza curarsi (o curandosene solo in casi specifici) di cosa fanno le altre zone e anche all&#8217;interno di un singolo settore possono svolgere micro-calcoli in contemporanea. Tuttavia le cellule umane sono estremamente lente con velocità dei segnali dell&#8217;ordine dei millisecondi.</p>
<p>Le CPU invece, anche nel migliore dei casi, non supera il numero delle 32/64 unità e quindi un grado di parallelizzazione di 32/64, insufficiente a dare un grande vantaggio prestazionale a qualsivoglia algoritmo. Tuttavia una CPU ha segnali che viaggiano quasi alla velocità della luce e il numero spaventoso di miliardi di operazioni al secondo.</p>
<p>È quindi ovvio che nel tentativo dell&#8217; AI di replicare l&#8217;intelligenza umana subentrino difficoltà legate proprio alla differenza architetturale del sistema di origine e del sistema di destinazione. Si cerca infatti di replicare in modo efficiente algoritmi che funzionano bene su sistemi &#8220;paralleli&#8221; su dispositivi &#8220;seriali&#8221;. E la differenza può essere notevole! È infatti noto che modelli di calcolo equipotenti (come lo sono Cervello e CPU) non sono equivalenti quando subentra il fattore &#8220;spazio&#8221; e l&#8217;ancor più importante fattore &#8220;tempo&#8221;.</p>
<p>Algoritmi risolvibili in tempo esponenziale su un sistema possono essere risolti in tempo polinomiale su altre architetture e viceversa. Ad esempio la ricerca su un grafo, che viene eseguita scandendo progressivamente ogni singolo nodo, può essere notevolmente migliorata nel caso in cui vengano esplorati <strong>decine di milioni </strong>di nodi in contemporanea.</p>
<p>Quindi, al di là dei progressi teorici e algoritmici che da qui ai prossimi anni coinvolgeranno l&#8217;AI, ci sono progressi tecnologici che coinvolgono la struttura stessa dei calcolatori che potrebbero aprire nuove strade o riaprirne di vecchie (scartate perché poco efficienti su architetture tradizionali).</p>
<p>La creazione di un dispositivo che abbia un livello di parallelizzazione analogo a quello di un cervello umano ma allo stesso tempo conservi la velocità di calcolo di un computer tradizionale sembra ancora al di là delle possibilità tecnologiche umane, ma potrebbe essere un buon punto in cui concentrare la ricerca nel prossimo futuro. Magari sfruttando le nuove scoperte di computer quantistici e di spintronica.</p>
 <p><a href="http://davideaversa.it/slashcode/?flattrss_redirect&amp;id=693&amp;md5=7de1248b3e97762e347f281b228bb03f" title="Flattr" target="_blank"><img src="http://davideaversa.it/slashcode/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://davideaversa.it/slashcode/2010/08/pensieri-seriali/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<atom:link rel="payment" href="https://flattr.com/submit/auto?user_id=thek3nger&amp;popout=1&amp;url=http%3A%2F%2Fdavideaversa.it%2Fslashcode%2F2010%2F08%2Fpensieri-seriali%2F&amp;language=it_IT&amp;category=text&amp;title=Pensieri+Seriali&amp;description=Nella+quasi+totalit%C3%A0+dei+libri+informatici+e+dei+testi+introduttivi+ai+calcolatori+elettronici+il+computer%2C+e+in+particolare+la+CPU%2C+viene+descritta+come+un+dispositivo+analogo+al+cervello+umano%2C+in...&amp;tags=ai%2Ccervello%2Cparallelo%2Cserie%2Cblog" type="text/html" />
	</item>
		<item>
		<title>Il Test di Turing</title>
		<link>http://davideaversa.it/slashcode/2010/08/il-test-di-turing/</link>
		<comments>http://davideaversa.it/slashcode/2010/08/il-test-di-turing/#comments</comments>
		<pubDate>Sat, 07 Aug 2010 10:18:36 +0000</pubDate>
		<dc:creator>THeK3nger</dc:creator>
				<category><![CDATA[AI e Neuroscienze]]></category>
		<category><![CDATA[ai]]></category>
		<category><![CDATA[test]]></category>
		<category><![CDATA[turing]]></category>

		<guid isPermaLink="false">http://davideaversa.it/slashcode/?p=668</guid>
		<description><![CDATA[<div><a href="http://davideaversa.it/slashcode/2010/08/il-test-di-turing/"><img title="Il Test di Turing" src="http://davideaversa.it/slashcode/wp-content/uploads/2010/08/biancaneve-150x150.jpg" alt="Il Test di Turing"  width="200" height="200" /></a></div><br/>Correva l’anno 1950, il mondo si risvegliava dagli anni della Seconda Guerra Mondiale con la voglia di lasciarsi alle spalle gli orrori del totalitarismo. Era l’anno in cui nasceva Charlie Brown, l’anno in cui a Roma veniva firmata la “Convenzione europea per la salvaguardia dei diritti dell&#8217;uomo”, l’anno del primo super computer britannico (il Pilot <a href='http://davideaversa.it/slashcode/2010/08/il-test-di-turing/' class='excerpt-more'>[...]</a>]]></description>
			<content:encoded><![CDATA[<div style="height:33px;" class="really_simple_share robots-nocontent snap_nopreview"><div class="really_simple_share_facebook_like" style="width:100px;"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fdavideaversa.it%2Fslashcode%2F2010%2F08%2Fil-test-di-turing%2F&amp;layout=button_count&amp;show_faces=false&amp;width=100&amp;action=like&amp;colorscheme=light&amp;send=false&amp;height=27" 
						scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:100px; height:27px;" allowTransparency="true"></iframe></div><div class="really_simple_share_google1" style="width:90px;"><div class="g-plusone" data-size="medium" data-href="http://davideaversa.it/slashcode/2010/08/il-test-di-turing/" ></div></div><div class="really_simple_share_twitter" style="width:110px;"><a href="http://twitter.com/share" class="twitter-share-button" data-count="horizontal" 
						data-text="Il Test di Turing" data-url="http://davideaversa.it/slashcode/2010/08/il-test-di-turing/" 
						data-via=""  ></a></div></div>
		<div style="clear:both;"></div><p><a href="http://davideaversa.it/slashcode/wp-content/uploads/2010/08/biancaneve.jpg"><img class="alignleft size-thumbnail wp-image-669" title="biancaneve" src="http://davideaversa.it/slashcode/wp-content/uploads/2010/08/biancaneve-150x150.jpg" alt="" width="150" height="150" /></a></p>
<div>
<p id="internal-source-marker_0.9600321538746357">Correva l’anno 1950, il mondo si risvegliava dagli anni della Seconda Guerra Mondiale con la voglia di lasciarsi alle spalle gli orrori del totalitarismo. Era l’anno in cui nasceva Charlie Brown, l’anno in cui a Roma veniva firmata la <em>“Convenzione europea per la salvaguardia dei diritti dell&#8217;uomo”</em>, l’anno del primo super computer britannico (il <em>Pilot ACE</em>). Lo stesso anno però è noto a chi si interessa di AI soprattutto per l’articolo di un giovane<strong> Alan Turing</strong> sulla rivista <em>Mind</em> (che potete leggere qui <a href="http://loebner.net/Prizef/TuringArticle.html">http://loebner.net/Prizef/TuringArticle.html</a> ).</p>
<p>In quell’articolo Turing presentava per la prima volta il Test di Turing spinto da una domanda fondamentale ma allo stesso tempo quasi rivoluzionaria: può una macchina pensare? E se si come si può verificare questa capacità?</p>
<p>La domanda in realtà ne racchiude molte altre, prima fra le quali: che cosa si intende per macchina? Anche l’uomo è una macchina, costruita di aminoacidi e filamenti di carbonio, ma pur sempre una costruzione chimica. In questo caso la domanda ha una risposta semplice: si, le macchine possono pensare e la prova è la nostra stessa esistenza unita ad una volontà di non entrare troppo nei dettagli. Come lo stesso Turing scriveva rifacendosi al <em>Cogito Ergo Sum</em> di Cartesio:</p>
<blockquote>
<div>
<p id="internal-source-marker_0.9600321538746357"><em>Secondo la forma più estrema di questa opinione, il solo modo per cui si potrebbe essere sicuri che una macchina pensa è quello di essere la macchina stessa e sentire se si stesse pensando. [...] Allo stesso modo, la sola via per sapere che un uomo pensa è quello di essere quell&#8217;uomo in particolare. [...] Probabilmente A crederà &#8220;A pensa, mentre B no&#8221;, mentre per B è l&#8217;esatto opposto &#8220;B pensa, ma A no&#8221;. Invece di discutere in continuazione su questo punto, è normale attenersi alla educata convenzione che ognuno pensi.</em></p>
</div>
</blockquote>
<div>
<p id="internal-source-marker_0.9600321538746357">Ma limitandoci al caso di macchine artificiali ed escludendo i casi troppo filosofici, esiste un metodo che ci permetta di dire, con buona approssimazione, che una macchina è dotata di pensiero?</p>
<p>Per rispondere a questa domanda Turing nell’articolo presenta una sorta di gioco. Ci sono tre partecipanti: un uomo <strong>A</strong>, una donna <strong>B</strong> e una terza persona <strong>C</strong>. <strong>C</strong> è separato dagli altri due concorrenti e può interagire con loro solo tramite una console. Lo scopo di <strong>C</strong> è di individuare chi fra <strong>A</strong> e <strong>B</strong> sia un uomo e una donna. Allo stesso modo <strong>A</strong> deve cercare di ingannare <strong>C</strong> mentre <strong>B</strong> deve cercare di aiutarlo.</p>
<p>Il test consiste nel sostituire <strong>A</strong> con una macchina: se la percentuale di volte in cui <strong>C</strong> indovina con <strong>A-Uomo</strong> è simile a quella con <strong>A-Macchina</strong> allora la macchina è in grado di pensare perché è indistinguibile da un essere umano.</p>
<p>Il Test di Turing nel corso degli anni è stato però più volte riformulato. Infatti molti programmi chiaramente non pensanti (come <em>ELIZA</em>) riuscirono a superare i criteri del test che fu quindi reso più complesso anche alla luce dei nuovi problemi che affiorarono durante l’esplorazione dei confini dell’AI. Celebre è ad esempio il problema delle <strong>stanze cinesi</strong> proposto da  <em>John Searle</em> nel 1980 di cui forse parleremo in futuro.</p>
<p>Tuttavia, anche se ormai il Test di Turing è stato praticamente stravolto e non considerato un test totalmente affidabile, la data di pubblicazione di quell’articolo viene considerata la data di nascita dell’AI moderna. Questo perché Turing ebbe l’audacia di porre la domanda fondamentale e allo stesso tempo di proporre un sogno: applicare l’informatica a problemi strettamente collegati all’intelligenza umana fino al punto di riuscire a replicarla.</p>
<p>Due anni più tardi Turing venne arrestato con l’accusa di essere omosessuale. Un periodo di prigionia a accuse che lo segnò profondamente portandolo, il 7 giugno del 1954, a uccidersi a soli 42 anni dando un morso ad una mela avvelenata con del cianuro di potassio. Bisogna aspettare il 2009 per veder riconoscere dal governo inglese il “grave atto di discriminazione omofobica” a cui Turing era stato sottoposto e a chiedere scusa.</p>
<p>Una delle menti informatiche più rivoluzionarie dell’informatica del ‘900 muore fagocitato dall&#8217;ignoranza del suo governo. Strappato al sogno di veder realizzate le macchine che da li a pochi anni avrebbero cominciato a sfidare il suo Test. Quelle stesse macchine che lui sperava, un giorno, sarebbero diventate intelligenti come l’uomo. Forse addirittura più intelligenti di coloro che l’avevano ucciso.</p>
</div>
</div>
<p><script src="http://api.flattr.com/button/load.js" type="text/javascript"></script></p>
 <p><a href="http://davideaversa.it/slashcode/?flattrss_redirect&amp;id=668&amp;md5=84cedd650adc55f7ce751e20d32e99a5" title="Flattr" target="_blank"><img src="http://davideaversa.it/slashcode/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://davideaversa.it/slashcode/2010/08/il-test-di-turing/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		<atom:link rel="payment" href="https://flattr.com/submit/auto?user_id=thek3nger&amp;popout=1&amp;url=http%3A%2F%2Fdavideaversa.it%2Fslashcode%2F2010%2F08%2Fil-test-di-turing%2F&amp;language=it_IT&amp;category=text&amp;title=Il+Test+di+Turing&amp;description=Correva+l%E2%80%99anno+1950%2C+il+mondo+si+risvegliava+dagli+anni+della+Seconda+Guerra+Mondiale+con+la+voglia+di+lasciarsi+alle+spalle+gli+orrori+del+totalitarismo.+Era+l%E2%80%99anno+in+cui+nasceva+Charlie...&amp;tags=ai%2Ctest%2Cturing%2Cblog" type="text/html" />
	</item>
		<item>
		<title>Apprendimento: Questione di Contorni</title>
		<link>http://davideaversa.it/slashcode/2010/08/apprendimento-questione-di-contorni/</link>
		<comments>http://davideaversa.it/slashcode/2010/08/apprendimento-questione-di-contorni/#comments</comments>
		<pubDate>Wed, 04 Aug 2010 15:30:49 +0000</pubDate>
		<dc:creator>THeK3nger</dc:creator>
				<category><![CDATA[AI e Neuroscienze]]></category>
		<category><![CDATA[ai]]></category>
		<category><![CDATA[apprendimento]]></category>
		<category><![CDATA[intelligenza artificiale]]></category>

		<guid isPermaLink="false">http://davideaversa.it/slashcode/?p=659</guid>
		<description><![CDATA[<div><a href="http://davideaversa.it/slashcode/2010/08/apprendimento-questione-di-contorni/"><img title="Apprendimento: Questione di Contorni" src="http://davideaversa.it/slashcode/wp-content/uploads/2010/08/campo-rugby-150x150.jpg" alt="Apprendimento: Questione di Contorni"  width="200" height="200" /></a></div><br/>Che cos’è l’apprendimento? La domanda apre orizzonti molto complessi molti dei quali sono attualmente “zona di confine” e oggetto di numerose ricerche. Tuttavia possiamo iniziare a capire l’essenza intima dell’apprendimento tramite un piccolo gioco. Supponiamo che ci vengano restituiti in modo casuale dei punti su di un piano cartesiano. Per ogni punto ci viene inoltre <a href='http://davideaversa.it/slashcode/2010/08/apprendimento-questione-di-contorni/' class='excerpt-more'>[...]</a>]]></description>
			<content:encoded><![CDATA[<div style="height:33px;" class="really_simple_share robots-nocontent snap_nopreview"><div class="really_simple_share_facebook_like" style="width:100px;"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fdavideaversa.it%2Fslashcode%2F2010%2F08%2Fapprendimento-questione-di-contorni%2F&amp;layout=button_count&amp;show_faces=false&amp;width=100&amp;action=like&amp;colorscheme=light&amp;send=false&amp;height=27" 
						scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:100px; height:27px;" allowTransparency="true"></iframe></div><div class="really_simple_share_google1" style="width:90px;"><div class="g-plusone" data-size="medium" data-href="http://davideaversa.it/slashcode/2010/08/apprendimento-questione-di-contorni/" ></div></div><div class="really_simple_share_twitter" style="width:110px;"><a href="http://twitter.com/share" class="twitter-share-button" data-count="horizontal" 
						data-text="Apprendimento: Questione di Contorni" data-url="http://davideaversa.it/slashcode/2010/08/apprendimento-questione-di-contorni/" 
						data-via=""  ></a></div></div>
		<div style="clear:both;"></div><p><a href="http://davideaversa.it/slashcode/wp-content/uploads/2010/08/campo-rugby.jpg"><img class="alignleft size-thumbnail wp-image-660" title="campo rugby" src="http://davideaversa.it/slashcode/wp-content/uploads/2010/08/campo-rugby-150x150.jpg" alt="" width="150" height="150" /></a></p>
<p>Che cos’è l’apprendimento? La domanda apre orizzonti molto complessi molti dei quali sono attualmente <em>“zona di confine”</em> e oggetto di numerose ricerche. Tuttavia possiamo iniziare a capire l’essenza intima dell’apprendimento tramite un piccolo gioco.</p>
<p>Supponiamo che ci vengano restituiti in modo casuale dei punti su di un piano cartesiano. Per ogni punto ci viene inoltre detto se si trova all’interno o all’esterno di un rettangolo disegnato sullo stesso piano ma di cui non conosciamo dimensione e posizione. Il gioco consiste nel tracciare il rettangolo che più si avvicina al rettangolo da indovinare con il minor numero di indizi. Nella figura seguente consideriamo i punti esterni come cerchietti bianchi e i punti interni come puntini neri.</p>
<p><a href="http://davideaversa.it/slashcode/wp-content/uploads/2010/08/index.001.png"><img class="aligncenter size-medium wp-image-661" title="rettangolo apprendimento" src="http://davideaversa.it/slashcode/wp-content/uploads/2010/08/index.001-300x233.png" alt="" width="300" height="233" /></a></p>
<div>
<p id="internal-source-marker_0.9137869763653725">Per questioni di semplicità consideriamo il rettangolo da cercare con i lati paralleli alle assi del piano cartesiano.</p>
<p>Una regola di ragionamento molto severa che possiamo applicare al seguente problema può essere la seguente. Ad ogni punto che ci viene dato consideriamo solo quelli interni, dopodiché tracciamo<strong> il più piccolo rettangolo allineato che contiene tutti i punti interni. </strong>Questo può essere fatto velocemente prendendo la massima (e la minima) coordinata X e la massima (e la minima) coordinata Y dell’insieme dei punti esterni. Questi 4 valori corrispondono alle posizioni dei segmenti che compongono il rettangolo.</p>
<p><a href="http://davideaversa.it/slashcode/wp-content/uploads/2010/08/index.002.png"><img class="aligncenter size-medium wp-image-662" title="rettangolo apprendimento 2" src="http://davideaversa.it/slashcode/wp-content/uploads/2010/08/index.002-300x233.png" alt="" width="300" height="233" /></a></p>
<div>
<p id="internal-source-marker_0.9137869763653725">Questo metodo ci fornisce subito un vantaggio. Il rettangolo che tracceremo sarà sempre interno al rettangolo reale, sarà sempre un approssimazione per difetto del rettangolo originale. Un sistema automatico così progettato apprenderà la forma e la posizione del rettangolo in modo autonomo basandosi solamente sull’input.</p>
<div>
<p id="internal-source-marker_0.9137869763653725"><em>Come può questo esempio farci capire qualcosa sull&#8217;apprendimento?</em> Se prendiamo l’esempio così com’è probabilmente nulla, ma se proviamo a sostituire l’asse delle X con <em>“altezza”</em> e quella delle Y con <em>“peso”</em> possiamo subito intuire che il rettangolo T potrebbe essere, ad esempio, l’insieme delle persone con peso-forma ideale. Un sistema che prova ad indovinare il rettangolo esatto tramite i vari indizi nel modo appena descritto apprenderà la classe “persone con peso forma ideale”.</p>
<p>Possiamo quindi iniziare a dare delle definizioni formali degli elementi che abbiamo presentato.</p>
<p>Il piano cartesiano prende il nome di <strong>contesto</strong> o <strong>spazio delle istanze</strong>. Nel caso generico tale spazio non è detto sia infinito ma potrebbe essere a sua volta un insieme di punti (ad esempio, nel caso del peso-forma, possiamo escludere i pesi superiori a 400 e inferiori allo 0, idem per le altezze ottenendo un contesto di forma rettangolare). Un contesto può anche avere dimensioni superiori alle due del piano, anzi, questo è solitamente il caso più frequente in quanto i vettori di parametri in ingresso spesso sono molto grandi.</p>
<p>Un <strong>concetto</strong><em> c</em> nel contesto <em>X</em> rappresenta un qualunque sotto-insieme di X. Nel nostro caso tale concetto era rappresentato dal rettangolo <strong>T</strong>. In esempi alternativi un concetto potrebbe essere “tutte le matrici di pixel che rappresentano la lettera A” oppure “gli animali simili ad un gatto”. I concetti non è detto che siano rettangoli ma possono avere una forma qualsiasi all’interno del contesto. Una <strong>classe di concetti</strong> rappresenta un insieme di concetti nel contesto che definiscono una proprietà del concetto stesso. Nel nostro esempio una classe può essere “tutti i rettangoli allineati agli assi” in modo tale da escludere qualunque altra forma rettangolare e non allineata.</p>
<p>Infine ci sono due concetti importanti: il <strong>concetto obiettivo</strong> e il <strong>concetto ipotetico</strong> che nel nostro disegno sono rispettivamente <strong>T</strong> e <strong>T’</strong>. Il concetto obiettivo è la rappresentazione ideale di ciò che cerchiamo di apprendere mentre il concetto ipotetico è la versione nella nostra mente, o in quella di un calcolatore, ed è quella su cui basiamo le nostre decisioni.</p>
<p>Tutti questi elementi sono sufficienti a descrivere il processo dell&#8217;apprendimento nella sua interezza, sia esso di un uomo o di un automa. Gran parte dell’apprendimento, anche nel caso umano, ricalca queste definizioni. Fin da bambini infatti l’apprendimento consiste, almeno nella sua essenza, nel suddividere e associare i vari elementi del mondo reale (che possono essere oggetti fisici, emozioni oppure azioni e/o gruppi di azioni) all’interno di classi. Impariamo così a distinguere un gatto da una sedia, un’auto da una moto, un gesto utile da uno inutile e così via. La complicazione maggiore nel caso reale consiste nel vastissimo numero di parametri che vengono utilizzati per effettuare queste suddivisioni: forma, colore, odore, tipo di movimento, calore, periodo del giorno in cui l’oggetto appare, stato emotivo e molto altro. Senza parlare del fatto che molti parametri sono ancora poco quantificabili (vedasi il concetto di forma), oppure altri derivano a loro volta da classificazioni primitive (moto e auto si differenziano dal numero di ruote, ma cosa distingue una ruota da copertone poggiato ad un edicola?). E il tutto deve essere fatto in un tempo sufficientemente breve da essere &#8220;real-time&#8221; o quasi.</p>
<p>Inoltre il processo di aggiornamento di un concetto (apprendimento) è eseguito fondamentalmente in due modi: <strong>per rafforzamento e per emulazione</strong>.</p>
<p>L’apprendimento per rafforzamento è esattamente quello che succede nel gioco del rettangolo. Un essere umano (o una macchina) ricevono vettori di input e uno stimolo (che rappresenta la correttezza o la scorrettezza di un associazione). Se un bambino guarda l’acqua riceve in ingresso una nuvola di dati, se la sua classificazione è errata (ad esempio dice “pane” ma indicando l’acqua) la madre subito corregge dicendo “acqua” inviando un <strong>segnale demolitore</strong> (cerchio esterno), in caso contrario la madre sorriderà e porgerà l’acqua inviando un <strong>segnale rafforzatore</strong> (cerchio interno).</p>
<p>L’apprendimento per emulazione/induzione consiste invece nell’aggiornamento immediato del nostro “rettangolo” basandoci su quello di un altro. Tale procedimento non necessita necessariamente di prove concrete e segnali personali ma adattamenti basati su “quello che ci mostra un altro”. Ad esempio nessuno è andato mai a controllare che sulla Luna non ci sia aria personalmente eppure il nostro “rettangolo” delle “luoghi senza aria” comprende sicuramente la Luna. Ma essendo questo un comportamento quasi esclusivamente umano (gli animali non apprendono mai per emulazione) non mi dilungherò su esso.</p>
<p><strong>Un altro punto fondamentale</strong> consiste nel fattore di sfumatura del contorno. Non sempre i concetti o le classi sono delimitate nettamente da un contorno, molto più spesso tale confine è sfumato. Qual è, ad esempio, la zona di confine che delimita la classe delle sedie da quella degli sgabelli? Qual è la linea di demarcazione fra calvi e non calvi? Tutte queste domande hanno una soluzione ovvia soltanto per punti molto interni o molto esterni al “confine”. Per punti prossimi allo stesso la situazione è più complicata, ci troviamo in una zona in cui si passa gradualmente da un concetto ad un altro o addirittura sono <em>equiprobabili</em>. Inoltre non potremmo nemmeno utilizzare segnali tanto chiari come “dentro” e “fuori” perché per i punti sul confine dovremmo quantificare quanto sia dentro e quanto sia fuori.</p>
<p>Il problema è che effettuare ragionamenti automatici con questo genere di insiemi è ancora pesantemente oggetto di studio. <strong>Non esiste, infatti, nessuna versione “probabilistica” o “fuzzy” della logica del primo ordine e successive</strong>, aree di logica strettamente collegate ai concetti di cui abbiamo appena parlato. La discussione su questo quindi può essere solo che rinviata alle prossime scoperte (al più presto speriamo).</p>
<p>La cosa importante però è che aggiungere un tale comportamento darebbe agli “automi” un comportamento molto umano: <strong>il dubbio</strong>. Il dubbio e l’incertezza umana è proprio data dal nostro percorre queste zone di confine che in concetti reali sono molte più di quelle che si riescano a valutare negli asettici laboratori di intelligenza artificiale.</p>
<p>Il dubbio è però anche quella cosa che ci spinge a cercare ulteriori informazioni per poter ridisegnare il nostro “rettangolo” in modo più preciso. <strong>Cartesio</strong> diceva:<em> “Dubito ergo cogito ergo sum”</em>. Chissà che presto non siano anche gli automi a dubitare e quindi a “essere” qualcosa di più.</p>
</div>
</div>
</div>
<p><script src="http://api.flattr.com/button/load.js" type="text/javascript"></script></p>
 <p><a href="http://davideaversa.it/slashcode/?flattrss_redirect&amp;id=659&amp;md5=1e8656a67a53eddc9d116a47a922785a" title="Flattr" target="_blank"><img src="http://davideaversa.it/slashcode/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://davideaversa.it/slashcode/2010/08/apprendimento-questione-di-contorni/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<atom:link rel="payment" href="https://flattr.com/submit/auto?user_id=thek3nger&amp;popout=1&amp;url=http%3A%2F%2Fdavideaversa.it%2Fslashcode%2F2010%2F08%2Fapprendimento-questione-di-contorni%2F&amp;language=it_IT&amp;category=text&amp;title=Apprendimento%3A+Questione+di+Contorni&amp;description=Che+cos%E2%80%99%C3%A8+l%E2%80%99apprendimento%3F+La+domanda+apre+orizzonti+molto+complessi+molti+dei+quali+sono+attualmente+%E2%80%9Czona+di+confine%E2%80%9D+e+oggetto+di+numerose+ricerche.+Tuttavia+possiamo+iniziare+a+capire+l%E2%80%99essenza+intima+dell%E2%80%99apprendimento...&amp;tags=ai%2Capprendimento%2Cintelligenza+artificiale%2Cblog" type="text/html" />
	</item>
		<item>
		<title>La mente elegante</title>
		<link>http://davideaversa.it/slashcode/2010/07/la-mente-elegante/</link>
		<comments>http://davideaversa.it/slashcode/2010/07/la-mente-elegante/#comments</comments>
		<pubDate>Sun, 25 Jul 2010 21:49:04 +0000</pubDate>
		<dc:creator>THeK3nger</dc:creator>
				<category><![CDATA[AI e Neuroscienze]]></category>
		<category><![CDATA[ai]]></category>
		<category><![CDATA[deep blue]]></category>
		<category><![CDATA[fritz]]></category>
		<category><![CDATA[ibm]]></category>
		<category><![CDATA[scacchi]]></category>

		<guid isPermaLink="false">http://davideaversa.it/slashcode/?p=652</guid>
		<description><![CDATA[<div><a href="http://davideaversa.it/slashcode/2010/07/la-mente-elegante/"><img title="La mente elegante" src="http://davideaversa.it/slashcode/wp-content/uploads/2010/07/checkmate-150x150.jpg" alt="La mente elegante"  width="200" height="200" /></a></div><br/>Il 10 febbraio 1996 il computer Deep Blue batte per la prima volta il campione del mondo di scacchi Garry Kasparov. L&#8217;incontro finì comunque a favore del maestro russo per 4 a 2. L&#8217;11 maggio dell&#8217;anno successivo tuttavia Deep Blue è stato in grado di aggiudicarsi la rivincita battendo Kasparov per 3.5 a 2.5. La <a href='http://davideaversa.it/slashcode/2010/07/la-mente-elegante/' class='excerpt-more'>[...]</a>]]></description>
			<content:encoded><![CDATA[<div style="height:33px;" class="really_simple_share robots-nocontent snap_nopreview"><div class="really_simple_share_facebook_like" style="width:100px;"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fdavideaversa.it%2Fslashcode%2F2010%2F07%2Fla-mente-elegante%2F&amp;layout=button_count&amp;show_faces=false&amp;width=100&amp;action=like&amp;colorscheme=light&amp;send=false&amp;height=27" 
						scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:100px; height:27px;" allowTransparency="true"></iframe></div><div class="really_simple_share_google1" style="width:90px;"><div class="g-plusone" data-size="medium" data-href="http://davideaversa.it/slashcode/2010/07/la-mente-elegante/" ></div></div><div class="really_simple_share_twitter" style="width:110px;"><a href="http://twitter.com/share" class="twitter-share-button" data-count="horizontal" 
						data-text="La mente elegante" data-url="http://davideaversa.it/slashcode/2010/07/la-mente-elegante/" 
						data-via=""  ></a></div></div>
		<div style="clear:both;"></div><p><a href="http://davideaversa.it/slashcode/wp-content/uploads/2010/07/checkmate.jpg"><img src="http://davideaversa.it/slashcode/wp-content/uploads/2010/07/checkmate-150x150.jpg" alt="" title="checkmate" width="150" height="150" class="alignleft size-thumbnail wp-image-653" /></a></p>
<p>Il 10 febbraio 1996 il computer <em>Deep Blue</em> batte per la prima volta il campione del mondo di scacchi Garry Kasparov. L&#8217;incontro finì comunque a favore del maestro russo per 4 a 2. </p>
<p>L&#8217;11 maggio dell&#8217;anno successivo tuttavia Deep Blue è stato in grado di aggiudicarsi la rivincita battendo Kasparov per 3.5 a 2.5. La data è da sempre citata come una delle tappe fondamentali dell&#8217;AI eppure spesso tale evento viene citato per lo più a sproposito.</p>
<p>Innanzitutto bisogna valutare se possiamo aggiudicare la vittoria alla mente del pc oppure semplicemente alla sua incredibile capacità di calcolare fino a 100 milioni di posizioni al secondo. Quest&#8217;ultima caratteristica è un capolavoro dell&#8217;ingegneria, dell&#8217;elettronica e dell&#8217;algoritmica ma mi terrei molto cauto a definirlo un capolavoro dell&#8217;AI.</p>
<p>Che gli algoritmi che analizzano ed esplorano i nodi dello spazio di ricerca di un problema assumano un ruolo fondamentale per molti aspetti dell&#8217;AI è fuori discussione. Ma essi sono <em>una parte</em> della disciplina, non la sua totalità.</p>
<p>Oltre a tutto questo anche le modalità della vittoria lasciano a desiderare. Il computer era situato a chilometri di distanza e i tecnici della IBM erano autorizzati a  modificare il programma fra una partita e l&#8217;altra. Cosa che fecero per adattare <strong>manualmente</strong> il programma al gioco di Kasparov per evitare che cadesse nelle trappole sferrate dal russo e in cui Deep blue cadde per ben due volte.</p>
<p>IBM ritirò frettolosamente Deep blue dalle competizioni senza chiarire molti dei fatti sopracitati. Ma l&#8217;assedio al campione del mondo di scacchi non finì con Deep Blue ma proseguì ancora per anni. Ad esempio il motore scacchistico Fritz in una serie di quattro partite fra l&#8217;11 e il 18 novembre riuscì a strappare due pareggi e due sconfitte.</p>
<p>La mente umana quindi rimane ancora la cosa più elegante che popola il nostro sistema solare e trovo estremamente riduttivo dare del &#8220;più bravo&#8221; ad un entità in grado solamente di elaborare dati molto velocemente.</p>
<p>Il cervello umano è ancora insostituibile, ad esempio per inventare modi originali per avvantaggiare programmi per pc nelle sfide con i campioni di scacchi. La ricerca deve  andare nella direzione dell&#8217;eleganza piuttosto che nella direzione dell&#8217;efficienza e del calcolo puro.</p>
<p>Perché forse la creatività è proprio il tentativo del nostro cervello di compensare la nostra inefficienza.</p>
 <p><a href="http://davideaversa.it/slashcode/?flattrss_redirect&amp;id=652&amp;md5=0ed80b5f7a6abbd213d6bbf5bcf5b7ca" title="Flattr" target="_blank"><img src="http://davideaversa.it/slashcode/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://davideaversa.it/slashcode/2010/07/la-mente-elegante/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		<atom:link rel="payment" href="https://flattr.com/submit/auto?user_id=thek3nger&amp;popout=1&amp;url=http%3A%2F%2Fdavideaversa.it%2Fslashcode%2F2010%2F07%2Fla-mente-elegante%2F&amp;language=it_IT&amp;category=text&amp;title=La+mente+elegante&amp;description=Il+10+febbraio+1996+il+computer+Deep+Blue+batte+per+la+prima+volta+il+campione+del+mondo+di+scacchi+Garry+Kasparov.+L%26%238217%3Bincontro+fin%C3%AC+comunque+a+favore+del+maestro+russo+per...&amp;tags=ai%2Cdeep+blue%2Cfritz%2Cibm%2Cscacchi%2Cblog" type="text/html" />
	</item>
	</channel>
</rss>

