Обучение с подкреплением на нейронных сетях. Теория

    Я тут написал статью Проблема «двух и более учителей». Первые штрихи, пытаясь показать одну сложную нерешенную проблему. Но первые штрихи оказались немного за сложными. Поэтому я решил для читателей немного разжевать теорию. Увы, сейчас видимо учат/(учатся ?) несколько шаблонно — типа как для каждой задачи свои методы.

    Так мне указали, что для задачи классификации — нейронные сети (обучение с учителем), генетические алгоритмы (обучение без учителя) — задача кластеризации, а еще есть обучение с подкреплением (Q-обучение) — как задача агента, который бродит и что-то делает. И вот такими шаблонами многие и судят.

    Попробуем разобраться, что дает применение нейронных сетей, как некоторые заявляют, к задаче которую они не могут решить — а именно к обучению с подкреплением.

    И заодно проанализируем диссертацию Бурцев М.С., «Исследование новых типов самоорганизации и возникновения поведенческих стратегий», в которой не больше не меньше красиво сделано именно применение простеньких нейронных сетей в задаче обучения с подкреплением.

    Теория

    В генетических алгоритмах и в методах для обучения с подкреплением (напр., Q-обучение) есть одна существенная проблема — нужно задавать функцию пригодности. Причем она задается явно формулой. Иногда она появляется косвенно — тогда кажется, что этой функции явно нет (это мы проследим далее, на анализе диссертации Бурцева М.С.). И все «чудеса» агентного поведения происходят только от этой формулы.

    Но что такое формула? — Функция. Или что тоже самое отображение входов на выходы. А что делает нейронная сеть/перцептрон? Именно это он и делает — обучается отображать входы на выходы.

    Возьмем утрированный теоретический пример. Агент — это какой-то организм, которому хочется выжить. Для этого ему надо есть. Он есть два вида животных — ну пусть зайцев и мышей. Соответственно у него есть два входных параметра — количество килограмм, которые содержит съеденная зайчатина и мышатина :). Он (организм) хочет оценивать на сколько он сыт. Тогда в зависимости от того, на сколько он сыт он может бегать с большей или меньшей скоростью и желанием. Но это уже другая задача, а мы остановимся на оценке сытости.

    Нам ничего не известно как оценивать сытость, кроме килограмм того и другого. Поэтому первая естественная оценка — это научиться складывать килограммы. Т.е. мы вводим простую функцию пригодности c= a+b. Замечательно, но имея такую жесткую функцию оценки мы не можем корректировать свое поведение.

    Поэтому применяется нейронная сеть. Её вначале обучают складывать эти два числа. После обучения нейронная сеть умеет безошибочно складывать. Агент использует выход нейронной сети и понимает на сколько он сыт.

    Но далее происходит несчастье — он оценил, что он сыт на 7 баллов = съев 4 кило зайчатины и 3 мышатины. И бегал думая, что наелся, так что чуть не переусердствовал и не помер. Оказалось, что 4 кило зайчатины и 3 мышатины — это не тоже самое, что 7 кило зайчатины. Мышатина не дает такой же сытости, и складывать на самом деле нужно как 4 + 3 = 6. Вот этот сделанный им вывод он и вкидывает как точную данность в нейронную сеть. Она переобучается, и её функция пригодности уже не простое сложение, и приобретает совершенно другой вид. Таким образом, имея нейронную сеть мы может корректировать функцию пригодности, чего не можем делать в других алгоритмах.

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

    Практика на примере диссертации Бурцева М.С.

    Какая у него модельная среда:

    Популяция P агентов A, находящихся в одномерной клеточной среде, замкнутой в виде кольца. В клетках с некоторой вероятностью появляется ресурс, необходимый агентам для совершения действий. В одной клетке может находиться только один агент. Агент-потомок может появиться только в результате скрещивания двух агентов-родителей. У агента 9 входов

    1,2,3 — 1 если в данной клетке поля зрения (слева, рядом, справа) есть ресурс, 0 в противном случае;
    4, 5 — 1 если в клетке слева/справа есть агент, 0 в противном случае;
    6,7 — мотивация к скрещиванию Mr соседа слева/справа;
    8 — собственная мотивация к поиску пищи
    9 — собственная мотивация к скрещиванию

    Мотивация к скрещиванию и поиску пищи определяется через отношение двух коэффициентов выбранных экспериментатором — r0 — значения внутреннего ресурса для насыщения и r1 — для скрещивания.

    Существует 6 действий: скрещиваться с соседом справа, скрещиваться с соседом слева, прыгать, двигаться на одну клетку вправо, двигаться на одну клетку влево, потреблять ресурс, отдыхать

    Как решалось:

    Была изначально настроенная ИНС, конечно её сетью назвать сложно — без внутреннего слоя, но пусть. Она имела различные коэффициенты, как входы связанны с действиями (выходами). Далее применялся генетический алгоритм, который настраивал коэффициенты нейронной сети, и отбраковал организм с плохим поведением.

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

    На самом деле, проблема с Q-learning и генетическими алгоритмами заключается в том, что новое поведение ищется случайно. А случайность это равновероятный поиск на всем пространстве возможных состояний. Т.е. в этом нет целенаправленного поиска. А если пространство возможных состояний велико, то элементарные стратегии так никогда и не будут найдены.

    Поэтому вообще-то нужно не случайно перебирать разные стратегии, а целенаправленно (но об этом нужно уже говорить в следующей статье после понимания первых штрихов :)).

    Заключение.

    Я пробежался быстро, т.к. нам важны лишь выводы, а не детали. Но Вам возможно нужно почитать об этом самим подробнее.

    В итоге функция пригодности агента представлена нейронной сетью. Как в изложенной теории выше, так и у Бурцева в диссертации.

    Но отличаем её от функции пригодности среды. Она тут косвенно задана через коэффициенты r0 и r1. Причем эта функция пригодности среды — экспериментатору известна. Поэтому нет ни какой фантастики, когда Бурцев обнаруживает как функция пригодности агента начинает приближаться к функции пригодности среды.

    В статье Проблема «двух и более учителей». Первые штрихи у нас ситуация — хуже. Функцию пригодности среды не знает даже экспериментатор, точнее вид этой функции. В этом то и проблема, она ни как косвенно не определяется. Да, известно лишь конечная функция пригодности — максимум денег, но внутри себя она содержит подфункцию, которая не известна. Функции пригодности агента, надо стремится к этой подфункции — а она не может быть вычислена.

    Надеюсь теперь будет немного более понятно.
    Поделиться публикацией
    Комментарии 26
      +3
      Пример того, как такие задачи решают на самом деле: www.research.ibm.com/massive/tdl.html
        0
        Ну, а рассказать чем это отличается от того, что изложено?
          0
          Конкретностью.
            –2
            А я понял :) Все то же самое что я по быстрому описал, на конкретной задаче. Ну, у Бурцева тоже также конкретно если что…
              0
              Точнее будет сказать частностью. Нам же далее нужна будет общая схема. А она как видим именно такая.
          0
          «генетические алгоритмы (обучение без учителя) — задача кластеризации»

          Вот этой фразой вы окончательно, полностью и бесповоротно себя дискредитировали.
          tac, кончайте выпендриваться и идите изучать что на самом деле такое задача классификации и задача кластеризации.

          Генетические алгоритмы решают, блин, ЗАДАЧУ ОПТИМИЗАЦИИ, в существование которой вы похоже не верите.
            –2
            Полистайте хотя бы слайды, большего я от вас уже и не жду ;)
              +1
              tac, открывайте 29 слайд и читайте.

              Оптимизация некоторого критерия (обычно некоторой ошибки) безусловно является частью многих алгоритмов классификации и кластеризации. Например, ваши любимые персептроны — это по сути метод градиентного спуска.

              Но называть алгоритмы оптимизации обучением и алгоритмами кластеризации/классификации — это откровенно безграмотно. Это более широкий класс алгоритмов. И машинное обучение — одно из немногих применений.

              Расширять кругозор надо.
                –1
                Не ужели прочитали? Что теперь оказывается генетические алгоритмы могут решать задачу кластеризации? Поздравляю, хоть что-то выучили.

                а ваш троллинг оставьте детям.
                  +1
                  Перечитайте мой комментарий еще раз и не позорьтесь.
                    –1
                    Перечитайте, что я говорю о шаблоном обучении — и поймите, что это вы
                    0
                    Сами по себе они задачу кластеризации не решают. Они могут решать задачу оптимизации критерия кластеризации. Разница не маленькая.
              +1
              эх, ваше бы свободное время да мне в руки :)
                0
                Чем оно вам не нравится в моих руках :)
                  0
                  Решением более конкретных задач, с более конкретным выхлопом.
                    –1
                    Именно поэтому у вас нет времени, а у меня есть :)
                      0
                      Ну, и потом, скажите мне пожалуйста, чем решение задачи сворачивания РНК, которой я занимаюсь — не конкретная задача? И чем там не конкретный выхлоп?
                        +2
                        Не хочу ввязываться в очередную перепалку, но подходы ваши не ординарны, и не удовлятворяют научным критериям.
                          –1
                          Вот смотрите, если мы получаем результат, который лучше чем у подхода как вы выразились «удовлетворяющему научному подходу» — то что надо сделать с таким подходом «удовлетворяющему научному подходу»?
                            0
                            Кроме того, вам необходимо заменить «удовлетворяющему научному подходу» — на «традиционному подходу». Мой подход вполне удовлетворяет научности более чем, просто он для вас не обычен.
                              0
                              И еще, это не только мой подход. В том же направлении идет собственно проект Rosseta@home, а лишь пошел еще дальше… Поэтому не стоит судить о том, что не доконца понимаете.
                              –1
                              Ну, и наверное излишне говорить, что меня тошнит о таких подходов которые есть в этой области сейчас — т.к. они не дают результатов. А вы их называете удовлетворяющими научному подходу. У вас к сожалению, нет критерия, чтобы об этом судить. А результат нас рассудит — и ТОЛЬКО.
                                0
                                Ну, и я несколько подзабыл, напомните… не вы ли это соскользнули со своего обещания, когда бахвалились, что сможете получить результат лучше чем у меня на одном конкретном примере? И как?
                                  0
                                  Я не бахвалился, не передергивайте. Конкретный вопрос был в том, что вы не проверили задачу моделирования уже доступными алгоритмами и программами, а мне было жалко своего времени, т.к. моделируете вы «ноль» — структуру, топология которой не известна.
                                    0
                                    Вот в этом у вас и проблема. Вы не понимаете сути поставленной задачи. Вам четко сказано, что — сверните ну хоть как — то, как вам кажется должно быть правильно. Это раз. Вы это не можете.

                                    Дальше вам говорят сверните так, чтобы был определенный набор водородных связей между парами нуклеотидов. Это вы тоже не можете.

                                    Не ужели вы считаете, что когда не можете сделать элементарное — вы хоть на шаг подойдете к том что есть в природе?

                                    И после этого Вы говорите, что это мои методы не научно выдержаны? Нет, это вы беретесь за то, что не можете сделать даже в малом.

                                    У нас разные постановки задач, а вы это не хотите понять.
                                      0
                                      > сверните ну хоть как — то, как вам кажется должно быть правильно. Это раз. Вы это не можете.

                                      Причем не можете именно потому, что вам не дан образец к чему стремится. Но если я вам его дам — вы смухлюете. Вы исходите из этого образца. А это не допустимо научно. Вы получаете то, что и так известно. Скажите я не прав?

                      Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                      Самое читаемое