Pull to refresh

Comments 13

А колючки они никак не воспринимают и не видят?
Ответил на этот вопрос ниже по тексту. Но коротко: не видят, хотя могут воспринимать ) Даже кусок кода остался закомментированный.
1. Для какой конференции готовили видео?
2. По видео тоже показалось, что почему-то бот с НС не избегает вирусов(колючек).
3. В НС я профан, но интересно, зачем делать для поворота два выхода, отдельно направо и отдельно налево и аналогично для скорости. ведь можно сделать один, который может принимать в том числе отрицательные значения.
4. Получается не использовали в боте такие приемы как Eject и Split?
Отвечаю по порядку вопросов:
1. DIYorDIE Meetup
2. Бот действительно не избегает «вирусов», практика соревнования показала что «наезд» на вирус скорее помогает боту. При росте массы бота падает его скорость, соответственно боты состоящие из нескольких частей быстрее движутся и их «активная» площадь (площадь позволяющая собирать еду) получается эффективней одного большого, но медленного круга.
3. Этот вопрос скорее отсылка ко второй части статьи, но если коротко, то многое здесь результат экспериментов, пробовал разные варианты, в том числе и с отрицательными значениями. Частично это зависит от функции активации нейронов.
4. Сейчас не использую Eject и Split, но идея их использовать есть, в данном проекте надо переписать серверную часть, но это опять ко второй статье. Основная мысль в том, что когда бот делится, возникает вопрос кто кем будет управлять, так как команда отдается всем частям одна. Один бот=одна нейронка уже не работает принцип. Эту проблему решил не лучшим образом, есть куда двигаться в этом вопросе, это уже скорее всего область группового принятия решения, у меня там лидер без демократии.
Участвовал в данном соревновании) мой метод походил на тот что описан выше, реализовывал — с и без нейронной сети.
Интересно будет читать дальше)
Спасибо, надеюсь и сам, что дальше будет интереснее.
Иллюстрации огонь :) Как делали?

По теме статьи: ничего не понятно. Ну то есть вопросов больше чем ответов. Переводить из полярных координат в декартовы и так все умеют. А вот что там с нейронкой? Правильно ли я понял (точнее, предположил, т.к. из статьи не очень понятно), что нейронка имеет на входе только данные с сенсоров на текущем тике, и больше ничего? То есть нет памяти (те же данные, но на прошлом тике, на позапрошлом, и т.д.) и нет обратной связи (т.е. выходные сигналы нейронки с прошлого тика, с позапрошлого, ...)? Если так, то в чём преимущество подхода? Ведь это получается ничем не лучше примитивных рефлексов, реализованных с помощью цепочки if-ов. А если есть, то распишите про это подробнее, пожалуйста.
Про картинки, это Keynote под планшетом с пером. Выбрал его, так как нужно было делать слайды для выступления. А так рисовать со школы люблю.
Из полярных в декартовы переводить на память я не умел, хотя вроде образование позволяло. Поэтому и упомянул.
Нейронка, это вторая часть статьи надеюсь скоро будет. Да, данные только с сенсоров на текущем тике, опять же пробовал много всего, доп входы на параметры бота, параметры среды и тд. Обратная связь есть, так как в названии звучит слово рекуррентная нейросеть. Постараюсь там сравнить как раз в другими подходами к управлению ботом, если это интересно. Хотя это наверное третья часть статьи, в видео на этом останавливался подробнее.
Да, очень интересно. Спасибо за статью, и вообще за то, что пошли не проторенной дорожкой на чемпионате! :) Очень хочется услышать про рекуррентный момент и вообще про то, какие подходы пробовали (доп входы на параметры бота/среды — вот это вот всё). А память не пробовали? Т.е. подавать на вход дополнительно те же данные сенсоров, но с предыдущих тиков? Мне как дилетанту в нейронках это видится как ключевой момент, который позволит боту дифференцировать под капотом, а без этого — в чём преимущество перед пачкой if-ов? Про обратную связь услышал, но не хватает деталей :)
По-моему, нейросеть должна решать более высокоуровневые задачи, чем вычисление направления движения.
Например, на входе — количество видимых противников и их масса, время до конца раунда, количество собственных частей и их масса, плотность/количество еды, общий радиус обзора, а на выходе — веса в оценочной функции, которая решит, убегать, есть или атаковать. А физический движок уже посчитает в какую сторону убегать.

Все зависит от задачи, в природы нейросеть решат всю совокупность задач, но там и границы широки: от простейших организмов с нейросетью до суперкомпьютеров )
Надо вспомнить про граничные условия соревнований в части ресурсов: одно процессорное ядро и памяти 200 мб и ограничение времени на Тик.
Тема обучения встает еще, но это следующая статья. А так конечно здорово бы было, загрузил в нейросеть все параметры, а она тебе «отойди от компьютера и не мешайся»
Нейросети не имеют никакого отношения к природе, чисто маркетинговое название.

Я не так давно научил нейронку играть в змейку с помощью генетического алгоритма… Думаю здесь тоже можно было бы применить этот метод обучения. На самом деле действительно здесь необходимо учитывать кучу факторов, такие как размер противников, свой размер, так как от него зависит наша скорость + при виде неизбежной опасности она должна уметь разделяться… Вообщем пока довольно посредственно и больше похоже на рандом

Sign up to leave a comment.

Articles