Тут скорее речь о фундаментальных ограничениях. Ведь понятно, что очень сложная задача может проецироваться на очень низкую размерность. Например, задача вождения автомобиля: есть всего две размерности: газ-тормоз и руль влево-вправо. А задача сложная, сравнимая с созданием сильного ИИ.
Но дело в том, каким бы сложным ни был мир, у агента есть возможность маневра только в пространстве его размерности. У робомашины это вход с камеры и 4 действия. Если этих данных недостаточно, то тут просто ничего не поделаешь. Задача выйдет за размерность агента.
И RL алгоритмы работают напрямую с такими вещами. Компьютер же ничего не знает об устройстве мира, у него есть две числовые оси определенной длины с определенным шагом, меняющиеся с определенным временным интервалом. И несколько чисел в качестве входных данных. И нужно понять, как решать задачу, когда критерий у вас только сигнал награды — решена или нет. Прямо как у младенца.
Поэтому RL так привлекает исследователей, это создание интеллекта из первых принципов. Без имитационного копирования поведения других людей и прочих трюков, облегчающих жизнь. И поэтому там так много математики. И такое глубокое погружение в эту область знаний.
Тем не менее неокортекс, отвечающий за высшие когнитивные функции — мышление и пр., имеет примерно однородную структуру. Это означает, что он полностью обучается в процессе, а не имеет врожденных программ. У человека есть конечно косяки, доставшиеся от более древних отделов мозга. Но я к тому, что неокортекс доказывает, что разум как явление определяет обучением. Органом или механизмом, позволяющем обучаться в течении жизни. А отсюда и потребность понять, а как же происходит это обучение, приводящее к разумности? По каким алгоритмам. Это RL на сниженной за счет других отделов размерности или что-то другое?
Но это только если речь о голом RL. На практике используются гибриды. К примеру, размерность картинки с камеры с помощью обычной нейросети-автоэнкодера можно снизить до размерности 4. А уже в этой размерности обучать агента алгоритмами RL. Так уже существующими методами удается обучить ездить машинку по камере, например.
У человека тоже большая часть сенсорной информации предобрабатывается. Как пример глазной нерв, сжимающий видеопоток в 100 раз. Собственно, наше мышление это тоже пример невероятного снижения размерности. Из всего разнообразия показаний сенсоров и длительных по времени ситуаций (число комбинаций не поддается исчислению из-за комбинаторного взрыва), мы сжимаем их до типичных 20 тысяч слов, используемых человеком. И мыслим, то есть думаем, уже на уровне этих слов. В размерности всего 20 тысяч измерений.
Вот как только RL алгоритмы смогут работать с задачами размерностью 20 тысяч, то сразу естественным образом получим сильный разговорный ИИ, построенный на базе текстов. Возможно он будет не идеальный, так как всю информацию о внешнем мире мире ему придется получать из текста. Но болтать будет здорово.
В данном случае, см. графики, где как раз сравнивается поведение с двумя лучшими моделями на основе любопытства, победил ленивый. Но скорее всего это из-за подобранных окружений. В них много опасностей, поэтому ленивый (считай — избегающий любой новизны) оказался в выигрыше.
В пинг-понге размерность 1. На 4 алгоритм уже захлёбывается. На 17 (примитивная модель гуманоида с минимальным числом суставов) обучить практически невозможно. Точнее удается, но ценой невероятных ухищрений с рядом ограничений на условия задачи, и ценой облачной вычислительной мощности. У человека 700 мышц и два глаза по 100 мегапикселей каждый. А число степеней свободы, приведенное к единице времени как в Reinforcement Learning, исчисляется миллионами или миллиардами. Продолжать?
К примеру, если за единицу времени вы можете сказать одно слово, то у вас 500 тысяч степеней свободы. Если фразами, то это сразу комбинаторный взрыв.
Понятно, что необходимо уменьшать единицу времени, тогда число степеней свободы для RL алгоритма уменьшается (но растет необходимый горизонт планирования). Число мышц можно уменьшить до каких-нибудь разумных 100 штук, например. А число слов до 2-30 тысяч. И картинку на входе подавать 640х480 (все равно пропускная способность глазного нерва на 30 кадрах в секунду примерно 2 мегапикселя, так что 100 мп разрешение глаза используется только для резкости и предобработки).
И получается, что когда RL алгоритмы смогут обрабатывать задачи с текущих размерностей 1-10 до хотя бы до нескольких сотен, а лучше тысяч. То тогда будет реальный шанс увидеть сильный ИИ, построенный на этом подходе. Вопрос ли это масштабирования, вот в чем вопрос. Сейчас RL алгоритмы не масштабируются. Но все может измениться, конечно.
Но это такая обширная тема, что если пытаться упрощать, то получается пустая болтовня, от которой нет пользы. А если чуть углубиться, то получаются одни формулы. Которые отталкивают любого нормального человека. Дело в том, что область обучения с подкреплением зародилась очень давно, десятилетия назад, ещё до нейросетей. И многие понятия и определения чисто исторически перекочевали в наше время. И они довольно сильно отличаются от привычных понятий в нейросетях. В Reinforcement Learning для обучения нейросетей используются совсем другие формулы и методы, чем для обычных, а сами нейросети там скорее используются как простенькие аппроксиматоры. С другой стороны, существующие методы обучения с подкреплением просто не могут обучать сложные нейросети (по разным причинам). Иначе их давно бы начали использовать. И единственное что привлекает исследователей в Reinforcenent Learning, то что это настоящий интеллект, пусть и работающий пока только на задачах очень низкой размерности. Со временем либо увеличится вычислительная мощность, либо будут найдены более эффективные методы обучения. И тогда для всех настанет коммунизм.
но поскольку вы придумали и двигатель и насос, потратив меньше каллорий, чем если бы носили воду ведрами — то вы разумнее насоса
Я тоже сначала подумал, что можно так сравнивать степень разумности. Взять какой-то набор задач и посмотреть какой процент от этих задач может выполнить животное. Если кошка выполнила 1 из 10 задач, которые сделал человек, то значит ее разумность составляет 10% от человеческой.
Но так мы упираемся в выбор задач. Нет критерия, по которому их набирать. И в предельных случаях получим явно неправильные значения. Если взять задачу по перемещению из пункта А в пункт Б. Которую человек может выполнить. То и паровоз ее тоже может выполнить. Успех в 1 из 1. Формально, на этом наборе задач паровоз 100% разумен, так как выполнил 100% человеческих задач. Но это явно не то определение разума, которое нам хотелось бы. Оно формально верное, но не решает поставленную перед ним задачу.
Они испытывали этот алгоритм на очень разных задачах с разными исходными данными. Там где простые условия, как в тетрисе, они действительно хранили все состояния от начала эпизода. И на этом датасете составляли генеративную вероятностную модель. Которая служила потом для обучения нейросети — мозгов агента. Показывая ему степень знакомости текущего места.
А где на входе сложные данные или картинки, для расчета вероятностей они использовали вариационный автоэнкодер — VAE. Это нейросеть, которая на выходе выдает вероятности. Математическое ожидание и отклонение. И вот она, хоть на своем выходе и предсказывает вероятность того, насколько текущий state знаком относительно начала текущего эпизода, на самом деле была обучена на большом количество предыдущих эпизодов.
То есть, там две нейросети — одна предсказывает вероятность что state знаком, начиная с начала эпизода (или на простых задачах, вместо нее посчитанное реальное распределение). А вторая — это уже мозги самого агента. Причем если брать мозги, которые они использовали для дискретных действий — Q-learning, то там внутри еще две нейросети, основная и догоняющая target. Да и нейросеть для непрерывных действий TRPO, тоже внутри состоит из двух нейросетей — actor и critic.
В общем, в этом Reinforcement Learning все сложно. А все потому, что обычные нейронные сети, такие как сверточные CNN для распознавания картинок, в Reinforcement Learning нифига не работают. И это прям хороший вопрос, почему. Толком на него до сих пор нет ответа.
Я при анализе данной задачи не вспоминал про арканоид и физику.
Тогда хорошо. Потому что до меня решение дошло только когда вспомнил про траектории. И кроме перечисленного, мне еще понадобились знания как рисуется траектория, т.е. последовательно увеличивая число точек, начиная от начала траектории.
Но ведь на картинке в статье прямая отсылка к арканоиду, змейке и пониманию физики (отскакивает камней от стены). Не думаю, что без этих предварительных знаний можно решить эту задачу.
Разум не является чем-то новым, и уж тем более не является специфичным для человека.
Так как нет четкого математического критерия, по которому можно отличить разумное существо от неразумного (если вам известен такой критерий, то приведите его формулу), то будем считать что разум — это что-то на уровне человека. Да, некоторые животные иногда проявляют зачатки разумности, и это хорошо — ведь мы отдаленные родственники с точки зрения эволюции.
Но за образец настоящего сильного разума и интеллекта надо брать идеализированного человека. Благородного, умного, красивого. Такого как я.
Не эпизод, а state — текущее состояние. Показания всех сенсоров агента в текущий момент. У него есть несколько вариантов действия action и для каждого варианта он оценивает, насколько знакомым окажется новый state, если он выберет это действие. И соответственно, в итоге выбирает то действие, которое по его мнению (по оценке нейросети) приведет к более знакомому состоянию. Состоянию, в котором он уже находился много раз.
Для дискретных actions (тетрис, VizDoom) они используют Q-learning, а для непрерывных (Humanoid) — TRPO.
Да, верно. Парадокс в том, что стремление избегать новизны (в этой статье) и стремление к новизне (механизм любопытства) в итоге приводят к примерно одинаковому поведению. Потому что любопытство заставляет искать новые state, но целевая функция обучения — оставаться в игре как можно дольше. А здесь избегание новизны заставляет убегать от изменений, которые по большей части представляют опасности. Что естественным образом тоже приводит к тому, что агент дольше остается живым. В итоге оба оказываются в том state, который наиболее выгоден с точки зрения продления жизни агента.
Оракул — это алгоритм, знающий правильный ответ. Часто используется в машинном обучении, чтобы сравнивать эффективность обучаемых алгоритмов. Это как бы предельный случай, лучше которого уже ничего не может быть. Как оракул реализован здесь я не обратил внимания, но скорее всего на основе истинного распределения вероятностей узнаваемости мест. Так как оно должно набраться на статистике эпизода, то не сразу падает на графике, а постепенно. P.S. я когда-то потратил кучу времени, чтобы найти oracle алгоритм, который так же фигурировал в сравнениях в одной статье. Показывал намного лучшие результаты. Я думал, это метод конкурентов ). А оказалось вот так.
Вирус это просто молекула, заключенная в белковую оболочку, да и то не всегда. Как ей может хватать на что-то ума? Просто так сложились химические реакции, что грипп легко побеждается иммунной системой. Но благодаря изменчивости, не искореняется окончательно. Другие вирусы есть смертельные. А есть и полностью исчезнувшие.
Вы наверно имеете ввиду, что эволюция справится и сохранит подобие гомеостаза. Тогда согласен, химические реакции на основе углерода и водорода (т.е. органическая химия) настолько разнообразны, что наверняка от любых болезней можно выработать механизмы защиты. В конце концов, жизнь существует уже три миллиарда лет, значит она устойчива ко всем основным угрозам со стороны химии.
Но ИИ это не молекулы и химические реакции, которые происходили эти миллиарды лет. Как и разум, это нечто новое. Мы потенциально можем создать в космосе мощный источник гамма излучения и прожарить всю планету, что не останется ни одной бактерии. А ещё проще разогнать булыжник до 20% световой, и при столкновении наша планета превратится каплю раскаленной жидкости. Ни одно живое существо не выживет. При таких размерах планеты при столкновениях, да и вообще, ведут себя как капли жидкости в невесомости (поэтому и круглые). Поэтому при достаточной энергии столкновения будет невозможно укрыться в каких-нибудь твердых кусках породы. Потому что их не будет, будет сплошная капля из магмы. Впрочем, при самом ударе на первоначально разлетающихся осколках что-то может и уцелеет. Но уверен, с этим тоже можно что-то придумать. Как раз задачка для сильного ИИ. Которого мы все сейчас дружными усилиями разрабатываем ).
Вероятность, что этот state относится к распределению ранее посещённых state. Для простых дискретных игр (тетрис и, кажется, vizdoom) они хранят все посещенные state с начала эпизода и подгоняют на этом датасете простые генеративные вероятностные модели. Для тетриса на распределении Бернулли, а для vizdoom используют нормальное распределение. Для окружений с картинками они
используют вариационный автоэнкодер VAE. В общем, оценку знакомости места в сложных играх даёт нейросеть, натренированная на всех предыдущих эпизодах.
А к этому вполне может прийти ). Дело в том, что Reinforcement Learning — это попытка создать ИИ из первых принципов. Мотивация, любопытство, награда за успешные действия. Если такой ИИ решит, что для достижения цели ему выгоднее уничтожить всех человеков, то так он и сделает. Что ему может помешать-то? Мы конечно надеемся, что все действительно разумные существа достигают примерно одинакового уровня разумности и поэтому не будут вредить друг другу. Что разум это универсальная характеристика. Но гарантии этому нет.
Кроме того, пока будет создан действительно сильный разумный ИИ, ничто не мешает разработчикам выпускать не до конца разумные версии. У которых такие косяки могут цвести пышным цветом.
Существует и другой способ достичь сильного ИИ — имитационное обучение. Вы просто скармливаете нейросетям огромные датасеты с поведением живых людей. И цель обучения — копировать поведение людей. Примерно как в GAN. Тогда если будете обучать на датасете из "хороших" людей, то гарантированно получите добрый ИИ. Он в принципе не сможет уничтожить человечество, так как был обучен на хороших примерах. Такое его будет внутреннее устройство с точки зрения математики. Конечно, у него не должно быть противоречивых мотиваций и возможности себя изменять, чтобы в процессе размышлений прийти к вредным выводам). Это должна быть фиксированная система, с фиксированными весами нейросети. Просто обладающая памятью. Но с жестко прошитыми в нейронных связях "хорошими" инстинктами. Так что не все так плохо, страхи насчет злобных ИИ сильно преувеличены.
Ничего там не щелкает, это так объясняют в BAIR полученные результаты. Технически, если у вас единственная целевая функция избегать новизны, то вы можете либо переходить в ближайший state с минимальной новизной, либо своими действиями сделать так, чтобы в каком-то state уменьшилась новизна. По алгоритму для этого достаточно постоять там долгое время, чтобы набралась статистика, в которой это место будет считаться хорошо знакомым.
Они просто запустили алгоритм и заметили, что в том же тетрисе и ещё паре игр агент не просто переходит в знакомые state, а целенаправленно делает так, чтобы конкретный state стал знакомым для него в будущем (начал приносить награду в будущем). Так как конкретно это место (state) будет выгодно в отдаленной перспективе. А определяет он это по нейросети, изучивший динамику среды на много шагов вперёд.
В тетрисе таким отдаленным выгодным state будет очищать самую нижнюю строчку (см.яркость пикселей на гифка в правой части). Хотя для текущего момента времени с точки зрения постоянства выгодно поддерживать одинаковой текущую линию. Но агент держит постоянной не ее, а стремится очистить все до самой нижней линии. Из этого они сделали такие выводы. О сложном скоординированном поведении.
Вообще, я заметил что в статьях BAIR часто делают такие далеко идущие выводы по каким-то незначительным и не полностью доказанным признакам. Но учитывая, что в Reinforcenent Learning двухмерная прыгающая нога из двух суставов считается сложной задачей с высокой размерностью, то тут особо не разбежишься. Приходится работать с тем что есть. С технической стороны эти выводы верны, но отсутствие масштабируемости конечно удручает. Будем надеяться, что это вопрос времени.
И как уже верно заметили, все время стоять на одном месте, делая это место все более и более знакомым, а значит приносящим больше награды, на практике не получается. Хотя агент стремится именно к этому. Но внешняя среда, вроде разрушающегося по пятам моста (или преследующие вас хищники, см. гифку в оригинальной статье) повышают энтропию в том месте, где вы стоите. И в какой-то момент соседний state становится более привлекательным с точки зрения знакомства (уменьшения новизны, увеличения постоянства). И агент переходит в него. Ну или делает более сложные скоординированные действия, как описано выше.
Агент получает награду за то, что переходит в знакомые state (награда пропорциональна узнаваемости места). Но когда у вас большой горизонт планирования и вы понимаете динамику среды, то вы можете сознательно перейти в малознакомое место и постоять там какое-то время, пока оно не станет для вас знакомым. Это примерно как построить дом — надо приложить усилия, получить много неприятной новизны (по правилам игры агент избегает новизны). Но зато в будущем вы получите намного больше награды, так как это сделанное вашими собственными руками место со временем станет для вас знакомым и вы будете получать награду просто за нахождение в нем. В качестве доказательства они приводят пример тетриса, где у агента изначально не было предпочтений, но в итоге он сформировал на несколько ходов вперёд тактику по "постройке дома" в углу в нижней строчке (см. яркость пикселей на гифка, это куда агент стремится). Так как помещая туда фигуры, в отдаленной перспективе он получит более стабильное состояние с пустым полем. Чем просто бороться по факту с текущими падающими фигурами.
Эта способность агента самостоятельно формировать для себя места, которые в будущем станут для него знакомыми с большой наградой (хотя сейчас они для него новые и болезненные) приводит к более сложному поведению, чем просто всегда переходить в ближайший state с максимальной узнаваемостью.
Тут скорее речь о фундаментальных ограничениях. Ведь понятно, что очень сложная задача может проецироваться на очень низкую размерность. Например, задача вождения автомобиля: есть всего две размерности: газ-тормоз и руль влево-вправо. А задача сложная, сравнимая с созданием сильного ИИ.
Но дело в том, каким бы сложным ни был мир, у агента есть возможность маневра только в пространстве его размерности. У робомашины это вход с камеры и 4 действия. Если этих данных недостаточно, то тут просто ничего не поделаешь. Задача выйдет за размерность агента.
И RL алгоритмы работают напрямую с такими вещами. Компьютер же ничего не знает об устройстве мира, у него есть две числовые оси определенной длины с определенным шагом, меняющиеся с определенным временным интервалом. И несколько чисел в качестве входных данных. И нужно понять, как решать задачу, когда критерий у вас только сигнал награды — решена или нет. Прямо как у младенца.
Поэтому RL так привлекает исследователей, это создание интеллекта из первых принципов. Без имитационного копирования поведения других людей и прочих трюков, облегчающих жизнь. И поэтому там так много математики. И такое глубокое погружение в эту область знаний.
Тем не менее неокортекс, отвечающий за высшие когнитивные функции — мышление и пр., имеет примерно однородную структуру. Это означает, что он полностью обучается в процессе, а не имеет врожденных программ. У человека есть конечно косяки, доставшиеся от более древних отделов мозга. Но я к тому, что неокортекс доказывает, что разум как явление определяет обучением. Органом или механизмом, позволяющем обучаться в течении жизни. А отсюда и потребность понять, а как же происходит это обучение, приводящее к разумности? По каким алгоритмам. Это RL на сниженной за счет других отделов размерности или что-то другое?
Но это только если речь о голом RL. На практике используются гибриды. К примеру, размерность картинки с камеры с помощью обычной нейросети-автоэнкодера можно снизить до размерности 4. А уже в этой размерности обучать агента алгоритмами RL. Так уже существующими методами удается обучить ездить машинку по камере, например.
У человека тоже большая часть сенсорной информации предобрабатывается. Как пример глазной нерв, сжимающий видеопоток в 100 раз. Собственно, наше мышление это тоже пример невероятного снижения размерности. Из всего разнообразия показаний сенсоров и длительных по времени ситуаций (число комбинаций не поддается исчислению из-за комбинаторного взрыва), мы сжимаем их до типичных 20 тысяч слов, используемых человеком. И мыслим, то есть думаем, уже на уровне этих слов. В размерности всего 20 тысяч измерений.
Вот как только RL алгоритмы смогут работать с задачами размерностью 20 тысяч, то сразу естественным образом получим сильный разговорный ИИ, построенный на базе текстов. Возможно он будет не идеальный, так как всю информацию о внешнем мире мире ему придется получать из текста. Но болтать будет здорово.
В данном случае, см. графики, где как раз сравнивается поведение с двумя лучшими моделями на основе любопытства, победил ленивый. Но скорее всего это из-за подобранных окружений. В них много опасностей, поэтому ленивый (считай — избегающий любой новизны) оказался в выигрыше.
В пинг-понге размерность 1. На 4 алгоритм уже захлёбывается. На 17 (примитивная модель гуманоида с минимальным числом суставов) обучить практически невозможно. Точнее удается, но ценой невероятных ухищрений с рядом ограничений на условия задачи, и ценой облачной вычислительной мощности. У человека 700 мышц и два глаза по 100 мегапикселей каждый. А число степеней свободы, приведенное к единице времени как в Reinforcement Learning, исчисляется миллионами или миллиардами. Продолжать?
К примеру, если за единицу времени вы можете сказать одно слово, то у вас 500 тысяч степеней свободы. Если фразами, то это сразу комбинаторный взрыв.
Понятно, что необходимо уменьшать единицу времени, тогда число степеней свободы для RL алгоритма уменьшается (но растет необходимый горизонт планирования). Число мышц можно уменьшить до каких-нибудь разумных 100 штук, например. А число слов до 2-30 тысяч. И картинку на входе подавать 640х480 (все равно пропускная способность глазного нерва на 30 кадрах в секунду примерно 2 мегапикселя, так что 100 мп разрешение глаза используется только для резкости и предобработки).
И получается, что когда RL алгоритмы смогут обрабатывать задачи с текущих размерностей 1-10 до хотя бы до нескольких сотен, а лучше тысяч. То тогда будет реальный шанс увидеть сильный ИИ, построенный на этом подходе. Вопрос ли это масштабирования, вот в чем вопрос. Сейчас RL алгоритмы не масштабируются. Но все может измениться, конечно.
It's a trap
Я уже пытался: https://habr.com/ru/post/437020/
Но это такая обширная тема, что если пытаться упрощать, то получается пустая болтовня, от которой нет пользы. А если чуть углубиться, то получаются одни формулы. Которые отталкивают любого нормального человека. Дело в том, что область обучения с подкреплением зародилась очень давно, десятилетия назад, ещё до нейросетей. И многие понятия и определения чисто исторически перекочевали в наше время. И они довольно сильно отличаются от привычных понятий в нейросетях. В Reinforcement Learning для обучения нейросетей используются совсем другие формулы и методы, чем для обычных, а сами нейросети там скорее используются как простенькие аппроксиматоры. С другой стороны, существующие методы обучения с подкреплением просто не могут обучать сложные нейросети (по разным причинам). Иначе их давно бы начали использовать. И единственное что привлекает исследователей в Reinforcenent Learning, то что это настоящий интеллект, пусть и работающий пока только на задачах очень низкой размерности. Со временем либо увеличится вычислительная мощность, либо будут найдены более эффективные методы обучения. И тогда для всех настанет коммунизм.
Я тоже сначала подумал, что можно так сравнивать степень разумности. Взять какой-то набор задач и посмотреть какой процент от этих задач может выполнить животное. Если кошка выполнила 1 из 10 задач, которые сделал человек, то значит ее разумность составляет 10% от человеческой.
Но так мы упираемся в выбор задач. Нет критерия, по которому их набирать. И в предельных случаях получим явно неправильные значения. Если взять задачу по перемещению из пункта А в пункт Б. Которую человек может выполнить. То и паровоз ее тоже может выполнить. Успех в 1 из 1. Формально, на этом наборе задач паровоз 100% разумен, так как выполнил 100% человеческих задач. Но это явно не то определение разума, которое нам хотелось бы. Оно формально верное, но не решает поставленную перед ним задачу.
Они испытывали этот алгоритм на очень разных задачах с разными исходными данными. Там где простые условия, как в тетрисе, они действительно хранили все состояния от начала эпизода. И на этом датасете составляли генеративную вероятностную модель. Которая служила потом для обучения нейросети — мозгов агента. Показывая ему степень знакомости текущего места.
А где на входе сложные данные или картинки, для расчета вероятностей они использовали вариационный автоэнкодер — VAE. Это нейросеть, которая на выходе выдает вероятности. Математическое ожидание и отклонение. И вот она, хоть на своем выходе и предсказывает вероятность того, насколько текущий state знаком относительно начала текущего эпизода, на самом деле была обучена на большом количество предыдущих эпизодов.
То есть, там две нейросети — одна предсказывает вероятность что state знаком, начиная с начала эпизода (или на простых задачах, вместо нее посчитанное реальное распределение). А вторая — это уже мозги самого агента. Причем если брать мозги, которые они использовали для дискретных действий — Q-learning, то там внутри еще две нейросети, основная и догоняющая target. Да и нейросеть для непрерывных действий TRPO, тоже внутри состоит из двух нейросетей — actor и critic.
В общем, в этом Reinforcement Learning все сложно. А все потому, что обычные нейронные сети, такие как сверточные CNN для распознавания картинок, в Reinforcement Learning нифига не работают. И это прям хороший вопрос, почему. Толком на него до сих пор нет ответа.
Тогда хорошо. Потому что до меня решение дошло только когда вспомнил про траектории. И кроме перечисленного, мне еще понадобились знания как рисуется траектория, т.е. последовательно увеличивая число точек, начиная от начала траектории.
Но ведь на картинке в статье прямая отсылка к арканоиду, змейке и пониманию физики (отскакивает камней от стены). Не думаю, что без этих предварительных знаний можно решить эту задачу.
Так как нет четкого математического критерия, по которому можно отличить разумное существо от неразумного (если вам известен такой критерий, то приведите его формулу), то будем считать что разум — это что-то на уровне человека. Да, некоторые животные иногда проявляют зачатки разумности, и это хорошо — ведь мы отдаленные родственники с точки зрения эволюции.
Но за образец настоящего сильного разума и интеллекта надо брать идеализированного человека. Благородного, умного, красивого. Такого как я.
Не эпизод, а state — текущее состояние. Показания всех сенсоров агента в текущий момент. У него есть несколько вариантов действия action и для каждого варианта он оценивает, насколько знакомым окажется новый state, если он выберет это действие. И соответственно, в итоге выбирает то действие, которое по его мнению (по оценке нейросети) приведет к более знакомому состоянию. Состоянию, в котором он уже находился много раз.
Для дискретных actions (тетрис, VizDoom) они используют Q-learning, а для непрерывных (Humanoid) — TRPO.
Да, верно. Парадокс в том, что стремление избегать новизны (в этой статье) и стремление к новизне (механизм любопытства) в итоге приводят к примерно одинаковому поведению. Потому что любопытство заставляет искать новые state, но целевая функция обучения — оставаться в игре как можно дольше. А здесь избегание новизны заставляет убегать от изменений, которые по большей части представляют опасности. Что естественным образом тоже приводит к тому, что агент дольше остается живым. В итоге оба оказываются в том state, который наиболее выгоден с точки зрения продления жизни агента.
Оракул — это алгоритм, знающий правильный ответ. Часто используется в машинном обучении, чтобы сравнивать эффективность обучаемых алгоритмов. Это как бы предельный случай, лучше которого уже ничего не может быть. Как оракул реализован здесь я не обратил внимания, но скорее всего на основе истинного распределения вероятностей узнаваемости мест. Так как оно должно набраться на статистике эпизода, то не сразу падает на графике, а постепенно. P.S. я когда-то потратил кучу времени, чтобы найти oracle алгоритм, который так же фигурировал в сравнениях в одной статье. Показывал намного лучшие результаты. Я думал, это метод конкурентов ). А оказалось вот так.
Вирус это просто молекула, заключенная в белковую оболочку, да и то не всегда. Как ей может хватать на что-то ума? Просто так сложились химические реакции, что грипп легко побеждается иммунной системой. Но благодаря изменчивости, не искореняется окончательно. Другие вирусы есть смертельные. А есть и полностью исчезнувшие.
Вы наверно имеете ввиду, что эволюция справится и сохранит подобие гомеостаза. Тогда согласен, химические реакции на основе углерода и водорода (т.е. органическая химия) настолько разнообразны, что наверняка от любых болезней можно выработать механизмы защиты. В конце концов, жизнь существует уже три миллиарда лет, значит она устойчива ко всем основным угрозам со стороны химии.
Но ИИ это не молекулы и химические реакции, которые происходили эти миллиарды лет. Как и разум, это нечто новое. Мы потенциально можем создать в космосе мощный источник гамма излучения и прожарить всю планету, что не останется ни одной бактерии. А ещё проще разогнать булыжник до 20% световой, и при столкновении наша планета превратится каплю раскаленной жидкости. Ни одно живое существо не выживет. При таких размерах планеты при столкновениях, да и вообще, ведут себя как капли жидкости в невесомости (поэтому и круглые). Поэтому при достаточной энергии столкновения будет невозможно укрыться в каких-нибудь твердых кусках породы. Потому что их не будет, будет сплошная капля из магмы. Впрочем, при самом ударе на первоначально разлетающихся осколках что-то может и уцелеет. Но уверен, с этим тоже можно что-то придумать. Как раз задачка для сильного ИИ. Которого мы все сейчас дружными усилиями разрабатываем ).
Вероятность, что этот state относится к распределению ранее посещённых state. Для простых дискретных игр (тетрис и, кажется, vizdoom) они хранят все посещенные state с начала эпизода и подгоняют на этом датасете простые генеративные вероятностные модели. Для тетриса на распределении Бернулли, а для vizdoom используют нормальное распределение. Для окружений с картинками они
используют вариационный автоэнкодер VAE. В общем, оценку знакомости места в сложных играх даёт нейросеть, натренированная на всех предыдущих эпизодах.
А к этому вполне может прийти ). Дело в том, что Reinforcement Learning — это попытка создать ИИ из первых принципов. Мотивация, любопытство, награда за успешные действия. Если такой ИИ решит, что для достижения цели ему выгоднее уничтожить всех человеков, то так он и сделает. Что ему может помешать-то? Мы конечно надеемся, что все действительно разумные существа достигают примерно одинакового уровня разумности и поэтому не будут вредить друг другу. Что разум это универсальная характеристика. Но гарантии этому нет.
Кроме того, пока будет создан действительно сильный разумный ИИ, ничто не мешает разработчикам выпускать не до конца разумные версии. У которых такие косяки могут цвести пышным цветом.
Существует и другой способ достичь сильного ИИ — имитационное обучение. Вы просто скармливаете нейросетям огромные датасеты с поведением живых людей. И цель обучения — копировать поведение людей. Примерно как в GAN. Тогда если будете обучать на датасете из "хороших" людей, то гарантированно получите добрый ИИ. Он в принципе не сможет уничтожить человечество, так как был обучен на хороших примерах. Такое его будет внутреннее устройство с точки зрения математики. Конечно, у него не должно быть противоречивых мотиваций и возможности себя изменять, чтобы в процессе размышлений прийти к вредным выводам). Это должна быть фиксированная система, с фиксированными весами нейросети. Просто обладающая памятью. Но с жестко прошитыми в нейронных связях "хорошими" инстинктами. Так что не все так плохо, страхи насчет злобных ИИ сильно преувеличены.
Ничего там не щелкает, это так объясняют в BAIR полученные результаты. Технически, если у вас единственная целевая функция избегать новизны, то вы можете либо переходить в ближайший state с минимальной новизной, либо своими действиями сделать так, чтобы в каком-то state уменьшилась новизна. По алгоритму для этого достаточно постоять там долгое время, чтобы набралась статистика, в которой это место будет считаться хорошо знакомым.
Они просто запустили алгоритм и заметили, что в том же тетрисе и ещё паре игр агент не просто переходит в знакомые state, а целенаправленно делает так, чтобы конкретный state стал знакомым для него в будущем (начал приносить награду в будущем). Так как конкретно это место (state) будет выгодно в отдаленной перспективе. А определяет он это по нейросети, изучивший динамику среды на много шагов вперёд.
В тетрисе таким отдаленным выгодным state будет очищать самую нижнюю строчку (см.яркость пикселей на гифка в правой части). Хотя для текущего момента времени с точки зрения постоянства выгодно поддерживать одинаковой текущую линию. Но агент держит постоянной не ее, а стремится очистить все до самой нижней линии. Из этого они сделали такие выводы. О сложном скоординированном поведении.
Вообще, я заметил что в статьях BAIR часто делают такие далеко идущие выводы по каким-то незначительным и не полностью доказанным признакам. Но учитывая, что в Reinforcenent Learning двухмерная прыгающая нога из двух суставов считается сложной задачей с высокой размерностью, то тут особо не разбежишься. Приходится работать с тем что есть. С технической стороны эти выводы верны, но отсутствие масштабируемости конечно удручает. Будем надеяться, что это вопрос времени.
И как уже верно заметили, все время стоять на одном месте, делая это место все более и более знакомым, а значит приносящим больше награды, на практике не получается. Хотя агент стремится именно к этому. Но внешняя среда, вроде разрушающегося по пятам моста (или преследующие вас хищники, см. гифку в оригинальной статье) повышают энтропию в том месте, где вы стоите. И в какой-то момент соседний state становится более привлекательным с точки зрения знакомства (уменьшения новизны, увеличения постоянства). И агент переходит в него. Ну или делает более сложные скоординированные действия, как описано выше.
Агент получает награду за то, что переходит в знакомые state (награда пропорциональна узнаваемости места). Но когда у вас большой горизонт планирования и вы понимаете динамику среды, то вы можете сознательно перейти в малознакомое место и постоять там какое-то время, пока оно не станет для вас знакомым. Это примерно как построить дом — надо приложить усилия, получить много неприятной новизны (по правилам игры агент избегает новизны). Но зато в будущем вы получите намного больше награды, так как это сделанное вашими собственными руками место со временем станет для вас знакомым и вы будете получать награду просто за нахождение в нем. В качестве доказательства они приводят пример тетриса, где у агента изначально не было предпочтений, но в итоге он сформировал на несколько ходов вперёд тактику по "постройке дома" в углу в нижней строчке (см. яркость пикселей на гифка, это куда агент стремится). Так как помещая туда фигуры, в отдаленной перспективе он получит более стабильное состояние с пустым полем. Чем просто бороться по факту с текущими падающими фигурами.
Эта способность агента самостоятельно формировать для себя места, которые в будущем станут для него знакомыми с большой наградой (хотя сейчас они для него новые и болезненные) приводит к более сложному поведению, чем просто всегда переходить в ближайший state с максимальной узнаваемостью.