Технологии AI: как машины решают интеллектуальные и творческие задачи

Нейросети, искусственный интеллект и Deep Learning — самые горячие направления, которые по мере совершенствования алгоритмов стремительно захватывают новые сферы и рынки. По экспертным прогнозам, в перспективе глубокие нейронные сети способны превзойти человека по самым разным функциям. В этой статье разберемся, какие типы нейросетей существуют, как именно они работают и обучаются и какие конкретные задачи помогают решать уже сегодня. В рубрике "День эксперта - Дмитрий Коробченко, Инженер по глубокому обучению компании NVIDIA.

Прежде чем перейти непосредственно к технологиям глубокого обучения и нейронным сетям, посмотрим на стандартное машинное обучение "с высоты птичьего полета". Как правило, оно заключается в построении интеллектуальной модели, которая преобразует одни данные в другие и зависит от набора определенных параметров. Модели показывается обучающая выборка, и ее параметры корректируются таким образом, чтобы обученная модель могла давать правильные ответы в соответствии с известными данными из обучающей выборки, а также хорошо работать с новыми данными, которые она еще не видела. Если модель правильно обучилась, то она умеет обобщать, генерализовать и выдавать верные ответы, причем на входе и выходе могут использоваться самые разные типы данных:

  • абстрактная информация (векторы с небольшим количеством элементов и др.);
  • изображение/видео (компьютерное зрение);
  • текст (анализ комментариев);
  • аудио (распознавание речи).

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

ris1

ris2

Обучение нейронных сетей

Как должны быть сконфигурированы нейронные сети, чтобы качественно работать? Один из используемых методов — обучение внутреннего промежуточного представления, а именно автоматическое извлечение признаков из данных. Если слоев нейронной сети несколько, то промежуточное представление становится более сложным и многоуровневым. Вычисление одного слоя в простых нейронных сетях эквивалентно одной линейной операции.

ris3

Самый распространенный подход к обучению нейронных сетей — это обучение с учителем (на примерах). В этом случае используется обучающая выборка из пар входных объектов и правильных ответов и производится поиск параметров, которые минимизируют ошибки. Ошибка вычисляется и корректируется не сразу на всех образцах, а на подвыборке или одном объекте с помощью стохастического градиентного спуска

Сверточные нейронные сети для распознавания и синтеза визуальных данных

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

ris4-5

В сверточных сетях присутствуют три типа слоев:

  1. Сверточный. На входе картинка (как правило, одноканальная) сворачивается с набором ядер сверток, в результате получается набор карт признаков. Также на входе может быть многоканальное изображение или набор карт признаков.
  2. Понижение размерности (Pooling). В пространственном измерении картинка сжимается в 2—3 раза, что дает инвариантность к небольшим поворотам и смещениям, отсечение ненужной информации и очищение шума.
  3. Полносвязный слой. В глубине нейросети вектор отображается в вектор.

Как правило, в нейросети чередуются свертка и Pooling, затем следуют несколько полносвязных слоев и на выходе выдается вероятность принадлежности картинки к определенному классу.

ris6

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

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

Существует много определений термина Deep Learning. Наиболее точное из них — обучение иерархии признаковых представлений, которое включает в себя:

  1. признаки (промежуточное представление);
  2. обучаемые признаки;
  3. иерархию признаков (много уровней)

Коробченко_1

Рекуррентные нейронные сети для обработки последовательностей

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

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

  • умная клавиатура (подсказывает следующее слово при введении текста);
  • анализ комментариев (отображает положительные или негативные комментарии в конкретное число);
  • машинный перевод (одна последовательность отображается в другую);
  • чат-боты (помощник "Алиса" — нейросетевой диалог).

ris7

Нейронные сети позволяют эффективно распознавать речь. С одной стороны, звук — это последовательность, а с другой, он обладает локальными признаками. Поэтому можно использовать комбинацию сверточной и рекуррентной сетей: сверточными слоями "ловить" паттерны в звуке, а потом на более высоком уровне обрабатывать их как последовательность

От распознавания к синтезу

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

Если обратиться к восприятию и творчеству с точки зрения человека, то восприятие — это то, что он увидел, услышал и из чего с помощью мозга извлек концепт. А можно повернуть этот процесс в обратную сторону, когда на основании идеи или концепта человек через мозг подает сигнал на "интерфейсы" и получает низкоуровневый объект — картину, музыкальное произведение и др.

Как это работает относительно нейронных сетей? В качестве интерфейсов в этом случае выступают фотоаппарат, монитор, микрофон, колонки и прочее, а в качестве мозга — нейронная сеть

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

Состязательные нейронные сети для улучшения качества синтеза

При задаче синтеза в нейросети используется генератор, который на входе получает конкретный тип информации либо случайный шумовой вектор, а на выходе выдает сгенерированный объект (например, случайное лицо). Чтобы улучшить технологию и получать более качественные изображения на выходе, накладывается вторая нейронная сеть — дискриминатор. Ее задача — оценивать, насколько хорошо генератор сделал свою работу. Другими словами, это бинарный классификатор, который умеет отличать сгенерированные, фейковые, ненастоящие картинки от настоящих, реальных. Таким образом, эти две сети обучаются параллельно. Дискриминатор учится все лучше и лучше отличать подделку от оригинала, а генератор — "обманывать" дискриминатор. В результате этой антогонистической игры мы получаем идеальные генератор и дискриминатор.

Состязательные нейронные сети используются для отображения:

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

ris8-9

Три причины успеха глубокого обучения

В сфере нейронных сетей постоянно появляются новые изобретения и технологии. К основным причинам такого стремительного роста относятся:

  1. Совершенствующиеся алгоритмы и архитектуры нейронных сетей.
  2. Доступные объемы данных (миллионы картинок и тысячи категорий).
  3. Ускорение обучения и вывода с помощью GPU.

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

Источник: "Журнал "Системы безопасности" №5/2019"

Сюжеты: День эксперта Цифровая экономика