Комментарии 8
Not bad :)
Как я понимаю, последний нейрон нужен для нормировки выходного сигнала из каждого нейрона, потому как в сети «сколько вошло, столько вышло», а при адаптации требуется, чтобы вышло больше или меньше, и в последний нейрон просто сливается избыток сигнала.

PS: метки разделяются запятыми, у вас две в одну слились в результате.
Not bad, безусловно лучше чем Not good, спасибо.
Если ответ про задачку о лишнем нейроне, то неверная интерпретация.
С форматированием текста пока тяжело получается, здесь Вы правы.

Интересно, а как вы отбирали лучшие варианты весов (лучшие геномы)?
Только по результатам целой игры (выиграл/проиграл)?

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

Если в логах есть запись действия лидера с хорошей тактикой, то наврено там планировалось использовать его для обучения методом backpropagation. Т.е. сравнивать действия сети и дейтсвие игрока и вовремя бить сеть по рукам если она делает что-то отличное. Но это мнение дилетанта.

cudaRNN — так понял просто просчитывает сеть, для входных значений и выдает некий результат. В CUDA тоже дилетант: поэтому вопрос зачем пришлось с ней так заморачиваться? чем это лучше реализации на С/С++. Если это делалось для симуляции игр, то вам получаетя требуется и саму игру тащить в GPU.
По поводу пересказа наверное верное слово, хотелось выбрать нестандартный стиль общения, не более того. Но местами путался сам: где автор, а где от первого лица. Одним словом Мы, я и читатель)
На третий пункт проще ответить, третья часть статьи как раз об этом. Как все пришлось переносить на GPU, нейросеть, генетический алгоритм и конечно сам алгоритм игрового процесса. Но начинал честно с c# потом с++ и CUDA, просто в c# к ней прямого доступа нет. Есть сторонние библиотеки но проще уж перейти на с++, хотя до этого ни Куду, ни плюсы не использовал.
Второй пункт, здесь поле для полемики, проще ответить: лучше один раз увидеть ) Но думаю, что в любом случае не так прямолинейно скармливать и потом корректировать. А может так и надо делать. Вопросы: корректировать каждый Тик когда сеть ошиблась? Что будет примерами для обучения, одно движение или траектория? Если кто знает как это устроить, готов услышать.

Как-то обдумывал похожую задачу (в другом конкурсе). У меня была идея обучать отдельным операциям (возможно это несколько сетей, которые потом объединяются). Например, в вашем случае можно отдельно натренировать: уходить от больших; есть маленьких или еду; уходить от вирусов (или наоборот не уходить) и т.д. Не думали над таким вариантом?… конечно, нужна какая-то эмуляция игрового мира, чтобы не тренировать на самой игре.

Для отдельных операций на отдельных сетях нужен будет арбитраж, например рядом еда, бот который еда, стенка и два больших бота. Здесь более менее понятно, что нужна одна нейронка. Хуже дело обстоит если бот делится, непонятно становится кем нейронка управляет? там тоже арбитраж нужен в части принятия решения.
А про эмуляцию мира и другие моменты как раз третья статья.
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.