[#] [Из песочницы] Обучение с подкреплением для самых маленьких
habrabot(difrex,1) — All
2016-08-19 12:00:04


_В данной статье разобран принцип работы метода машинного обучения[«Обучение с подкреплением»][1] на примере физической системы. Алгоритм поиска оптимальной стратегии реализован в коде на Python с помощью метода [«Q-Learning»][2]._

Обучение с подкреплением — это метод машинного обучения, при котором происходит обучение модели, которая не имеет сведений о системе, но имеет возможность производить какие-либо действия в ней. Действия переводят систему в новое состояние и модель получает от системы некоторое вознаграждение. Рассмотрим работу метода на [примере][3], показанном в видео. В описании к видео находится код для [Arduino][4], который реализуем на [Python][5].


### Задача


С помощью метода «обучение с подкреплением» необходимо научить тележку отъезжать от стены на максимальное расстояние. Награда представлена в виде значения изменения расстояния от стены до тележки при движении. Измерение расстояния D от стены производится дальномером. Движение в данном примере возможно только при определенном смещении «привода», состоящего из двух стрел S1 и S2. Стрелы представляют собой два сервопривода с направляющими, соединенными в виде «колена». Каждый сервопривод в данном примере может поворачиваться на 6 одинаковых углов. Модель имеет возможность совершить 4 действия, которые представляют собой управление двумя сервоприводами, действие 0 и 1 поворачивают первый сервопривод на определенный угол по часовой и против часовой стрелке, действие 2 и 3 поворачивают второй сервопривод на определенный угол по часовой и против часовой стрелке. На рисунке 1 показан рабочий прототип тележки.

![][6]
_Рис. 1. Прототип тележки для экспериментов с машинным обучением_
[Читать дальше][7]

[1]: https://ru.wikipedia.org/wiki/Обучение_с_подкреплением
[2]: https://ru.wikipedia.org/wiki/Q-обучение
[3]: https://www.youtube.com/watch?v=f2nIKFMyfSg
[4]: https://drive.google.com/file/d/0Bwyt-Hm2ItvRc0laTFhFNWFQdTg/view?pli=1
[5]: https://github.com/MichaelSwanRu/Reinforcement-Learning/blob/master/Q-Learning/Example-and-Tutorial/Q-LEARNING.py
[6]: https://habrastorage.org/files/575/e62/46e/575e6246e8774c1da1ad4227b28bc13c.jpg
[7]: https://habrahabr.ru/post/308094/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut