Обучение с подкреплением
Обучение с подкреплением (англ. reinforcement learning) — один из способов машинного обучения, в ходе которого испытуемая система (агент) обучается, взаимодействуя с некоторой средой. С точки зрения кибернетики, является одним из видов кибернетического эксперимента. Откликом среды (а не специальной системы управления подкреплением, как это происходит в обучении с учителем) на принятые решения являются сигналы подкрепления, поэтому такое обучение является частным случаем обучения с учителем, но учителем является среда или её модель. Также нужно иметь в виду, что некоторые правила подкрепления базируются на неявных учителях, например, в случае искусственной нейронной среды, на одновременной активности формальных нейронов, из-за чего их можно отнести к обучению без учителя.
Среда и агент
Агент воздействует на среду, а среда воздействует на агента. О такой системе говорят, что она имеет обратную связь. Такую систему нужно рассматривать как единое целое, и поэтому линия раздела между средой и агентом достаточно условна. Конечно, с анатомической или физической точек зрения между средой и агентом (организмом) существует вполне определённая граница, но если эту систему рассматривать с функциональной точки зрения, то разделение становится нечётким. Например, резец в руке скульптора можно считать либо частью сложного биофизического механизма, придающего форму куску мрамора, либо частью материала, которым пытается управлять нервная система.
Впервые такого рода обучение с обратной связью было предложено и изучено в 1961 году в работе Михаила Львовича Цетлина, известного советского математика[1].
М. Л. Цетлин тогда поместил конечный автомат определённой конструкции во внешнюю среду, которая с вероятностями, зависящими от совершаемого автоматом действия, наказывала или поощряла автомат. В соответствии с реакцией среды автомат самостоятельно изменял своё внутреннее состояние, что приводило к постепенному снижению числа наказаний, то есть обучению.
Для анализа поведения этого автомата был впервые использован аппарат цепей Маркова, разработанный А. А. Марковым, который позволил получить точные и доказательные результаты.
Этот материал был опубликован в одном из наиболее престижных и влиятельных научных советских изданий — «Доклады Академии наук СССР». М. Л. Цетлин называл эту проблему изучением поведения автомата в случайной среде.
Статья М. Л. Цетлина вызвала волну публикаций, в которых предлагались всевозможные усовершенствования конструкций конечных автоматов, интенсивно использовавшиеся в многочисленных приложениях.
М. Л. Цетлин ввёл в оборот новый термин — целесообразное поведение автомата в случайной среде. Его ученик, В. Л. Стефанюк, рассмотрел в 1963 году задачу о коллективном поведении, определив новый термин — «коллективное поведение автоматов» и детально исследовав поведение пары автоматов, введённых М. Л. Цетлиным в его первой публикации о целесообразном поведении автоматов.
В. Л. Стефанюком была изготовлена действующая обучающаяся модель на полупроводниковых элементах и вакуумных радиолампах, в которой было реализовано коллективное поведение двух таких автоматов. Эта модель была защищена в 1962 году в качестве выпускной работы на Физическом факультете Московского государственного университета.
В это же время (1963) М. Л. Цетлиным была сформулирована задача об играх автоматов, которая моделировала несколько важных проблем биологии и социологии. Несколько позже М. Л. Цетлин и С. Л. Гинзбург описали конструкцию так называемого ε-автомата, который часто используется в современных публикациях по обучению с подкреплением.
Многочисленные советские публикации о целесообразном поведения автоматов, представленные в виде докладов на национальных и международных конференциях, через много лет навели авторов обучения с подкреплением на мысль о выделении этого типа обучения в отдельный класс.
Что касается коллективного поведения автоматов, то что-то подобное вылилось у зарубежных авторов в концепцию многоагентных систем, которая изучалась в терминах искусственного интеллекта и программирования. Однако математические методы анализа и доказательства в многоагентных системах практически не использовались, в отличие от работ М. Л. Цетлина и В. Л. Стефанюка по целесообразному поведению автомата, а также по коллективному поведению и играм нескольких автоматов.
Система подкрепления и её виды
Розенблатт пытался классифицировать различные алгоритмы обучения, называя их системами подкрепления.[2] Он даёт следующее определение:
Системой подкрепления называется любой набор правил, на основании которых можно изменять с течением времени матрицу взаимодействия (или состояние памяти) перцептрона.
Кроме классического метода обучения перцептрона — метода коррекции ошибки, который можно отнести к обучению с учителем, Розенблатт также ввёл понятие об обучении без учителя, предложив несколько способов обучения:
- Альфа-системой подкрепления называется система подкрепления, при которой веса всех активных связей [math]\displaystyle{ c_{ij} }[/math], которые ведут к элементу [math]\displaystyle{ u_j }[/math], изменяются на одинаковую величину r, а веса неактивных связей за это время не изменяются.
- Гамма-системой подкрепления называется такое правило изменения весовых коэффициентов некоторого элемента, при котором веса всех активных связей сначала изменяются на равную величину, а затем из их всех весов связей вычитается другая величина, равная полному изменению весов всех активных связей, делённому на число всех связей. Эта система обладает свойством консервативности относительно весов, так как у неё полная сумма весов всех связей не может ни возрастать, ни убывать.
Реализации
- BURLAP (Brown-UMBC Reinforcement Learning and Planning) — библиотека одно- и многоагентных алгоритмов планирования и обучения с подкреплением, язык Java, лицензия LGPL
- MMLF (Maja Machine Learning Framework) — библиотека алгоритмов обучения с подкреплением и набор тестовых сред для их проверки, язык Python, лицензия GPL
- OpenAI Gym — платформа для разработки и сравнения алгоритмов обучения с подкреплением от OpenAI, язык Python, лицензия MIT
- PyBrain — библиотека алгоритмов машинного обучения, язык Python, лицензия BSD
- RLPy — библиотека для проведения экспериментов по обучению с подкреплением, язык Python, 3-х пунктовая лицензия BSD
- Teachingbox — инструментарий для разработки алгоритмов обучения с подкреплением, язык Java, лицензия GPL
См. также
Примечания
Литература
- Саттон Ричард С., Барто Эндрю Г. Обучение с подкреплением = Reinforcement Learning. — 2-е издание. — М.: ДМК пресс, 2020. — 552 с. — ISBN 978-5-97060-097-9.
- Розенблатт, Ф. Принципы нейродинамики: Перцептроны и теория механизмов мозга = Principles of Neurodynamic: Perceptrons and the Theory of Brain Mechanisms. — М.: Мир, 1965. — 480 с.
- Саттон Ричард С., Барто Эндрю Г. Обучение с подкреплением = Reinforcement Learning. — М.: БИНОМ. Лаборатория знаний, 2017. — 399 с. — ISBN 978-5-94774-351-7.
Ссылки
- Обучение с подкреплением для самых маленьких — Хабрахабр, 19/08/2016.
- Обучение с подкреплением на нейронных сетях. Теория — Хабрахабр, 01/08/2012.
- Обучение с подкреплением — лекция Р. В. Шамина.