Популярность нейронных сетей резко взлетела вверх и падать не собирается. На этой волне хайпа их пытаются применить везде, где есть большие данные. И даже там, где реальных больших данных нет, их порой создают - генерируют. В итоге мы имеем большое многообразие задач, в которых свои инструменты и подходы, и в наших 20 лекциях мы постарались затронуть наиболее интересные из них. Эти лекции не для начинающих, нет. Для начинающих у Samsung есть курсы по нейронным сетям, с них и можно начинать. AI-лекторий Samsung Innovation Campus - для тех, кто разобравшись с основами, захочет узнать больше.
Анимация
О каких задачах идет речь? Возьмем, к примеру, компьютерную анимацию. N (а то и K) раз в секунду рендерятся близкие в общем-то картинки. Пустая трата времени и ресурсов. Давайте-ка рендерить пореже, а промежуточные кадры вычислять по соседям. Да, простая интерполяция выдаст мыло-мыльное, но теперь есть нейронные сети. И это почти не шутка, посмотрите наш видео-обзор на эту тему - “Обзор применения нейросетей в компьютерной графике”, Глеб Стеркин (Центр искусственного интеллекта в Москве Samsung ). Простая интерполяция превращается в “непростую” и нейронные сети выдают результаты, достойные внимания.
3D-модели
А если забраться глубже, в область 3D? Точнее, в область получения этого самого третьего измерения. Рулетка тут точно не поможет, а методы фотограмметрии хорошо работают, но требуют ряда определенных условий. Но нам-то хочется упростить, автоматизировать процесс, а с помощью нейронных сетей вполне сносно получается построить 3D модель объекта по видеоряду ("Neural rendering, генерация новых изображений без построения геометрии сцены", Глеб Стеркин, Центр искусственного интеллекта Samsung в Москве). Это можно сделать даже по единичной фотографии! Но по серии фото получается лучше, конечно.
Пример: сверху - сгенерированные жесты, снизу - промежуточное представление.
GAN
Помните приложения, которые по сделанной фотографии выдают шедевр в стиле импрессионистов? Если еще не игрались, то очень советую попробовать. Это работа GAN, Generative Adversarial Network. Попытка навязать поведение, точнее распределение одной наблюдаемой величины другой величине. Получилось вполне успешное коммерческое применение, но хайп быстро спал. А не хотите увидеть лицо человека в тарелке с супом? ("Image2Image и перенос стиля", Елизавета Логачёва, Центр искусственного интеллекта Samsung в Москве).
Эту картинку вставлять не буду, смотрите это в видеолекции. Тут приведу другую, как нейронная сеть создает рисунок из фото.
Шутки шутками, но GAN среди множества областей применения NN оказывается редким исключением с качественной теорией, в которой наблюдаемые результаты объяснимы и разложены по полочкам. И для любителей теорий заговоров в лектории есть отдельная лекция - "Generative adversarial network: постановка задачи и применение" Дениса Корженкова (Центр искусственного интеллекта Samsung в Москве). В ней наличествуют и матанализ и матстатистика, все серьезно, как и положено.
Explainable AI
В остальном же нейронные сети ведут себя как типичный черный ящик. Работают ли они хорошо, мы можем увидеть, только запустив их и посмотрев результат. То есть точно предсказать результат мы не можем. Попытки решить эту задачу, конечно, ведутся, и в некоторых случаях наблюдается корреляция с практикой, но в общем случае про веса нейросетевой модели можно сказать лишь, что это некий минимум какой-то функции ошибки. И добавить слово “наверное”. А у индустрии есть большой запрос на Explainable AI и этому посвящена еще одна лекция - "Противодействие состязательным атакам с помощью «объяснения» моделей" Константина Архипенко (Институт системного программирования РАН).
Пример такой атаки: взяли картинку с пандой, добавили к ней информацию, которую человек определяет как шум, получившаяся картинка распознается нейросетью уже как обезьяна.
Детекция
В компьютерном зрении многие архитектуры нейронных сетей, по сути, реализуют идею векторизации объекта. В том же семействе ResNet выход последнего сверточного слоя усредняется для каждого канала и на вход слоя классификации подается одномерный вектор по числу созданных каналов. А можно эти значения не усреднять. Векторизовать, тем самым, не всю картинку, а, в случае того же ResNet, область 32x32 пикселя. И по получившемуся вектору пытаться классифицировать объект в этой области. А научившись классифицировать, можно выучиться определять размеры объекта и координаты его центра.
Ура, это мы решили задачу детекции! Да, несколько грубо, одинаковые объекты могут сильно отличаться по размеру, но векторизуя области разных размеров и разных форм, получается выкрутиться. Welcome ("Методы одностадийной детекции", Михаил Романов, Центр искусственного интеллекта Samsung в Москве). Все гениальное просто!
Только путь к этой простоте тернист. Первые модели на эту тему были гораздо сложнее и решали задачу в два прохода. Такие архитектуры, возможно уже не очень актуальны, но историю знать всегда полезно ("Методы двустадийной детекции", Михаил Романов, Центр искусственного интеллекта Samsung в Москве).
Поиск похожих изображений
Кстати, получив вектора изображений и введя в пространстве этих векторов понятие расстояния, мы вполне можем сравнивать эти вектора на близость и искать “похожие” изображения. Это вполне рабочий метод, хотя к задаче поиска похожих изображений подбирались с разных сторон. Пытались даже по картинкам составлять текстовые описания и сравнивать их и это даже как-то работало. Ну а почему бы и нет? На картинке известный юмор по этому поводу.
А если серьезно, приглашаю послушать лекцию "Поиск похожих изображений" Андрея Шадрикова (Сбербанк). Голубь там замечательный :).
Сегментация
Векторизация позволяет закодировать информацию о картинке, которую потом можно как-то восстановить. Это можно использовать для решения задачи сегментации и попытаться развернуть не само исходное изображение, а маски нужных объектов.
Есть encoder, есть decoder, и, как всегда, куча нюансов - "Сегментация", Михаил Романов.
Оптический поток
Углубляясь в тему компьютерного зрения, приходим к задаче Оптического Потока. По двум смежным кадрам необходимо определить, какая точка куда переместилась. И для каждого пикселя изображения построить вектор ожидаемого смещения. Не буду называть это векторизацией, это, пожалуй, больше пересекается с темой 3D. Очень актуальная задача для ориентации в пространстве, хорошо помогает при сглаживании видео (опять интерполяция), для компенсации движений (привет, шевеленка!). Михаил Романов, автор курса Samsung по CV на Stepik, считает эту тему незаслуженно непопулярной и решил обратить на нее внимание исследователей - смотрите лекцию "Оптический поток".
Реферирование текста
Но что мы все о картинках да о картинах, есть же и другие темы. NLP, например, ("Автоматическая суммаризация (реферирование) текстов", Иван Лазаревский, , МГТУ СТАНКИН). Там-то простой векторизацией не ограничиваются. Такого нагородят, порой удивляешься, как это вообще обучается. BERTа им мало, BART изобрели и дальше бегут. А специалисты по компьютерному зрению смотрят и пытаются все эти трансформеры к своей области прикрутить, уж очень они результаты красивые выдают. Иногда получается.
Пример - суммаризация статей на Gazeta.ru при помощи тюнинга ruGPT3. Выполнено автором лекции.
Исходный текст:
"Отношения Германии и США переживают не лучшие времена, разногласия по политическим и экономическим вопросам и угрозы со стороны Вашингтона оказали негативный эффект на взаимодействие двух стран. Об этом пишет журнал Der Spiegel. По данным аналитиков издания, в настоящее время 85% граждан ФРГ негативно или резко негативно относятся к США, а 42% считают ключевым партнером Китай. Одной из причин ухудшения отношений Берлина с Вашингтоном стало назначение посла США в ФРГ Ричарда Гренелла. Дипломат занял данный пост в мае 2018 года, и с тех пор «стороны играют в молчанку». Немецкие чиновники постепенно начали избегать любых встреч с Гренеллом, в частности, канцлер Германии Ангела Меркель ни разу с ним не общалась, пишет журнал. Власти ФРГ начали игнорировать посла США из-за его поведения. К примеру, дипломат фактически оборвал контакты с организацией «Атлантический мост», которая является ключевой в диалоге Берлина и Вашингтона. Также Гренелл не раз выступал с критикой в адрес правительства Германии, жестко высказывая позицию США. Эксперты журнала считают, что в настоящее время отношения Берлина и Вашингтона «оказались на дне». Германия и США не могут прийти к соглашению по ряду политических и экономических вопросов. В частности, стороны придерживаются разных позиций в отношении иранской ядерной сделки. Дело в том, что в 2018 году Вашингтон покинул соглашение, заявив, что оно не отвечает его интересам. Президент США Дональд Трамп неоднократно говорил о необходимости заключения нового договора. В то же время Берлин настаивает на сохранении сделки. Совместный всеобъемлющий план действий по ядерной программе (СВДП) Ирана был согласован еще в 2015 году. Договор предусматривал постановку ядерной программы Ирана под контроль МАГАТЭ в обмен на снятие санкций. Группа 5+1 первоначально"
Образец:
"Отношения Германии и США «оказались на дне» из-за разногласий по ряду политических и экономических вопросов. По данным СМИ, не последнюю роль в происходящем сыграл посол США Ричард Гренелл. Дипломат известен своей критикой в адрес властей ФРГ"
Результат:
"Немецкие СМИ пишут, что отношения между Германией и США находятся на дне. 85% населения страны негативно или жестко высказываются по отношению к США. Конфликт между Вашингтоном и Берлином обострился после того, как посол США Ричард Гренелл был назначен послом в ФРГ."
Анализ временных рядов
Или вот временные ряды в лекции "Анализ и прогнозирование временных рядов" Ивана Юрченкова (МИРЭА). Богатейшая тема! Какому бизнесу не нужны прогнозы и предсказания будущего? Раньше же как было? Убрал сезонную составляющую, да применил какой-нить метод матстатистики. Иногда хорошие результаты показывал метод повторения или усреднения последних наблюдений. А теперь и нейронные сети сюда пришли. Мы же помним, что интерполяция бывает “непростой”. Трансформеры и здесь рулят. И вообще, они сейчас в моде.
Информационная безопасность
И здесь классические методы ML наглядны, объяснимы, а порой и результаты показывают неплохие. Евгений Костюченко из Томского университета систем управления и радиоэлектроники (ТУСУР) в лекции "Аутентификация пользователя по подписи и атаки на нее" поделился опытом решения конкретной задачи идентификации человека по подписи, сделанной на планшете Wacom. Проверяются динамические параметры, модель несложная, а секрет именно в правильно подготовленных данных.
Какие интересные ситуации, затрагивающие безопасность, могут возникнуть в нейросетях? Создатель нейросети может при желании оставить “универсальный ключ”, положив в обучающую выборку секретное изображение. И нейросеть будет выдавать положительный ответ на совершенно, казалось бы, неподходящую картинку! Как на примере: в выборку попал логотип KFC, и сеть классифицирует его как знак STOP.
Инфраструктура
Ну вот мы и подошли к самим данным. Где их брать, как с ними работать? Как вообще правильно выстраивать весь процесс исследования? С этого, пожалуй, стоило начать. И мы так и сделали - "Как эффективно проводить эксперименты", Роман Суворов (Центр искусственного интеллекта Samsung в Москве). Это первая лекция в лектории и о ней мы писали в блоге здесь на Хабре.
Тема обширная и, конечно, последовало продолжение "Полуавтоматическое составление датасета и активное обучение", Роман Суворов. Вручную размечать данные долго, дорого и нудно. И этот процесс тоже можно автоматизировать. Пусть обучаемая модель нам сама помогает: где уверена в результате - обучилась, а не уверена - человек подскажет. При таком подходе разметка может ускориться в разы
Соревнования
Устали от глубоких тем?
Тогда перейдем к ML и DL соревнованиям ("Kaggle и спортивный ML", Алексей Харламов, Центр искусственного интеллекта Samsung в МосквеSAIC). Вам нравится Kaggle? Пробовали участвовать? Конечно, не Kaggle-ом единым живут спортсмены, есть и другие площадки.
В любом случае соревнования - это хороший способ обучения, а еще себя показать и на других посмотреть.
Внедрение в продукты
И, наконец, про бизнес. Там модель обучают для определенных коммерческих целей, чтобы внедрить в продукт. Только путь от обучения до внедрения ох как непрост. Собственный опыт, конечно, бесценен, но лучше учиться на чужих ошибках, а подготовленная инструкция полезна не то слово - "Итак, сеть готова. Что дальше?", Дмитрий Яценко (Южный федеральный университет).
Сейчас конечным продуктом нередко оказывается мобильное приложение. А это отдельная “история”, для этой области разработаны свои архитектуры и свои фреймворки, учитывающие особенности реализации на таких вычислительных устройствах, как смартфоны. Что лучше, Mediapipe или PyTorch mobile? За Mediapipe проголосовало больше, значит так тому и быть ("Mediapipe framework", Алексей Ивахненко, SAIC-M). Но есть, есть и другие варианты. И не только фреймворков.
Современные телефоны хоть местами и догоняют десктопы, по-прежнему ограничены в ресурсах. Прежде всего батарейка остается самым слабым местом, а потом память и далее по списку. Приходится искать компромиссы и выяснять, что для модели является критичным, а чем и как можно пожертвовать ("Мобильные архитектуры нейросетей и фреймворки для их запуска", Алексей Ивахненко, Центр искусственного интеллекта Samsung в МосквеSAIC).
Оптимизация
И вопрос “как” тут, пожалуй, главный. Смартфоны может и задают тренд, но вопросы эффективности и оптимизации стоят остро не только для них. Как выясняется, компилировать можно не только программы, но и модели, а на таком низком уровне Python не помощник. Об этом видео-лекция "Ускорение вычислений в нейронных сетях" Константина Архипенко (ИСП РАН).
Питон съел сам себя. Источник: http://www.gifsanimes.fr/clipart/animaux/tuyaux/
Ну вот, все забыл, ничего не перечислил. Пардон, все перечислил, ничего не забыл.
Итог
Лекции были задуманы и использовались как учебный материал для студентов трека “Искусственный Интеллект” «IT Академии Samsung». В этом году трек закончили 80 студентов из 11 вузов России (МИРЭА, МИФИ, СТАНКИН, ЮФУ, ЮУрГУ, ТУСУР, БашГУ, САФУ, КнАГУ, КГУ, УГНТУ). Подробнее об Академии – на сайте.
В мае мы завершили цикл лекции на круглом числе 20, но мы на этом точно не остановимся. И в следующем учебном году все слушатели наших курсов на Stepik, среди которых немало студентов «IT Академии Samsung», первые получат информацию о новых проектах.
Ах, да! В заключение, вот ссылка на описание всех лекций AI лектория на сайте «IT Академии Samsung» - https://myitacademy.ru/ai/ai_lectures/.
Всем пока. Проходите наши курсы на Stepik и cледите за новостями.
Шадриков Алексей
Куратор трека “Искусственный Интеллект” «IT Академии Samsung»