
English: 
Dear Fellow Scholars, this is Two Minute Papers
with Károly Zsolnai-Fehér.
This topic has been perhaps the most highly
anticipated by you Fellow Scholars and I am
extremely excited to show you the first joint
paper between DeepMind and Blizzard on creating
an AI program to play Stacraft II.
Hell yeah!
And fortunately, we have a paper where every
detail is meticulously described, so there's
much less room for misunderstandings.
And before we start, note that this is a preliminary
work, so please don't expect superhuman performance.
However difficult you thought this problem
was, you'll see in a minute that it's way
more complex than most people would think.
But before we start - what is Starcraft 2?
It is a highly technical strategy game which
will be a huge challenge to write a formidable
AI for because of the three reasons.
One, we have imperfect information with a
partially observed map.

Russian: 
Уважаемые коллеги, это "Two Minute Papers" с Károly Zsolnai-Fehér.
Эта тема возможно самая ожидаемая вами, коллеги, и я
чрезвычайно рад представить вам первый совместный отчёт "DeepMind" и "Blizzard"
по созданию ИИ для игры в "Stacraft II".
О да!
И к счастью в этом отчёте, каждая деталь тщательно описана, так что
не остаётся места для недопонимания.
Но прежде чем мы начнём, учтите, что это предварительная работа, так что пожалуйста не ожидайте сверхчеловеческой прыти.
Какой бы сложной задачей вы это не считали, через минуту вы поймёте, что она гораздо
более сложная чем думает большинство людей.
Для начала - что такое "Starcraft II" ?
Это высокотехничная стратегическая игра, которая будет огромным вызовом для написания
под неё ИИ, по трём причинам.
Первое - у нас есть лишь неполная информация на частично разведанной карте.

English: 
If we wish to see what the other opponent
is up to, we have to devote resources to scouting,
which may or may not be successful depending
on the vigilance of the other player.
Two, we need to select and control hundreds
of units under heavy time pressure.
One wrong decision, and we can quickly lose
most of our units and become unable to recover
from it.
And three, perhaps the most important part
- long-term strategies need to be developed,
where a poor decision in the early game can
lead to a crushing defeat several thousands
of actions later.
These cases are especially difficult to identify
and learn.
However, we ran a bit too far ahead to the
gameplay part.
What needs to be emphasized is that there
is a step number one before that.
And that step number one is making sure that
the AI is able communicate and interact with
the game, which requires a significant engineering
effort.
In this paper, a Python-based interface is
described to make this happen.
It is great to have companies like DeepMind
and OpenAI who are devoted to lay down the

Russian: 
Если нам надо узнать что делает оппонент, то потребуется выделить ресурсы на разведку,
которая может удасться, а может и нет, в зависимости от бдительности другого игрока.
Второе - нам надо выбирать и управлять сотнями юнитов под в жёстких временнЫх рамках.
Одно неверное решение и мы можем быстро потерять большинство своих юнитов, и не получить возможности
оправиться.
И третье - (наверное самое важное) требуется разрабатывать долгосрочные стратегии,
где неверное решение в начале игры может приводить к разгромному поражению спустя
несколько тысяч ходов.
Такие случаи особенно сложны для выявления и обучения.
Однако мы забегаем слишком далеко - в процесс игры.
Важно отметить, что требуется выполнить некоторое количество шагов до этого.
И первый шаг - это убедиться что ИИ может взаимодействовать с игрой,
что требует значительных инженерных усилий.
В этом отчёте описан Python-образный интерфейс для этих целей.
Здорово что такие компании как "DeepMind" и "OpenAI" занимаются разработкой

Russian: 
основ для таких интерфейсов, что требует очень серьёзных усилий.
Данная работа скорее всего никогда бы не вышла в свет, если бы исследования по ИИ проходили
только в академиях.
Огромное почтение и большое спасибо работникам "DeepMind" за то что они сделали это возможным.
Для игры использовалось глубокое обучение с подкреплением, о котором вы могли слышать из
предыдущих выпусков.
Это мощный алгоритм обучения, когда нейросеть используется для обработки видеокартинки
и при этом она обучается с подкреплением/поощрением.
При таком подходе мы осматриваем своё окружение и выбираем следующее действие
так, чтобы максимизировать очки -
 или поощрение.
Однако легко подсчитать очки для "Arkanoid", так как мы знаем, что если число наших жизней
упадёт до нуля мы проиграем, а если мы разобьём много кирпичиков, наш счёт вырастет.
Просто.
Но не в "Starcraft II", как мы можем быть уверены что побеждаем?
Какие очки мы пытаемся максимизировать?

English: 
foundations for such an interface, which is
a herculean task.
This work would likely had never seen the
light of day if AI research would only take
place in academia.
Huge respect and much thanks for the DeepMind
guys for making this happen.
To play the game, Deep Reinforcement Learning
is used, which you heard about earlier in
the series.
This is a powerful learning algorithm where
a neural network is used to process the video
input and is combined with a reinforcement
learner.
With reinforcement learning, we're observing
the environment around us and choose the next
action to maximize a score or reward.
However, defining score was very easy in Atari
Breakout, because we knew that if the number
of our lives drops to zero, we lost, and if
we break a lot of bricks, our score improves.
Simple.
Not so much in Starcraft 2, because how do
we know exactly if we're winning?
What is the score we're trying to maximize?

