AI Uses Less Than Two Minutes of Videogame Footage to Recreate Game Engine
gvu.gatech.edu
gvu.gatech.edu
I sincerely believe that the move towards deep learning is every bit as radical as the development of the microprocessor. We're starting to find incredibly elegant solutions to problems that have stymied computer scientists for decades. We're finding orders-of-magnitude improvements to difficult problems at an astonishing rate, often with remarkably modest resources.
There's clearly a huge amount of hype happening at the moment, but genuine technological revolutions are usually preceded by a ludicrous hype bubble.
The DL hype is driven more by the singularitians than by actual usefulness of DL. The personal computer revolution was driven by the fact personal computers are very useful.
I think by "incredibly elegant solutions" you mean the typical black-box statistical machine learning algorithm that takes in some data as input and outputs an approximated function that "solves" whatever problem your data was representing.
If that is indeed what you mean (apologies otherwise) I really struggle to see that as "elegant" -or even a solution. We start with some problem too complex to understand and build a complex system we don't quite understand, that solves the problem in a way we don't quite understand. What did we gain? A system that solves the problem - maybe, when it feels like it, depending on the problem, provided enough data etc etc. Our understanding of the problem hasn't changed and therefore our ability to solve it, hasn't.
To give an analogy- it's like a kid at school who can't solve some arithmetic problem they have for homework asking their big sister to solve it for them. The kid now knows the answer to the problem but still doesn't know how to solve it, on their own. They didn't "find a solution"- they found someone who knows the solution.
I think, if you look at the progress we've made as a civilisation in producing knowledge, you'll find that this was always driven by people who solved problems, themselves. And if you think of the kind of people who invoke some higher authority that has all the solutions, you're probably looking at religion.
Computers that can interact with the real world are computers that can make quick, reasonably accurate guesses based on incomplete information. Hugely important tasks like speech recognition and autonomous driving are practically impossible without using approximate statistical methods. Machine learning is the key framework that allows us to attack those real-world problems.
In all seriousness, rapid adaptation to New environments (including video games and math homework) is within small children's neutral capabilities. But they can't discover properties they aren't designed to discover.
They're left with scientific method for everything else. Which is just generalizing to unseen data.
The fact that computers now can learn they way they do, is a very big deal it simply cannot be emphasized enough. We are only a few years in and haven't seen the limits of where it can be applied yet.
It's Moores Law + Metcalfe's law.
With space there are all sorts of hard limits because of physics and the goal is very specific. With deep learning there isn't some hard limit because there isn't very specific goals in the same way and not the same kind of laws hindering it.
On the subject of space I am much more convinced that AI will be traveling the universe than humans.
If it's general intelligence then I definitely think the hype is real. I don't think machine intelligence gets us any close to general intelligence than say a calculator has.
I think we're looking at a massive increase in an already large class gap. The fallout is going to be huge and in not immediately obvious ways. I don't think we have the maturity to deal with it.
It's a pretty depressing topic TBH. I'm not advocating for anything either. I believe technological advances are inevitable in a global competitive economy.
The way I look at it is that it's not even because of the global competition it's simply that technology gives you such a big advantage compared to those that don't use it and thus we are basically improving our own short-term situation for long-term rendering ourselves insignificant.
Instead of looking at the last 200 years of industrial history I find it much more telling to look at 200.000 million years of evolution.
To take it even further out there. To me it seems like evolution favors the best information carriers which might mean that "silicon" will replace carbon based lifeforms simply because it's a better information carrier than us.
Great news, we can hack oursleves, augment ourselves, you name it. However, meaning eludes us. No one cares, carbon or silicon based. The end.
Heads: If all we are is math, then eventually, through smarter and smarter computers, we have a chance of solving it... and it'll probably happen fast once (if) we invent AIG. This will inevitably resolve that free will is an illusion. It's kind of the ultimate atom bomb in a way I suppose, but without maliciousness (and wouldn't you want to know anyways??).
Tails: If we're something more than math, a soul or what have you, then we probably can't create pure AIG, at least not without magic. We might create an approximation that uses sufficient inputs to make it almost impossible to tell the difference though. That could be a really useful tool (or weapon...).
If we are entirely math, it seems unlikely the mind can understand itself. I.e. there is minimal program that represents the mind, and if the mind understood itself, then it'd contain a compression of itself, which is this minimal program. However, now the minimal program representing the mind containing the mind (MCtM) is bigger, so the MCtM does not contain itself. A rebuttal is that perhaps there is a fixed point where the size does not keep increasing.
If there is something non-mathy about the mind, then of course it cannot be captured (entirely) as a mathematical equation. This would imply religious concepts such as the soul are true, but if we can detect the non-mathy aspect then it is still scientific. We'd have a scientific religion.
Think of the potential: we could create games just by giving the AI some example game play animations and it would learn the logic of the game (game engine).
No, it isn't - just like the subject in the Chinese room experiment cannot understand Chinese yet is able to reply with perfect language to given input.
Oh, come on. This is silly semantics. Human written engine doesn't "understand" the game state any more than an AI does!
Game engine here _merely_ means the algorithm that takes user input, calculates the next state of the game and outputs it to the screen. No-one has claimed that this engine would be a generic engine capable of running a variety of games. No. Only this game.
Whether the engine is written manually by a human or is a trained AI is irrelevant. It's still a game engine. The AI trained may have a different internal representation of the game state, but it still must have something like that.
The whole POINT of this exercise is to find an automatic way of generating this algorithm without manually writing code.
You don't seem to understand the difference between predicting what could be next compared to actually producing things from scratch.
Think of this in terms of a movie where there is no user input and the state is linear (state is frame number and increments at a constant rate). Predicting next frame and saying that AI can recreate a movie is false and very misleading.
Add in user input and non-linear state and your AI isn't very useful anymore, even with predicting next frames (you'll never reach perfect reproduction given the vast game state that is possible).
There specifically IS user input involved here. There is no "building from scratch".
I can look at (simple) video footage of a game I've never seen before and start to model in my head various ways how certain mechanisms can be implemented in code. I quickly learn to predict how different game elements move based on how they look and similarly looking things have moved before. Even if I didn't know anything about programming, I could learn to predict how that monster moves. In fact, playing the game trains my brain to predict these things.
_Obviously_ I might not know what's behind that next monster. I don't know what the game designers have come up with: some things are _impossible_ to predict, but the basic mechanics can be learned and the more I play, the better my prediction accuracy gets.
The mechanics of me learning these things is not too far away from e.g. neural network learning the same things. Again, obviously, the neural network cannot create the parts of the game world it hasn't seen. But no-one is claiming that. Nor that just by showing a little bit of game play, we could re-create the whole game. Only that it can probably learn to render the mechanics (game engine) based on user input. The authors showed some interesting results based on this.
> Oh, come on. This is silly semantics.
That is the exact point of the thought experiment, semantics vs syntax. A computer can work well with syntax but semantics are not so easy.
> You keep bringing up these useless analogues about movies and chinese boxes. Be more specific.
They're useless to you because you don't seem to understand how neural network or current AI tech works. In the current fashion, generalist AI like a game engine is very much impossible.
> I can look at (simple) video footage of a game I've never seen before and start to model in my head various ways how certain mechanisms can be implemented in code. I quickly learn to predict how different game elements move based on how they look and similarly looking things have moved before. Even if I didn't know anything about programming, I could learn to predict how that monster moves. In fact, playing the game trains my brain to predict these things.
Sadly our computers don't have a human brain, which is entirely the point of AI.
> The mechanics of me learning these things is not too far away from e.g. neural network learning the same things. Again, obviously, the neural network cannot create the parts of the game world it hasn't seen. But no-one is claiming that. Nor that just by showing a little bit of game play, we could re-create the whole game. Only that it can probably learn to render the mechanics (game engine) based on user input. The authors showed some interesting results based on this.
Game states are too large to be entirely seen even by a computer. We need pruning and MCTS for simple adversarial searches in games like chess, Go; What makes you think some magical AI can imitate a game engine?
I have some understanding how that works. You seem to read me incorrectly and extend what I say to something different.
Again, and I repeat myself, I don't claim "generalist AI". I don't claim that we can have a machine learning algorithm that learns ANY game mechanics perfectly just by looking at limited amount game play. Obviously that's not true for any neural network including human brain.
What I do claim is that we can have a machine learning algorithm that can learn some interesting game mechanics just by looking at game play. That is what the researchers intended and got some interesting results.
> Game states are too large to be entirely seen even by a computer. We need pruning and MCTS for simple adversarial searches in games like chess, Go; What makes you think some magical AI can imitate a game engine?
Ok, you may have a different definition of "game state" than I do.
My definition (which I think is the correct one): The state of the variables in a game program that define the state of the game. The game state may include variables that contain the position of monsters, player's score etc. The game state can be used
Game state is NOT all the possible game states of a particular game. That's called game state space. I'm sure you know that, I'm just being pedantic of course.
Now let us consider the game of Chess, which is not the best example, but let's do it anyway. The game state in chess is basically the position of the chess pieces on a board. That is about 64 variables. It is conceivable that we could use a machine learning algorithm to learn the _rules_ of the game and how to render the current state of the chess game ("game engine") just by showing the algorithm valid input (player move, image of the game board before move) and output (image of the game board after move) of the game.
Can we learn the rules of chess perfectly? Well, that might be hard, I fully understand that. We should carefully select all the interesting chess game positions to make sure the machine learns everything correctly and we would never be sure.
But that is not what we're trying to do here! We're trying to use machine learning to get some useful and possibly creative game engines without manually defining the rules (programming). The idea is not to replicate something existing perfectly. That was never my claim.
BTW, although this is not exactly what we're discussing here, Matthew Lai has done some interesting research on this topic. [1]
"Instead of the conventional method of teaching computers how to play chess by giving them hardcoded rules, this project is an attempt to use machine learning to figure out how to play chess through self-play, and have them derive their own rules from the games."
> What makes you think some magical AI can imitate a game engine?
Your rhetorical question seems to assume that I've said something I haven't said. If you have an argument, state that in sentences.
Let me repeat. A neural network (or some other machine learning model) can learn to do similar things than a game engine does, namely take user input, maintain game state and render game state. Therefore this model can be considered as a game engine for a given game being modeled. That's the extent of my argument. Nothing more. I don't think we need any magic with this.
From the paper I think the "game engine" they learn is not even capable of playing the same level in a different way than in the examples. If Mario jumps in frame X, the "game engine" will always show Mario jumping in frame X, and not know there's any other possible state at that time than frame X with Mario jumping in it.
I mean, I see the value in this, totally- they've learned an automaton that can faithfully reproduce its examples and that's no mean feat. But like I say above it would make a lot more sense to define a "game engine" as an automaton that can reproduce the entire range of behaviours of its original- not just a set of its output frames and only that set of frames, in perpetuity.
Of course a "game engine" in the sense I give it above is (in the case of games) a Turing complete automaton- so it would be impossible to learn to simulate it just from examples of its output (there's a lot of maths on that). So the paper settles for the easiest task. OK. But the way they present it is misleading.
> Riemann invented his geometries before Einstein had a use for them; the physics of our universe is not that complicated in an absolute sense. A Bayesian superintelligence, hooked up to a webcam, would invent General Relativity as a hypothesis—perhaps not the dominant hypothesis, compared to Newtonian mechanics, but still a hypothesis under direct consideration—by the time it had seen the third frame of a falling apple. It might guess it from the first frame, if it saw the statics of a bent blade of grass.
I did not understand the part about the internet though, what does this mean?
> oh-so-carefully persuade them to give us Internet access, followed by five minutes to innocently discover their network protocols, then some trivial cracking whose only difficulty was an innocent-looking disguise.
and what about AIs melting? why is that? I feel dumb but I enjoyed it:)
>and what about AIs melting? why is that?
The author is just lampshading the fact that he doesn't want the story to involve any (non-human) AI.
The whole story is making an example about the capabilities of AI, so if humanity within the story themselves developed AI, then it would make the metaphor unnecessarily recursive.
For example, if I think of an AI that "learns a game engine from video" I would expect to see an AI that can take as input video of, say, myself playing XCOM2 and output the Unreal engine (or an engine with an interface indistinguishable from it).
In other words, I'd expect to see an AI that goes from example game output to an automaton that can reproduce that output _and any other output that the original automaton could produce_.
Instead, from a quick read of the paper, I understand they learn to reproduce a set of video frames that match the input- and then train a different AI to actually simulate the physics (i.e. make sure the player doesn't fall through walls etc).
While this is remarkable and I'm very glad to see a rule-based, greedy approach that seems to work pretty damn well, I really don't think it does what it says on the tin.
Still- this was published in IJCAI. So kudos to the authors for that.
After rereading it I'm no longer sure of my previous interpretation. Maybe they are generating these rules conditional on the player input without telling the training process what the input was.
But they evaluate the realism of the learned engine against the original by training a reinforcement-learning agent to play the game, which means that they somehow connected those conditional rules to their corresponding input values.
Specifically, they don't mention anywhere that their engine was played by a human- to prove its playability. Maybe that's an omission or they didn't consider it important, but it makes it very hard to figure out if this is at all possible.
Finally, there's this bit on the 4th page (next to the algorithm box) where they say:
"At this point we can guarantee that we have an engine that can
predict the entire sequence of frames from the initial frame.
Notably this means that the engine can only reflect changes that
actually occur in the input sequence of parsed frames".
I take this to mean that, given a specific starting frame, their engine wil always predict the same sequence- which must mean its prediction does not take into account player input.But it's true that this point is very hard to figure out.
>> Maybe they are generating these rules conditional on the player input without telling the training process what the input was.
Basically, yeah- that's my understanding.
For a baseline we drew on the “Infinite Mario” engine used
for the Mario level playing AI competition [Togelius et al.,
2010] and constructed a simple reinforcement learning agent
for the engine utilizing the value iteration algorithm. We further
constructed two variations on this agent. The first made
use of the native forward simulation available in the “Infinite
Mario” engine to construct an initial policy rather than relying
on the typical approach of a uniformly random initial policy.
(...)
In comparison, we constructed an agent that instead made use of
forward simulation according to the learned game engine (with
numerical values and names converted to the appropriate equivalent
in the “Infinite Mario” engine).
I think this means that they used a) a ready-made "forward simulation" agent included in the Infinite Mario engine, b) a RL agent they trained and c) a "forward simulation" agent _using their trained engine values as input_. But all three agents were playing the game on the Infinite Mario engine- not on their learned engine. Their learned engine only served to generate inputs for the "forward simulation".Which must mean that their engine cannot be played, in the traditional sense, for example by connecting its inputs to the outputs of an AI player, or by giving a controller to a human. If it could, they would most probably be demonstrating this ability by having an AI agent play a game of Mario on their learned engine. This doesn't seem to be possible.
Again- that's my reading and I too am not 100% sure about it, because it's really not made clear in the paper.
Then the AI extracts the engine, and one can use that to write the game.
I am curious, though, as to what kind of concepts the game discovered or had to be taught. Was it taught platform concepts (platforms, killer objects etc) and then simply had to map to what is what on screen?
Or can it really learn almost any videogame?
They use prior knowledge about the sprites that can appear in the game to extract them from the video frames. The extraction result is then represented as a list of facts (sprites present, their absolute and relative locations, velocities and the camera scroll position). Learned rules are applied to these facts to derive a representation of the next frame, which is then displayed.
That means that platforms and killer objects are discovered concepts, but the features that allow their discovery (relative positions) are already hardcoded. Since most games have collision-based interactions, that is likely not much of a limitation.
The greater problem will be with hidden information. If e.g. a bomb stays black for 5 seconds after being placed before it starts blinking red and then exploding, their method would be unable to learn when the bomb should start to blink, because their representation of game state has no memory. Same with objects dropped off-screen, inventory, quest status or any other information that is relevant to the game, but not always displayed on the screen.
You could maybe adapt it to learn from hand-animated examples, which would certainly make some games easier to create. But I doubt that the effort required to specify all interactions in a 3D game by hand would be much less than just coding them.
Overfitting isn't that impressive.
With Go, then, the task of an AI player (like AlphaGo) is to search a finite space for those board states that allow it to win.
With songwriting- the task is not even clearly defined. Obviously, you're trying to generate songs people will want to listen to, so you have to search an infinite space for a set of songs that satisfy some criteria of "listenability", but what criteria are these? Popular songs range over wildly different music styles, from Black Metal to Medieval folk revivalist music through RnB and Arabic belly dancing music. What examples will we train our AI songwriter on? All music, ever? Specific kinds of music? Specific songs as exemplars of specific styles?
Or in other words, what exactly will our AI songwriter be trying to learn? It'd be looking into an infinite haystack filled with almost identical needles for a particular needle it's never even seen well enough to recognise.
There are about 10^170 legal positions in Go. We think that there are about 10^82 particles in the observable universe. The space isn't infinitely large, but it's close enough.
The space of enjoyable songs is remarkably small. There are only 12 notes in the chromatic scale and 8 in the diatonic scale. The human range of hearing only covers about nine octaves. There are a relatively small pool of rhythms and harmonies that sound pleasing to most people. Accidental plagiarism is a very common problem in popular music - it's easy to unintentionally write a song that's almost identical to another song. The most common defence in music plagiarism cases is simply to find lots of prior art; the song that you've allegedly plagiarised is probably extremely similar to a lot of other songs.
Jazz musicians can improvise over unfamiliar chord progressions precisely because most music isn't particularly original. If you understand music theory, you can make fairly accurate guesses about what's coming next. Practically all music follows a similar set of understandable patterns, even across cultures.
https://www.theatlantic.com/science/archive/2016/09/music-pl...
I don't understand why the number of atoms in the universe has anything to do with the tractability of Go, or anything else. I've heard of this idea before, but, for example, my computer can calculate the factorial of 106, that is 1.146281e+170 (1.146281 times 10 to the power of 170), in much less than a second. 10^170 means nothing on its own. And like I say, the point with Go AI is to try and not have to examine all possible board positions.
The other thing to keep in mind is that finite is always infinitely smaller than infinite- no matter how large it (finite) is. And infinite is always intractable, so if a problem is infinite you can't solve it, unless you can reduce it to a finite problem.
As to music- the number of combinations you're looking at is far larger than the number of permutations of the set of notes. A musical piece is actually a string from a language with the musical notes for symbols and some unknown set of rules that govern what is a well-formed string in the language (i.e. what is a musical piece and what is just noise). That language is probably context-free, or above- and certainly not finite. So, no, you can't hope to just machine-learn how to make a song just by training on a few examples.
These sort of infinite problems crop up all the time in human activities. It's no use trying to approach them without a full understanding of the tractability issue. I mean, that's why we have complexity theory in the first place- because some problems can't be solved in a general manner in the available time in the universe (and again that time has nothing to do with the atoms in the same universe).
The problem with your hypothetical lies in these three words: there's no such thing.
Art and appreciation of it is, in big part, a way to connect with the mind and feelings of other people, the artist and everyone else who appreciates the art. Most (not to say all) people wouldn't even consider buying a piece of art that wasn't made by another person, methinks.
It's possible that a massive musical AI/idiot savant could eventually produce an infinite amount of pleasant background music sans lyrics. But for music people are actually listening to, I don't think we're anywhere close.
But even if you're right, it won't matter. When Prince and David Bowie died, people weren't primarily upset because there would be no new songs in a particular style. It was because they'd formed a deep emotional connection to the artist. To the artist's personality as expressed both through their music and through their presence in the world. As another example, hip hop and Latin music are valuable to me not just for the sounds, but for the window into cultures that I didn't grow up in. I don't just enjoy the tune.
What you're really talking about is not just AlphaSong, but something close to solving the Strong AI problem so well that you can create totally believable synthetic characters. At best you situate a synthetic mind in a real culture, which I think would end up like Vanilla Ice: extractive and disconnected from the tradition. Or do you make a bunch of synthetic minds generate their own synthetic culture? It would be interesting, but I'm not sure it would displace much.
Even if you're entirely right, though, that AlphaGo produced superhumanly good synthetic music, I suspect it won't matter much. Long ago the technology of photography produced superhumanly good synthetic image reproductions. Human art mostly turned away from strict representation, and human artists seized on photography and turned it into an art form in its own right. Synthetic instruments allow anybody to simulate a arbitrary number musicians, but people still go to the orchestra and still see live bands. We could eat take-out or go only to restaurants, but people still have dinner parties and enjoy cooking together. People are social animals.
"The new, modified version, Creative Adversarial Networks (CAN), is designed to generate work that does not fit the known artistic styles, thus “maximizing deviation from established styles and minimizing deviation from art distribution,” according to the paper. For the training, they used 81,449 paintings by 1,119 artists in the publicly available WikiArt data set."
https://news.artnet.com/art-world/rutgers-artificial-intelli...