OPTOZORAX_DEV Telegram 706
Про симуляцию эволюции - я думал что это приключение на 20 минут, что самым сложным была физика, но оказалось нет. Я написал модуль для нейросети, сделал эволюцию, запускаю её и... Нифига, оно не обучается. Дай бог делает один поворот и всё.

В прошлом посте можно видеть что были зелёные круги - они означают награду, при их пересечении даётся +1. И вот с помощью эволюции пытался максимизировать это число. Была идея что оно само сможет, лёгкая же задача.

Поэтому начал с того чтобы сделать эту награду более гладкой: добавил расстояние до следующей награды, и замеряю его. Не помогло.

Сделал чтобы машинка всегда стартовала с некоторым небольшим случайным смещением и направлением, чтобы сделать итог более гладким. Сделал чтобы таких запусков было несклько в одной оценке нейронки. Не помогло.

Сделал визуальный редактор трасс - первая анимация. На нём сделал кучу трасс с гладкими поворотами, резкими поворотами, движением по прямой, несколько поворотов, и ещё отразил всё зеркально. Не помогло.

Поменял алгоритм оптимизации на очень крутой CMA-ES, оставлял долго работать. Не помогло.

Менял туда-сюда десяток параметров награды, размеров сети, управления. Не помогло.

Даже функцию активации поменял! Не помогло.

И ведь если погуглить как люди обучают машинки ездить, то всё у них так просто получается, они берут и ездят сразу. Почему он, а не я! Что я делаю не так? Не может быть же так что я настолько туп, что у меня ничего не получается. Начал подсматривать, у них вообще за десяток поколений всё сходилось.

И только в этот момент до меня дошло, что я всё делал правильно, за исключением, что моя задача слишком сложна. Нейронка не может из неё научиться по такому малому числу трасс и вообще. Ну разве, если что сделать 100500 очень разнообразных трасс. Или сделать чтобы нейронка сначала научилась не проходить трассы, а управлять своим телом, хммм. И тут вспоминается данное видео про двойной маятник, там у автора тоже обучение никак не шло, и он решил усложнять задачу постепенно.

Я подумал что последнее что я не твикал - это сложность управления. Ведь у меня такая сложная физика, дрифты там, повороты, инерция (!). Может быть нейронка просто никак не может выучить как этим пользоваться? Минимизировал физику до абсурда: просто дал нейронке возможность разворачивать угол и двигаться вперёд. Никакой инерции и колёс.

И о чудо, обучение пошло!!!! На второй картинке можно видеть дебажный вывод который я использовал, чтобы понять сколько трасс пройдено. И она прошла ВСЕ! Посмотрите как эта она ездит по трассе. Не знаю почему, но напоминает мышку (крадёться). Два дня писал код по 14 часов и НАКОНЕЦ-ТО, ОНО РАБОТАЕТ!!!

Теперь я знаю что надо делать - надо постепенно увеличивать сложность. Сделаю чтобы в физике были отключаемые элементы, и потихоньку, через параметры буду их включать.

#машинки



tgoop.com/optozorax_dev/706
Create:
Last Update:

Про симуляцию эволюции - я думал что это приключение на 20 минут, что самым сложным была физика, но оказалось нет. Я написал модуль для нейросети, сделал эволюцию, запускаю её и... Нифига, оно не обучается. Дай бог делает один поворот и всё.

В прошлом посте можно видеть что были зелёные круги - они означают награду, при их пересечении даётся +1. И вот с помощью эволюции пытался максимизировать это число. Была идея что оно само сможет, лёгкая же задача.

Поэтому начал с того чтобы сделать эту награду более гладкой: добавил расстояние до следующей награды, и замеряю его. Не помогло.

Сделал чтобы машинка всегда стартовала с некоторым небольшим случайным смещением и направлением, чтобы сделать итог более гладким. Сделал чтобы таких запусков было несклько в одной оценке нейронки. Не помогло.

Сделал визуальный редактор трасс - первая анимация. На нём сделал кучу трасс с гладкими поворотами, резкими поворотами, движением по прямой, несколько поворотов, и ещё отразил всё зеркально. Не помогло.

Поменял алгоритм оптимизации на очень крутой CMA-ES, оставлял долго работать. Не помогло.

Менял туда-сюда десяток параметров награды, размеров сети, управления. Не помогло.

Даже функцию активации поменял! Не помогло.

И ведь если погуглить как люди обучают машинки ездить, то всё у них так просто получается, они берут и ездят сразу. Почему он, а не я! Что я делаю не так? Не может быть же так что я настолько туп, что у меня ничего не получается. Начал подсматривать, у них вообще за десяток поколений всё сходилось.

И только в этот момент до меня дошло, что я всё делал правильно, за исключением, что моя задача слишком сложна. Нейронка не может из неё научиться по такому малому числу трасс и вообще. Ну разве, если что сделать 100500 очень разнообразных трасс. Или сделать чтобы нейронка сначала научилась не проходить трассы, а управлять своим телом, хммм. И тут вспоминается данное видео про двойной маятник, там у автора тоже обучение никак не шло, и он решил усложнять задачу постепенно.

Я подумал что последнее что я не твикал - это сложность управления. Ведь у меня такая сложная физика, дрифты там, повороты, инерция (!). Может быть нейронка просто никак не может выучить как этим пользоваться? Минимизировал физику до абсурда: просто дал нейронке возможность разворачивать угол и двигаться вперёд. Никакой инерции и колёс.

И о чудо, обучение пошло!!!! На второй картинке можно видеть дебажный вывод который я использовал, чтобы понять сколько трасс пройдено. И она прошла ВСЕ! Посмотрите как эта она ездит по трассе. Не знаю почему, но напоминает мышку (крадёться). Два дня писал код по 14 часов и НАКОНЕЦ-ТО, ОНО РАБОТАЕТ!!!

Теперь я знаю что надо делать - надо постепенно увеличивать сложность. Сделаю чтобы в физике были отключаемые элементы, и потихоньку, через параметры буду их включать.

#машинки

BY dev optozorax




Share with your friend now:
tgoop.com/optozorax_dev/706

View MORE
Open in Telegram


Telegram News

Date: |

Earlier, crypto enthusiasts had created a self-described “meme app” dubbed “gm” app wherein users would greet each other with “gm” or “good morning” messages. However, in September 2021, the gm app was down after a hacker reportedly gained access to the user data. It’s yet another bloodbath on Satoshi Street. As of press time, Bitcoin (BTC) and the broader cryptocurrency market have corrected another 10 percent amid a massive sell-off. Ethereum (EHT) is down a staggering 15 percent moving close to $1,000, down more than 42 percent on the weekly chart. The optimal dimension of the avatar on Telegram is 512px by 512px, and it’s recommended to use PNG format to deliver an unpixelated avatar. How to Create a Private or Public Channel on Telegram? 3How to create a Telegram channel?
from us


Telegram dev optozorax
FROM American