|
What they did with go was amazing so its cool to see them try this. The only issue is how APM dependent this game is compared to say go. Its a huge huge advantage to have higher apm compared to say a person so they certainly need to account for that. I think a game like civilization 6 would be a better fit where its turn based and has good complexity but not dependant on apm. I guess there arent any replays or pro civilization 6 players though for them to use Also I think brood war would have been a better choice then starcraft 2 but I guess it doesnt really matter. Brood war uses a lot less resources and is more time tested with a longer history of competitive play
|
I don't get why so many people are focused on APM here. Much more interesting to me is the question how will the AI take its inputs. For GO it had an operator input the opponent's move in its interface, a no-go option for SC. For SC it may be image recognition based on video capture or framebuffer access. But I am very skeptical they can process that much raw data with a neural net in real time. If they manage to do it, that alone would be mighty impressive, regardless of if it beats the top human players or not. More likely to me seems that they would use some direct access to game state memory - probably with some intermediate layer that prevents it from getting data outside of the fog of war. It'll probably require Blizzard's help to develop and will always leave some doubt into the fairness of the accessible information.
I'm very curious about what they are planning...
|
On November 07 2016 05:28 georgir wrote: I don't get why so many people are focused on APM here. Much more interesting to me is the question how will the AI take its inputs. For GO it had an operator input the opponent's move in its interface, a no-go option for SC. For SC it may be image recognition based on video capture or framebuffer access. But I am very skeptical they can process that much raw data with a neural net in real time. If they manage to do it, that alone would be mighty impressive, regardless of if it beats the top human players or not. More likely to me seems that they would use some direct access to game state memory - probably with some intermediate layer that prevents it from getting data outside of the fog of war. It'll probably require Blizzard's help to develop and will always leave some doubt into the fairness of the accessible information.
I'm very curious about what they are planning... Blizzard has stated that they have worked together with DeepMind to work on an API that they are going to release soon-ish. This API will give access to the game state as well as some different interfaces for the minimap and terrain ect.
|
On November 07 2016 04:38 snakeeyez wrote: What they did with go was amazing so its cool to see them try this. The only issue is how APM dependent this game is compared to say go. Its a huge huge advantage to have higher apm compared to say a person so they certainly need to account for that.
The AI will have an apm limit in some form.
On November 07 2016 04:38 snakeeyez wrote: I think a game like civilization 6 would be a better fit where its turn based and has good complexity but not dependant on apm. I guess there arent any replays or pro civilization 6 players though for them to use
GO proved that they can a turn based game that has a big complexity. Starcraft is way more interesting because it 3 asymmetric races and real time.
On November 07 2016 04:38 snakeeyez wrote: Also I think brood war would have been a better choice then starcraft 2 but I guess it doesnt really matter. Brood war uses a lot less resources and is more time tested with a longer history of competitive play With SC2 they got the chance to work with blizzard and create an API conforming to their needs. Something that would have never happened with BW.
|
On November 07 2016 05:38 sabas123 wrote: GO proved that they can a turn based game that has a big complexity. I don't quite agree. Go has a lot of complexity, but still input for it is very simple. The grid is tiny relative to a Civilization game. The scale of the neural net might very well be unfeasibly large if applied to Civilization. Or Starcraft, for that matter. I expect they will have to come up with an entirely new paradigm instead of the grid to represent game state for the AI.
|
I think civilization would be an interesting game for something like this although the problem is that its not really played competitively in the same sense that starcraft is so replays would be an issue. Its certainly a complicated game, and current AI struggles to do much of anything without large amounts of cheating. It would be even more impressive if they could take this system playing starcraft after winning, and feed it the civilization 6 rules for it to learn and win at that without any human changes. I dont know if its possible because then you have true AI which I think is still out of reach. Neural nets are tech from like 1960s its nothing new this deep learning stuff just a revisit to older stuff. Its interesting to see a team of real professional AI programmers with google resources try to tackle a game as complicated as starcraft. I think they will do it
|
On November 07 2016 04:38 snakeeyez wrote: What they did with go was amazing so its cool to see them try this. The only issue is how APM dependent this game is compared to say go. Its a huge huge advantage to have higher apm compared to say a person so they certainly need to account for that. I think a game like civilization 6 would be a better fit where its turn based and has good complexity but not dependant on apm. I guess there arent any replays or pro civilization 6 players though for them to use Also I think brood war would have been a better choice then starcraft 2 but I guess it doesnt really matter. Brood war uses a lot less resources and is more time tested with a longer history of competitive play The thing about APM is that it's a challenge, but not a completely unsolved one. Watson, when it was doing Jeopardy, internally set up time limits for itself to just pick whatever "best" solutions in a given step it had after a given time so that it wouldn't take too long finding the best answer for a question. I imagine something similar could be implemented as a policy for a starcraft AI, where upon registering a new piece of information, internal deadlines are set up so that after a certain amount of time (probably variant) the best solution is picked and further computation is halted
|
Is such a bad idea test deepmind with SC2 instead of BW. At SC2 it can kill almost anything with 16 marines and 2 medivacs. Well, at least we will see how bad is it the balance with unlimited micro skill.
|
is the vod for the presentation available anywhere? I have a virtual ticket but I didn't watch the presentation live as I was expecting it to be put up in the video archive, but so far it hasn't. in fact, its the only streamed footage of the entire blizzcon that hasn't been put up in the archive. why?
|
On November 07 2016 06:25 georgir wrote:Show nested quote +On November 07 2016 05:38 sabas123 wrote: GO proved that they can a turn based game that has a big complexity. I don't quite agree. Go has a lot of complexity, but still input for it is very simple. The grid is tiny relative to a Civilization game. The scale of the neural net might very well be unfeasibly large if applied to Civilization. Or Starcraft, for that matter. I expect they will have to come up with an entirely new paradigm instead of the grid to represent game state for the AI.
I did some rough calculations the other day:
The most important information you have to store in a game state is:
unit type unit position current unit health current command of unit weapon cooldown status, etc.
Considering that a command can have a target position, we'd have to store two positions. If we use tile resolution (e.g. 192x192 tiles for a map) and assuming 34 different unit types (includes buildings), max. 250 units per player, then we have to store roughly:
2x250 times: 2x192x192 (two positions) + 2x34 (unit type for two races) + 1500 (hit points) + current command / cooldown / etc.
+ some overhead for current upgrades / etc. which can be stored globally rather than per unit.
-> One unit state would probably fit into 48 bits, give or take a few. -> A game state would fit into 2x250 x 48 bits =< 24kbits give or take a few
A 256x256 pixel image with 10bit color depth requires 640kbits.
This is just to illustrate, without drawing any conclusions  I could also have done some horrible mistakes, it's pretty late...
PS: note that this way the game state is not stored in a grid, but in an array of units
|
On November 07 2016 12:45 imp42 wrote:Show nested quote +On November 07 2016 06:25 georgir wrote:On November 07 2016 05:38 sabas123 wrote: GO proved that they can a turn based game that has a big complexity. I don't quite agree. Go has a lot of complexity, but still input for it is very simple. The grid is tiny relative to a Civilization game. The scale of the neural net might very well be unfeasibly large if applied to Civilization. Or Starcraft, for that matter. I expect they will have to come up with an entirely new paradigm instead of the grid to represent game state for the AI. I did some rough calculations the other day: The most important information you have to store in a game state is: unit type unit position current unit health current command of unit weapon cooldown status, etc. Considering that a command can have a target position, we'd have to store two positions. If we use tile resolution (e.g. 192x192 tiles for a map) and assuming 34 different unit types (includes buildings), max. 250 units per player, then we have to store roughly: 2x250 times: 2x192x192 (two positions) + 2x34 (unit type for two races) + 1500 (hit points) + current command / cooldown / etc. + some overhead for current upgrades / etc. which can be stored globally rather than per unit. -> One unit state would probably fit into 48 bits, give or take a few. -> A game state would fit into 2x250 x 48 bits =< 24kbits give or take a few A 256x256 pixel image with 10bit color depth requires 640kbits. This is just to illustrate, without drawing any conclusions  I could also have done some horrible mistakes, it's pretty late... PS: note that this way the game state is not stored in a grid, but in an array of units
You don't just account for the current game state, You account for all the possible branches to other states, and so on. Complexity increases exponentially.
|
I know this is about starcraft, but what about storing the game state for say civilization 6? Would civilization 6 be harder or easier then starcraft 2?
|
United Kingdom13775 Posts
I echo the sentiment that they should have went with BW instead of SC2. One has a mature API that has gone through enough testing that it is pretty darn solid, with enough history that they have work to build on (most notably from the Berkeley research groups). With SC2 they are starting completely from scratch with a new API that is guaranteed to be glitchy and unreliable (the inevitable result of new software).
Frankly this choice strikes me as something that is probably made more from a PR perspective than from any intellectual merit of choosing SC2 as the platform for AI testing.
|
On November 07 2016 13:32 Dumbledore wrote:Show nested quote +On November 07 2016 12:45 imp42 wrote:On November 07 2016 06:25 georgir wrote:On November 07 2016 05:38 sabas123 wrote: GO proved that they can a turn based game that has a big complexity. I don't quite agree. Go has a lot of complexity, but still input for it is very simple. The grid is tiny relative to a Civilization game. The scale of the neural net might very well be unfeasibly large if applied to Civilization. Or Starcraft, for that matter. I expect they will have to come up with an entirely new paradigm instead of the grid to represent game state for the AI. I did some rough calculations the other day: The most important information you have to store in a game state is: unit type unit position current unit health current command of unit weapon cooldown status, etc. Considering that a command can have a target position, we'd have to store two positions. If we use tile resolution (e.g. 192x192 tiles for a map) and assuming 34 different unit types (includes buildings), max. 250 units per player, then we have to store roughly: 2x250 times: 2x192x192 (two positions) + 2x34 (unit type for two races) + 1500 (hit points) + current command / cooldown / etc. + some overhead for current upgrades / etc. which can be stored globally rather than per unit. -> One unit state would probably fit into 48 bits, give or take a few. -> A game state would fit into 2x250 x 48 bits =< 24kbits give or take a few A 256x256 pixel image with 10bit color depth requires 640kbits. This is just to illustrate, without drawing any conclusions  I could also have done some horrible mistakes, it's pretty late... PS: note that this way the game state is not stored in a grid, but in an array of units You don't just account for the current game state, You account for all the possible branches to other states, and so on. Complexity increases exponentially.
My calculation was in response to game state size of go vs sc2. Game state and branching factor are two entirely different things. and no, you do not have to explore all possible branches, as I explained in a previous post.
|
On November 07 2016 13:55 LegalLord wrote: I echo the sentiment that they should have went with BW instead of SC2. One has a mature API that has gone through enough testing that it is pretty darn solid, with enough history that they have work to build on (most notably from the Berkeley research groups). With SC2 they are starting completely from scratch with a new API that is guaranteed to be glitchy and unreliable (the inevitable result of new software).
Frankly this choice strikes me as something that is probably made more from a PR perspective than from any intellectual merit of choosing SC2 as the platform for AI testing.
The bold part might be the reason they want to do SC2 instead of BW. They might not want to publish there work based on code or API done by other group of researchers so they went to SC2 instead. Plus, the work on BW would not be unique (which a lot of academics care about).
|
United Kingdom13775 Posts
On November 07 2016 14:15 Veldril wrote:Show nested quote +On November 07 2016 13:55 LegalLord wrote: I echo the sentiment that they should have went with BW instead of SC2. One has a mature API that has gone through enough testing that it is pretty darn solid, with enough history that they have work to build on (most notably from the Berkeley research groups). With SC2 they are starting completely from scratch with a new API that is guaranteed to be glitchy and unreliable (the inevitable result of new software).
Frankly this choice strikes me as something that is probably made more from a PR perspective than from any intellectual merit of choosing SC2 as the platform for AI testing. The bold part might be the reason they want to do SC2 instead of BW. They might not want to publish there work based on code or API done by other group of researchers so they went to SC2 instead. Plus, the work on BW would not be unique (which a lot of academics care about). To put that concern not-so-nicely, I would say that that sounds like they put their egos before the matter of doing what has the best chance of working. That is a distinct possibility but it's retreading old ground for really unproductive reasons.
|
It's been stated before, but I'm saying it again because so many people aren't reading about this and making conclusions. The AI deepmind wants to develop will be limited to play within the limits of human dexterity. This has been confirmed already.
The hardest part of writing this AI will be combining different types of information and how they are related to the probability of winning the game. AlphaGo was made out of three fairly basic pieces of software: A search tree to examine moves, a neural network that estimates how good a board position is, and another neural network that assigns probabilities to a certain players move based on that board position. Honestly AlphaGo is not even that impressive once you see what it really is, although the solution was rather ingenious.
Starcraft is different. Because the game has hidden information, knowing the full state of the game requires memory of past events. Also the quality of your information decays over time if you haven't scouted. There is definitely a whole meta-level aspect of the thought process that involves trying to figure out efficient ways to get more information about what your opponent is doing, because information itself is a resource. AlphaGo could be given an in-progress Go match and begin playing. Any Starcraft AI will depend more heavily on the internal state and to be put into the middle of a game with fog of war, and no prior knowledge, it will have to start from square one. Not that this would happen, however.
Starcraft also requires specific sub-goals that may contradict one-another. In Go you have a single task for every turn: place the piece that increases probability of winning the most. In Starcraft you have to do multiple things at the same time and decide which of them are the most important. Also these goals are abstract and require their own evaluation of success or failure. For example you may want to conduct a drop that kills workers. This action will have to be planned with the specific goal of killing workers and is basically totally separate from everything else you're doing, for the most part. However this still has to be baked into the overall evaluation of "what is my probability of winning." The thing about Starcraft is that there is basically infinite possibilities here. You could try hand-coding a bunch of different ways to look at the game, but that's not efficient nor does it really align with Deepmind's overall goals. Deepmind needs to figure out a way to make their AI have a sense about the game and create its own plan. Not an easy task.
I don't know why people are getting hung up on the issue of BW vs SC2. If you seriously think that Deepmind is going to fail because they chose SC2 then you're being really petty. For one thing they're working directly with the developers of SC2 to create this API so any concerns about how it isn't going to work are just ridiculous in my opinion. Do you really think that Blizzard devs don't know how to program or something?
|
I think the BW vs. SC2 is mainly because there are already AI contests for BW, and the structure for building AI is already in place. However, I don't see any problem working on SC2. The DeepMind people might even have gone to Blizzard and suggested BW due to the available computational infrastructure, but Blizzard wants to push the game they are still making money with, and suggested they can open up a similar API for SC2. With the support of DeepMind (Google) and Blizzard, I don't doubt that a lot of the current AI development for BW will port their solutions to SC2, and the AI community for SC2 will get a major boost, because lets face it: for AI development it makes very little difference whether it's SC2 or BW (the major problems that need to be addressed are the same for both), but the direct support of Blizzard (and Google) for one will be a major push for that game.
Or, just see it as dedgaem rancor flowing over into this thread
|
On November 07 2016 19:32 Acrofales wrote:I think the BW vs. SC2 is mainly because there are already AI contests for BW, and the structure for building AI is already in place. However, I don't see any problem working on SC2. The DeepMind people might even have gone to Blizzard and suggested BW due to the available computational infrastructure, but Blizzard wants to push the game they are still making money with, and suggested they can open up a similar API for SC2. With the support of DeepMind (Google) and Blizzard, I don't doubt that a lot of the current AI development for BW will port their solutions to SC2, and the AI community for SC2 will get a major boost, because lets face it: for AI development it makes very little difference whether it's SC2 or BW (the major problems that need to be addressed are the same for both), but the direct support of Blizzard (and Google) for one will be a major push for that game. Or, just see it as dedgaem rancor flowing over into this thread  When I was watching it I thought that the game will have the possibility to regain some interest, not only in AI research scene with how ridiculously high levels of interest in that Go match against Lee Sedol were - especially in Korea.
|
I'd pay for Innovation vs. AlphaSC.
Robot vs. actual Robot.
They'll both give similar interviews after the match though.
|
|
|
|