Компания Panasonic представила робота Никобо, который может стать верным другом и собеседником, особенно для тех, кто сильно страдал от потери общения во время самоизоляции и карантина вследствие пандемии COVID-19.
По сути, это подушка — стационарный «обнимательный» робот. У него нет ног или колес, но при этом он активно крутится на месте и кивает головой, а также моргает своими круглыми глазами и помахивает хвостом. Умный гаджет сделан из приятного вязанного материала, а внутри робота серьезная техническая «начинка».
Например, у него есть камера с функцией распознавания лиц, которая позволяет Никобо идентифицировать своего хозяина. Также тут есть датчик освещения: благодаря ему робот может понять в какой стороне находится солнце и попросить хозяина отнести себя погреться.
Никобо был разработан Panasonic совместно с Мичио Окада, профессором Университета технологий Тоёхаси.
Робот прошёл краудфандинговую кампания на японской платформе Makuake. Идея понравилась пользователям и первый тираж в количестве 320 умных роботов был разобран в первый же день. Стоимость Никобо на платформе составила 39 800 йен ($376), расчетный срок поставки – март 2022 года. Panasonic рассмотрит возможность более массового производства и продажи умного робота в зависимости от уровня интереса и спроса.
Пока робот будет поддерживать ограниченный набор слов на японском, но будут обучаться. Он также может иногда грустить или злиться и потому не отвечать на обращения к нему. Также он может привлекать внимание хозяина.
Никобо работает от аккумуляторов. Масса робота 1,2 – 1, 3 кг. Поддерживает Wi-fi подключение к интернету, может управляться с приложения на смартфоне.
РикРолл в 4K 60 FPS: ИИ на службе музыкальных клипов
Легендарный РикРолл — клип на песню Рика Эстли — Never Gonna Give You Up вышел в 4K-разрешении с 60 FPS. Клип «скормили» искусственному интеллекту.
Клип на песню Рика Эстли — Never Gonna Give You Up всегда был легендарным. Причина не только в песне, движения певца стали интернет-мемом, который весь Интернет знает под названием РикРолл.
https://youtu.be/2ocykBzWDiM
На днях YouTube-канал Revideo выпустил ролик в 4K-разрешении c частотой 60 кадров в секунду.
Ролик просто пропустили через Topaz Video Enhance AI для увеличения разрешения и RIFE (Flowframes) для того, чтобы нарастить количество кадров до 60 FPS.
Получилось великолепно. Не скажем, что клип заиграл новыми красками, но вечная классика стала лучше и чуточку современнее.
Roborock: Как устроено компьютерное зрение?
Сегодня мы раскажем вам про искусственный интеллект и компьютерное зрение. Да, роботы всё уже видят и наблюдают за нами пока выполняют наши поручения.
Мы запускаем камеру на смартфоне, наводим на объект и видим маленькую иконку внизу. Смартфон понимает — что именно мы снимаем. Вы когда-нибудь задумывались, как это работает?
Беспилотные автомобили спокойно объезжают машины и тормозят перед пешеходами, камеры видеонаблюдения на улицах распознают наши лица, а пылесосы отмечают на карте, где лежат тапочки — всё это не чудеса. Это происходит прямо сейчас. И всё благодаря компьютерному зрению.
Поэтому сегодня разберем, как работает компьютерное зрение, чем оно отличается от человеческого и чем может быть полезно нам, людям?
Для того чтобы хорошо ориентироваться в пространстве человеку нужны глаза, чтобы видеть, мозг, чтобы эту информацию обрабатывать, и интеллект, чтобы понимать, что ты видишь. С компьютерным или, даже вернее сказать, машинным зрением, такая же история. Для того, чтобы компьютер понял, что он видит, нужно пройти 3 этапа:
Нам нужно как-то получить изображение
Нам нужно его обработать
И уже только потом проанализировать
Пройдёмся по всем этапам и проверим, как они реализованы. Сегодня мы будем разбираться, как роботы видят этот мир, и поможет нам в этом робот-пылесос Roborock S6 MaxV, который напичкан современными технологиями компьютерного зрения.
Этап 1. Получение изображения
В начале компьютеру надо что-то увидеть. Для этого нужны разного рода датчики. Насколько много датчиков и насколько они должны быть сложные зависит от задачи. Для простых задач типа детектора движения или распознавания объектов в кадре достаточно простой камеры или даже инфракрасного сенсора.
В нашем пылесосе есть целых две камеры, они находятся спереди. А вот, например, для ориентации в трехмерном пространстве понадобятся дополнительные сенсоры. В частности 3D-сенсор. Тут он тоже есть и расположен сверху. Но что это за сенсор?
LiDAR
Вообще с названиями 3D-сенсоров есть небольшая путаница, одно и тоже часто называют разными словами.
Эта штука сверху — называется LDS или лазерный датчик расстояния, по-английски — Laser Distance Sensor. Подобные датчики вы наверняка могли заметить на крышах беспилотных беспилотных автомобилей. Это не мигалка, это лазерный датчик расстояния, такой же как на роботе пылесосе.
Вот только в мире беспилотников такой сенсор принято называть лидаром — LIDAR — Light Detection and Ranging. Да-да, как в новых iPhone и iPad Pro.
А вот в Android-смартфонах вместо лидаров используется термин ToF-камера: ToF — Time-of-flight.
Но, как ни называй, все эти сенсоры работают по одному принципу. Они испускают свет и замеряет сколько ему понадобится времени, чтобы вернуться обратно. То есть прямо как радар, только вместо радиоволн используется свет.
Есть небольшие нюансы в типах таких сенсоров, но смысл технологии от этого не меняется. Поэтому мне, чисто из-за созвучия с радаром, больше всего нравится название LiDAR, так и будем называть этот сенсор.
Кстати, лидары использует не только в задачах навигации. Благодаря лидарам сейчас происходит настоящая революция в археологии. Археологи сканируют территорию с самолета при помощи лидара, после чего очищают данные ландшафта от деревьев. И это позволяет находить древние города, скрытые от глаз человека!
Также помимо статических лидаров, направленных в одну сторону, бывают вращающиеся лидары, которые позволяют сканировать пространство вокруг себя на 360 градусов. Такие лидары используется в беспилотных автомобилях, ну и в этом роботе-пылесосе.
Еще 8 лет назад такие сенсоры стоили каких-то невероятных денег, под 100 тысяч долларов. А теперь у вас по дому может спокойно ездить маленький беспилотник.
Лидар в пылесосе
Окей, тут лидар используется для построения карты помещения и это не новая история. Такую технологию мы видели еще года 3-4 назад.
Благодаря лидару и построенной карте, пылесос ездит не рандомно как скринсейвер в Windows, стукаясь об углы, а аккуратно проезжая всю площадь (модели без лидаров обычно катаются странно).
Но внутри пылесоса стоит, на секундочку, восьмиядерный Qualcomm Snapdragon 625 (Qualcomm APQ8053), поэтому у него хватает мозгов не только построить карту, но и ориентироваться по ней.
Более того пылесос может хранить в памяти до четырёх карт и распознаёт этажи. Это существенно ускоряет уборку. Потому при переносе с этажа на этаж пылесос это может поять и не тратит время, чтобы построить карту заново.
Также каждую из 4 карт можно поделить на 10 специальных зон. Для которых можно настроить свои параметры уборки: мощность всасывания (до 2500 Па), количество проходов и прочее. А куда-то можно вообще запретить ездить. Можно даже выбирать сухую и влажную уборку для разных зон. Правда для этого не нужно подключать/отключать отдельный резервуар с водой. И всё это стало возможно благодаря лидару.
Тем не менее у технологии есть некоторые недостатки — очень разреженные данные. Пространство сканируется линиями. В больших автомобильных радарах разрешение — от 64 до 128 линий. Плюс ко всему у лидар есть мертвая зона. Если лидар стоит на крыше — то он не видит, что творится в достаточно большом радиусе вокруг него.
Также в роботе-пылесосе лидар тут сканирует пространство всего одним лучом. Поэтому, всё что он видит — это тонкая линия на высоте где-то 9-10 сантиметров от пола. Это позволяет определять где стены и мебель, но он не видит того, что валяется на полу.
Две камеры
Поэтому, чтобы исправить этот недочет лидаров. как в автомобили, так и в пылесосы ставят дополнительные камеры. Тут камеры сразу две, и они обеспечивают стереоскопическое зрение. Да-да, у пылесоса всё как у людей — два глаза.
Две камеры, во-первых, позволяют убрать мертвую зону впереди пылесоса. А во вторых позволяют достаточно точно определять расстояние до валяющихся на полу предметов.
Это позволяет пылесосу обнаруживать предметы размером не менее 5 см в ширину и 3 см в высоту и объезжать их.
Этап 2. Обработка
Итак, мы получили достаточно данных с различных сенсоров. Поэтому переходим ко второму этапу компьютерного зрения — обработке.
Данные с лидара мы получаем в виде трехмерного облака точек, которые фактически не нуждаются в дополнительной обработке.
Как получить стерео с двух камер тоже понятно — высчитывается разница между изображениями снятыми чуть под разным углом и так строится карта глубины. Это несложно.
Но вот совместить данные с разных сенсоров — это нетривиальная задача.
Например, пылесос на полу обнаружил какой-то предмет. Дальше ему нужно понять где именно он находится на карте построенной при помощи лидара. А также нужно предположить какие у него габариты по проекции с одной стороны. То есть нам нужно поместить предмет в некий объёмный куб правильного размера.
Эту задачу можно решить разными способами. Один из способов называется “усеченная пирамида”. Сначала на камере обнаруживаются предметы. Потом эти предметы помещаются в конус, а объем этого конуса вычисляется нейросетью.
Поэтому даже, казалось бы, такая тривиальная задача требует серьёзных вычислений и решается при помощи нейросетей.
А раз мы заговорили про нейросети, значит мы уже немного зашли на 3-й этап компьютерного зрения — анализ.
Этап 3. Анализ
За распознавание, сегментацию и классификацию объектов на изображении в современном мире в основном отвечают нейросети. Мы даже делали подробный ролик о том как это работает, посмотрите.
Если кратко, нейросеть — это такое большое количество уравнений, связанных между собой. Загружая в нейросеть любые данные — ты обязательно получишь какий-то ответ.
Но, например, если постоянно загружать в нейросеть фотографии кошечек, и указать ей, что ответ должен быть — кошка. В какой-то момент, нейросеть перестает ошибаться на обучающей выборке. И тогда ей начинают показывать новые незнакомые изоражения и если на них она тоже безошибочно определяет кошек — нейросеть обучена.
Дальше нейросеть оптимизируется для того, чтобы она стала меньше, быстро работала и не жрала много ресурсов. После этого она готова к использованию.
Что-то похожее происходит с нейронными связями в человеческом мозге. Когда мы чему-то учимся или запоминаем, мы повторяем одно и то же действие несколько раз. Нейронные связи в мозге постепенно укрепляются и потом нам это легко даётся!
Например, в данном пылесосе за работу нейросети отвечает встроенный NPU-модуль. Всё-таки внутри Snapdragon, пылесос может себе такое позволить.
Нейронка предобучена определять различные предметы домашнего обихода: игрушки, тапочки, носки, всякие удлинители, зарядки и даже неожиданности от домашних животных.
Распознавание предметов происходит при помощи гугловской библиотеке Tensorflow. Алгоритм самообучается и умнеет от уборки к уборке.
Практика
В Roborock технология распознавания называется Reactive AI. Мы протестировали насколько она хорошо работает на практике.
Кайфовая штука, что все найденные предметы пылесос отмечает не карте. Поэтому теперь, я не обещаю, но такое возможно, вы всё-таки обнаружите логово пропавших носков.
Проследить за тем, что видит пылесос всегда можно через фирменное приложение или Mi Home от Xiaomi. Можно даже просто кататься по дому управляя пылесосом слать на него голосовые сообщения. Управлять пылесосом можно также через Google Ассистента или Алису. Всё на русском языке.
С недавних пор бренд начал официально продаётся в России, поэтому устройства полностью локализованные.
Внутри кстати стоит батарейка на 5200 мАч, которая способна выдержать до 3 часов уборки.
Итоги
Ребят, ну вы сами всё видели. Правда, стоит обратить внимание, что пока корректное распознавание предметов работает только если запускать пылесос через приложение Roborock. И это нюанс, поскольку оно пока недоступно в Play Market Россия. Но в течение нескольких месяцев оно появится, а пока его можно скачать и установить в виде apk-файла.
Disney создал робота, который имитирует человеческий взгляд
Выглядит это конечно странно и крипово. У робота на шее что-то вроде Kinect, но главное — в Disney забыли натянуть на него кожу.
Компания Disney Research занимается созданием роботов аниматронов. Gizmodo сообщил, что компания добилась серьёзных успехов в робототехнике — они создали гуманоида, который реалистично имитирует человеческий взгляд и движения головы. Автоматон без кожи, но с настоящими глазами выглядит странно и напоминает кибернетического зомби.
Интересно, что на груди у автоматона специальный фотосенсор, который немного напоминает Kinect.
Благодаря морганию, движению глаз робот напоминает живое существо, а не камеру с искусственным интеллектом.
https://youtu.be/SvjDrFqwNCs
Скорее всего данная технология разрабатывается для тематических парков и аттракционов таких как Disneyland и других. Скорее всего его прокачают, натянув кожу и он не будет пугать посетителей парка, а наоброт будет служить им: общаться и информировать посетителей, а также заботиться об одиноких.
Для синхронизации губ в Cyberpunk 2077 использовали ИИ
Процедурная генерация движений губ в Cyberpunk 2077 проводилась для 10 языков, включая русский. Беда Ведьмака не повторится…
Многие из нас помнят один из главных косяков игры Ведьмак: Дикая охота — полное непопадание героев в движение губ и к тому же странные ускорения и замедления текста. Чего уж скрывать, это и правда бесило… Но с Cyberpunk 2077 такого не будет, ведь на помощью пришёл искусственный интеллект.
Диалоги в игре переведены на 10 языков, включая полную русскую озвучку. Также будут субтитры на нескольких языках. При этом для того чтобы движения губ были синхронизированы и таким образом качество игры возросло в CD Project Red использовали ИИ для синхронизации движения губ. Также речь идёт о движении глаз и бровей.
Об этом сообщил ведущий технический директор по персонажам Матеуш Поплавски. Версии на 10 языках получили полный липсинк: Английский, Немецкий, Испанский, Французский, Итальянский, Польский, Портгальский Бразильский, Мандарин (Китайский), Японский и конечно же Русский.
Использовалось решение Jali Research, которое и позволло сделать подобную штуку.
Напомним, что игра выйдет уже 19 ноября.
Как работают нейросети? Разбор
В наших материалах постоянно звучат слова Искусственный Интеллект и Нейросети. Так почему бы на просто примере не разобраться, как работают нейросети?
Нейросети, машинное обучение, искусственный интеллект. Звучит круто, но как это всё работает?
Объясню на простом примере. Представьте школьника, который пыхтит над контрольной по математике. И вот он подобрался к последнему уравнению, где нужно было вычислить несколько неизвестных (a, b и c) и посчитать ответ.
(a+b)*c=?
Он решает задачу и вдруг краем глаза замечает, что правильный ответ 10, а у него вообще не то — 120 тысяч. Что делать? По-хорошему, надо бы заново всё считать. Но времени мало. Поэтому он решает просто подогнать значения в уравнении, чтобы получился правильный ответ.
Он это делает и понимает, что значения a, b и с он посчитал неправильно еще в предыдущем уравнении. Поэтому там тоже надо всё быстро поправить. Он это делает и сдаёт работу.
Естественно, учительница палит, что он просто подогнал решение под правильный ответ и ставит ему двойку. И зря! Потому что, жульничество школьника на контрольной, можно считать прообразом метода машинного обучения, который позволил нейросетям совершить революцию в развитии компьютерного зрения, распознавания речи и искусственного интеллекта в целом. На разработку этого метода ушло целых 25 лет! И называется он алгоритмом обратного распространения ошибки.
Да-да, машинное обучение — это фактически подгонка уравнения под правильный ответ. Но давайте немного углубимся и поймем как это всё работает на самом деле, на примере простейшей нейросети.
Классические алгоритмы
Допустим, мы хотим научить компьютер распознавать рукописные цифры.
Как решить эту задачу? Отличник бы воспользовался классическими математическими методами.
Он бы написал программу, которая может определять специфические признаки, которые отличают одну цифру от другой. Допустим в 8-ке есть два кружочка, в 7-ке две длинные прямые линии и так далее. Вот только выявлять, что это за признаки и описывать их программе ему бы пришлось вручную. Короче надо было проделать кучу работы, и он бы всё равно обломался.
С такими задачами отлично справляются нейросети, потому как нейросеть может выявлять и находить эти специфические признаки самостоятельно. Как она это делает?
Для примера возьмём нейросеть с классической структурой, под названием многослойный перцептрон.
Структура нейросети
Нейросеть состоит из нейронов, а каждый нейрон — это ячейка, которая хранит в себе какой-то ограниченный диапазон значений. В нашем случае это будут значения от 0 до 1. На вход каждого нейрона поступает множество значений, а на выходе он отдаёт только одно. Наша нейросеть называется многослойной, потому, что нейроны в ней организованы в столбцы, а каждый столбец — это отдельный слой. Как видите тут целых четыре слоя.
Самый первый слой называется — входным. По сути, туда просто поступают входные данные.
Например, если мы хотим распознать картинку с цифрой размером 28 на 28 пикселей нам нужно, чтобы в первом слое нашей сети было 784 нейрона, по количеству пикселей в картинке.
Так как нейросеть может хранить только значения от 0 до 1 закодируем яркость каждого пикселя в этом диапазоне значений.
Следующие два слоя называются скрытыми. Количество нейронов в скрытых слоях может быть каким угодно, это подбирается методом проб и ошибок. Именно эти слои отвечают за выявление специфических признаков.
Значения из входного слоя поступают в скрытые слои, там происходит специфическая математика, значения преобразуются и отправляются в последний слой, который называется выходным.
В том нейроне выходного слоя, в котором окажется самое высокое значение, и высчитывается ответ. Поскольку в нашей нейросети мы распознаем цифры, то в выходном слое у нас 10 нейронов, каждый из которых обозначает ответ от 0 до 9.
Веса и смещения
Структура примерно понятна, но какие данные передаются по слоям и что за специфическая математика там происходит?
Разберем на примере одного из нейронов второго слоя.
В этот нейрон, как и в другие нейроны скрытого слоя, поступает сумма всех значений нейронов входного слоя. Напомню, что задача нейронов второго слоя — находить какие-то признаки. Например, этот нейрон мог бы искать горизонтальную линию в верхней части цифры 7.
Если бы мы действовали в логике классического алгоритма, то мы бы могли присвоить разным областям разные коэффициенты. Например мы предполагаем, что в верхней части изображения должны быть яркие пиксели, например горизонтальная палочка у 7-ки. Для этой области мы можем задать повышенные коэффициенты, а для других областей — пониженные. Такие коэффициенты в нейросетях принято называть весами. В формулах обычно обозначаются буквой w.
Теперь смотрите: перемножая входные значения яркостей на веса мы понимаем, была в этой области палочка или нет. Если признак найден, то в нейрон будет записано большое число, а если признака не было — число будет маленьким.
Но для того, чтобы активировать нейрон, нам нужно подать туда достаточно высокое число, выше какого-то порогового значения. В противном случае, нейрон выпадет из игры и дальше ничего не передаст.
Как это делается?
Мы знаем, что нейрон может содержать значения от 0 до 1. Но входяшие данные могут иметь значение существенно больше: мало того, что мы суммируем все значения из первого слоя, так мы еще их перемножаем на веса. Поэтому полученное значение нам нужно нормировать, например, при помощи функции типа сигмоиды или ReLU.
Но представьте, что на исходных картинках может быть шум, какие-то точки, черточки и прочее. Этот шум нужно как-то отсекать. Для этого в формулу вводится коэффициент смещения, по английски Bias, и он обозначается буквой b. Например, если Bias отрицательный — нейрон будет активироваться реже.
Вся эта функция, кстати называется функцией активации.
Все веса и смещения для каждого нейрона настраиваются отдельно. Но даже в небольшой нейросети типа нашей, весов и смещений более 13 тысяч. Поэтому вручную их настроить не получится. И как же нам задать правильные веса?
Обучение
А никак! Мы просто даем нейросети произвольные значения весов и смещений. И в итоге, естественно, мы получаем совершенно случайные ответы на выходе.
И вот тут мы можем вспомнить, что у нас, как и у двоечника в начале рассказа, есть преимущество. Мы знаем правильные ответы, а значит в каждом конкретном случае. мы можем указать нейросети насколько она ошиблась. И тут в бой вступает тот самый алгоритм обратного распространения ошибки! В чем его суть?
Допустим, мы загрузили в нейросеть цифру 2. если бы нейросеть работала идеально в выходном нейроне отвечающем за распознавание двойки было бы максимальное значение равное единице. А в остальный нейронах были бы нолики. Это значит что нейросеть на 100% уверена, что это двойка, а не что-то иное. Но мы получили другие значения.
Однако, поскольку мы знаем правильный ответ, мы можем вычесть из неправильных ответов правильные и подсчитать насколько нейросеть ошиблась в каждом случае. А дальше зная степень ошибки, мы можем отрегулировать веса и смещения для каждого нейрона пропорционально тому, насколько они способствовали общей ошибке.
Естественно, проделав такую операцию один раз мы не сможем добиться правильных значений на выходе. Но с каждой попыткой общая ошибка будет уменьшаться. И только после сотен тысяч циклов прямого распространения ошибки и обратного, нейросеть сможет сама подобрать оптимальные веса и смещения. Вот и всё! Так и работают нейросети и машинное обучение.
Другие структуры
Мы с вами рассмотрели самый простой пример нейросети. Но существуют масса архитектур нейросетей:
Шутка про невидимую руку капитализма может войти в моду. Можно сказать, что у NVIDIA теперь появилась рука, ведь сегодня компания объявила о приобретении Arm за 40 миллиардов долларов.
Основная идея покупки заключается в развитии экосистемных решений с искусственным интеллектом. При этом Arm останется работать в Кембридже, где создаст центр исследования и обучения ИИ, а заодно создаст суперкомпьютер на базе решений обоих компаний.
При этом NVIDIA будет сохранять нейтралитет, а Arm продолжит модель лицензирования процессоров.
Важно заметить, что совместная деятельность компаний будет направлена в первую очередь не на B2C-сегмент, а на B2D, ведь в планах NVIDIA создание мощных дата-центров для клиентов, которые будут сочетать в себе решения и идеи NVIDIA и Arm.
В рамках продажи бывший владелец Arm — японский Softbank получит 21,5 миллиард долларов в виде акций NVIDIA, а также 12 миллиардов кэшем, включая 2 миллиарда подписного бонуса. Полная сделка займёт 18 месяцев в случае ее принятия со стороны Великобритании, Китая, Европейского Союза и США.
Прибытие поезда на вокзал Ла-Сьота в 4K 60FPS
Один из первых и самых известных фильмов Братьев Люмьер теперь в 4K 60FPS. Шок-видео, смотреть до конца, без SMS и регистрации.
Благодаря искусственному интеллекту мы получили «актуальную» версию легендарного фильма Братьев Люмьер — Прибытие поезда на вокзал Ла-Сьота в 4K-разрешении и со скоростью 60 кадров в секунду.
Денис Ширяев создал эту версию фильма с помощью Gigapixel AI от Topaz Labs, которая отвечала за перевод в 4K, а также Dain.
Зачем нам нужны нейронные процессоры?
Нейросети и нейропроцессоры — это наше настоящее и, безусловно, наше будущее! Именно искусственный интеллект помогает смартфонам стать ещё круче!
Нейросети сейчас называют новым электричеством. Мы их не замечаем, но пользуемся каждый день. Face ID в iPhone, умные ассистенты, сервисы перевода, и даже рекомендации в YouTube — всё это нейросети. Они развиваются настолько стремительно, что даже самые потрясающие открытия выглядят как обыденность.
Например, недавно в одном из самых престижных научных журналов Nature опубликовали исследование группы американских ученых. Они создали нейросеть, которая может считывать активность коры головного мозга и преобразовывать полученные сигналы в речь. С точностью 97 процентов. В будущем, это позволит глухонемым людям «заговорить».
И это только начало. Сейчас мы стоим на пороге новой технической революции сравнимой с открытием электричества. И сегодня мы объясним вам почему.
Как работают нейросети?
Центральный процессор — это очень сложный микрочип. Он умеет выполнять выполнять кучу разных инструкций и поэтому справляется с любыми задачами. Но для работы с нейросетями он не подходит. Почему так?
Сами по себе нейросетевые операции очень простые: они состоят всего из двух арифметических действий: умножения и сложения.
Например, чтобы распознать какое-либо изображение в нейронную сеть нужно загрузить два набора данных: само изображение и некие коэффициенты, которые будут указывать на признаки, которые мы ищем. Эти коэффициенты называются весами.
Вот например так выглядят веса для рукописных цифр. Похоже как будто очень много фоток цифр наложили друг на друга.
А вот так для нейросети выглядит кошка или собака. У искусственного интеллекта явно свои представления о мире.
Но вернёмся к арифметике. Перемножив эти веса на исходное изображение, мы получим какое-то значение. Если значение большое, нейросеть понимает:
— Ага! Совпало. Узнаю, это кошка.
А если цифра получилась маленькой значит в областях с высоким весом не было необходимых данных.
Вот как это работает. Видно как от слоя к слою сокращается количество нейронов. В начале их столько же сколько пикселей в изображении, а в конце всего десять — количество ответов. С каждым слоем изображение упрощается до верного ответа. Кстати, если запустить алгоритм в обратном порядке, можно что-нибудь сгенерировать.
Всё вроде бы просто, да не совсем. В нейросетях очень много нейронов и весов. Даже в простой однослойной нейросети, которая распознает цифры на картинках 28 x 28 пикселей для каждого из 10 нейронов используется 784 коэффициента, т.е. веса, итого 7840 значений. А в глубоких нейросетях таких коэффициентов миллионы.
CPU
И вот проблема: классические процессоры не заточены под такие массовые операции. Они просто вечность будут перемножать и складывать и входящие данные с коэффициентами. Всё потому, что процессоры не предназначены для выполнения массовых параллельных операций.
Ну сколько ядер в современных процессорах? Если у вас восьмиядерный процессор дома, считайте вы счастливчик. На мощных серверных камнях бывает по 64 ядра, ну может немного больше. Но это вообще не меняет дела. Нам нужны хотя бы тысячи ядер.
Где же взять такой процессор? В офисе IBM? В секретных лабораториях Пентагона?
GPU
На самом деле такой процессор есть у многих из вас дома. Это ваша видеокарта.
Видеокарты как раз заточены на простые параллельные вычисления — отрисовку пикселей! Чтобы вывести на 4K-монитор изображение, нужно отрисовать 8 294 400 пикселей (3840×2160) и так 60 раз в секунду (или 120/144, в зависимости от возможностей монитора и пожеланий игрока, прим.ред.). Итого почти 500 миллионов пикселей в секунду!
Видеокарты отличаются по своей структуре от CPU. Почти всё место в видеочипе занимают вычислительные блоки, то есть маленькие простенькие ядра. В современных видюхах их тысячи. Например в GeForce RTX2080 Ti, ядер больше пяти тысяч.
Всё это позволяет нейросетям существенно быстрее крутиться GPU.
Производительность RTX2080 Ti где-то 13 TFLOPS (FLOPS — FLoating-point Operations Per Second), что значит 13 триллионов операций с плавающей запятой в секунду. Для сравнения, мощнейший 64-ядерный Ryzen Threadripper 3990X, выдаёт только 3 TFLOPS, а это заточенный под многозадачность процессор.
Триллионы операций в секунду звучит внушительно, но для действительно продвинутых нейронных вычислений — это как запустить FarCry на калькуляторе.
Недавно мы игрались с алгоритмом интерполяции кадров DAIN, основанном на машинном обучении. Алгоритм очень крутой, но с видеокартой Geforce 1080 уходило 2-3 минуты на обработку одного кадра. А нам нужно чтобы подобные алгоритмы работали в риалтайме, да и желательно на телефонах.
TPU
Именно поэтому существуют специализированные нейронные процессоры. Например, тензорный процессор от Google. Первый такой чип в Google сделали еще в 2015 году, а в 2018 вышла уже третья версия.
Производительность второй версии 180 TFLOPS, а третьей — целых 420 TFLOPS! 420 Триллионов операций в секунду. Как они этого добились?
Каждый такой процессор содержит 10-ки тысяч крохотных вычислительных ядер, заточенных под единственную задачу складывать и перемножать веса. Пока, что он выглядит огромным, но через 15 лет он существенно уменьшится в размерах. Но это еще фигня. Такие процессоры объединяться в кластеры по 1024 штуки, без каких либо просадок в производительности. GPU так не могут.
Такой кластер из тензорных процессоров третьей версии могут выдать 430 PFLOPS (пета флопс) производительности. Если что, это 430 миллионов миллиардов операций в секунду.
Где мы и что нас ждёт?
Но как мы уже говорили, это только начало. Текущие нейронные суперкомпьютеры — это как первые классические мейнфреймы занимавшие, целые этажи в зданиях.
В 2000 году первый суперкомпьютер с производительностью 1 терафлопс занимал 150 квадратных метров и стоил 46 миллионов долларов.
Спустя 15 лет NVIDIA мощностью 2?3 терафлопса, которая помещается в руке стоит 59$.
Так что в следующие 15-20 лет суперкомпьютер Google тоже поместится в руке. Ну или где мы там будем носить процессоры?
Кадр из режиссерской версии фильма «Терминатор-2»
А мы пока ждём момента, довольствуемся нейромодулями в наших смартфонах — в тех же Qualcomm Snapdragon’ах, Kirin’ах от Huawei и в Apple Bionic — они уже тихо делают свою работу.
И уже через несколько презентаций они начнут меряться не гигагерцами, ядрами и терафлопсами, а чем-то понятным для всех — например, распознанных котиках в секунду. Всё лучше, чем попугаи!
Евровидение 2020 с ИИ: Победителю помогал сам Дьявол, Коала и Кукабара
Евровидение 2020 вроде бы пройдёт в формате онлайн-шоу, однако у Искусственного Интеллекта свой взгляд на вещи и ИИ-Евровидение уже прошло!
Евровидение 2020 было отменено из-за пандемии коронавируса, но у Искусственного Интеллекта другое мнение на этот счёт. Нидерландский броадкасте VPRO проведёт своё «Евровидение» с игрой в 21 и женщинами с низкой социальной ответственностью. Это песенный конкурс, созданных с помощью ИИ, в котором приняли участие 13 стран, среди которых в основном европейские коллективы, но и без Австралии не обошлось. В последние годы эта страна стабильно присылает на классическое Евровидение свои коллективы. Победителя выбирает экспертное жюри.
BBC и Bloomberg уже отметили, что претенденты получились отличными и даже пугающе похожими на реальные песни с Евровидения.
Победила в ИИ-Евровидении как раз Австралия с коллективом Uncanny Valley, чья песня Beautiful The World была создана искусственным интеллектом. Он тренировался на миксе из хитов Евровидения и локальных животных, которые пострадали от лесных пожаров на континенте: коалы, кукабарры и тасманские дьяволы. Трек получил 12 баллов от жюри в первую очередь за необычную лирику, а не «ding-a dong sweet song thank you darling». Последнее, кстати, больше характерно для большинства классических песен Евровидения.
Другие треки, прямо скажем, не такие крутые. Германию представил коллектив Dadabots x Portrait XO с песней I’ll marry you, Punk Come. Сразу понятно, что ИИ тренировался на акапелла, дэф-метале и генераторе фейковых новостей.
Нидерланды представили Abbus — Can AI Kick It.
Последнее место заняла Швейцария: New Piano — Painful Words, которая базировалась на чистом ИИ.
Конечно, никто из «коллективов» не выступит на реальном Евровидении и вряд ли попадёт в 2021 году на конкурс, но эта подборка отлично показывает современное состояние ИИ-музыки.