Comments 10
и даже не является ИИ алгоритмом в полном смысле этого словаА какие алгоритмы являются ИИ алгоритмами в полном понимании?
Недавно слушал лекцию о мозжечке и базальных ганглиях, где самую важную работу при запоминании мышечных действий выполняют тормозные нейроны.
Еще тогда, меня захватил идея, что некоторые интеллектуальные особенности человека, как речь, письмо, решение математических задачек можно описать мышечной памятью.
После прочтения этой статьи, у меня возникло еще больше идей на эту тему.
Есть Model-Based нейросеть (после эволюции, или обучения неважно), которой для совершения правильного действия нужно смоделировать множество случайных действий и выбрать лучшее в данной обстановке.
Это очень долгий и энергозатратный метод принятия решений, поэтому эволюция (или программисты) создала механизм кэширования самых распространенных и полезных действий.
Когда, кое-то действие запомнено, то при возникновении похожей обстановки, или похожей цели, нейроны отвечающие за правильное действие дополнительно стимулируют и они быстрее активируются.
В нашей ситуации это должно быть изменением распределения вероятности выбрать actions.
Я точно не помню но кажется и в мозге и в мозжечке за это отвечает не одна большая нейросеть а множество ганглиев.
Каждый реагирует на свой стимул но в общем все они объединяют сигналы и итоговая активация лучше всего подходит под конкретную ситуацию.
Согласен, так и есть. Это большой и больной вопрос в Model-Based обучении — как ранжировать actions. Пока ничего лучше перебора случайных вариантов не придумали… Эта работа в статье более эффективно отбрасывает действия с заведомо низкой вероятностью (основываясь на фильтрации, адаптивно и согласно награде). Но это ещё далеко до того, как это работает в мозге. А то что в мозге есть Model-Based подсистема это очевидно. И даже подобие перебора случайных вариантов. Это когда разные кластеры нейронов боятся за лидерство, но сигнал ещё слишком слабый для активации действия. Этот процесс, происходящий во времени с переменным успехом, мы воспринимаем как проигрывание в воображении разных вариантов, как бы случайный поиск. Хотя на самом деле это конечно просто выбор более сильного сигнала от конкурирующих групп нейронов.
Задача, которая невозможно долго решается перебором, разбивается на всевозможные промежуточные шаги, и сохраняя промежуточные решения, сами собой отбрасываются не оптимальные пути.
Таким образом уже обученную Model-Based систему можно использовать в алгоритме динамического программирования, для решения конкретных задач. Главное задать начальное и конечное состояние(шарик в коробке -> шарик в манипуляторе)
Еще в динамическом программировании довольно часто задача решается с конца.
И когда вычисления доходят до начальной точки уже готов оптимальный путь движения к цели.
Дело в том, что в текущем виде в model-based подходе нейросети тренируются как простые физические движки. Да, где-то это выгодно, так как можно обучить на данных сложной системы, которую вручную моделировать сложно. Но по сути это остаётся физическим движком, не более. Системы принятия решений в них нет — вместо этого делается случайный поиск, с рядом оптимизаций, чтобы отбросить варианты с низкой вероятностью. А ведь именно система принятия решений главный компонент ИИ.
Вот если бы делать не случайный поиск или простые фильтры как в этой работе, а использовать память, как это делает биологический мозг, вот это было бы хорошо. К этому, в принципе, все и идёт. Ну то есть вместо случайных actions, надо пропускать через model-based нейросеть похожие на текущую ситуацию примеры из прошлого, как делает мозг. И уже среди них выбирать действия с максимальной ожидаемой наградой. Плюс какая-то случайность для исследований, конечно.
Самая большая проблема — а как определить какая из прошлых ситуаций похожа на текущую? Мозг эту похожесть определяет своей структурой и принципом работы (связи между соседними нейронами укрепляются при прохождении сигнала и т.д.). Искусственные нейросети, в принципе, тоже это делают. Можно находить расстояние между двумя примерами в пространстве эмбеддингов, например. Это и будет их степень похожести. Но по каким критериям тренировать эти эмбеддинги — большой вопрос. Они ведь формируются в зависимости от целевой функции обучения. Да и по каким осям считать расстояния между точками в пространстве эмбеддингов тоже совсем нетривиальный вопрос. По-хорошему, это должно быть привязано к текущей цели (получению награды). И все надо организовать так, чтобы оно само обучалось на примерах. Прямые методы проще — есть цель (награда), есть градиентный спуск, все. А model-based сейчас больше инженерный подход, чем про обучение.
Насколько я понял, сам RL принимал на вход координаты шаров. А вычислялись эти координаты нейронной сетью, которая обучена обычным supervised learning. Таким образом. этот model-based принимает на вход порядка 30 чисел (24 степени свободы + 2 шара по 3 координаты у каждого) и прогнозирует тоже что-то типа 30 чисел.
Круто в сравнении с другими RL. На универсальность, как и пишет автор, пока не тянет — даже в силу устройства предобработчика данных.
Радует, что Reinforcement Learning таки используется на практике. Когда я защищал магистерскую работу по этой теме, обычно в тех же работах от Беркли использовали генетический алгоритм для выработки линии поведения агента, видимо современные реалии всё-таки склонили RL к использованию нейросеток с более быстрой сходимостью к определённому результату
ГА хорошо работает, когда мы можем одни и те же эксперименты повторять по многу раз и потратим только время. То есть когда агент у нас обучается в симуляции.
А если каждое движение — это потенциальная возможность сломать дорогое оборудование или обрушить акции или сделать ещё что-то плохое — тогда лучше работает RL, желательно умеющий учиться на чужом опыте)
PDDM — Новый Model-Based Reinforcement Learning алгоритм с улучшенным планировщиком