Привет, я играю с нейронными сетями прямо сейчас. Я сделал повторную реализацию этого урока: 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, но его будет зависеть от количества входов, размера пула с пищей, где будут рыбы, и т.д.