Warning: mkdir(): No space left on device in /var/www/tgoop/post.php on line 37

Warning: file_put_contents(aCache/aDaily/post/optozorax_dev/-705-706-707-): Failed to open stream: No such file or directory in /var/www/tgoop/post.php on line 50
dev optozorax@optozorax_dev P.705
OPTOZORAX_DEV Telegram 705
Про симуляцию эволюции - я думал что это приключение на 20 минут, что самым сложным была физика, но оказалось нет. Я написал модуль для нейросети, сделал эволюцию, запускаю её и... Нифига, оно не обучается. Дай бог делает один поворот и всё.

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

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

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

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

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

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

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

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

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

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

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

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

#машинки



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

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

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

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

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

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

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

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

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

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

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

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

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

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

#машинки

BY dev optozorax




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

View MORE
Open in Telegram


Telegram News

Date: |

Those being doxxed include outgoing Chief Executive Carrie Lam Cheng Yuet-ngor, Chung and police assistant commissioner Joe Chan Tung, who heads police's cyber security and technology crime bureau. While the character limit is 255, try to fit into 200 characters. This way, users will be able to take in your text fast and efficiently. Reveal the essence of your channel and provide contact information. For example, you can add a bot name, link to your pricing plans, etc. Unlimited number of subscribers per channel Joined by Telegram's representative in Brazil, Alan Campos, Perekopsky noted the platform was unable to cater to some of the TSE requests due to the company's operational setup. But Perekopsky added that these requests could be studied for future implementation. How to Create a Private or Public Channel on Telegram?
from us


Telegram dev optozorax
FROM American