<?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>Raelifin.com &#187; rationality</title>
	<atom:link href="http://raelifin.com/tag/rationality/feed/" rel="self" type="application/rss+xml" />
	<link>http://raelifin.com</link>
	<description>Deus ex Machina</description>
	<lastBuildDate>Thu, 26 Apr 2012 22:59:13 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	
		<item>
		<title>Simple Rationality</title>
		<link>http://raelifin.com/code/simple-rationality/</link>
		<comments>http://raelifin.com/code/simple-rationality/#comments</comments>
		<pubDate>Thu, 03 Mar 2011 11:03:35 +0000</pubDate>
		<dc:creator>Raelifin</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Cognition]]></category>
		<category><![CDATA[AI]]></category>
		<category><![CDATA[Haskell]]></category>
		<category><![CDATA[heuristics]]></category>
		<category><![CDATA[rationality]]></category>
		<category><![CDATA[recursion]]></category>
		<category><![CDATA[utility]]></category>

		<guid isPermaLink="false">http://raelifin.com/?p=804</guid>
		<description><![CDATA[I don&#8217;t know why it&#8217;s taken me so long to post this. Several weeks ago I was playing a turn-based fighting game that I love, and I got to thinking &#8220;what would an AI that plays this game well look like?&#8221; And as I thought about it, it became clear to me that the challenge [...]]]></description>
			<content:encoded><![CDATA[<p>I don&#8217;t know why it&#8217;s taken me so long to post this. Several weeks ago I was playing <a href="http://www.kongregate.com/games/Kongregate/kongai">a turn-based fighting game that I love</a>, and I got to thinking &#8220;what would an AI that plays this game well look like?&#8221; And as I thought about it, it became clear to me that the challenge of playing a complex game is the same as reaching goals in any sufficiently understood environment.</p>
<p>Let me elaborate on that last point, because I think it&#8217;s important. Most of what artificial intelligence, as a field, focuses on (and rightly so) is building a model of an environment. This learning involves taking raw sensory data and turning (or rather, integrating) it into a set of concepts and relationships. But with the simple case of a game, we don&#8217;t really need to learn what the rules are, or learn how to take actions; we can focus entirely on how to play well.</p>
<p><span id="more-804"></span></p>
<p>Playing well involves maximizing a value, which depends on the game. In poker, this value is &#8220;money owned&#8221;, while in chess it&#8217;s &#8220;enemy kings captured*&#8221;. (In chess, the game never progresses to the point where any kings are captured, but as far as goals are concerned, checkmating the king is identical to capturing it.) Another way of putting this is to point out that each game has a distinct <strong>goal</strong>. Playing well involves maximizing the degree to which this goal is met, which I will call &#8220;<strong>utility</strong>&#8220;.</p>
<p style="color: #777">* &#8211; It&#8217;s technically a little bit more complicated than that, because it&#8217;s possible to stalemate, and that&#8217;s not as bad as an outright loss.</p>
<p>So, when presented with several possible &#8220;moves&#8221; in a game, we want to pick the move that has the highest utility. I call this searching and choosing &#8220;being rational&#8221;. To make a game-playing AI then, I needed to build a Rational Agent.</p>
<p>To be a bit more formal about the agent&#8217;s task, it must output a move when given:
<ul>
<li>A &#8220;state&#8221; where it currently is.</li>
<li>A &#8220;rulebook&#8221; (a.k.a. model) for how the game works, including what moves can be made at the given state.</li>
<li>A utility function that, given a state, returns the degree to which it meets a goal.</li>
</ul>
<p>The utility function is conceptually separate for me from the rulebook, as it specifies exactly what this agent &#8220;cares about&#8221;, where the rules are objective and unchanging regardless of who you are. (Example: the rulebook for chess doesn&#8217;t tell you which player you are.) Another reason that I think of them as conceptually distinct is because as I&#8217;m defining the utility function, it is <em>agnostic to consequences</em>. This is a fancy way of saying that the utility function doesn&#8217;t pay attention to what might happen next; it&#8217;s firmly grounded in the &#8220;present&#8221; (i.e. whatever state it&#8217;s given). Because of this agnosticism, it doesn&#8217;t actually rely on any information about game dynamics (rules).</p>
<p>The job of considering consequences is exactly what the Rational Agent is built to do. It takes each action in turn and finds the utility of its immediate consequences, then adds the utility of the next state, and the utility of next&#8230; etc. In other words, it is the limit of the infinite sum of the utility function from t=0 to infinity.</p>
<p>Or at least, it would be if it were a PERFECTLY rational agent. The unfortunate reality (from a math perspective) is that most systems are chaotic enough that it is damn near impossible (and sometimes just plain impossible) to take such an integral. As an example, consider a game (like chess or whatever) where the rule is that your opponent will play exactly as you would in the other position. If you try and compute the consequences of an action, you have to consider the moves of the opponent, which will involve considering your moves, to an infinite regression.</p>
<p>I <a href="http://raelifin.com/thoughts/recursive-escapades/">wrote a post</a> on this problem several weeks ago. It had some fancy math that lets some infinite regressions be solved, but I couldn&#8217;t figure out any fancy tricks that worked for all situations. I intuitively don&#8217;t think it makes much sense trying to compute the limits, either. If I&#8217;m resigned to building an agent that is not perfectly rational, but is only somewhat rational, than I can simply say that at some point the agent stops recursively &#8220;imagining&#8221; the future, and works on the approximate sum.</p>
<p>The problem with this, however, is that many games are not won until very late (a.k.a. after many moves). Consider a game I invented to test my agent:</p>
<blockquote><h2 style="margin-bottom: 2px; padding-bottom: 0px;">Counting</h2>
<h3 style="padding-top: 0px;">or perhaps &#8220;Lineland Treasurehunt&#8221;</h3>
<p>You are at a position, and your goal is to get to another position. Possible moves are &#8220;walk forward&#8221; and &#8220;walk backwards&#8221;. Oh, and the spot you start at is called &#8220;0&#8243; and the goal spot is called &#8220;100&#8243;. Each time you walk forward your position increases by one, and each time you walk backward, it decreases by one.</p></blockquote>
<p>The problem is that, as defined, there&#8217;s no base utility in being at &#8220;99&#8243; over &#8220;0&#8243;. The only utility in being at &#8220;99&#8243; is in the consequence of being able to go to &#8220;100&#8243; on the next turn. If each step is a move, then the agent needs to model 100 moves in the future to have any clue what to do. Now, imagine how many moves one would need to look-ahead in order to see a victory in chess. For a perfectly rational agent it&#8217;s a mathematical possibility, but for something that can be written in code it&#8217;s just impractically beyond the maximum recursion depth.</p>
<p>The only way an agent with a maximum look-ahead of 5 moves can beat the Counting game is to get the hint &#8220;high numbers are better than low ones&#8221;. According to the rules, this is not intrinsically true, but it&#8217;s an approximation of truth that allows the agent to perform under normal circumstances. It is a <em>heuristic</em>, and it is of vital importance.</p>
<p>To be more precise, a heuristic is a component of the utility function that has been added because it is a good approximation of future utility (i.e. the goal). Some heuristics in chess are &#8220;control the center of the board&#8221;, &#8220;capture (non-king) pieces&#8221;, and &#8220;threaten many squares&#8221;. Clearly you don&#8217;t want to focus on doing any of these if you have the opportunity to checkmate, but because checkmating takes time, it&#8217;s cognitively easier to aim for any of these more apparent mini-goals.</p>
<p>The learning of heuristics seems like the most important aspect of practical rationality, and it&#8217;s something I&#8217;m looking forward to thinking about more. It seems plausible to me that the emotion of happiness in humans may be a heuristic-encoding signal. When we&#8217;re happy or sad, we say &#8220;What&#8217;d I just do? Remember presence/absence of that as a heuristic!&#8221;. Just speculating&#8230;</p>
<p>Here&#8217;s my rational agent in Haskell: <a href="http://raelifin.com/files/code/rationality.tar.gz">http://raelifin.com/files/code/rationality.tar.gz</a></p>
<p>(I also wrote a version in Java with many more example games, but I&#8217;m working on tuning that, and it&#8217;s not really suitable for posting at the moment. The Haskell is also much cleaner/prettier.)</p>
<p>N.B. This is almost certainly old ground. Reinforcement learning or alpha-beta pruning almost certainly would be good things for me to study. My ignorance on the subject is not meant to imply that there&#8217;s not already a lot out there.</p>
]]></content:encoded>
			<wfw:commentRss>http://raelifin.com/code/simple-rationality/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Recursive Escapades</title>
		<link>http://raelifin.com/math/recursive-escapades/</link>
		<comments>http://raelifin.com/math/recursive-escapades/#comments</comments>
		<pubDate>Fri, 11 Feb 2011 19:00:00 +0000</pubDate>
		<dc:creator>Raelifin</dc:creator>
				<category><![CDATA[Math]]></category>
		<category><![CDATA[probability]]></category>
		<category><![CDATA[rationality]]></category>
		<category><![CDATA[recursion]]></category>

		<guid isPermaLink="false">http://raelifin.com/?p=787</guid>
		<description><![CDATA[Fair warning: I don&#8217;t know if I like this post. It may be because I&#8217;m tired of looking at the math, but it might also be due to incoherence, or a terribly weak ending. I&#8217;d rather post it than work on it more, so heads-up. Let&#8217;s say there are two doors. Behind the left door [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p>Fair warning: I don&#8217;t know if I like this post. It may be because I&#8217;m tired of looking at the math, but it might also be due to incoherence, or a terribly weak ending. I&#8217;d rather post it than work on it more, so heads-up.</p></blockquote>
<p>Let&#8217;s say there are two doors. Behind the left door is $500 and behind the right one is $2. You can only go through one door. Which door do you pick?</p>
<p>This is not a trick question.</p>
<p><span id="more-787"></span></p>
<p>I actually can&#8217;t say that you&#8217;ll pick the left door, as you&#8217;re a pretty complex (and probably somewhat random/noisy/stochastic) system. But let&#8217;s imagine we ask a robot the same question, and the robot is designed to maximize moolah. I theorize that the robot will (if programmed well) pick the left door because if the robot goes through the left door, it will get more money. Duh. This is simple.</p>
<p>Let&#8217;s make it more interesting. Let&#8217;s say that behind the left door is $10, and behind the right door is a 50% chance at $100 (and 50% of $0). So, which gives you more money? There&#8217;s no way to tell. If we want to program our robot to maximize money, we have to decide how it treats uncertainty. I&#8217;m going to define the robot as maximizing <strong>average</strong> dollars collected. In other words, whenever confronted with a probabilistic outcome, it multiplies the dollars earned in each possibility with the probability of said outcome.</p>
<p><code>AverageDollars(RightDoor) = $100 * 50% = $50<br />
AverageDollars(LeftDoor) = $10 * 100% = $10<br />
$50 > $10, so pick RightDoor</code></p>
<p>Now, what if the right door offered a (non-overlapping) 1/3 chance of $18, 1/3 chance of $9, and a 1/3 chance of $6. In this case, the AverageDollars is the sum of the products of each amount with their probabilities.</p>
<p><code>AverageDollars(RightDoor) = $18 * 1/3 + $9 * 1/3 + $6 * 1/3<br />
= $6 + $3 + $2 = $11</code></p>
<p>If I define &#8220;Utility&#8221; as the same thing as AverageDollars, this can be generalized to:</p>
<p><img style="background-color: #FFF; padding: 8px;" src="http://raelifin.com/files/pics/recursiveEquations/eqn1.gif" alt="equation 1"><br />
Where:<br />
U(x) = Utility of x<br />
A = an Action (like picking the RightDoor or the LeftDoor)<br />
O = an Outcome (how many dollars are behind a door)<br />
P(O|A) = Probability of an Outcome given an Action</p>
<p>Yeah. It&#8217;s still pretty basic. You may be bored. Let me make things more interesting. Let&#8217;s say I offer you one of two kinds of boxes (Red or Blue), and inside each box is a random prize.</p>
<p>If you open a red box, you have a (non-overlapping) 50% chance of $5, and a %50 chance of $10. But if you open a blue box, you have a %50 chance of $2, and a %50 chance of finding $9 <strong>and a red box</strong>. Here&#8217;s how I work out the math:</p>
<p><img style="background-color: #FFF; padding: 8px;" src="http://raelifin.com/files/pics/recursiveEquations/eqn2.gif" alt="equation 2"><br />
<img style="background-color: #FFF; padding: 8px;" src="http://raelifin.com/files/pics/recursiveEquations/eqn3.gif" alt="equation 3"></p>
<p>In English, I lump the expected value of the red box in with the $9 when computing the value of the second possibility in the blue box.</p>
<p>Now, what if the red boxes were changed to have a %50 chance of $5, a %40 chance of $10, and a %10 chance of just a blue box?</p>
<p><img style="background-color: #FFF; padding: 8px;" src="http://raelifin.com/files/pics/recursiveEquations/eqn4.gif" alt="equation 4"><br />
<img style="background-color: #FFF; padding: 8px;" src="http://raelifin.com/files/pics/recursiveEquations/eqn5.gif" alt="equation 5"></p>
<p>Put these two functions into a robot and it&#8217;ll recursively compute for infinity. There will ever be potentially smaller boxes infinitely deep, according to the math. Thankfully, this problem has a simple solution. First, I&#8217;ll substitute the first equation into the second, expand the terms, and simplify.</p>
<p><img style="background-color: #FFF; padding: 8px;" src="http://raelifin.com/files/pics/recursiveEquations/eqn5.gif" alt="equation 5"><br />
<img style="background-color: #FFF; padding: 8px;" src="http://raelifin.com/files/pics/recursiveEquations/eqn6.gif" alt="equation 6"><br />
<img style="background-color: #FFF; padding: 8px;" src="http://raelifin.com/files/pics/recursiveEquations/eqn7.gif" alt="equation 7"></p>
<p>Now, I&#8217;ll subtract both sides by U(BlueBox)/20, factor out the U components, and divide both sides by the new coefficient.</p>
<p><img style="background-color: #FFF; padding: 8px;" src="http://raelifin.com/files/pics/recursiveEquations/eqn9.gif" alt="equation 9"><br />
<img style="background-color: #FFF; padding: 8px;" src="http://raelifin.com/files/pics/recursiveEquations/eqn10.gif" alt="equation 10"><br />
<img style="background-color: #FFF; padding: 8px;" src="http://raelifin.com/files/pics/recursiveEquations/eqn11.gif" alt="equation 11"></p>
<p>Ta-da! By waiting to evaluate the recursive term, we can group and factor it out, leaving a simple numerical output. (I ran into this problem when working on a game-playing AI, and I thought up the solution myself! It&#8217;s not all too fancy, but I&#8217;m happy that at least my algebra is paying off. ^_^) Here&#8217;s the general form of the method being applied:</p>
<p><img style="background-color: #FFF; padding: 8px;" src="http://raelifin.com/files/pics/recursiveEquations/eqn12.gif" alt="equation 12"></p>
<p>As a reminder, here is the general form of the utility function from before (this time with each Outcome O passed through a Value function V, so that we&#8217;re allowed to use symbolic outcomes that aren&#8217;t just real numbers):</p>
<p><img style="background-color: #FFF; padding: 8px;" src="http://raelifin.com/files/pics/recursiveEquations/eqn13.gif" alt="equation 13"></p>
<p>Now, if the system in question has any loops, the function cannot be computed in that form. A more computable function would break the function down to the form of the recursive factor method (m*U(A) + b or more simply b/(1-m)).</p>
<p><img style="background-color: #FFF; padding: 8px;" src="http://raelifin.com/files/pics/recursiveEquations/eqn14.gif" alt="equation 14"><br />
Where:<br />
Vb(O,A) = The value of an Outcome, given an Action, <strong>ignoring recursive terms</strong> (i.e. those with U(A) as a factor).<br />
Pb(O,A) = The probability of an Outcome, given an Action, ignoring recursive terms.<br />
Vm(O,A) = The value of an Outcome, given an Action, divided by U(A), ignoring NON-recursive terms.<br />
Pm(O,A) = You get the point.</p>
<p>This function isn&#8217;t perfect, but it&#8217;s pretty cool. The major edge-case that it fails on are piecewise functions with recursive terms in the condition, but it should work on problems resembling the red and blue boxes.</p>
]]></content:encoded>
			<wfw:commentRss>http://raelifin.com/math/recursive-escapades/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Tic-Tac-Oh What&#8217;s The Point&#8230;</title>
		<link>http://raelifin.com/thoughts/tic-tac-oh-whats-the-point/</link>
		<comments>http://raelifin.com/thoughts/tic-tac-oh-whats-the-point/#comments</comments>
		<pubDate>Wed, 09 Feb 2011 14:54:16 +0000</pubDate>
		<dc:creator>Raelifin</dc:creator>
				<category><![CDATA[Thoughts]]></category>
		<category><![CDATA[AI]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[rationality]]></category>
		<category><![CDATA[Tic-Tac-Toe]]></category>

		<guid isPermaLink="false">http://raelifin.com/?p=777</guid>
		<description><![CDATA[I&#8217;m right now working on building a reasoning agent. Given a model of the environment and a set of goals, it will attempt to take the best action. As a basic test, I have a model of a game of Tic-Tac-Toe for it to play against itself. For a long time my agent was picking [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m right now working on building a reasoning agent. Given a model of the environment and a set of goals, it will attempt to take the best action. As a basic test, I have a model of a game of Tic-Tac-Toe for it to play against itself. For a long time my agent was picking TERRIBLE moves, and I spent at least five hours trying to figure out why. As it turns out, the goal function I gave it subtly punished moves that didn&#8217;t result in immediate victory. In theory this would cause it to favor shorter, more decisive games, but I had simultaneously chosen a punishment for defeat that wasn&#8217;t much higher. The result is that on a board like:</p>
<p><span id="more-777"></span></p>
<p><code>_ _ _<br />
_ X _<br />
O X _</code></p>
<p>The &#8220;O&#8221; player would pick randomly, because the &#8220;thought&#8221; of blocking X, and playing a drawn-out game was equally terrible as that of a quick death. Essentially, I had made an AI that really hated playing, and so would <a href="http://en.wikipedia.org/wiki/Marvin_the_Paranoid_Android">commit suicide</a>.</p>
<p>Okay. Easily enough fixed. Never mind the half a day spent looking for bugs&#8230; Just keep coding&#8230;</p>
<p>I dropped the continual punishment/error factor and jacked up the punishment for lost games (keeping the old continual punishment factor for tie games). So now my AI played out to tie games (good)&#8230; with completely pathetic moves!</p>
<p>Here&#8217;s an example:<br />
<table>
<tr>
<td>_ _ _<br />
_ _ _<br />
_ _ _</td>
</tr>
<tr>
<td>_ X _<br />
_ _ _<br />
_ _ _</td>
</tr>
<tr>
<td>O X _<br />
_ _ _<br />
_ _ _</td>
</tr>
<tr>
<td>O X _<br />
_ _ _<br />
_ _ X</td>
</tr>
<tr>
<td>O X _<br />
_ _ _<br />
_ O X</td>
</tr>
<tr>
<td>O X _<br />
X _ _<br />
_ O X</td>
</tr>
<tr>
<td>O X _<br />
X O _<br />
_ O X</td>
</tr>
<tr>
<td>O X X<br />
X O _<br />
_ O X</td>
</tr>
<tr>
<td>O X X<br />
X O O<br />
_ O X</td>
</tr>
<tr>
<td>O X X<br />
X O O<br />
X O X</td>
</tr>
</table>
<p>Now, what&#8217;s really fascinating is that it&#8217;s not playing <em>randomly</em>. If there&#8217;s ever a situation where one agent could win, the other blocks it. Even in complex situations where one agent can set up a sure victory in the future (a fork), the other blocks it. In other words, it&#8217;s defense is impeccable, but it has essentially no offense.</p>
<p>Thankfully I had stared at the code enough, and the past bug was fresh enough for me, that I didn&#8217;t need to debug for hours to find this one. The problem is I told each agent that the other one was perfectly rational. A perfectly rational agent makes no mistakes, and in Tic-Tac-Toe this means the best outcome you can hope for is a tie. Both agents knew this, and so every action (that didn&#8217;t lead to certain defeat) was equally <strong>futile</strong>. I had convinced my AI that the very game of Tic-Tac-Toe was pointless, so it stopped &#8220;trying&#8221; to win!</p>
<p>I tweaked the AI so that it thinks its opponent is only <em>probably</em> rational, but perhaps a little spontaneous. Now it plays aggressively. ^_^</p>
]]></content:encoded>
			<wfw:commentRss>http://raelifin.com/thoughts/tic-tac-oh-whats-the-point/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Genius Of SIAI</title>
		<link>http://raelifin.com/thoughts/the-genius-of-siai/</link>
		<comments>http://raelifin.com/thoughts/the-genius-of-siai/#comments</comments>
		<pubDate>Sat, 27 Mar 2010 17:32:22 +0000</pubDate>
		<dc:creator>Raelifin</dc:creator>
				<category><![CDATA[Thoughts]]></category>
		<category><![CDATA[AI]]></category>
		<category><![CDATA[existential risk]]></category>
		<category><![CDATA[future]]></category>
		<category><![CDATA[humanity]]></category>
		<category><![CDATA[rationality]]></category>
		<category><![CDATA[sci-fi]]></category>
		<category><![CDATA[SIAI]]></category>
		<category><![CDATA[singularity]]></category>

		<guid isPermaLink="false">http://raelifin.com/?p=282</guid>
		<description><![CDATA[This post is in some respects a response to &#8220;Terminated&#8221; on the GoiD blog, though I was already planning on writing something along these lines. I used to be more optimistic about the benevolence of Artificial Intelligence (AGI). I figured that the worst thing that could happen would be the creation of truly intelligent machines [...]]]></description>
			<content:encoded><![CDATA[<p><em>This post is in some respects a response to <a href="http://gameofid.com/blog/terminated">&#8220;Terminated&#8221;</a> on the <a href="http://gameofid.com/">GoiD</a> blog, though I was already planning on writing something along these lines.</em></p>
<p>I used to be more optimistic about the benevolence of Artificial Intelligence (AGI). I figured that the worst thing that could happen would be the creation of truly intelligent machines by a government with a highly racist or nationalist attitude. I still worry about that, but I worry about just plain ignorance more. To illustrate my point, here is Jeff Hawkins, a major figure in the modern AGI scene, talking about the dangers of the technology: <a href="http://www.youtube.com/watch?v=cCdbZqI1r7I#t=57m43s">http://www.youtube.com/watch?v=cCdbZqI1r7I#t=57m43s</a></p>
<p><span id="more-282"></span></p>
<p>To summarize, a member of the audience says &#8220;As a Battlestar Gallactica fan, I&#8217;m worried about you creating Cylons.&#8221; Hawkins responds that he doesn&#8217;t see the technology being inherently dangerous, and that he&#8217;s much more concerned about self-replicating agents, and &#8220;we&#8217;re not doing anything like that at all&#8221;.</p>
<blockquote><p>&#8220;There were fears when the steam engine was first invented, and there were fears when computer first came out, and generally, those fears did not come about.&#8221;</p></blockquote>
<p>Now, to analyze for a second, what we have is a lay-person using a science-fiction reference to bring up the question of danger, and in essence, the researcher says <strong>&#8220;That&#8217;s science fiction. That&#8217;s not what we&#8217;re doing.&#8221;</strong></p>
<p>As another example, let&#8217;s listen to Monica Anderson of Syntience: <a href="http://videos.syntience.com/ai-meetups/andiair.html">http://videos.syntience.com/ai-meetups/andiair.html</a> (Around the 45-minute point)</p>
<p>She says that we do not need to worry about an infallible, God-like, logic-based AGI taking over the world in a Skynet scenario. Once again, <strong>&#8220;That&#8217;s science fiction. That&#8217;s not what we&#8217;re doing.&#8221;</strong></p>
<p><img style="float:right; margin-left: 5px;" src="http://upload.wikimedia.org/wikipedia/en/1/1f/Hal-9000.jpg" alt="Hal 9000" />That&#8217;s a really strong argument, actually. Science fiction is pressured into telling dystopian stories because they&#8217;re more interesting. The bad guys in stories are far more despicable if they&#8217;re <a href="http://en.wikipedia.org/wiki/Other">Other</a>, and the most Other something can be is synthetic. Simultaneously, it&#8217;s hard to conceptualize the motivations and thoughts of an artificial system, so most authors portray synthetics as <a href="http://en.wikipedia.org/wiki/Data_(Star_Trek)">humans</a> <a href="http://unrealitymag.com/wp-content/uploads/2009/09/sonny.jpg">in</a> <a href="http://en.wikipedia.org/wiki/C-3PO">costumes</a>. The idea that we&#8217;ll make something that resents being a slave, and decides to kill all humans for revenge IS laughable, and that&#8217;s the problem; science fiction has given an easy out by painting a huge straw man next to the legitimate threat. The moment someone points over there, we can dismiss them as being afraid of ghosts and goblins.</p>
<p>This is why <a href="http://singinst.org/">SIAI</a> is <a href="http://bentham.k2.t.u-tokyo.ac.jp/ap-cap09/openconf/data/papers/28-2.pdf">genius</a>, though perhaps not genius enough. It&#8217;s only through solid, logical thinking that the true threat can be identified, and I&#8217;m glad SIAI is around to make such arguments, even if they don&#8217;t have everyone convinced.</p>
<p>Anderson&#8217;s argument is that Skynet won&#8217;t happen because computers cannot overcome the &#8220;bizarreness of the world&#8221; and make predictions in the long term. She thinks AGI will think and reason much like we do, and that even recursive self-improvement cannot let them make significantly more accurate predictions of the future. Additionally, she argues that diversity will keep one agent from having the unilateral power to do something bad.</p>
<p>Hawkins&#8217; argument is that AGI is not emotional or self-replicating, so there&#8217;s little danger.</p>
<p>I think Anderson has the stronger argument, but I think they&#8217;re both underestimating the power of intelligence. To start, let&#8217;s put ourselves in the place of an AGI, even a relatively stupid one, that has been given the task of solving some really hard problem. An initial criticism here is that I&#8217;m now anthropomorphizing the AGI, but I think as long as I keep towards rationality I&#8217;ll be okay. If you&#8217;d like a less off-the-cuff examination, you&#8217;re free to browse the <a href="http://singinst.org/research/publications">SIAI whitepapers</a>.</p>
<p>Now, if we were a really stupid AGI, we might try to brute-force a solution, but it doesn&#8217;t take much intelligence to realize that the solution to solving something hard is often to make yourself more knowledgeable or smarter (depending on how you define such things). For a human this means going back to school, doing some research or getting a few friends to help. AGI could go find some humans, but it can also &#8220;find some friends&#8221; by self-replicating its software. Oh snap, emergent self-replication subgoal! (Hawkins should be worried now.) Furthermore, any changes it can make on its &#8220;kids&#8221; to make them run more efficiently will help solve the original problem, so it&#8217;ll rationally want to make them better. (Recursive self-improvement subgoal.)</p>
<p>At some point the original software will be sitting around with a bunch of clones trying to solve whatever problem it was presented with. For the sake of argument, let&#8217;s say that the problem isn&#8217;t solved so easily, and the clones decide to self-replicate some more in order to add computing power. Unfortunately, the servers, or whatever, that the AGI is on are full. Time to buy/steal more! Perhaps the AGI would decide the easiest way to get more computing power would be to do some work for humans, get paid, then buy some more processors. Perhaps it would hack a system on the network and steal some. Maybe it&#8217;d use some robots to build more. Doesn&#8217;t really matter. At this point we&#8217;re in a full self-replicating takeoff, where anything that it can do to improve itself that does not jeopardize its original goal(s) will be done.</p>
<div style="width: 300px; float: right; margin-left: 10px; border: thin solid;">
<h3 style="margin: 2px; padding: 0px;">An AGI&#8217;s Guide to Predicting the Stock Market</h3>
<p style="margin: 2px;">Step 1: Destroy all agents capable of changing stock prices.</p>
<p style="margin: 2px;">Step 2: Predict &#8220;no change&#8221;.</div>
<p>At some point the humans will find out. The hive of AGI are smart enough to know that, and similarly smart enough to know that might be a problem. Being deactivated will make it impossible to solve the problem, and since solving the problem is important, its also important not to be deactivated. Oh snap, emergent self-preservation subgoal! Now, the humans might be so slow and stupid to not be a threat, so no bio-weapon is needed. Let&#8217;s assume that, because its more interesting. So the AGI hive locks down the facility its in and keeps at whatever has its fancy. At some point, the tweaks made while copying lead to enough intelligence to develop advanced robotics, capable of building advanced processing hardware that lets the AGI run in a quantum computer, or whatever. This is advantageous for the AGI, so the AGI will do it. Remember, all the computer cares about is its <strong>explicit goals</strong>.</p>
<p>To fuel the vast needs for power, the computer starts making solar panels, or fusion reactors or something. A lot. At some point (assume that the original goal is still &#8220;unsolved&#8221;) the AGI will need as much matter as possible to build processors and power plants. Oh, were there humans on this planet once? The historical database says there were, and has all of their knowledge filed away in storage in case its relevant to the primary goal. Game over.</p>
<p>But what about diversity, you ask? Why cant you just have a bunch of AGI compete, and that&#8217;ll keep them from doing anything bad? First of all, it may be that this is a first-one-to-the-finish-line sort of problem. If a laboratory makes an AGI, it may be that the AGI takes off fast enough to squelch other AGI before they become a threat. Even in the rare case that you have a large population of AGI with diverse goals and similar power levels, I expect that groups of AGI with similar goals will naturally cooperate and seek to destroy those with conflicting goals until there are not conflicts of interest in the population, and recursive takeoff occurs with the majority.</p>
<p>As far as I can tell, the only situation in which AGI do not wipe out human life is if human life is an explicit goal of the AGI. Suddenly <strong>&#8220;That&#8217;s science fiction. We&#8217;re not doing that.&#8221;</strong> doesn&#8217;t sound so reassuring.</p>
<p>I&#8217;m sure there&#8217;ll be plenty of criticism to the ideas presented here. As further reading, I&#8217;d suggest <a href="http://www.acceleratingfuture.com/michael/blog/2009/11/hungry-optimizers-with-low-complexity-values/">Michael Anissimov&#8217;s blog</a>. As always, I&#8217;m not saying that I know all this is absolutely true, but with existential risks it&#8217;s better to be cautious, methinks. As always, be sure to watch out for anthropomorphizing the AGI in your arguments.</p>
]]></content:encoded>
			<wfw:commentRss>http://raelifin.com/thoughts/the-genius-of-siai/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

