Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!
Будущее здесь — безо всяких преувеличений. В нашей публикации Третий глаз для незрячих рассказывалось о том, как можно облегчить жизнь незрячим людям при помощи нескольких ультразвуковых сенсоров. Сегодня рассказываем о кибернетической руке на основе глубокого обучения, точность вычислений которой составляет более 95 %. Также в статье есть впечатления смельчака, решившегося опробовать технологию на себе. Именно его вы видите на КДПВ.
Послушать историю [на английском] можно на SoundCloud
На этой неделе появилось 600 новых статей об архитектуре Transformer. Как мне быть? Случайным образом выбрать из них несколько, опубликовать у себя практически без изменений (не считая каких-то мелочей) и, возможно, чуть-чуть улучшить?
Надеюсь, вы не слишком обескуражены таким вступлением, но прошу понять меня правильно: архитектура Transformer сегодня настолько популярна, что сообщения о ней забивают все другие. Само собой, это потрясающая архитектура, она может оказаться чрезвычайно полезной во многих случаях, и недаром большинство исследователей сходят по ней с ума, но в области искусственного интеллекта (ИИ) есть и другие вещи, и, поверьте, не менее, а даже более увлекательные! Не стоит волноваться, я, естественно, буду рассказывать о впечатляющих проектах, созданных на базе архитектуры Transformer, применяемой в NLP, машинном распознавании образов и во множестве других областей. Я считаю эту архитектуру весьма перспективной, но просто пересказывать содержание новых работ, внося в них лишь косметические изменения, для меня не так интересно.
В качестве примера могу упомянуть пару опубликованных в марте работ, в которых говорится о применении архитектуры Transformer для классификации изображений. Эти работы довольно схожи друг с другом, и об одной из них я уже рассказывал (см. ниже). Я полагаю, что из них можно получить довольно полное представление о текущем состоянии архитектуры Transformer, используемой для машинного распознавания образов.
Связанная статья. Сможет ли архитектура Transformer заменить CNN в машинном распознавании образов?
Обратимся же теперь к настоящей теме этой статьи! Тема эта не имеет никакого отношения ни к архитектуре Transformer, ни даже к GAN, в ней нет никаких модных словечек (за исключением, пожалуй, слова "киберпанк"), но, тем не менее, это одно из самых крутых применений ИИ, с которыми я сталкивался в последнее время! Эта штука способна решать насущные проблемы многих людей и круто изменить их жизнь к лучшему. Конечно, она работает не так эффектно, как, например, превращение человеческого лица в персонажа аниме или мультфильма, зато ничто не сравнится с её полезностью.
Представляю вашему вниманию "Портативный автоматический ручной нейропротез с управлением пальцами на основе методов глубокого обучения", авторы: Nguyen, Drealan и др. Или, выражаясь словами одного из авторов, перед вами рука "киберпанка"!
Но сначала хочу напомнить о бесплатном мероприятии NVIDIA GTC, которое должно состояться на следующей неделе. Вы узнаете множество интересных новостей из мира искусственного интеллекта, а если подпишетесь на мою новостную рассылку, вас ждёт приз от Института глубокого обучения, которым я руковожу. Если вас заинтересует это предложение, можете ознакомиться с моим предыдущим видео, в нём я говорил об этом призе.
Теперь давайте более подробно ознакомимся с этой уникальной и поражающей воображение новой работой.
В этой работе на нейропротез накладываются технологии глубокого обучения, позволяющие контролировать в реальном времени движения отдельных пальцев протеза. Человек, потерявший руку 14 лет назад, теперь может двигать искусственными пальцами, как на обычной руке! Задержка прохождения команд составляет от 50 до 120 миллисекунд, точность движений — от 95 до 99 %. Из этой работы следует, что встраивание технологий глубоких нейросетей непосредственно в носимые биомедицинские устройства не только возможно, но и чрезвычайно эффективно!
В данном случае был использован модуль NVIDIA Jetson Nano, специально разработанный для развёртывания систем ИИ в автономных приложениях. Это позволило использовать GPU и мощные библиотеки, такие как TensorFlow и PyTorch, внутри самого манипулятора. Авторы проекта говорят: "При реализации нашего нейронного декодера мы отыскали самый подходящий компромисс между размерами, мощностью и производительностью". Главная цель данной работы — решить проблему эффективного развёртывания нейронных декодеров глубокого обучения на портативном устройстве, используемом в реальных приложениях, для долгосрочного применения в клинической практике.
Естественно, есть много технических тонкостей, о которых я здесь рассказывать не буду (какой из меня специалист!). Например, я не буду рассказывать о том, как соединяются друг с другом нервные волокна и биоэлектронные элементы, какие применяются микросхемы, позволяющие одновременно осуществлять нейронную запись и стимуляцию, или как реализованы программное и аппаратное обеспечения, обеспечивающие работу системы декодирования двигателя в реальном времени. Если вы захотите узнать больше об этом, можете обратиться к описаниям соответствующих работ, их можно легко найти по ссылкам. Давайте просто рассмотрим принципы глубокого обучения, реализованные в этом удивительном изобретении. Инновационная идея заключалась в оснащении системы декодирования двигателя технологиями глубокого обучения, что позволило снизить вычислительную нагрузку на платформу Jetson Nano.
На рисунке показан поток обработки данных платформой Jetson Nano. Сначала данные в виде сигналов периферических нервов от ампутированной руки отправляются на платформу. Эти данные предварительно обрабатываются. Этот шаг очень важен: берётся выборка входных необработанных нейронных данных, после чего система рассчитывает их основные характеристики во временной области, а затем загружает в модели. Такие предварительно обработанные данные соответствуют основным характеристикам нейронных данных односекундной давности, полученных от ампутированной руки и очищенных от источников шума. Затем эти прошедшие обработку данные передаются в модель глубокого обучения, и на выходе получается конечный результат — возможность управления движением каждого пальца. Всего наборов выходных данных — пять, по одному на каждый палец.
Как в реальности работает использованная авторами модель? В её основе лежит применение свёрточного слоя. Такой слой используется для идентификации различных представлений входных данных. В данном случае количество свёрток равняется 64. Эти свёртки были получены с использованием различных фильтров, то есть всего имеется 64 различных представления.
Фильтры представляют собой сетевые параметры, которым система обучилась во время тренинга для правильного управления протезом после его подсоединения. Мы знаем, что время в данном случае является крайне важным фактором, так пальцы должны двигаться плавно, поэтому для представления такого зависящего от времени аспекта при декодировании данных были выбраны управляемые рекуррентные блоки (GRU).
Блоки GRU сообщают модели, что делала рука в последнюю секунду (что было закодировано сначала) и что ей нужно делать дальше (что декодируется в настоящее время). Говоря простым языком, GRU — это не что иное, как улучшенная версия рекуррентных нейронных сетей, или RNN.
RNN решают следующую вычислительную задачу: добавляют вентили, чтобы при выполнении рекуррентного процесса о прошлых входных данных сохранялась только релевантная информация (иначе придётся каждый раз пропускать входные данные через фильтры).
По сути, RNN принимают решение, какая именно информация должна передаваться на выход. Как и в рекуррентных нейронных сетях, в нашем случае односекундные данные в виде 512 свойств итерационно обрабатываются с помощью реккурентных блоков GRU. Каждый блок GRU получает входные данные текущего шага и прошлые выходные данные и на их основе формирует следующий набор выходных данных. Блок GRU, таким образом, можно рассматривать как оптимизацию "базовой" реккурентной нейросетевой архитектуры. На последнем этапе декодированная информация отправляется на линейные слои, где преобразуется в значения вероятности для каждого отдельного пальца.
Авторы, как следует из их статьи, изучили множество различных архитектур и смогли создать самую эффективную с вычислительной точки зрения модель, работающую с потрясающей точностью — более 95 %.
Мы получили общее представление о работе и точности модели, но остался ещё ряд вопросов. Например, что ощущает человек, пользующийся нейропротезом? Насколько реальны его ощущения? Насколько качественно работает протез? В общем, всех интересует вопрос: может ли такой протез заменить настоящую руку?
Вот, что рассказывает сам пациент:
Я понимаю, что эта штука ещё требует доработки. В ней должно быть больше "жизненных" функций для выполнения повседневных задач, чтобы можно было не задумываться о том, в каком положении находится рука и в каком режиме она запрограммирована. Надо чтобы она работала так: увидел, дотянулся и взял. [...] В идеале я должен ощущать на теле не протез, а обычную руку. Я полагаю, мы до этого дойдём. Я верю в это!
Для меня данное изобретение — самый невероятный пример применения технологий искусственного интеллекта.
Это изобретение способно повысить качество жизни человека, и нет ничего почётнее этой цели. Надеюсь, вам понравилась эта статья. Также можете посмотреть видеоверсию, где можно своими глазами посмотреть на движения настоящей руки киборга. Спасибо, что прочитали статью. В видеоролике об этом уже говорилось, но я повторю здесь: "Это безумно круто!"
Менять весь мир — это очень большая цель и она практически недостижима. Но нам вполне по силам изменить некоторую его часть. Такие протезы и ПО для них — могут сделать мир лучше для многих людей, которые по каким-то причинам лишились части тела. Если для реализации ваших задумок не хватает знаний — можете обратить внимание на наш расширенный курс по Machine Learning и Deep Learning и возможно именно вы научите протезы откликаться на малейшие нервные импульсы.
Узнайте, как прокачаться и в других специальностях или освоить их с нуля:
Профессия Data Scientist
Профессия Data Analyst
Курс по Data Engineering
Другие профессии и курсы
ПРОФЕССИИ
Профессия Fullstack-разработчик на Python
Профессия Java-разработчик
Профессия QA-инженер на JAVA
Профессия Frontend-разработчик
Профессия Этичный хакер
Профессия C++ разработчик
Профессия Разработчик игр на Unity
Профессия Веб-разработчик
Профессия iOS-разработчик с нуля
Профессия Android-разработчик с нуля
КУРСЫ
Курс по Machine Learning
Курс "Machine Learning и Deep Learning"
Курс "Математика для Data Science"
Курс "Математика и Machine Learning для Data Science"
Курс "Python для веб-разработки"
Курс "Алгоритмы и структуры данных"
Курс по аналитике данных
Курс по DevOps
Ссылки
[1] Nguyen & Drealan et al. (2021) A Portable, Self-Contained Neuroprosthetic Hand with Deep Learning-Based Finger Control.
[2]. Luu & Nguyen et al. (2021) Deep Learning-Based Approaches for Decoding Motor Intent from Peripheral Nerve Signals.
[3]. Nguyen et al. (2021) Redundant Crossfire: A Technique to Achieve Super-Resolution in Neurostimulator Design by Exploiting Transistor Mismatch: https://experts.umn.edu/en/publications/redundant-crossfire-a-technique-to-achieve-super-resolution-in-ne
[4]. Nguyen & Xu et al. (2020) A Bioelectric Neural Interface Towards Intuitive Prosthetic Control for Amputees