<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.technet.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>The Applied Games Group Blog : Machine Learning</title><link>http://blogs.technet.com/apg/archive/tags/Machine+Learning/default.aspx</link><description>Tags: Machine Learning</description><dc:language>en</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>TrueSkill in F#</title><link>http://blogs.technet.com/apg/archive/2008/06/16/trueskill-in-f.aspx</link><pubDate>Mon, 16 Jun 2008 07:25:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3071681</guid><dc:creator>apg</dc:creator><slash:comments>37</slash:comments><comments>http://blogs.technet.com/apg/comments/3071681.aspx</comments><wfw:commentRss>http://blogs.technet.com/apg/commentrss.aspx?PostID=3071681</wfw:commentRss><description>&lt;P&gt;Following the &lt;A href="http://blogs.technet.com/apg/archive/2008/04/05/trueskill-through-time.aspx" mce_href="http://blogs.technet.com/apg/archive/2008/04/05/trueskill-through-time.aspx"&gt;publication&lt;/A&gt; of the &lt;A href="http://research.microsoft.com/fsharp/fsharp.aspx" mce_href="http://research.microsoft.com/fsharp/fsharp.aspx"&gt;F#&lt;/A&gt; source code for the &lt;A href="http://research.microsoft.com/osa/apg/trueskill.aspx" mce_href="http://research.microsoft.com/osa/apg/trueskill.aspx"&gt;TrueSkill&lt;/A&gt; Through Time paper, we have used the same inference library code to demonstrate how the original TrueSkill algorithm can be coded. In the attached source code, only the &lt;U&gt;program.fs&lt;/U&gt; file is different to the TrueSkill through Time blog post and it builds up the factor graph for an arbitrary N-player game with an arbitrary draw probability. Both these numbers can be entered on the command line when running the resulting sample. We tried to make sure to stay as close as possible to the description on page 3 of the &lt;A href="ftp://ftp.research.microsoft.com/pub/tr/TR-2006-80.pdf" mce_href="ftp://ftp.research.microsoft.com/pub/tr/TR-2006-80.pdf"&gt;TrueSkill technical report&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;The attached ZIP file contains the entire source code which should compile without problems with &lt;A href="http://research.microsoft.com/research/downloads/Details/7ac148a7-149b-4056-aa06-1e6754efd36f/Details.aspx"&gt;F# 1.9.3.14&lt;/A&gt;. You can either load the solution in Visual Studio 2008 or simply run build.bat form the command line - in either case you will end up with a &lt;U&gt;trueskill.exe&lt;/U&gt; program. &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Update&lt;/STRONG&gt;: Following the release of the &lt;A href="http://msdn.microsoft.com/en-us/fsharp/default.aspx" mce_href="http://msdn.microsoft.com/en-us/fsharp/default.aspx"&gt;F# September 2008 CTP&lt;/A&gt; we have updated the source code to work with &lt;A href="http://www.microsoft.com/downloads/details.aspx?FamilyID=61ad6924-93ad-48dc-8c67-60f7e7803d3c&amp;amp;displaylang=en" mce_href="http://www.microsoft.com/downloads/details.aspx?FamilyID=61ad6924-93ad-48dc-8c67-60f7e7803d3c&amp;amp;displaylang=en"&gt;F# 1.9.6.2&lt;/A&gt;. Also, we added one of the new features of F#, namely units-of-measure, which makes the TrueSkill update invocation calls now read as follows:&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: windowtext; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt;let&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: windowtext; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt; priorMu = 25.0&amp;lt;SkillPoints&amp;gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: windowtext; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt;let&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: windowtext; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt; priorSigma = priorMu / 3.0&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: windowtext; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt;let&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: windowtext; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt; priorSkills = Array.init noPlayers (&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt;fun&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: windowtext; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt; i &lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt;-&amp;gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: windowtext; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt; Gaussian.Create (priorMu, priorSigma))&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: windowtext; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt;let&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: windowtext; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt; (posteriorSkills, logZ) = &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: windowtext; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;NPlayerTrueSkillUpdate (0.5*priorSigma, 0.01*priorSigma, drawProb / 100.0) priorSkills&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;Note that one can no longer accidentally pass the variance instead of the standard deviation because the former being of type &lt;FONT face="Courier New"&gt;float&amp;lt;SkillPoints^2&amp;gt;&lt;FONT face=Arial&gt;. Try yourself!&lt;/FONT&gt; &lt;/FONT&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;STRONG&gt;Update 2&lt;/STRONG&gt;: We had some feedback from Andrew Kennedy that we exploited a current "bug" in the units-of-measure code where literals (such as 1.0) can have generic units. We removed the incorrect usages and re-posted the ZIP file.&amp;nbsp;&lt;/P&gt;&lt;STRONG&gt;Update 3&lt;/STRONG&gt;: We extended the example to work with draws. Thanks to Chih-Jen Lin for the suggestion!&amp;nbsp; 
&lt;P mce_keep="true"&gt;&lt;FONT face="Courier New"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P mce_keep="true"&gt;
&lt;P mce_keep="true"&gt;&lt;SMALL&gt;Ralf Herbrich &amp;amp; Thore Graepel&lt;/SMALL&gt;&lt;/P&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3071681" width="1" height="1"&gt;</description><enclosure url="http://blogs.technet.com/apg/attachment/3071681.ashx" length="9696" type="application/x-zip-compressed" /><category domain="http://blogs.technet.com/apg/archive/tags/F_2300_/default.aspx">F#</category><category domain="http://blogs.technet.com/apg/archive/tags/Bayesian/default.aspx">Bayesian</category><category domain="http://blogs.technet.com/apg/archive/tags/Machine+Learning/default.aspx">Machine Learning</category><category domain="http://blogs.technet.com/apg/archive/tags/TrueSkill/default.aspx">TrueSkill</category><category domain="http://blogs.technet.com/apg/archive/tags/Development/default.aspx">Development</category></item><item><title>TrueSkill Through Time</title><link>http://blogs.technet.com/apg/archive/2008/04/05/trueskill-through-time.aspx</link><pubDate>Sat, 05 Apr 2008 15:59:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3029664</guid><dc:creator>apg</dc:creator><slash:comments>7</slash:comments><comments>http://blogs.technet.com/apg/comments/3029664.aspx</comments><wfw:commentRss>http://blogs.technet.com/apg/commentrss.aspx?PostID=3029664</wfw:commentRss><description>&lt;P&gt;In December 2007, we published a &lt;A href="http://books.nips.cc/papers/files/nips20/NIPS2007_0931.ps.gz"&gt;paper&lt;/A&gt; about the application of &lt;A title="TrueSkill Homepage" href="http://www.research.microsoft.com/mlp/apg/trueskill.aspx" mce_href="http://www.research.microsoft.com/mlp/apg/trueskill.aspx"&gt;TrueSkill&lt;/A&gt; to all recorded data of professional and semi-professional Chess play from 1850 to 2006. The dataset can be obtained from &lt;A href="http://www.chessbase.com/shop/product.asp?pid=211&amp;amp;user=&amp;amp;coin="&gt;ChessBase&lt;/A&gt;. We are very happy to be able to release the &lt;A href="http://research.microsoft.com/fsharp/fsharp.aspx"&gt;F#&lt;/A&gt; source code that performed all these massive computations. A few things to bear in mind when running this code:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;The full factor graph has ~30,000,000 factors and ~25,000,000 variables. At this size, the analysis is among the largest applications of (approximate) Bayesian inference to date. Nevertheless, the full message passing schedule allocates no more than 11 GB of memory and is run in under 20 minutes on an Intel Pentium 4 processor. These numbers hold for the adaptive draw margin model run on 3.5 million games.&lt;/LI&gt;
&lt;LI&gt;Due to the huge amount of results (&amp;gt;1,200,000 skills of all players in all their active years) we use SQL server to store the result set. Please let us know if you think a purely text based result output is needed and we will add it.&lt;/LI&gt;
&lt;LI&gt;There is a very interesting, related &lt;A href="http://math.bu.edu/people/mg/research/glicko.pdf"&gt;paper&lt;/A&gt; by Prof. &lt;A href="http://math.bu.edu/people/mg/research/glicko.pdf"&gt;Mark Glickman&lt;/A&gt; which analyses subset of this data (88 top players of all time).&lt;/LI&gt;&lt;/UL&gt;
&lt;P mce_keep="true"&gt;The attached ZIP file contains the entire source code which should compile without problems with &lt;A href="http://research.microsoft.com/research/downloads/Details/7ac148a7-149b-4056-aa06-1e6754efd36f/Details.aspx"&gt;F# 1.9.3.14&lt;/A&gt;. You can either load the solution in Visual Studio 2008 or simply run build.bat form the command line - in either case you will end up with a &lt;U&gt;chessanalysis.exe&lt;/U&gt; program or an &lt;U&gt;analysis.exe&lt;/U&gt; program. If you want to try out the application, we included the first 1,000 lines of match outcomes (this is part of the first 5 years of data we have).&lt;/P&gt;
&lt;P mce_keep="true"&gt;As for running the code, here are the parameter switches of the command line application:&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;B&gt;-no-safe&lt;/B&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Does not save results predictions (default: off)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;B&gt;-q&amp;nbsp;&lt;/B&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Verbosity level off; only works on single runs (default: on)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;B&gt;-N &amp;lt;int&amp;gt;&lt;/B&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; First N games only (default: ALL)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;B&gt;-delta &amp;lt;float&amp;gt;&lt;/B&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Maximum deviation in any marginal for convergence (default: 0.01)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;B&gt;-muS &amp;lt;float&amp;gt;&lt;/B&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Mean of prior skill belief (default: 1200)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;B&gt;-sigmaS &amp;lt;float&amp;gt;&lt;/B&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Standard deviation of prior skill belief (default: 400)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;B&gt;-muD &amp;lt;float&amp;gt;&lt;/B&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;Mean of prior draw margin belief (default: 300)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;B&gt;-sigmaD &amp;lt;float&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/B&gt;Standard deviation of prior draw margin belief (default: 100)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;B&gt;-beta &amp;lt;float&amp;gt;&lt;/B&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Standard deviation of performance distr. (default: 600)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;B&gt;-tauS &amp;lt;float&amp;gt;&lt;/B&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Standard deviation of skill dynamics distr. (default: 40)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;B&gt;-tauD &amp;lt;float&amp;gt;&lt;/B&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Standard deviation of draw margin dynamics distr. (default: 10)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;B&gt;-server &amp;lt;string&amp;gt;&lt;/B&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SQL server name for output (default: 'camresapga01')&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;B&gt;-prefix &amp;lt;string&amp;gt;&lt;/B&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Table name prefix for output (default: 'Result')&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;B&gt;-db &amp;lt;string&amp;gt;&lt;/B&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Name of the database for output (default: 'ChessBase')&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;B&gt;-mf&lt;/B&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;Fixed draw margin (default)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;B&gt;-mf2&lt;/B&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Fixed draw margin with two factors for draw&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;B&gt;-maf&lt;/B&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Fixed draw margin with ADF (iterate per year)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;B&gt;-maf2&lt;/B&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;Fixed draw margin with pure ADF&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;B&gt;-mv&lt;/B&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Variable draw margin&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;B&gt;-as&lt;/B&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Single run (default)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;B&gt;-am&lt;/B&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Model selection&lt;/P&gt;
&lt;P mce_keep="true"&gt;So, a good first test is analysis.exe -no-safe SmallChessBase.csv.&lt;/P&gt;
&lt;P mce_keep="true"&gt;We are very interested to hear your feedback - both on the model, our paper and the F# code.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Update&lt;/STRONG&gt;: Following the release of the &lt;A href="http://msdn.microsoft.com/en-us/fsharp/default.aspx" mce_href="http://msdn.microsoft.com/en-us/fsharp/default.aspx"&gt;F# September 2008 CTP&lt;/A&gt; we have updated the source code to work with &lt;A href="http://www.microsoft.com/downloads/details.aspx?FamilyID=61ad6924-93ad-48dc-8c67-60f7e7803d3c&amp;amp;displaylang=en" mce_href="http://www.microsoft.com/downloads/details.aspx?FamilyID=61ad6924-93ad-48dc-8c67-60f7e7803d3c&amp;amp;displaylang=en"&gt;F# 1.9.6.2&lt;/A&gt;. Also, we added one of the new features of F#, namely units-of-measure. Note that one can no longer accidentally pass the variance instead of the standard deviation beceause the former being of type &lt;FONT face="Courier New"&gt;float&amp;lt;ELOPoints^2&amp;gt;&lt;FONT face=Arial&gt;. We have also added full debug support so simply press F5 to experiment with the -no-safe SmallChessBase.csv option mentioned above.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Update&lt;/STRONG&gt;: We removed a reduant schedule creation in the function &lt;EM&gt;FixedDrawMarginADFAnalyse&lt;/EM&gt;. Thanks &lt;A class="" href="http://users.rsise.anu.edu.au/~xzhang/" mce_href="http://users.rsise.anu.edu.au/~xzhang/"&gt;to Henry (Xinhua) Zhang&lt;/A&gt;&amp;nbsp;for pointing out this mistake!&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;SMALL&gt;Ralf Herbrich &amp;amp; Thore Graepel&lt;/SMALL&gt;&lt;/P&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3029664" width="1" height="1"&gt;</description><enclosure url="http://blogs.technet.com/apg/attachment/3029664.ashx" length="30784" type="application/x-zip-compressed" /><category domain="http://blogs.technet.com/apg/archive/tags/F_2300_/default.aspx">F#</category><category domain="http://blogs.technet.com/apg/archive/tags/Bayesian/default.aspx">Bayesian</category><category domain="http://blogs.technet.com/apg/archive/tags/Machine+Learning/default.aspx">Machine Learning</category><category domain="http://blogs.technet.com/apg/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://blogs.technet.com/apg/archive/tags/TrueSkill/default.aspx">TrueSkill</category><category domain="http://blogs.technet.com/apg/archive/tags/Development/default.aspx">Development</category></item><item><title>Silicon Minds Challenge (+ submission sample) </title><link>http://blogs.technet.com/apg/archive/2007/12/23/silicon-minds.aspx</link><pubDate>Sun, 23 Dec 2007 22:47:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:2673521</guid><dc:creator>apg</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.technet.com/apg/comments/2673521.aspx</comments><wfw:commentRss>http://blogs.technet.com/apg/commentrss.aspx?PostID=2673521</wfw:commentRss><description>&lt;P&gt;On the&amp;nbsp;8th December 2007&amp;nbsp;the &lt;A class="" title="Silicon Minds" href="http://www.dreambuildplay.com/main/" mce_href="http://www.dreambuildplay.com/main/"&gt;Silicon Minds challenge&lt;/A&gt;&amp;nbsp;was launched at the &lt;A class="" title=MALAGA href="http://research.microsoft.com/mlp/apg/malaga.aspx" mce_href="http://research.microsoft.com/mlp/apg/malaga.aspx"&gt;Machine Learning and Games&amp;nbsp;workshop&lt;/A&gt;&amp;nbsp;of the &lt;A class="" href="http://nips.cc/" mce_href="http://nips.cc/"&gt;NIPS conference&lt;/A&gt; in the picturesque Canadian ski resort of Whistler. &lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;The challenge is to&amp;nbsp;push the limits of Artificial Intelligence while building a game with &lt;A class="" title="XNA Game Studio 2.0 Getting Started" href="http://creators.xna.com/Education/GettingStarted.aspx" mce_href="http://creators.xna.com/Education/GettingStarted.aspx"&gt;XNA Game Studio 2.0&lt;/A&gt;.&lt;/LI&gt;
&lt;LI&gt;The main prize an opportunity to interview for an internship with &lt;A class="" href="http://research.microsoft.com/cambridge/" mce_href="http://research.microsoft.com/cambridge/"&gt;Microsoft Research Cambridge&lt;/A&gt;, &lt;A class="" title=Rare href="http://www.rareware.com/" mce_href="http://www.rareware.com/"&gt;Rare Ltd&lt;/A&gt; or &lt;A class="" title=Lionhead href="http://www.lionhead.com/" mce_href="http://www.lionhead.com/"&gt;Lionhead Studios&lt;/A&gt;.&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;The&amp;nbsp;submission entry period lasts&amp;nbsp;until the 27th January 2008.&lt;/LI&gt;
&lt;LI&gt;Full details of the competition are available at the&amp;nbsp;DreamBuildPlay&amp;nbsp;website: &lt;A href="http://www.dreambuildplay.com/"&gt;http://www.dreambuildplay.com&lt;/A&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;The contest is to be judged on 3 criteria:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;SPAN class=bold&gt;Game A.I. (60%)&lt;/SPAN&gt; – Game A.I. will be evaluated based on how it serves the game design, and how it contributes to the game experience. Novelty and originality of the AI is appreciated but not required: a novel use of an existing state-of-the AI method is in itself considered to be innovative. General applicability of the AI concepts/techniques is also valued.&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN class=bold&gt;Fun Factor (20%)&lt;/SPAN&gt; – The fun factor will be evaluated based on how the game design creates a positive user experience. This may include how intellectually challenging, relaxing, stimulating or satisfying the game is. A key indicator for the fun factor will be the desire to keep playing.&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN class=bold&gt;Production Quality (20%)&lt;/SPAN&gt; – Make your game world as polished as possible and hook your judges with exciting, entertaining action. Production quality will be evaluated based on how seamless the overall game play is, the quality of the assets used, and the structure, readability and level of documentation of the code.&lt;/LI&gt;&lt;/UL&gt;
&lt;P mce_keep="true"&gt;The submission must include the following:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;Your finished game in .ccgame XNA Creators Club Game Package form.&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;The source code and content of your game.&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;A design summary.&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;Three screenshots of your finished game.&lt;/DIV&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P mce_keep="true"&gt;To this end over the last week we have been having fun creating a mini-sample submission attached based on the &lt;A class="" title="Board Game Go" href="http://en.wikipedia.org/wiki/Go_%28board_game%29" mce_href="http://en.wikipedia.org/wiki/Go_%28board_game%29"&gt;board game Go&lt;/A&gt; demonstrating:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;Using Monte Carlo methods to score&amp;nbsp;the board - thanks to David Stern. &lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;Some&amp;nbsp;well documented source - thanks to Ralf Herbrich. &lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;A sample design&amp;nbsp;summary - thanks to Thore Graepel.&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;Reused code and graphics - thanks to the &lt;A class="" title="Minjie sample" href="http://creators.xna.com/Headlines/minigames/archive/2007/03/07/Minjie.aspx" mce_href="http://creators.xna.com/Headlines/minigames/archive/2007/03/07/Minjie.aspx"&gt;XNA Minjie board game&amp;nbsp;sample&lt;/A&gt;. &lt;/DIV&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P mce_keep="true"&gt;Disclaimer: The mini-game sample itself actually uses a rule based AI and should not be seen as an example of AI or&amp;nbsp;game quality - more a sample of documentation quality and&amp;nbsp;the submission files required.&lt;/P&gt;
&lt;P mce_keep="true"&gt;What&amp;nbsp;we do hope is that you will find the sample a useful reference on how to document your code (specifically the XGoLibrary project), how to comment code you have&amp;nbsp;taken from other sources and how to write the design summary.&lt;/P&gt;
&lt;P mce_keep="true"&gt;On coding standards, if you are starting afresh for the competition we suggest you take a look at the MSDN&amp;nbsp;section &lt;A class="" title="Design Guidelines for Class Library Developers" href="http://msdn2.microsoft.com/en-us/library/czefa0ke(VS.71).aspx" mce_href="http://msdn2.microsoft.com/en-us/library/czefa0ke(VS.71).aspx"&gt;".Net Framework General Reference -&amp;nbsp;Design Guidelines for Class Library Developers"&lt;/A&gt; for guidance. In summary this is what we would like to see in the code:&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;Readability chosen over raw performance.&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;Short understandable classes and functions.&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;A consistent &lt;A class="" title="Naming Guidelines" href="http://msdn2.microsoft.com/en-us/library/xzf533w0(VS.71).aspx" mce_href="http://msdn2.microsoft.com/en-us/library/xzf533w0(VS.71).aspx"&gt;naming convention&lt;/A&gt;.&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;Good &lt;A class="" title="XML Documentation Comments (C# Programming Guide)" href="http://msdn2.microsoft.com/en-us/library/b2s063f7.aspx" mce_href="http://msdn2.microsoft.com/en-us/library/b2s063f7.aspx"&gt;C# XML&amp;nbsp;comments&lt;/A&gt;.&lt;/DIV&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P mce_keep="true"&gt;Don't forget though 60% of the score is based on Game AI... hope you enjoy the contest - we are really looking forward to seeing your submitted games.&lt;/P&gt;
&lt;P mce_keep="true"&gt;Last&amp;nbsp;but not least&amp;nbsp;a quick special thanks to Joaquin Quiñonero Candela for working so hard organising the challenge.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;STRONG&gt;Update 1&lt;/STRONG&gt;: We have noticed that the PDF still had some review comments; they are removed now. Also, rendering during the scoring was accidently reset to constant black (rather than an alpha value proportional to the expected propability of the territory outcome). Finally, we slightly refined the passing algorithm of the AI: If the human player passes then the AI uses the Monte Carlo scorer to estimate whether or not each piece is already determined in colour up to a probability of at least 80%. If so, the AI passes already.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;STRONG&gt;Update 2&lt;/STRONG&gt;: We have noticed a couple of further bugs and easy improvements that can be made: The rule-based AI would start to fill in own eyes if the eye is either on the side of the board or in one of the four corners. This was not intended and has been fixe now. Also, the Monte Carlo sampling can be sped up significantly by only checking for move validity and "eye-ness" after a random move from the list of empty vertices has been determined. Checking a vertex for being empty is a lot faster than checking if a move is valid on that vertex.&lt;/P&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=2673521" width="1" height="1"&gt;</description><enclosure url="http://blogs.technet.com/apg/attachment/2673521.ashx" length="3503129" type="application/x-zip-compressed" /><category domain="http://blogs.technet.com/apg/archive/tags/Xbox+360/default.aspx">Xbox 360</category><category domain="http://blogs.technet.com/apg/archive/tags/Machine+Learning/default.aspx">Machine Learning</category><category domain="http://blogs.technet.com/apg/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://blogs.technet.com/apg/archive/tags/Development/default.aspx">Development</category><category domain="http://blogs.technet.com/apg/archive/tags/computer+Go/default.aspx">computer Go</category><category domain="http://blogs.technet.com/apg/archive/tags/XNA/default.aspx">XNA</category><category domain="http://blogs.technet.com/apg/archive/tags/Games/default.aspx">Games</category></item><item><title>Commercial Users of Functional Programming (CUFP) 2007</title><link>http://blogs.technet.com/apg/archive/2007/10/25/commercial-users-of-functional-programming-cufp-2007.aspx</link><pubDate>Fri, 26 Oct 2007 00:09:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:2252643</guid><dc:creator>apg</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.technet.com/apg/comments/2252643.aspx</comments><wfw:commentRss>http://blogs.technet.com/apg/commentrss.aspx?PostID=2252643</wfw:commentRss><description>&lt;P&gt;At the beginning of this month (October) I attended and presented at the &lt;A class="" href="http://cufp.galois.com/" mce_href="http://cufp.galois.com/"&gt;CUFP&lt;/A&gt;&amp;nbsp;event in Freiburg, Germany.&amp;nbsp;The &lt;A class="" href="http://cufp.galois.com/2007Abstracts.html#PhilTrelford" mce_href="http://cufp.galois.com/2007Abstracts.html#PhilTrelford"&gt;talk&lt;/A&gt; was on some of the work our group has been doing&amp;nbsp;over the last year&amp;nbsp;using &lt;A class="" href="http://research.microsoft.com/fsharp/" mce_href="http://research.microsoft.com/fsharp/"&gt;F#&lt;/A&gt;&amp;nbsp;including the XBox 360 title &lt;A class="" href="http://www.halo3.com/" mce_href="http://www.halo3.com/"&gt;Halo 3&lt;/A&gt;&amp;nbsp;and on predicting ad clicks for&amp;nbsp;&lt;A class="" href="http://www.live.com/" mce_href="http://www.live.com/"&gt;Windows Live&lt;/A&gt;. The &lt;A class="" href="http://cufp.galois.com/slides/2007/PhilTrelford.ppt" mce_href="http://cufp.galois.com/slides/2007/PhilTrelford.ppt"&gt;slides&lt;/A&gt; (thanks Ralf) are now available online and for those who couldn't make&amp;nbsp;it videos&amp;nbsp;of all the talks&amp;nbsp;are expected soon. There were plenty of interesting talks throughout the day, including Chris Waterson of Liveops "... using continuation passing monads to encapsulate computation state and hide the complexity of the non-blocking I/O layer"&amp;nbsp;with OCaml, which&amp;nbsp;seemed to be in&amp;nbsp;a&amp;nbsp;similar direction&amp;nbsp;to&amp;nbsp;&lt;A class="" href="http://blogs.msdn.com/dsyme/archive/2007/10/11/introducing-f-asynchronous-workflows.aspx" mce_href="http://blogs.msdn.com/dsyme/archive/2007/10/11/introducing-f-asynchronous-workflows.aspx"&gt;F# asynchronous workflows&lt;/A&gt;. The day ended with a discussion led by Don Syme on the subject of hiring functional programmers; where it emerged that the&amp;nbsp;remaining attendees were actively seeking over 40 new hires. Finally it was time to enjoy the remainder of a hot sunny day and&amp;nbsp;some quality German beer.&lt;/P&gt;
&lt;P&gt;Phil&lt;/P&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=2252643" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/apg/archive/tags/Xbox+360/default.aspx">Xbox 360</category><category domain="http://blogs.technet.com/apg/archive/tags/F_2300_/default.aspx">F#</category><category domain="http://blogs.technet.com/apg/archive/tags/Xbox+Live/default.aspx">Xbox Live</category><category domain="http://blogs.technet.com/apg/archive/tags/Machine+Learning/default.aspx">Machine Learning</category><category domain="http://blogs.technet.com/apg/archive/tags/TrueSkill/default.aspx">TrueSkill</category><category domain="http://blogs.technet.com/apg/archive/tags/Development/default.aspx">Development</category></item><item><title>Erik van der Werf on AI Techniques for the Game of Go</title><link>http://blogs.technet.com/apg/archive/2006/12/13/erik-van-der-werf-on-ai-techniques-for-the-game-of-go.aspx</link><pubDate>Wed, 13 Dec 2006 12:58:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:554026</guid><dc:creator>apg</dc:creator><slash:comments>6</slash:comments><comments>http://blogs.technet.com/apg/comments/554026.aspx</comments><wfw:commentRss>http://blogs.technet.com/apg/commentrss.aspx?PostID=554026</wfw:commentRss><description>&lt;P&gt;&lt;IMG title="Erik van der Werf at APG" style="WIDTH: 140px; HEIGHT: 187px" height=187 alt="Erik van der Werf at APG" hspace=5 src="http://blogs.technet.com/photos/apg/images/554023/281x375.aspx" width=140 align=left vspace=5 border=5 mce_src="http://blogs.technet.com/photos/apg/images/554023/281x375.aspx"&gt;&lt;/P&gt;
&lt;P&gt;Erik van der Werf came and visited the Applied Games group on November 27th/28th 2006. Erik gave a very interesting &lt;A class="" title="Erik's presentation slides on computer Go" href="http://erikvanderwerf.tengen.nl/pubdown/ait4go.ppt" mce_href="http://erikvanderwerf.tengen.nl/pubdown/ait4go.ppt"&gt;presentation&lt;/A&gt; with an overview of his work on computer Go. The focus of his work was on search techniques (solving 5x5 Go) and on machine learning techniques for territory and move prediction. &lt;A class="" title="Erik's homepage" href="http://erikvanderwerf.tengen.nl/" mce_href="http://erikvanderwerf.tengen.nl/"&gt;Erik's homepage&lt;/A&gt; contains a lot of material on his work including his publications and an online version of his PhD thesis&lt;/P&gt;
&lt;P&gt;We had a lot of interesting discussions, in particular on how to use machine learning to guide game tree search. Erik made us aware of the importance of life &amp;amp; death features for territory prediction. Also, he shared a lot of insights on search, in particular, the importance of transposition tables. He also played Go with our pattern-based Go&amp;nbsp;engine Liberty. Fortunately, he treated Liberty with mercy and gave it nine handicap stones. Liberty&amp;nbsp;ended up winning but also clearly demonstrated its lack of knowledge about life &amp;amp; death, search, and connectivity. If you are interested you can read our paper on &lt;A class="" href="http://www.icml2006.org/icml_documents/camera-ready/110_Bayesian_Pattern_Ran.pdf" mce_href="http://www.icml2006.org/icml_documents/camera-ready/110_Bayesian_Pattern_Ran.pdf"&gt;Bayesian Pattern Ranking for Move Prediction in the Game of Go&lt;/A&gt;&amp;nbsp;which describes the inner workings of Liberty.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Unfortunately, Erik&amp;nbsp;is currently not working on computer Go professionally. Instead, he works&amp;nbsp;on improving&amp;nbsp;hearing&amp;nbsp;aids at &lt;A class="" title="GN Resound" href="http://www.gnresound.com/" mce_href="http://www.gnresound.com/"&gt;GN Resound&lt;/A&gt;, which involves challenging signal processing tasks on low-power&amp;nbsp;processors.&amp;nbsp;While he is continuing working on computer Go in his spare time, it would be great if he found his way back to full-time computer Go sometime in the future. After all,&amp;nbsp;improved search and machine learning are two promising directions for computer Go.&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SMALL&gt;Thore Graepel&lt;/SMALL&gt;&lt;/P&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=554026" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/apg/archive/tags/Machine+Learning/default.aspx">Machine Learning</category><category domain="http://blogs.technet.com/apg/archive/tags/computer+Go/default.aspx">computer Go</category></item><item><title>3 Days in Vancouver</title><link>http://blogs.technet.com/apg/archive/2006/12/08/3-days-in-vancouver.aspx</link><pubDate>Sat, 09 Dec 2006 01:49:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:548900</guid><dc:creator>apg</dc:creator><slash:comments>27</slash:comments><comments>http://blogs.technet.com/apg/comments/548900.aspx</comments><wfw:commentRss>http://blogs.technet.com/apg/commentrss.aspx?PostID=548900</wfw:commentRss><description>&lt;P&gt;The &lt;A class="" href="http://www.nips.cc/" target=_blank mce_href="http://www.nips.cc/"&gt;Neural Information Processing Systems&lt;/A&gt; conference has just finished. There were a lot of interesting talks and posters (we spare you the entire list of talks and posters, they can be found &lt;A class="" href="http://nips.cc/Conferences/2006/Program/schedule.php?Session=42" target=_blank mce_href="http://nips.cc/Conferences/2006/Program/schedule.php?Session=42"&gt;here&lt;/A&gt;). The most hands-on research could be seen in the demonstration track; a number of interesting demos included:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;The&amp;nbsp;&lt;A class="" href="http://ssli.ee.washington.edu/vj/" target=_blank mce_href="http://ssli.ee.washington.edu/vj/"&gt;Vocal Joystick&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A class="" href="http://www.lri.fr/~gelly/MoGo.htm" target=_blank mce_href="http://www.lri.fr/~gelly/MoGo.htm"&gt;MoGo&lt;/A&gt;, one of the strongest 9x9 Go programs as of today&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Also, there was a short presentation on the &lt;A class="" href="http://www.netflixprize.com/" target=_blank mce_href="http://www.netflixprize.com/"&gt;NetFlix prize&lt;/A&gt;.&amp;nbsp;This is a prize sponsored by NetFlix Inc. given to the team that develops the strongest movie recommendation system. A very interesting contest!&lt;/P&gt;
&lt;P&gt;&lt;IMG title="Ralf shortly before the TrueSkill talk at NIPS" alt="Ralf shortly before the TrueSkill talk at NIPS" src="http://blogs.technet.com/photos/apg/images/548893/secondarythumb.aspx" align=left vspace=5 border=5 mce_src="http://blogs.technet.com/photos/apg/images/548893/secondarythumb.aspx"&gt;We were very happy to have an opportunity to talk about TrueSkill during a 20 minute presentation on Tuesday. The talk went well and there were a number of questions (a lot of questions were actually ask about our current work of applying TrueSkill to 200 years of professional Chess outcome data). However, talking at such a big venue is quite a nerve wrecking experience (there are about 700 of the best researchers in AI and machine learning in the audience) and you can see a very tense Ralf right before the talk.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SMALL&gt;Ralf Herbrich and Thore Graepel&lt;/SMALL&gt;&lt;/P&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=548900" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/apg/archive/tags/Machine+Learning/default.aspx">Machine Learning</category><category domain="http://blogs.technet.com/apg/archive/tags/General/default.aspx">General</category><category domain="http://blogs.technet.com/apg/archive/tags/TrueSkill/default.aspx">TrueSkill</category></item><item><title>Reward Driven Racing in Cambridge</title><link>http://blogs.technet.com/apg/archive/2006/11/17/reward-driven-racing-in-cambridge.aspx</link><pubDate>Fri, 17 Nov 2006 09:24:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:519218</guid><dc:creator>apg</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.technet.com/apg/comments/519218.aspx</comments><wfw:commentRss>http://blogs.technet.com/apg/commentrss.aspx?PostID=519218</wfw:commentRss><description>&lt;SPAN&gt;
&lt;P&gt;&lt;SMALL&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;/SMALL&gt;&lt;/P&gt;
&lt;P&gt;&lt;IMG title="2D AMPS simulator" style="WIDTH: 177px; HEIGHT: 177px" height=177 alt="2D AMPS simulator" hspace=10 src="http://blogs.technet.com/photos/apg/images/522816/374x375.aspx" width=177 align=left vspace=10 border=5 mce_src="http://blogs.technet.com/photos/apg/images/522816/374x375.aspx"&gt;I just completed my 12 week internship in the Applied Games Group. I was working with Ralf, Thore and Phil on applying model-based reinforcement learning to race car driving. This is one of the most interesting projects I've worked on. Next to my workstation I had an XBox 360 development kit hooked up to a wide screen television, which gave some of the other interns at Microsoft Research the impression that I was just&amp;nbsp;playing&amp;nbsp;video games all day. While I did play quite a bit, the point of my work was to get the cars in Project Gotham Racing 3 to learn to drive themselves through experience. &lt;/SPAN&gt;&lt;/P&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;/SPAN&gt;
&lt;P&gt;&lt;SMALL&gt;&lt;SPAN&gt;&lt;IMG title="AMPS at work in PGR 3" style="WIDTH: 250px; HEIGHT: 147px" height=147 alt="AMPS at work in PGR 3" hspace=10 src="http://blogs.technet.com/photos/apg/images/523084/500x293.aspx" width=250 align=left vspace=10 border=5 mce_src="http://blogs.technet.com/photos/apg/images/523084/500x293.aspx"&gt;&lt;/SPAN&gt;&lt;/SMALL&gt;&lt;/P&gt;
&lt;P&gt;I implemented a simplified version of the Adaptive Modeling and Planning System (AMPS) described in my Ph.D. thesis (available &lt;A title=blocked::http://mykel.kochenderfer.com/thesis href="http://mykel.kochenderfer.com/thesis" target=_blank mce_href="http://mykel.kochenderfer.com/thesis"&gt;here&lt;/A&gt;). We found that AMPS learns to drive competently after a single training lap, but the other standard algorithms that I implemented did not perform nearly as well. The strength of AMPS is partly due to its ability to generalize from limited experience through dynamic state abstraction. Currently, most racing games on the market include AI opponents with hard-coded behavior, but I think that opponents that are able to learn and adapt to your driving style and exploit your personal weaknesses can make for some very interesting gameplay. &lt;/P&gt;
&lt;P&gt;&lt;/SPAN&gt;&lt;SPAN&gt;I would recommend applying for an internship&amp;nbsp;here to any Ph.D. candidate with a passion for games. The projects are fascinating, and the&amp;nbsp;people here are brilliant, coming from all over the world. The atmosphere at Microsoft Research is laid back but intense at the same time, which is exactly what I was looking for in an internship. If anyone has any questions about what it is like to be an intern at MSRC, my current contact information is available on my &lt;A title=blocked::http://mykel.kochenderfer.com/ href="http://mykel.kochenderfer.com/" mce_href="http://mykel.kochenderfer.com/"&gt;personal website&lt;/A&gt;.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SMALL&gt;Mykel Kochenderfer&lt;/SMALL&gt;&lt;/P&gt;
&lt;P&gt;&lt;SMALL&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;/SMALL&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=519218" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/apg/archive/tags/Machine+Learning/default.aspx">Machine Learning</category><category domain="http://blogs.technet.com/apg/archive/tags/General/default.aspx">General</category></item></channel></rss>