Pull to refresh

Comments 10

и даже не является ИИ алгоритмом в полном смысле этого слова
А какие алгоритмы являются ИИ алгоритмами в полном понимании?

Которые выглядят как утка и крякают как утка ). Можно подумать, есть другие определения. Этот алгоритм заточен под моторику роботов, в других областях вряд ли будет толк. Физическая модель + удачный фильтр для плавности движений. Вряд ли это можно назвать ИИ.

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

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

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

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

Я точно не помню но кажется и в мозге и в мозжечке за это отвечает не одна большая нейросеть а множество ганглиев.
Каждый реагирует на свой стимул но в общем все они объединяют сигналы и итоговая активация лучше всего подходит под конкретную ситуацию.

Согласен, так и есть. Это большой и больной вопрос в Model-Based обучении — как ранжировать actions. Пока ничего лучше перебора случайных вариантов не придумали… Эта работа в статье более эффективно отбрасывает действия с заведомо низкой вероятностью (основываясь на фильтрации, адаптивно и согласно награде). Но это ещё далеко до того, как это работает в мозге. А то что в мозге есть Model-Based подсистема это очевидно. И даже подобие перебора случайных вариантов. Это когда разные кластеры нейронов боятся за лидерство, но сигнал ещё слишком слабый для активации действия. Этот процесс, происходящий во времени с переменным успехом, мы воспринимаем как проигрывание в воображении разных вариантов, как бы случайный поиск. Хотя на самом деле это конечно просто выбор более сильного сигнала от конкурирующих групп нейронов.

Когда, я учился в школе, мне больше всего нравились Олимпиадные задачки на динамическое программирование.

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

Таким образом уже обученную Model-Based систему можно использовать в алгоритме динамического программирования, для решения конкретных задач. Главное задать начальное и конечное состояние(шарик в коробке -> шарик в манипуляторе)

Еще в динамическом программировании довольно часто задача решается с конца.
И когда вычисления доходят до начальной точки уже готов оптимальный путь движения к цели.

Дело в том, что в текущем виде в model-based подходе нейросети тренируются как простые физические движки. Да, где-то это выгодно, так как можно обучить на данных сложной системы, которую вручную моделировать сложно. Но по сути это остаётся физическим движком, не более. Системы принятия решений в них нет — вместо этого делается случайный поиск, с рядом оптимизаций, чтобы отбросить варианты с низкой вероятностью. А ведь именно система принятия решений главный компонент ИИ.


Вот если бы делать не случайный поиск или простые фильтры как в этой работе, а использовать память, как это делает биологический мозг, вот это было бы хорошо. К этому, в принципе, все и идёт. Ну то есть вместо случайных actions, надо пропускать через model-based нейросеть похожие на текущую ситуацию примеры из прошлого, как делает мозг. И уже среди них выбирать действия с максимальной ожидаемой наградой. Плюс какая-то случайность для исследований, конечно.


Самая большая проблема — а как определить какая из прошлых ситуаций похожа на текущую? Мозг эту похожесть определяет своей структурой и принципом работы (связи между соседними нейронами укрепляются при прохождении сигнала и т.д.). Искусственные нейросети, в принципе, тоже это делают. Можно находить расстояние между двумя примерами в пространстве эмбеддингов, например. Это и будет их степень похожести. Но по каким критериям тренировать эти эмбеддинги — большой вопрос. Они ведь формируются в зависимости от целевой функции обучения. Да и по каким осям считать расстояния между точками в пространстве эмбеддингов тоже совсем нетривиальный вопрос. По-хорошему, это должно быть привязано к текущей цели (получению награды). И все надо организовать так, чтобы оно само обучалось на примерах. Прямые методы проще — есть цель (награда), есть градиентный спуск, все. А model-based сейчас больше инженерный подход, чем про обучение.

Меня тоже очень захватывает эта тема. Я думаю, помимо того, что мозг очень эффективно работает на поиск оптимальных решений. Еще он очень эффективно перенимает опыт, наблюдая за другими особями своего вида. Т.е. получается совместная работа многих мозгов на поиск эффективного решения, а таких вычислительных мощностях компьютерам пока не снилось. Не удивительно, что пока плохо у них получается.
«The output is aspatial softmax for the 2D location and depth of the center of each sphere in camera frame. Standardpinhole camera equations convert 2D and depth into 3D points in the camera frame, and an additional calibration finally converts it into to the ShadowHand’s coordinates system. Training of the model is done in sim, with fine-tuning on real-world data. Our semi-automated process of composing static scenes with the spheres, moving the strero rig, and using VSLAM algorithms to label the images using relative poses of the camera views substantially decreased the amount of hand-labelling that was requiring. » — это из arxiv.
Насколько я понял, сам RL принимал на вход координаты шаров. А вычислялись эти координаты нейронной сетью, которая обучена обычным supervised learning. Таким образом. этот model-based принимает на вход порядка 30 чисел (24 степени свободы + 2 шара по 3 координаты у каждого) и прогнозирует тоже что-то типа 30 чисел.
Круто в сравнении с другими RL. На универсальность, как и пишет автор, пока не тянет — даже в силу устройства предобработчика данных.

Радует, что Reinforcement Learning таки используется на практике. Когда я защищал магистерскую работу по этой теме, обычно в тех же работах от Беркли использовали генетический алгоритм для выработки линии поведения агента, видимо современные реалии всё-таки склонили RL к использованию нейросеток с более быстрой сходимостью к определённому результату

А в тех работах, что вы анализировали, ГА использовался для каких-то реально практических задач? Или это просто исследования, но без доведения до продакшна?
ГА хорошо работает, когда мы можем одни и те же эксперименты повторять по многу раз и потратим только время. То есть когда агент у нас обучается в симуляции.
А если каждое движение — это потенциальная возможность сломать дорогое оборудование или обрушить акции или сделать ещё что-то плохое — тогда лучше работает RL, желательно умеющий учиться на чужом опыте)
Sign up to leave a comment.

Articles

Change theme settings