0

Привет, я играю с нейронными сетями прямо сейчас. Я сделал повторную реализацию этого урока: http://www.ai-junkie.com/ann/evolved/nnt5.html, но с рыбами и едой, а также с другим языком программирования. Но точка такая же.
Сети нейронов Backpropagation

У меня есть куча рыб (20) и куча фосов (40). У каждой рыбы есть мозг (нейронная сеть (с тех пор я буду использовать ANN)). В настоящее время нейронная сеть не использует backprop и обучается генетическим alghoritm. Он работает нормально. Я хочу реализовать обучение, используя backpropagation, и сравните эти два подхода. Проблема заключается только в обратном распространении alghoritm. Я прочитал некоторые статьи об этом, но я вроде как не понял, как это можно использовать в этом примере. Я, наверное, просто не понимаю этого достаточно.
Я объясню проблему:
Теперь у меня есть нейронная сеть с 4 входами. LookAt vector lookAt (x, y), вектор для ближайшего ближайшего продовольствияFood (x, y) => значения этих векторов являются входами в ANN. Выходной сигнал nn - это скорость слева правого флиппера рыбы => ANN имеет 2 выхода leftFliperSpeed, rightFlipperSpeed.
Итак, подведем итоги. У меня апп как это:
входы: 4 (lookAt.X, lookAt.Y, closestFood.X, closestFood.Y)
слоев: 3 (вход, выход и один скрытый с 6 нейронов)
выходов: 2 (leftFlipperSpeed, rightFlipperSpeed)


Я использую это так:
1. генетической alghoritm я получаю первую популяцию рыб (чтение я доберусь весов для входов ИНС).
2. Запустите для некоторого количества итераций симуляцию и пусть рыбы едят рыб, находят и едят пищу. Я рыба нашла пищу, ее фитнес-функция была увеличена, а пища переместилась где-то в другом месте. У меня постоянно есть количество рыб и продуктов питания.
3. После, например, 2000 итераций я снова запускаю генетический алгоритм и получаю от фактического населения новое население - у рыб с более высокой пригодностью есть более высокий шанс выжить или быть папой или мамой новых рыб. Я получаю новые веса для Neural Newtork. И продолжить с пункта 2.

Процесс обучения здесь прост и понятен. И его обучение без руководителя.

Теперь backpropagation. Из статей я читал, что backpropagation контролируется обучением. Проблема заключается в тренировочном наборе. С генетикой alghs я не нуждался в этом здесь, да.
Что я могу сделать для реализации backpropagation.
Любые подсказки, как я могу получить новые веса от него и как заменить супервизора? Я думаю, что backpropagation не может быть сделано без руководителя. Его можно каким-то образом использовать данные, которые я получаю от изучения генетическим alghoritm, но его будет зависеть от количества входов, размера пула с пищей, где будут рыбы, и т.д.

ответ

1

Backpropagation - это всего лишь метод вычисления градиентов, ничего больше. Это не действительно контролируемый метод обучения, а только возможность эффективно вычислять градиенты некоторой предопределенной функции потерь (которая часто в примерах онлайн будет контролироваться потерей).

Для описания проблемы наиболее разумной техникой является фактически Укрепление обучения.Там вы сможете вернуться через свои сети и хорошо изучить структуру кормления (в отличие от генетического алгоритма, который не справится с более сложной проблемой). Возможно, вы захотите взглянуть на такие объекты, как Deep Q-learning (что эффективно является простой методикой RL, где ваша политика контролируется нейронной сетью, и это именно то, что вы пытаетесь достичь - у вас есть политика на основе нейронной сети , который выбирает действия, хотя в вашем случае это непрерывное выходное пространство, поэтому вам может потребоваться дискретировать его для этого конкретного случая использования).

Смежные вопросы