Обучение нейронной сети с помощью обучения усилению
Я знаю основы фидерных нейронных сетей и как их обучать с использованием алгоритма backpropagation, но я ищу алгоритм, который я могу использовать для обучения онлайн-ANN с помощью обучения подкрепления.
Например, проблема поворота корзины - это то, что я хотел бы решить с помощью ANN. В этом случае я не знаю, что нужно сделать для управления маятником, я знаю только, насколько я близок к идеальной позиции. Мне нужно, чтобы ANN учился на основе вознаграждения и наказания. Таким образом, контролируемое обучение не является вариантом.
Другая ситуация - это что-то вроде = snake game, где отклики откладываются и ограничиваются целями, а не целями, а не наградами.
Я могу думать о некоторых алгоритмах для первой ситуации, таких как скалолазание или генетические алгоритмы, но я предполагаю, что они оба будут медленными. Они также могут быть применимы во втором сценарии, но невероятно медленны и не способствуют онлайн-обучению.
Мой вопрос прост: Есть ли простой алгоритм для обучения искусственной нейронной сети с обучением по усилению?. Меня в основном интересуют ситуации с вознаграждением в режиме реального времени, но если алгоритм для целевых ситуации доступны, даже лучше.
Ответы
Ответ 1
Есть несколько исследовательских работ по теме:
И некоторый код:
Это лишь некоторые из лучших результатов поиска Google по этой теме. Первые две статьи выглядят так, как будто они неплохие, хотя я не читал их лично. Я думаю, вы найдете еще больше информации о нейронных сетях с обучением по усилению, если вы быстро просмотрите Google Scholar.
Ответ 2
Если результат, который приводит к награде r
, возвращается в сеть r
раз, вы будете укреплять сеть пропорционально вознаграждению. Это не относится непосредственно к негативным вознаграждениям, но я могу представить два решения, которые будут создавать разные эффекты:
1) Если у вас есть набор вознаграждений в диапазоне rmin-rmax, перетащите их на 0-(rmax-rmin)
, чтобы они были неотрицательными. Чем больше вознаграждение, тем сильнее создается подкрепление.
2) Для отрицательного вознаграждения -r
, backpropagate случайный выход r
раз, если он отличается от того, который приводит к отрицательной награде. Это не только усилит желаемые выходы, но также рассеивает или предотвращает плохие результаты.