This media is not supported in your browser
VIEW IN TELEGRAM
Должен был переключаться между обычным бегом и чем-то вроде этого. Но опять выучивает среднюю стратегию, игнорируя мои управляющие сигналы.
This media is not supported in your browser
VIEW IN TELEGRAM
Можно поставить Мужика из MuJoCo на колени, но не заставить выполнять чужие приказы!
🔥4
This media is not supported in your browser
VIEW IN TELEGRAM
После всех моих ухищрений он стал лучше бегать, но так и не стал отзываться на мои сигналы. В голову начинает навязчиво лезть мем "а ты знаешь, что такое безумие?"
❤🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
Все-таки это черная магия. Я вот не могу заранее предсказать, чему научится мужик из MuJoCo при заданных параметрах алгоритма. А уж если код меняешь, то и вовсе.
This media is not supported in your browser
VIEW IN TELEGRAM
Я вот переписал пайплайн немного - суть осталась та же, но распараллелил слегка по-другому. И они теперь стали на редкость изобретательны, хоть сейчас в Министерство Тупых Походок.
This media is not supported in your browser
VIEW IN TELEGRAM
Это вот все при одной и той же архитектуре сетей, при одной и той же фиксированной функции наград. Просто несколько изменился порядок накопления эпизодов обучения в буфере.
https://www.youtube.com/shorts/d2-UFzujQnA
Попытался его двум стратегиям сразу научить. Кажется, ему не очень.
Попытался его двум стратегиям сразу научить. Кажется, ему не очень.
YouTube
The MuJoCo Men - Too much pressure on my neural network!
I think training process collapsed when I tried to teach him two policies at once. Poor guy.Internal state is shown in the bottom part of video.run: usual-da...
Нуу... В целом я не могу сказать, что он "не научился". Свою технику он определенно улучшил.
Странно, что ему это делать проще, чем просто идти или бежать.
https://youtube.com/shorts/HmKsQYN84-w?si=FdGCHyJ6vC98l0N2
Странно, что ему это делать проще, чем просто идти или бежать.
https://youtube.com/shorts/HmKsQYN84-w?si=FdGCHyJ6vC98l0N2
Вообще, я переписал пайплайн, чтобы можно было в обучение примешивать примеры от разных агентов.
И сейчас смотрю, что будет, если обучать с примерами от этих трех мужиков из MuJoCo:
И сейчас смотрю, что будет, если обучать с примерами от этих трех мужиков из MuJoCo:
This media is not supported in your browser
VIEW IN TELEGRAM
dauntless-dragon-312
This media is not supported in your browser
VIEW IN TELEGRAM
logical-frost-200
This media is not supported in your browser
VIEW IN TELEGRAM
glorious-dawn-308
Это три великих мастера, у которых учится юный падаван.
Weights & Biases им еще и рандомные имена генерит, чтобы проще было искать.
Weights & Biases им еще и рандомные имена генерит, чтобы проще было искать.
Интересно, на кого из этих троих будет больше похож обучающийся сейчас агент?
Anonymous Poll
6%
dauntless-dragon-312
13%
logical-frost-200
6%
glorious-dawn-308
63%
Падаван превзойдет мастеров и будет отличаться от всех троих.
13%
Обучение схлопнется (агент будет валяться в позе эмбриона и дергаться)
👍1
This media is not supported in your browser
VIEW IN TELEGRAM
А вот и правильный ответ.
Этот товарищ, wobbly-firefly-334, определенно превзошел своих учителей и стал лучшим бегуном из всех, что у меня получались. Хотя, надо сказать, немного похожим на logical-frost-200
Этот товарищ, wobbly-firefly-334, определенно превзошел своих учителей и стал лучшим бегуном из всех, что у меня получались. Хотя, надо сказать, немного похожим на logical-frost-200
❤🔥4
This media is not supported in your browser
VIEW IN TELEGRAM
Я пробовал заставить его продолжить с чьего-нибудь чужого стейта, например с низко прыгающего dauntless-dragon-312. Но он не шмог. Хотя и попытался.
На 5й секунде видно, как меняется его внутренний стейт - это я загрузил сознание этого бегуна в тело, оставшееся от dauntless-dragon-312.
На 5й секунде видно, как меняется его внутренний стейт - это я загрузил сознание этого бегуна в тело, оставшееся от dauntless-dragon-312.
🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
Я вам больше скажу. После того, как я дописал пайплайн, чтобы можно было примешивать данные от референсных агентов к обучаемому, я их комбинировал в разных сочетаниях, крутил параметры, и в итоге обучил Мужика из МуЖоКо реагировать на мои сигналы. По-честному, без замены его сознания на ходу.
Вот, смотрите. Изначально у него отрицательная награда (штраф) за высоту его центра масс, поэтому ему выгодно держаться поближе к земле. На 05-00 я меняю сигнал на положительный - и он распрямляется!
Вот, смотрите. Изначально у него отрицательная награда (штраф) за высоту его центра масс, поэтому ему выгодно держаться поближе к земле. На 05-00 я меняю сигнал на положительный - и он распрямляется!
👍3❤🔥2
После того, как Мужик из MuJoCo начал реагировать на мои сигналы, пришло время подумать о том, что с ним делать дальше.
Дело вот в чем: динамическая функция наград - штука сложная для выучивания, он в облаке учился несколько часов. Дальше, по идее, нужно делать среду, где их двое, чтобы они могли драться друг с другом. Но это многократно усложнит среду - нет, не в два раза, хотя вместо одного мужика там будет два, а намного сильнее. Помимо этого удвоения вычислений к сожалению еще придется включить расчет коллизий всего со всем. Пока мужик один, достаточно считать коллизии его "стоп" с полом. Ну, можно еще голени с полом, чтоб он не проваливался, если вдруг упадет на колени. Но в драке-то ему как-то надо попадать по противнику!
В общем, по моим прикидкам, придется не просто учить в облаке, а арендовать систему посерьезнее, минимум с парой видюх, на одной крутить симуляции, на другой обучение. Это требует уже совсем других ресурсов, так что пока я взял паузу, остановившись на этом майл-стоуне - работающем пайплайне с динамической функцией наград.
Сейчас я немного залип на эксперименты с уже обученной в облаке сеткой.
Алгоритм обучения, Soft Actor-Critic, порождает две сетки - сетку-агента, эктора, который получает на вход состояние среды и выдает вектор действий, и сетку-критика, которая получает на вход состояние среды и действие, и выдает свою оценку ожидаемой награды. Не только за это действие, заметьте, а суммарной ожидаемой награды с учетом discount-фактора (это довольно тонкий момент, я думаю написать статью-другую на Хабр по текущим результатам, где разберу этот вопрос подробнее).
И вот обученная в облаке сетка-критик прямо волшебная. Используя ее, получилось на хилом домашнем компьютере не только нового эктора обучить (это вообще влёт делается, за 25 минут!), но даже новую сетку-критика! Правда, критик учился 10 часов и не стал лучше своего учителя, но все же, разница между обучением с нуля и обучением с обученным в облаке критиком - разительная. С нуля выходят зомби, которые выучиваются не падать, но особо вперед не идут.
Дело вот в чем: динамическая функция наград - штука сложная для выучивания, он в облаке учился несколько часов. Дальше, по идее, нужно делать среду, где их двое, чтобы они могли драться друг с другом. Но это многократно усложнит среду - нет, не в два раза, хотя вместо одного мужика там будет два, а намного сильнее. Помимо этого удвоения вычислений к сожалению еще придется включить расчет коллизий всего со всем. Пока мужик один, достаточно считать коллизии его "стоп" с полом. Ну, можно еще голени с полом, чтоб он не проваливался, если вдруг упадет на колени. Но в драке-то ему как-то надо попадать по противнику!
В общем, по моим прикидкам, придется не просто учить в облаке, а арендовать систему посерьезнее, минимум с парой видюх, на одной крутить симуляции, на другой обучение. Это требует уже совсем других ресурсов, так что пока я взял паузу, остановившись на этом майл-стоуне - работающем пайплайне с динамической функцией наград.
Сейчас я немного залип на эксперименты с уже обученной в облаке сеткой.
Алгоритм обучения, Soft Actor-Critic, порождает две сетки - сетку-агента, эктора, который получает на вход состояние среды и выдает вектор действий, и сетку-критика, которая получает на вход состояние среды и действие, и выдает свою оценку ожидаемой награды. Не только за это действие, заметьте, а суммарной ожидаемой награды с учетом discount-фактора (это довольно тонкий момент, я думаю написать статью-другую на Хабр по текущим результатам, где разберу этот вопрос подробнее).
И вот обученная в облаке сетка-критик прямо волшебная. Используя ее, получилось на хилом домашнем компьютере не только нового эктора обучить (это вообще влёт делается, за 25 минут!), но даже новую сетку-критика! Правда, критик учился 10 часов и не стал лучше своего учителя, но все же, разница между обучением с нуля и обучением с обученным в облаке критиком - разительная. С нуля выходят зомби, которые выучиваются не падать, но особо вперед не идут.
👍3
Теперь мне вот интересно, насколько хороших эктора и критика можно получить на домашнем компьютере таким образом. Кроме того, такой подход позволяет мне допиливать пайплайн, используя уже обученную в облаке сетку, чтобы проверять, насколько эффективно пайплайн из нее "дистиллирует" информацию в необученные.
Вообще, в расчете участвуют не две сетки, а целых пять - эктор, два критика (для стабильности, так алгоритм устроен), при помощи которых его учат и еще два критика, при помощи которых учат первых двух. Это теперь такой веселый паззл - есть N обученных сеток, по 5 из которых можно в разных сочетаниях использовать в системе, чтобы породить новые. Вот сидишь и ворочаешь их, раз в десять часов проверяя, стало лучше или нет.
Вот те графики, которые топчутся в единице и не набирают больше наград, чем просто за "не умер еще один ход" - это обучающиеся на моем локальном компьютере с нуля. Остальные - это я потихоньку фиксил пайплайн и все более эффективно вытягивал информацию из обученного в облаке критика.
Вообще, в расчете участвуют не две сетки, а целых пять - эктор, два критика (для стабильности, так алгоритм устроен), при помощи которых его учат и еще два критика, при помощи которых учат первых двух. Это теперь такой веселый паззл - есть N обученных сеток, по 5 из которых можно в разных сочетаниях использовать в системе, чтобы породить новые. Вот сидишь и ворочаешь их, раз в десять часов проверяя, стало лучше или нет.
Вот те графики, которые топчутся в единице и не набирают больше наград, чем просто за "не умер еще один ход" - это обучающиеся на моем локальном компьютере с нуля. Остальные - это я потихоньку фиксил пайплайн и все более эффективно вытягивал информацию из обученного в облаке критика.
👍2