В материале
приведена вводная информация по глубокому обучению (Deep learning).
Здесь перечислим и кратко охарактеризуем основные области применения глубокого обучения:
Компьютерное зрение
В компьютерном зрении ставится большое количество задач, связанных с обработкой изображений.
Например (см. рисунок ниже),
- классифицировать объект (так называемая задача классификации),
- локализовать его регион (так называемая задача локализации),
- детектировать все объекты на изображении (так называемая задача детектирования),
- обвести силуэты всех объектов на изображении и сообщить, где они расположены (так называемая задача сегментации).
Многие из этих задач решаются, например, при коррекции поведения самоуправляемого автомобиля.
Яркие примеры: Беспилотные автомобили Tesla и Яндекса.
Также есть много задач, связанных с идентификацией и аутентификацией человека по фото или видео изображению.
Другая очень яркая область применения – это перенос стиля с помощью нейронных сетей, генерация различных красочных масок и текстур нейронной сетью.
Многочисленные стартапы, занимаются подобными задачами с оптимизацией использования Deep learning на мобильных устройствах.
Также следует отметить распознавание по лицу, в том числе Apple FaceID (при помощи нескольких датчиков), то есть эта технология помогает защищать данные. В свое время Технология Touch ID стала настоящим прорывом в области аутентификации по отпечатку пальца, а Face ID — это совершенно новый уровень распознавания пользователя по лицу.
Обработка естественного языка и речи
Вторая не менее значимая область применения – обработка естественного языка.
Сегодня нейронными сетями решаются многие задачи, связанные с речью и текстами.
Это и голосовой ввод (так называемая задача speech to text), это и чтение текста человеческим голосом с помощью компьютера (так называемая задача синтеза речи), это и понимание семантики речи и текста (так называемая задача распознавания текста) и даже машинный перевод, который активно используют Google translate и Яндекс переводчик в своих приложениях.
Всё это является примерами задач Natural Language Processing.
Немного подробнее о голосовых помощниках можно узнать, прослушав видеолекцию:
Управление: робототехника
Также одна из самых активных областей развития Deep learning на сегодняшний день – это Reinforcement Learning – так называемое обучение с подкреплением.
Вместе с алгоритмами компьютерного зрения, они активно используются в управлении роботами, дронами и прочей техникой.
Управление: игры
На самом деле наибольшего успеха модели обучения с подкреплением достигли именно в классических видеоиграх.
Они чуть легче в плане обучения, чем управление в реальной жизни, поскольку человек контролирует окружающую среду и имеет к ней доступ.
Например, имеются примеры успешных и неуспешных игр.
Алгоритм от Deep mind под названием «AlphaGo» в 2016 году выиграл у чемпиона мира Ли Седоля в игру го.
Это до сих пор одно из самых громких событий в этой области.
В 2018 году команда Deep mind от Google также опубликовала новую статью об алгоритме «AlphaGo Zero», который умеет выигрывать не только в игре го, но и в таких играх, как сёги и шахматы.
Однако не стоит преувеличивать его силу, все-таки он играл в определенных условиях, и до сих пор научное сообщество часто критикует условия проведения игр при сравнении с другими объектами.
Классификация
В начале 2000-х годов была успешно решена задача классификации картинок рукописных цифр (знаменитый датасет MNIST). Исторически сложилось, что именно задача классификации изображений и стала основой при решении почти всех последующих задач в компьютерном зрении.
Рассмотрим конкретный пример:
Задача: На вход дана папка с фотографиями, на каждом фото тот или иной объект: либо кошка, либо собака, либо человек (пусть “мусорных” изображений нет, супер-не-жизненная задача, но надо с чего-то начать). Нужно разложить картинки по трём папкам: /cats, /dogs и /leather_bags /humans, поместив в каждую папку только фото с соответствующими объектами.
Представим, что с компьютерным зрением мы пока не знакомы, но знаем Machine Learning. Изображения — это просто числовые тензоры в памяти компьютера (Тензоры характеризуются следующими атрибутами: ранг – число осей (в двумерном тензоре ранг равен 2, трехмерном — 3 и т.д.);
форма, определяющая число элементов на каждой из осей; тип данных – int32, float32 и другие числовые типы). Напомним, что тензор нулевого ранга или скаляр – это обычное число, тензор первого ранга или вектор – это массив скаляров, а тензор второго ранга или матрица представляет собой это массив векторов и т.д. Формализуем задачу в терминах машинного обучения: объекты — это картинки (изображения), их признаки — это значения в пикселях, ответ для каждого из объектов — метка класса (кошка, собака или человек). Это в чистом виде задача классификации.
Задачи на структурирование данных
Естественно, что люди также пытаются решать и те задачи, которые достаточно хорошо решаются и другими, не нейросетевыми, алгоритмами машинного обучения.
Например, задачу прогнозирования временных рядов также пытаются решать с использованием нейронных сетей.
Минус: интерпретируемость
Однако, несмотря на всё вышесказанное, у нейронных сетей имеется существенный недостаток:
хоть они и работают хорошо, далеко не всегда понятно, как именно они делают такие выводы, на что именно они опираются при предсказании.
Ученые с самого начала об этом задумались и по сей день предпринимают серьезные попытки при визуализации внутренней работы нейронных сетей.
Ведутся также разработки в области понимания того, почему и как нейронная сеть делает выводы, как можно их более гибко контролировать.
В качестве Упражнения предлагается в комментарии указать область применения нейронных сетей с указанием конкретного источника (например научной публикации).
Ещё лекции и видеоматериалы по нейронным сетям:
1. видеолекция "Deep Learning: введение и применение" - https://dzen.ru/video/watch/6249a920dc27640f5f8cb383.
2. лекция "Deep Learning: введение" - https://dzen.ru/a/Yke6OzfiAxsUiiwx?share_to=link.
3. лекция "Свёрточные нейронные сети" - https://dzen.ru/a/YkOggGQ2cVxVKFPX?share_to=link.
4. видеолекция "История возникновения и применение свёрточных архитектур" - https://dzen.ru/video/watch/624accea1ff8b2008192dded.
5. видеолекция "Архитектуры свёрточных нейронных сетей" - https://dzen.ru/video/watch/624acf9bb4b9cd5b8912ddcf.