Обучение глубокому подкреплению и обучению

В чем разница между глубоким усилением обучения и усилением обучения? Я в основном знаю, что такое обучение усилению, но что означает конкретный термин глубокий в этом контексте?

Большое спасибо за вашу помощь.

Ответ 1

Усиление обучения

В обучении подкрепления агент пытается придумать лучшее действие при условии состояния.

например. в видеоигре Pac-Man, состояние будет двумерным игровым миром, в котором вы находитесь, окружающие предметы (pac-точки, ennemies, стены и т.д.), и действие будет проходить через это 2D-пространство (движение вверх/вниз/влево/вправо).

Итак, состояние игрового мира, агент должен выбрать лучшее действие, чтобы максимизировать вознаграждения. Посредством обучения и ошибок обучения подкрепления он накапливает "знание" через эти пары (state, action), как и в, он может определить, будет ли положительная или отрицательная награда данной паре (state, action). Позвольте называть это значение Q(state, action).

Рудиментарным способом хранения этих знаний будет таблица, подобная ниже

state | action | Q(state, action)
---------------------------------
  ... |   ...  |   ...

Пространство (state, action) может быть очень большим

Однако, когда игра усложняется, пространство знаний может стать огромным, и уже невозможно сохранить все пары (state, action). Если вы думаете об этом в необработанных терминах, то даже немного другое состояние все еще является отдельным состоянием (например, другое положение противника, проходящего через один и тот же коридор). Вы можете использовать что-то, что может обобщить знания, а не хранить и смотреть на каждое небольшое отдельное состояние.

Итак, что вы можете сделать, это создать нейронную сеть, например, предсказывает награду за вход (state, action) (или выбирает лучшее действие при условии состояния, однако вы хотите посмотреть на него)

Приближение значения Q с помощью нейронной сети

Итак, у вас действительно есть NN "умный мозг", который прогнозирует значение Q, основанное на входе (state, action). Это более уместно, чтобы хранить все возможные значения, как это было в приведенной выше таблице.

Q = neural_network.predict(state, action)

Глубокие нейронные сети

Чтобы иметь возможность делать это для сложных игр, NN может быть "глубоким", что означает, что несколько скрытых слоев могут оказаться недостаточными для захвата всех сложных деталей этого знания, следовательно, использование глубоких NN (много скрытые слои).

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

Закрывающие слова

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