55

Я знаю основы нейронных сетей с прямой связью и как их обучать с использованием алгоритма backpropagation, но я ищу алгоритм, который я могу использовать для обучения ANN онлайн с обучением по усилению.Обучение нейронной сети с помощью обучения усилению

Например, проблема cart pole swing up является проблемой, которую я хотел бы решить с помощью ANN. В этом случае я не знаю, что нужно сделать для управления маятником, я знаю только, насколько я близок к идеальной позиции. Мне нужно, чтобы ANN учился на основе вознаграждения и наказания. Таким образом, контролируемое обучение не является вариантом.

Другая ситуация - это как-то вроде snake game, где обратная связь задерживается и ограничивается целями и анти-целями, а не вознаграждением.

Я могу придумать некоторые алгоритмы для первой ситуации, такие как скалолазание или генетические алгоритмы, но я предполагаю, что они оба будут медленными. Они также могут быть применимы во втором сценарии, но невероятно медленны и не способствуют онлайн-обучению.

Мой вопрос прост: Есть ли простой алгоритм для обучения искусственной нейронной сети с обучением по усилению? Меня в основном интересуют ситуации с вознаграждением в режиме реального времени, но если доступен алгоритм для целенаправленных ситуаций, еще лучше.

+1

Хороший вопрос, и я думаю почти точно то же самое, где в моем случае нейронная сеть повторяется. Одним из ключевых моментов является то, что вы говорите о двух разных алгоритмах обучения. Вы не можете применять два разных алгоритма обучения к одной и той же проблеме, не вызывая конфликтов, если у вас нет способа их устранения. –

ответ

24

Есть несколько научно-исследовательских работ по теме:

И некоторый код:

  • Code examples для обучения усилению нейронной сети.

Это только некоторые из лучших результатов поиска google по этой теме. Первые две статьи выглядят так, как будто они неплохие, хотя я не читал их лично. Я думаю, вы найдете еще больше информации о нейронных сетях с обучением подкрепления, если вы сделаете быстрый поиск в Google Scholar.

+0

Третья ссылка упомянула кое-что о Q-обучении. Это применимо к проблеме тележки? –

+0

Кажется, это применимо, поскольку оно позволяет сравнить ожидаемую полезность доступных действий без модели среды. Поэтому, если вы делаете реальную проблему с тележкой с аппаратным обеспечением, тогда это будет полезно. Для получения дополнительной информации о Q-учете см .: http://www.applied-mathematics.net/qlearning/qlearning.html – Kiril

+2

Не Q-обучение включает в себя конечный набор действий? Идеальная проблема с тележкой будет иметь непрерывный набор действий. Это проблема? –

7

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

1) Если у вас есть набор наград в диапазоне rmin-rmax, перескажите их до 0-(rmax-rmin), чтобы они были все неотрицательные. Чем больше награда, тем сильнее создается подкрепление.

2) За отрицательную награду -r, backpropagate случайный выход r раз, если он отличается от того, что приводит к отрицательной награде. Это не только усилит желаемые результаты, но также рассеивает или предотвращает плохие результаты.

+0

Интересно. Интересно, как это относится к задержке вознаграждения. Я предполагаю, что это будет работать, чтобы указать что-либо, что не является целью как небольшая отрицательная награда. –

+0

@ Kendall Frey: для нейронной сети, которая лучше обрабатывает задержки в нормальных нейронных сетях, см. [Долгосрочная короткая память] (https://en.wikipedia.org/wiki/Long_short_term_memory) ([Youtube video] (http:// /www.youtube.com/watch?v=izGl1YSH_JA)), или см. [иерархическая временная память] (https://en.wikipedia.org/wiki/Hierarchical_temporal_memory) ([Youtube video] (http://www.youtube .com/смотреть? v = 48r-IeYOvG4)). – HelloGoodbye

+3

Зачем вам пересказывать такие награды? Нужно ли им перемасштабировать? Делая это, вознаграждение 'rmin' становится' 0' после перемасштабирования, поэтому то, что должно было быть вознаграждением, не окажет никакого эффекта усиления в сети. – HelloGoodbye

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