English: 
In this work, there are two definitions for
score: one that we get to know at the very
end that describes whether we won, had a tie,
or lost.
This is the score that ultimately matters.
However, this information is not available
throughout the game to drive the reinforcement
learner, so there is an intermediate score
that is referred to as Blizzard score in the
paper, which involves a weighted sum of current
resources and upgrades, as well as our units
and buildings.
This we have access to throughout the game.
This sounds good for a first approximation,
since it is monotonically increasing if we
win battles and manage our resources well,
and decreases when we're losing.
However, there are many matches where the
player with the more resources does not have
enough time to spend it and ultimately loses
a deciding encounter.
It remains to be seen whether this is exactly
what we need to maximize to beat a formidable
human player.
There are also non-trivial engineering decisions
on how to process the video stream.
The current system uses a set of feature layers,
which encode relevant information for the

Russian: 
В данной работе используются два понятия очков: одни определяются в самом конце,
в зависимости от того, выиграли мы, сыграли вничью или проиграли.
Это очки первостепенной важности.
Однако эта информация не известна в течение игры для определения поощрения,
так что есть ещё промежуточные очки, которые в отчёте названы "Blizzard" очками,
они складываются из взвешенной суммы добытых ресурсов и улучшений, а так же юнитов
и построек.
Они доступны в течение всей игры.
На первый взгляд всё понятно, очки монотонно возрастают если мы одерживаем победы
и хорошо распоряжаемся своими ресурсами, и уменьшаются когда мы проигрываем.
Однако есть множество вариантов когда игрок с бОльшими ресурсами не успевает их
использовать, и в итоге проигрывает решающий поединок.
Так что не факт что их увеличение - это то, что требуется для победы
над противником-человеком.
Так же требуются нетривиальные инженерные решения по обработке видеопотока.
Текущая система использует набор слоёв интересов, которые представляют соответствующую информацию для ИИ,

English: 
AI, such as terrain height, the camera location,
hit points for the units on the screen and
much, much more.
There is a huge amount of information that
the convolutional neural network has to make
sense of.
And I think it is now easy to see that starting
out with throwing the AI in the deep water
and expecting it to perform well on a full
one versus one match, at this point, is a
forlorn effort.
The paper describes a set of minigames, where
the algorithm can learn different aspects
of the game in isolation, such as picking
up mineral shards scattered around the map,
defeating enemy units in small skirmishes,
building units or harvesting resources.
In these minigames, the AI has reached the
level of a novice human player, which is quite
amazing given the magnitude and the complexity
of the problem.
The authors also encourage the community to
create more minigames for the AI to train
on.
I really love the openness and the community
effort aspects of this work!

Russian: 
такую как: карта высот, положение камеры, количество здоровья у юнитов на экране и
многое, многое другое.
Существует огромное количество информации которую должна воспринимать свёрточная
нейросеть.
Думаю теперь понятно что сходу бросать ИИ в бой
и ожидать хороших результатов в битве один на один, на данный момент,
бессмысленно.
В отчёте описывается набор мини-игр, на которых алгоритм может изучать различные
аспекты игры по отдельности, такие как: сбор минералов, разбросанных по карте,
уничтожение вражеских юнитов в небольших сражениях, производство юнитов или сбор ресурсов.
В этих мини-играх ИИ достиг уровня человека-новичка, что довольно
впечатляет, учитывая масштабность и сложность задачи.
Кроме того, авторы призывают сообщество создавать больше мини-игр для
тренировки ИИ.
Мне очень нравятся открытость и совместная работа сообщества над этой задачей!

English: 
And we've only just scratched the surface,
there is so much more in the paper, with a
lot more non-trivial design decisions and
a database with tens of thousands of recorded
games.
And, the best part is that the source code
for this environment is available right now
for the fellow tinkerers out there.
I've put a link to this in the video description.
This is going to be one heck of a challenge
for even the brightest AI researchers of our
time.
I can't wait to get my hands on the code and
also, I am very excited to read some followup
papers on this.
I expect there will be many of those in the
following months.
In the meantime, as we know, OpenAI is also
working on DOTA with remarkable results, and
there's lots of discussion whether a DOTA
5 versus 5 or a Starcraft 2 1 versus 1 game
is more complex for the AI to learn.
If you have an opinion on this, make sure
to leave a comment below this video.
Which is more complex?
Why?
This also signals that there's going to be
tons of fun to be had with AI and video games
this year.
Stay tuned!

Russian: 
Это лишь поверхностное описание, отчёт содержит гораздо больше - множество
нетривиальных проектных решений и базу данных с десятками тысяч записей
игр.
И самое замечательное то, что исходный код этого окружения доступен уже сейчас
для всех энтузиастов.
Я оставлю ссылку на него в описании к видео.
Это будет чертовски сложной задачей даже для умнейших исследователей ИИ
нашего времени.
Не могу дождаться взяться за код, а так же очень хочу почитать последующие, связанные
с этим отчёты.
Ожидаю что их появится множество за последующие месяцы.
А тем временем, как известно, "OpenAL" так же работает над "DOTA", с заметными успехами,
и идёт множество дискуссий на тему - что сложнее "DOTA" 5 на 5 или "Starcraft II" 1 на 1
с точки зрения обучения ИИ.
Если вам есть что сказать по этому поводу, не забудьте оставить комментарий под этим видео.
Что сложнее?
Почему?
Это так же намекает, что предстоит много забавного на тему ИИ и видео игр
в этом году.
Оставайтесь на связи!

English: 
Thanks for watching and for your generous
support, and I'll see you next time!

Russian: 
Спасибо за просмотр и за вашу щедрую поддержку, и до следующих встреч!
