# Введение в reinforcement learning Reinforcement learning (обучение с подкреплением), RL, рассматривается как одна из основных парадигм машинного обучения, наряду с supervised learning и unsupervised learning. RL - это все о решениях: принятие правильных решений или, по крайней мере, извлечение уроков из них. Представьте, что у вас есть смоделированная среда, такая как фондовый рынок. Что произойдет, если вы введете определенное правило. Имеет ли это положительный или отрицательный эффект? Если происходит что-то негативное, вам нужно принять это _негативное подкрепление_, извлечь из него урок и изменить курс. Если это положительный результат, вам нужно использовать это _положительное подкрепление_. ![peter and the wolf](../images/peter.png) > Петьке и его друзьям нужно спастись от голодного волка! Автор изображения [Jen Looper](https://twitter.com/jenlooper) ## Региональная тема: Петя и Волк (Россия) [Петя и Волк](https://en.wikipedia.org/wiki/Peter_and_the_Wolf) - музыкальная сказка русского композитора [Сергея Прокофьева] (https://en.wikipedia.org/wiki/Sergei_Prokofiev). Это история о юном пионере Пете, который смело выходит из своего дома на лесную поляну, чтобы преследовать волка. В этом разделе мы обучим алгоритмы машинного обучения, которые помогут Пете: - **Исследуйте** окрестности и создайте оптимальную навигационную карту. - **Учитесь** пользоваться скейтбордом и балансировать на нем, чтобы двигаться быстрее. [![Петя и Волк](https://img.youtube.com/vi/Fmi5zHg4QSM/0.jpg)] (https://www.youtube.com/watch?v=Fmi5zHg4QSM) > 🎥 Нажмите на изображение выше, чтобы послушать Петю и Волка Прокофьева ## Обучение с подкреплением В предыдущих разделах вы видели два примера проблем машинного обучения: - **Supervised**, где у нас есть наборы данных, которые предлагают примеры решений проблемы, которую мы хотим решить. [Классификация](../../4-Classification/README.md) и [регрессия] (../ 2-Регрессия / README.md) являются контролируемыми учебными задачами. - **Unsupervised**, в котором у нас нет помеченных данных обучения. Основным примером unsupervised learning является [Кластеризация](../../5-Clustering/README.md). В этом разделе мы познакомим вас с новым типом задач обучения, которые не требуют маркированных данных обучения. Есть несколько типов таких проблем: - **[Semi-supervised learning](https://wikipedia.org/wiki/Semi-supervised_learning)**, где у нас есть много немаркированных данных, которые можно использовать для предварительного обучения модели. - **[Reinforcement learning](https://wikipedia.org/wiki/Reinforcement_learning)**, в котором агент учится вести себя, проводя эксперименты в некоторой моделируемой среде. ### Пример - компьютерная игра Предположим, вы хотите научить компьютер играть в игру, например, в шахматы или [Супер Марио](https://wikipedia.org/wiki/Super_Mario). Чтобы компьютер мог играть в игру, нам нужно, чтобы он предсказывал, какой ход сделать в каждом из игровых состояний. Хотя это может показаться проблемой классификации, это не так - потому что у нас нет набора данных с состояниями и соответствующими действиями. Хотя у нас могут быть некоторые данные, такие как существующие шахматные матчи или записи игроков, играющих в Super Mario, вполне вероятно, что эти данные не будут в достаточной степени охватывать достаточно большое количество возможных состояний. Вместо поиска существующих игровых данных **Обучение с подкреплением** (RL) основано на идее *заставить компьютер играть* много раз и наблюдать за результатом. Таким образом, чтобы применить обучение с подкреплением, нам нужны две вещи: - **Среда** и **симулятор**, которые позволяют нам играть в игру много раз. Этот симулятор будет определять все правила игры, а также возможные состояния и действия. - **Функция вознаграждения**, которая сообщит нам, насколько хорошо мы сделали каждый ход или игру. Основное различие между другими типами машинного обучения и RL заключается в том, что в RL мы обычно не знаем, выиграем мы или проиграем, пока не закончим игру. Таким образом, мы не можем сказать, является ли конкретный ход хорошим или нет - мы получаем награду только в конце игры. И наша цель - разработать алгоритмы, которые позволят нам обучать модель в неопределенных условиях. Мы узнаем об одном алгоритме RL под названием **Q-Learning**. ## Уроки 1. [Введение в обучение с подкреплением и Q-Learning](../1-QLearning/README.md) 2. [Использование тренажерного зала](../2-Gym/README.md) ## Благодарности «Введение в обучение с подкреплением» написано с ♥ ️[Дмитрием Сошниковым](http://soshnikov.com)