Simple Rationality

I don’t know why it’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 “what would an AI that plays this game well look like?” 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.

Let me elaborate on that last point, because I think it’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’t really need to learn what the rules are, or learn how to take actions; we can focus entirely on how to play well.

Read More »

Posted in Code, Cognition | Tagged , , , , , | 6 Comments

Cooperative Disagreement

FlossoraptorThis post is in many ways a response to Being Right and Knowing It on Rysade’s Blog “Iteration”. In other ways it is an attempt to remind myself of my ideals in the wake of failing them a couple nights ago when debating genetic engineering.

When some Jehovah’s Witnesses come to my door and ask how I know the earth is 4.5 billion years old, I tell them that I don’t know it’s that old; I believe it’s that old because it’s the best fit for my experiences (evidence).

But clearly it is not the best fit for their experiences, because they don’t believe it. So what do we do besides go our separate ways? I like to adopt the position that I’m wrong.

Read More »

Posted in Thoughts | Tagged , , , , , , , , , , , , | 1 Comment

Defining Feedback Loops

Imagine a system, any system. It could be Super Mario, the solar system, facebook, a cell, whatever. Now, this system is almost surely filled with various quantities, be they distances, velocities, hidden variables, or just countable things. I will call each quantity an x. (One x might be how fast Mario is moving along the left-right axis, while another might be how many lives Mario has.)

Now, by nature each x has a corresponding Δx. In a continuous system, this will be dx/dt, while in a discrete system, this will be (x(t+1) – x(t)). I will call this derivative quantity x′ (“x-prime”), and work out the math in both cases.

Read More »

Posted in Math | Tagged , , , , , , | 1 Comment

Recursive Escapades

Fair warning: I don’t know if I like this post. It may be because I’m tired of looking at the math, but it might also be due to incoherence, or a terribly weak ending. I’d rather post it than work on it more, so heads-up.

Let’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?

This is not a trick question.

Read More »

Posted in Math | Tagged , , | 1 Comment

Tic-Tac-Oh What’s The Point…

I’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’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’t much higher. The result is that on a board like:

Read More »

Posted in Thoughts | Tagged , , , | Leave a comment