Нейроморфный ИИ для роботов

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

А тут я нашла такую статью… Не могла не поделиться.

«Embodied Neuromorphic Artificial Intelligence for Robotics: Perspectives, Challenges, and Research Development Stack» («Нейроморфный ИИ с физическим телом для робототехники: перспективы, вызовы и инструменты для исследования и разработки»).

Я плохо перевела «embodied» – это буквально значит «в теле», но так заголовок не звучит. Но не суть – главное, у нас тут и ИИ, и робототехника в одном флаконе.

Вообще вопрос переноса ИИ в физический мир сам по себе нетривиальный. У меня на эту тему есть ещё пара текстов:

Ключевая сложность здесь в том, что реальный мир постоянно меняется, и под его изменения надо постоянно корректировать свои действия. Взять, к примеру, такую (не)простую задачу как «сложить постиранный носок». Просто сложить пополам. Что для этого нужно?

Человеку – взять носок, сложить пополам. Всё, собственно.

А роботу нужно учесть тип ткани, её эластичность; вес, который меняется в зависимости от того, сухая ткань или мокрая. А если носок в процессе манипуляций упал, то всё. Нужна целая спасательная операция. Робот перегрелся и завис.

Я немного утрирую для комического эффекта, но, в общем и целом, всё правда: наш мозг очень быстро оценивает очень много факторов, и всё это проходит мимо нашего сознания. Для робота надо как-то это всё если не описать, то хотя бы собрать достаточно данных, чтобы он сам своими электронными нейронами смог извлечь нужные параметры. Так что да, всё непросто.

То чувство, когда физический мир тебе недоступен.
То чувство, когда физический мир тебе недоступен.

Пользователь: «Я хочу помыть машину. Мойка в тридцати метрах от меня. Мне лучше ехать или идти пешком?»
Opus 4.7: «Пешком. Это примерно 30 секунд ходьбы, а если ты обратно на свежевымытой машине поедешь, она опять испачкается.»

К статье

Зачем пытаться воспроизводить биологические механизмы в роботах? Авторы приводят три причины.

Причина первая: импульсные нейронные сети (Spiking Neural Networks) потребляют меньше энергии за счёт своей разреженности.

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

После импульса должно пройти ещё некоторое время, пока потенциал опять накопится. Отсюда экономия энергии: расчёты происходят только тогда, когда накопился потенциал и возник импульс, а в остальное время нейрон не активен.

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

Причина вторая: импульсные нейросети можно обучать на данных из динамических сред.

То, что нужно, когда речь про реальный мир физических объектов.

Причина третья: современные импульсные нейросети работают быстро и точно.

Важная оговорка – нейроморфные процессоры пока находятся на стадии прототипа и только-только переходят в область производства. То есть, в широком использовании их пока нет.

Архитектура роботов с нейроморфным ИИ

Помимо ИИ роботам нужно ещё несколько важных компонентов, чтобы функционировать:

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

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

Опять же, здесь пока много теории и несколько меньше практики. У подобных архитектур есть ряд проблем:

  • энергоэффективность (даже с импульсными нейросетями: надо же постоянно собирать данные с датчиков, обрабатывать, пересчитывать ходы);
  • нехватка систем тестирования;
  • следующий из неё недостаток надёжности и безопасности;
  • недостаток инструментов разработки в принципе – но это нормально для развивающейся области.

По всем направлениям ведётся работа, и по всем направлениям есть место для новых исследований (ну это если вы сидели и думали, чем бы интересным заняться – вот, пожалуйста). Мне самым интересным видится направление, связанное с безопасностью:

  • разработка тестов;
  • разработка систем защиты от опасных ошибок;
  • разработка систем безопасного хранения данных, которые роботы собирают своими сенсорами.

Заключение

Нейроморфные вычисления – интересная тема сама по себе. Возможно, это даже путь выхода на более точные, быстрые и совершенные технологии, чем сейчас у нас есть.

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

Я точно буду читать, что в этой области происходит, и буду про это писать. Больше пишу у себя в телеграме, так что вы это – заходите, если что.

Начать дискуссию