Как стать автором
Обновить

Комментарии 5

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

Данный тип задач идеально подходит для алгоритмов RL, могу посоветовать этот курс, в нём есть ответы на все ваши вопросы и даже больше.

Как было упомянуто в статье, вы используете свой метод обучения — ручной, вы показываете нейронной сети как правильно, но несмотря на то, что примеры представленные человеком очень эффективны, их количество очень мало и сильно на поведении нейронной сети не отражается. С этим можно справиться путём аугментации данных, она добавит тренировочных семплов и сделает их более разнообразными (за счёт, например, гаусового шума). В данном случае — шум можно интерпретировать как любопытность модели, чем он больше, тем модель совершает больше ошибок, но в то же время, учится быстрее.

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

Касательно того как выходить из аварийных ситуаций — здесь всё сложнее, у данной модели нету памяти. Пример: машина в метре от стены, она по какой-то причине едет вперёд, останавливается вплотную к стене чтобы не врезаться, отъезжает назад и снова попадает в ситуацию, что и в начале этого предложения, т.е. в данном случае она попросту будет совершаться возвратно-поступательные движения, т.к. у неё нет памяти, она не помнит, что она пыталась избежать столкновения.
Решить эту проблему можно добавлением в модель «глобального» состояния, чтобы она понимала что в принципе она делает. На каждом шаге это состояние должно предсказываться для следующего хода и подаваться на следующей итерации к нему на вход.
Но чтобы обучить такую модель, всё же, понадобится огромное количество примеров, при этом, модель должна иметь большую любопытность, чтобы быстро придумать способ обхода. Для более быстрого обучения желательно построить микрополигон, где обучение будет проходить конкретно на таких ситуациях.

В целом, я здесь описал стандартные подходы решения таких задач в RL, очень рекомендую на него посмотреть.
большое спасибо! как раз хотел следующим шагом смотреть на RL
У меня есть идея — запрограммировать 2d танчики, чтобы они еще друг в друга стреляли. Генетическим алгоритмом искать конфигурацию танка — где располагать мотор, где броню, где башню. А через policy gradient обучать их на поле боя.

Но ведь машина едет по встречке

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории