В предыдущих разделах, говоря об эволюции ИИ, мы рассмотрели ряд научных направлений, включая коннекционистский и символьный, отметили, что в каждом из них есть свои подходы и алгоритмы.
Очевидно, что наблюдать процесс развития технологий ИИ можно в разных аспектах, и рассмотрение эволюции с точки зрения решения ключевых научно-практических задач является одним из важнейших. При этом развитие прикладной науки и технологий движет не только жажда ученых к познанию, но и стремление бизнеса к участию в проектах, сулящих прибыль, а также активность государственных организаций, ответственных за решение стратегических задач.
Рассматривая ИИ в рамках обозначенной логики, прежде всего полезно проследить, как совершенствовались технологии искусственного интеллекта при решении двух задач - построения систем компьютерного зрения и обработки естественного языка.
Создатели компьютерного зрения добились значительных успехов в разработке систем, имитирующих биологическое зрение, и в некоторых задачах возможности зрительного аппарата человека уже удалось превзойти. Технология нашла широчайшее практическое применение во всех отраслях - умные камеры, распознавание лиц в качестве биометрических приложений, анализ медицинских изображений, анализ действий покупателей в магазине, распознавание номерных знаков и мониторинг соблюдения ПДД, приложения для создания автономных транспортных средств, распознавание жестов, в том числе для управления различного рода устройствами, создание фотореалистичных изображений. Список практически неисчерпаем.
Постараемся, избегая технических подробностей и формул, рассказать о некоторых ключевых ИИ-технологиях, которые лежат в основе большинства из перечисленных приложений.
Прежде всего заметим, что разговор про распознавание изображений - как основу компьютерного зрения - мы уже начали в предыдущих разделах курса, большинство примеров по использованию искусственных нейронных сетей как раз были связаны с распознаванием изображений. То есть мы уже затронули тему компьютерного зрения, но до сих пор не привели определение этого понятия.
В самом общем плане можно сказать, что компьютерное зрение - это технология, основанная на ИИ, позволяющая извлекать значимую информацию из визуальных данных (изображения, видео), принимать решения и осуществлять действия на основе этой информации. Уточняя понятие, следует отметить, что компьютерное зрение - это междисциплинарная область, которая базируется на ряде технологий (обработка электронных сигналов, машинное обучение, обработка изображений) и в свою очередь развивает такие прикладные направления, как машинное и робототехническое зрение ( рис. 2.1).
Суть термина проявляется более наглядно при рассмотрении родственных
Компьютерное зрение больше направлено на извлечение информации из изображений и делает акцент на анализе
Компьютерное зрение и машинное зрение имеют области пересечения и в некоторых случаях могут использоваться как синонимы. При этом различия все-таки существуют. Машинное зрение - это инженерная область знания, которая в основном относится к промышленному использованию для автоматического контроля и управления процессами. Его можно считать дочерней областью, поскольку в нем используются методы и алгоритмы компьютерного зрения и обработки изображений.
Различие можно продемонстрировать на особенностях употребления. Например, когда мы говорим о том, что видеохостеры используют компьютерное зрение для выявления опасного контента в Интернете - здесь термин "машинное зрение" неуместен, а если речь идет о том, что системы компьютерного зрения были использованы на производственной линии завода для контроля качества, здесь возможно употребление терминов машинное или техническое зрение.
Робототехническое зрение - понятие родственное термину машинное зрение - также имеет свою специфику. Приложения машинного зрения не обязательно связаны с робототехникой - например, деталь для контроля на наличие дефектов может просто помещаться перед системой машинного зрения. Робототехническое зрение, как правило, является более сложной системой, чем машинное зрение, поскольку обеспечивает управление движением робота и должно быть включено в систему обратной связи, подразумевающей реакцию на действия робота.
Таким образом, робототехническое зрение подразумевает использование комбинации аппаратных средств, камеры и компьютерных алгоритмов, позволяющих роботам обрабатывать визуальные данные из окружающего мира и в некотором смысле понимать смысл
Ключевые отличия перечисленных технологий можно наглядно проследить по тому, какие данные они получают на входе и в каком виде формируют данные на выходе (табл. 2.1)
| Технология | Вход | Выход |
|---|---|---|
| Обработка сигналов | Электрические сигналы | Электрические сигналы |
| Обработка изображений | Изображения | Изображения |
| Компьютерное зрение | Изображения | Информация/ характеристики |
| Распознавание образов/ машинное обучение | Информация/функции | Информация |
| Машинное зрение | Изображения | Информация |
| Робототехническое зрение | Изображения | Физические действия |
Для более подробного обсуждения технологии компьютерного зрения вернемся к теме возникновения и эволюции данных систем. Одна из первых работ, в которой упоминалось компьютерное распознавание изображений и звука, вышла в 1955 г. - профессор Массачусетского технологического института Оливер Селфридж опубликовал статью "Глаза и уши для компьютера". Работа, которую, несомненно, можно считать пионерской в области компьютерного зрения, мы уже упомянули в начале курса - это Персептрон Фрэнка Розенблата. Еще одним отцом компьютерного зрения называют Лоуренса Робертса (Lawrence Roberts), который в 1963 году опубликовал работу "Машинное восприятие трехмерных твердых тел", в которой обсуждались вопросы извлечения трехмерной информации об объектах из двухмерных фотографий. Лоуренс защитил в этой области диссертацию и уже в 1970 году читал в MIT курс по компьютерному зрению.
В 1966 году Сеймур Пейперт организовал в Массачусетском технологическом институте проект по сегментации фона и переднего плана на фотоизображениях с целью извлечения из них непересекающихся объектов, который тоже можно отнести к пионерским проектам в области компьютерного зрения.
Одна из ранних прикладных задач компьютерного зрения - это оптическое распознавание символов OCR обучались на изображениях отдельных символов и должны были переобучаться при каждом изменении шрифта. В 1970-х годах уже упомянутый в курсе изобретатель Рэй OCR, который мог обрабатывать текст, напечатанный практически любым шрифтом. В начале 90-х российские разработчики, впоследствии создавшие всемирно известную компанию OCR-программы, которая позднее стала популярным продуктом FineReader. Другая отечественная компания - Cognitive Technologies - примерно в это же время разрабатывала свою систему оптического распознавания текстов OCR CuneiForm. Как коммерческий продукт эта программа появилась в 1993 году. В начале 2000-х годов оптическое распознавание символов стало доступно в Интернете в виде облачного сервиса.
Параллельно развивались также приложения для распознавания лиц при участии и финансировании военных ведомств. Например, в 1993 стартовал проект "Технология распознавания лиц (FERET)", который спонсировался правительством США, целью проекта было создание большой автоматической системы распознавания лиц для целей разведки, безопасности и правоохранительных органов. Проект преследовал задачи автоматизации процессов поиска по фотографиям с камер видеонаблюдения, контроль доступа к объектам и т. п. Примерно в это же время появились первые беспилотные системы управления автотранспортом. В 2003 году системы распознавания лиц стали использоваться в корпоративных приложениях.
В 2010-х годах в области распознавания и классификации изображений начался переход к методам глубокого обучения.
Распознавание изображений постепенно перешло из дорогой специфической технологии в доступную в широком наборе отраслей благодаря развитию алгоритмов, использованию больших наборов данных и росту вычислительной мощности доступного оборудования. Начиная с 2012 года активный рост ИИ был преимущественно обусловлен моделями глубоких нейронных сетей, которые, в отличие от классических методов машинного обучения, позволили исключить процедуру ручного извлечении признаков.
Рассмотренные нами выше методы классического машинного обучения, такие, как, например, метод опорных векторов, не могут быть применены непосредственно к необработанным данным, таким как изображения или текст. Необходим упомянутый этап предварительного извлечения признаков для решения исходной задачи (например, такой как классификация данных).
Извлечение особенностей или признаков изображения - это отдельная процедура (обнаружение цвета, краев, углов, объектов и т. п.). В подобных алгоритмах компьютерного зрения данные признаки создаются человеком, и точность моделей напрямую зависит от самих признаков и от методов их извлечения.
Для извлечения признаков применялись специальные алгоритмы, такие как, например, алгоритм
Поясним это на примере - пусть модель машинного обучения используется для ответа на вопрос, изображен на конкретном изображении автомобиль или нет (рис. 2.2).
На основе выделенных признаков (если они правильно выбраны) алгоритм проведет классификацию изображений.
В случае с моделью глубокого обучения шаг извлечения признаков не нужен. Сеть извлекает эти признаки самостоятельно. Причем извлечение признаков возможно там, где человек выполнить подобную процедуру не может в принципе.
Действительно, даже если человек способен распознать тот или иной объект, он далеко не всегда может определить совокупность признаков, по которым он принял решение. Увидев ночью кошку или собаку, перебегающую дорогу даже при слабом освещении, мы, как правило, можем сказать, кто это был на самом деле, а вот сформулировать набор признаков, по которым мы смогли дать классификацию, крайне сложно.
Способность глубокого обучения в извлечении уникального набора признаков и демонстрация высочайшей производительности (более высокой, чем у человека) состоит в том, что глубокая нейронная сеть опирается при обучении на огромные объемы данных. Глубокие нейронные сети позволяют получить производительность, недостижимую для алгоритмов классического машинного обучения, но, как правило, требуют для этого наборы данных очень большого объема (рис. 2.3).
Многие достижения в области искусственного интеллекта за последние годы связаны именно с глубоким обучением. Наиболее точные модели на его основе требуют тысяч и даже миллионов элементов обучающих данных.
Для решения задач, возникающих в небольших компаниях с ограниченными финансами, такие большие наборы данных и такие вычислительные ресурсы для обучения сети недоступны. При этом следует отметить, что классические алгоритмы машинного обучения (которые мы упоминали выше) в ряде случаев не потеряли своей актуальности, и часто их применение бывает даже более эффективным (см. рис. 2.3).
Например, для того чтобы классифицировать на конвейере продукты разного цвета, не обязательно использовать глубокую нейросеть, решения можно добиться, используя простое пороговое цветовое выделение. Например, можно посчитать среднее значение цвета по всем пикселям изображения и различать по этому числу разные продукты.
Существует множество задач в области компьютерного зрения, таких как потоковая обработка видео, автоматическая сшивка панорам, оценка движения и идентификация движущихся объектов, которые иногда проще реализовать классическими методами [62].
Говоря об эволюции моделей на базе глубокого обучения, необходимо отметить, что здесь прорыв возможностей нейросетей по распознаванию изображений стал прямым результатом роста вычислительной мощности. Этот факт наглядно демонстрирует рис. 2.4, рассматривая эволюцию производительности аппаратного обеспечения и рост потребностей в вычислительных мощностях со стороны крупнейших нейросетевых проектов.
На рисунке отмечено три периода - эра масштабирования
Как известно, рост производительности аппаратного обеспечения связывают с законом
В районе 2004-2005 гг. закон масштабирования Деннарда перестал работать, поскольку при уменьшении размеров транзисторов токи утечки приводят к перегреву процессора и выходу его из строя. Невозможность наращивания тактовой частоты стимулировала альтернативный подход - разработку многоядерных процессоров. В соответствии, с чем следующий период назван "мультиядерная эра".
В период с 1985 по 2009 год рост вычислительных требований наиболее крупных из используемых нейронных сетей увеличивался примерно пропорционально росту вычислительной мощности оборудования.
Поскольку рост вычислительной мощности в расчете на один доллар примерно повторяет рост вычислительной мощности в расчете на один чип, стоимость работы таких моделей была в значительной степени стабильной с течением времени примерно до 2009 года.
Переломным моментом стал перенос глубокого обучения на
Таким образом, кривая роста потребностей в вычислительной мощности для крупнейших проектов глубокого обучения после примерно 2005 года изменялась с ускорением, а кривая роста производительности оборудования с замедлением.
Одно из направлений преодоления "замедления закона Мура" стимулировало подходы, основанные на увеличении количества серверов путем объединения их в кластеры. Другое исходило из того, что, если темпы увеличения производительности центрального процессора сервера замедляются, необходимо ускорить работу серверного оборудования путем создания специализированных процессоров. То есть вместо использования универсальных процессоров для обработки множества различных задач внедрить различные типы процессоров, адаптированных к потребностям конкретных задач. Так, одним из важнейших факторов для практического применения глубоких нейронных сетей стала доступность параллельных вычислений на графических ускорителях, о чем более подробно пойдет речь ниже.
Помимо проблем доступной вычислительной мощности следует отметить, что до 2005 года у специалистов не было достаточного количества данных, на основе которых можно было бы создать высокопроизводительные модели распознавания изображений. В 2009 году произошло объединение ряда американских институтов для создания массивного набора данных под названием ImageNet.
ImageNet - это проект по созданию и сопровождению массивной базы данных размеченных изображений из более чем 14 миллионов изображений 1000
С 2010 года в рамках
Например, сеть распознает животное на картинке и выдает в порядке убывания вероятности следующие предположения: "ягуар, гепард, снежный леопард, египетская кошка" - если правильный ответ попадает в эти пять предположений, то этот ответ засчитывается как верный.
В 2011 году хорошим результатом считалась ошибка классификации на уровне 25%.
На рис. 2.5 выделяется 2012 год, который мы уже упомянули, говоря о новых возможностях доступного для обучения нейронной сети оборудования (см. рис. 2.4). В этом году исследователи из Университета Торонто использовали методы, основанные на глубоком обучении, чтобы установить новый уровень техники в конкурс ILSVRC - сверточная нейронная GPU).
Это было значимое событие поскольку ошибку удалось снизить радикально, показав результат, на который все остальные методы были неспособны. В последующие годы ошибка упала до нескольких процентов (рис. 2.5). В 2014 г. победителем конкурса ILSVRC стала сеть VGGNet. Модель, предложенная Симоняном и Зиссерманом, состояла из 19 слоев (138 млн параметров). В том же году GoogleNet, которая имела 22 слоя, еще снизила ошибку, а в 2015 году исследователи констатировали, что программы в определенных задачах проекта ILSVRC превзошли человеческие способности.
Нейронная сеть Resnet (Residual Networks), разработанная Microsoft Research, стала победителем конкурса ImageNet в 2015 году, она имела уже 152 слоя и демонстрировала ошибку на уровне 3,6% [65]. В 2016 г. при использовании ансамбля SENet снизила ошибку до уровня 2,25%.
После окончания конкурса в 2017 году исследователи продолжают использовать набор данных ImageNet для тестирования и разработки приложений компьютерного зрения. На рис. 2.6 показаны успехи систем, показывающих все более высокие результаты с течением времени. В отличие от рис. 2.5, где была показана ошибка, на рис. 2.6 показана точность в процентах "TOP-5 Accuracy".
В последние годы исследователи стали повышать производительность своих систем путем их предварительного обучения на дополнительных данных, в частности на фотографиях из социальных сетей. Предварительное обучение на этих наборах данных обеспечивает более эффективное использование данных ImageNet, что позволило в 2021 г. в категории "TOP-5 Accuracy" достигнуть точности на уровне 98,8% (ошибка всего в 1,2%).
Мы упомянули решающую роль архитектуры сверточных сетей в достижении высокой точности распознавания изображений. Учитывая важность данной технологии, рассмотрим принцип ее действия чуть подробнее.
Ранее мы отметили, что при решении задачи распознавания простого геометрического объекта мы можем описать правила его начертания (указать признаки, по которым его можно отличить). Однако, говоря о решении более сложной задачи (например, такой как необходимость отличить на фото кошку от собаки), описать признаки, по которым можно принять подобное решение, достаточно сложно. Животное может находиться в разных позах, может быть сфотографировано в разных ракурсах при разном освещении. Собака, если на фото видно лишь три лапы, не перестает быть собакой, при этом человеку достаточно мельком взглянуть на фото и определить, что это за животное, вне зависимости от того, видны на фото лапы и хвост или нет.
Как это делает человек?
Интересно заметить, что при мгновенном решении подобных задач человеку непросто перечислить, по каким именно признакам он отличил кошку от собаки на том или ином изображении. То есть найти признаки - это отдельная задача, которую необходимо формализовать для ИИ. Сверточная сеть обладает способностью самостоятельно учиться находить подобные признаки, составляя их на основании элементов изображения, причем решает она эту задачу более эффективно и экономично, чем многослойный персептрон.
Почему речь идет об экономичности?
Следует отметить, что обработка больших изображений по схеме, которую мы рассмотрели, говоря о работе многослойного персептрона рис. 1.28, когда на вход подаются значения каждого пикселя в виде входного вектора, требует весьма существенных вычислительных ресурсов. Например, если речь идет об обработке цветного изображения 100 на 100 пикселей, по схеме рис. 1.29, то число входных параметров (учитывая, что цвет обычно предоставляется значениями яркости по трем каналам Red Blue Green) составит 100 х 100 х 3, то есть 30 000. При изображении 1000 на 1000 точек мы получим уже три миллиона параметров. Одна из задач, стоявших перед разработчиками нейросетей для распознавания изображений, заключалась в получении экономичного решения, которое бы учитывало особенности представления информации в изображениях.
Большое количество параметров сети плохо не только с точки зрения вычислительной сложности, но и с точки зрения необходимого для обучения количества данных. Поскольку в процессе обучения параметры подстраиваются по обучающим примерам, то чем больше параметров необходимо подстроить - тем большее количество примеров необходимо. С точки зрения работы с изображениями это означает, что для распознавания кота необходимо показать нейросети изображения, на которых кот располагается во всех возможных позах во всех местоположениях внутри кадра. Распознавание же кота человеком устроено несколько по-другому - человек "сканирует" изображение, ища знакомые признаки (паттерны).
Известно, что изображения обладают свойством локальной связности, то есть если мы говорим, например, о том, что на фотографии изображен человек, то точки, принадлежащие отдельным элементам его лица, будут располагаться рядом, а не разбросаны по разным частям изображения. Когда мы двумерную
Описать подробно, как работает сверточная сеть в рамках данного курса (где мы планируем дать концептуальный обзор многих технологий), не предоставляется возможным, поэтому остановимся на описании только ключевых идей.
Идея сверточных сетей базируется на сведениях о некоторых механизмах зрительного восприятия у живых организмов. Согласно исследованиям Хьюбела и Визеля, проведенным еще в 1962 году, отдельные клетки нейронов в мозге реагируют при наличии в изображении краев определенной ориентации. Например, некоторые нейроны реагируют на вертикальные грани, другие на горизонтальные или диагональные.
Можно сказать, что именно идея наличия нейронов в зрительной коре, ответственных за поиск определенных характеристик изображения, лежит в основе сверточных нейронных сетей.
Существует достаточно много попыток художников проиллюстрировать механизм работы сверточных нейронных сетей (СНС), при этом каждая схема не идеальна в том смысле, что использует те или иные упрощенные аналогии. Мы приведем несколько подходов иллюстрирования работы сверточных сетей, которые интерпретируют идею на разном уровне абстракции и в сочетании дают возможность понять принцип работы СНС. Начнем с самого общего представления сверточной сети (рис. 2.7).
На рис. 2.7 (в верхней части) показано, что сеть изначально обучается распознавать разные виды животных. Это стадия первичного обучения, когда сеть учится распознавать размеченные изображения, то есть такие, к которым прикреплены теги, несущие информацию о свойствах каждого объекта (принадлежность тому или иному классу животных). После того как сеть обучена, ей на распознавание дается новое неразмеченное изображение - как показано на рис. 2.7 - это изображение собаки, которое сеть должна отнести к одному из классов животных, которые она "знает". Сверточная сеть состоит из нескольких скрытых слоев, так что при обработке изображения на этих слоях выявляются разные группы признаков - от наиболее простых до все более сложных. СНС может иметь десятки или даже сотни слоев, каждый из которых учится обнаруживать различные признаки. Выходные данные сверточного слоя используются в качестве входных данных для следующего слоя. В результате сеть дает заключение о том, к какому классу и с какой вероятностью относится исследуемое изображение.
Первые слои отвечают за распознавание простейших паттернов - уже упомянутых краев различной ориентации или определенной текстуры. Следующий слой отвечает за комбинирование паттернов предыдущего слоя - например, из двух наклонных штрихов он может составить "угол", напоминающий ухо. Последующие слои учатся комбинировать результаты предыдущих слоев, тем самым образуя иерархию фрагментов различной степени содержательности.
Более подробно работу СНС рассмотрим на рис. 2.8. Здесь обозначены ранее упомянутые слои: сверточные (convolutional) слои, слои подвыборки или субдискретизации (subsampling, называемых также слоями пулинга / pooling) и слои "обычной" нейронной сети - персептрона.
Сверточные сети получили свое название от "операции свертки". Свертка в данном случае - это механизм выявления особенностей (признаков) из входных изображений. Свертка сохраняет пространственные отношения между пикселями, изучая особенности изображения, используя каждый раз небольшую площадь входных данных. Работа СНС заключается в том, что изображение "пропускается" через ряд сверточных (convolution), субдискретизирующих (subsampling) и полностью связанных (dense) слоев для получения на выходе результата ( рис. 2.8).
В рассматриваемом случае выходной сигнал является вероятностью принадлежности классу изображений, который наилучшим образом подходит к исследуемому изображению. На рис. 2.7 это показано как вероятность того, что исследуемое изображение принадлежит классу "собаки", составляет 90%.
Далее разберемся более подробно, что делает каждый из упомянутых слоев.
Первым слоем в СНС является сверточный слой. Лучший способ объяснить работу свертки - это рассмотреть графическую интерпретацию процесса рис. 2.9. Здесь показано окно, которое перемещается по всем областям входного изображения. Это же окно показано и на рис. 2.8.
Упомянутое окно называют фильтром или ядром, а область, на которую оно в данный момент проецируется, - рецептивным полем. Фильтр (ядро) - это матрица небольшого размера с определенным набором параметров (весов). По мере того, как фильтр перемещается по исходному изображению, он производит операцию свертки, то есть поэлементно перемножает значения (веса) матрицы фильтра с исходными значениями пикселей рецепторного поля, получая число для каждого положения фильтра. На рис. 2.8 пунктирными линиями показан процесс преобразования матрицы рецептивного поля в точку - число (значение на сверточном поле). После серии последовательных перемещений фильтра по изображению получится массив чисел, который называется картой признаков.
Фильтр можно интерпретировать как графическое кодирование какого-либо признака, например, наличие вертикальной, горизонтальной или наклонной линии. Для исследования разных признаков используется множество фильтров, кодирующих разные типы графических элементов. Важно отметить, что ядра свертки не закладываются разработчиками, а формируются автоматически путем обучения сети с использованием метода обратного распространения ошибки. Фильтры на первом слое обрабатывают простейшие характеристики изображения и усложняются до характеристик, которые определяют объект целиком. Этот процесс мы уже абстрактно изобразили на рис. 2.7.
На рис. 2.8 показан один сверточный слой, на практике их могут быть десятки и даже сотни, и на каждом слое формируется несколько каналов (независимых карт признаков). На рис. 2.8 условно показано шесть каналов.
В тот момент, когда фильтр расположен над рецептивным полем, как это показано на рисунке, перемноженные и просуммированные значения дадут в результате число 6600 (см. рис. 2.9).
Из рисунка также видно, что в момент, когда фильтр находился в положении левее на один пиксел, значение свертки равнялось
На выходе получается карта признаков, которая дает нам определенную информацию об изображении. Обычно за сверточным слоем следует слой субдискретизации (пулинга). Основная цель этого слоя - уменьшение пространственного размера свернутой карты признаков. Этот слой уменьшает количество параметров на входе, что позволяет снизить вычислительные затраты. Смысл этой операции в том, что, если мы обнаружили некоторый фрагмент изображения, нас перестает интересовать его точное положение с точностью до пиксела - поэтому мы можем заменить некоторую пиксельную окрестность (например, 2x2 или 3x3) одним значением, показывающим, был признак обнаружен в этой окрестности или нет. Как и в случае со сверточным слоем, операция пулинга прогоняет окно по всему полю, и (в зависимости от применяемого метода) на участке заданного размера выбирается максимальное значение (MaxPooling) или вычисляется среднее значение элементов на участке (Average pooling). На рис. 2.8 показан только один сверточный слой и один слой пулинга, на практике их могут быть десятки. На каждом следующем слое операция повторяется, в результате чего карта уменьшается в размере, при том, что количество каналов увеличивается. После прохождения всех слоев свертки и пулинга формируются сотни каналов с признаками, которые интерпретируются как самые абстрактные понятия, выявленные из исходного изображения.
На финальной стадии данные трансформируются в вектор и передаются на обычную полносвязную нейронную сеть (см. рис. 2.8). На выходе мы получаем ответ, в частности в представленном примере с вероятностью 90% сеть распознает изображение как принадлежащее классу "собака".
Ранее мы рассмотрели задачу классификации изображений, когда необходимо распознать и присвоить метку объекту (или множеству объектов), присутствующему на изображении, отвечая на вопрос "Что это?". Со временем нейронные сети научились выполнять более сложные задачи, чем классификация изображений, например ИНС, научились выделять на фотографиях контуры объектов, даже если таких экземпляров несколько и они загораживают друг друга.
Сегментация объектов на изображениях подразумевает умение выполнять целый ряд операций (рис. 2.10).
Локализация объектов подразумевает определение местоположения одного или нескольких объектов на изображении и построение прямоугольной рамки вокруг их границ. Обнаружение объектов объединяет локализацию и классификацию одного или нескольких объектов на изображении (рис. 2.11)
Из рис. 2.11 (б) следует, что модель определила собак как один класс, а кошек как другой, что видно по цвету (тону) рамок. Еще одна задача компьютерного зрения - это сегментация, процесс идентификации похожих объектов, принадлежащих к одному классу, на уровне пикселей, то есть это задача отнесения каждого пикселя изображения к определенному классу: кошка, собака, человек, фон и т. д. (см. рис. 2.11 (в)). Сегментация является базовой технологией, например, для медицинских приложений (идентификация и выделение объектов на снимках) или для автономных автомобилей (идентификация и выделение объектов на дорогах).
Для обучения глубоких нейронных сетей пониманию городской среды используются специализированные наборы данных (датасеты), например такие, как
Cityscapes фокусируется на
Существуют соревнования по оценке уровня точности сегментации объектов изображения на базе Cityscapes. Участники оцениваются на основе метрики (IoU - Inter Over-Union), пересечение над объединением - это метрика для оценки точности модели, которая измеряет правильность предсказания ограничивающего объект контура. IoU - это число, которое количественно определяет степень перекрытия между двумя контурами: области "истины" и области предсказания (рис. 2.12).
Методика выглядит следующим образом: на обучающем изображении отмечают диапазон обнаруживаемого объекта, затем смотрят на диапазон результатов, полученных по используемому алгоритму, и берут отношение площади пересечения этих областей к площади их объединения. Таким образом, для идеально совпадающих областей получим IoU=1, а для полностью непересекающихся - 0.
В случае семантической сегментации изображения на основе нескольких классов, где на одном изображении могут быть объекты, принадлежащие к разным классам, каждому объекту необходимо присвоить свою метку и соответствующим образом обработать ее при вычислении IoU. Для этого можно найти среднее значение IoU, соответствующее различным классам, которое будет соответствовать фактической степени сходства. Это среднее значение обозначается как средний IoU (Mean IoU - mIoU).
Динамика совершенствования моделей на основе показателя mIoU (по данным соревнования на датасете Cityscape в решении задач семантической маркировки на уровне пикселя) представлена на рис. 2.13.
Технологии искусственного интеллекта позволяют не только распознавать существующие объекты, но и генерировать синтетические изображения новых, которые даже эксперты не могут отличить от фотографий реальных объектов нашего мира.
Новые возможности в данном направлении открыли так называемые генеративно-состязательные сети. Основа технологии была разработана Яном Гудфеллоу (Ian Goodfellow) в 2014 г. - в период, когда он являлся аспирантом Монреальского университета. Об этих сетях расскажем чуть подробнее.
Генеративно-состязательные сети, или GAN (от Generative Adversarial Network) - это сравнительно молодая и быстро развивающаяся технология, которая поражает воображение возможностью генерировать фотореалистичные изображения несуществующих объектов, неотличимо похожих на реальные, которые невозможно определить как подделку.
"Фотографии несуществующих людей", сгенерированные GAN-ами, обошли все конференции на тему GAN.
Генеративно-состязательные сети находят массу практических применений: их используют не только для создания изображений, но также для дополнения, восстановления и повышения качества изображений. Например, с помощью GAN можно перевести черно-белые фото и видеоматериалы в цветные, трансформировать летние изображения в зимние, дневные в ночные и так далее. Также GAN используют для улучшения технологий поиска, которые основаны на том, что отыскать конкретное изображение легче, если возможно создать другие синтетические изображения, похожие на него.
И заметим, что в данном разделе мы упоминаем лишь примеры из области работы с изображениями.
Прежде чем дать более полное толкование GAN, следует ввести понятие генеративных и дискриминативных моделей. Чтобы понять разницу в этих подходах, рассмотрим применение каждого для решения задач классификации (рис. 2.14).
Дискриминативные классификаторы пытаются определить, какие признаки на входных данных наиболее полезны для классификации. Модель данного типа пытается определить границу, отделяющую один класс от другого. При этом дискриминативные модели классифицируют точки данных, не задаваясь целью определить, как эти точки были созданы.
Заметим, что мы уже рассматривали задачи классификации при описании метода опорных векторов и нейронных сетей и просто не упоминали, что получаемые модели относятся к дискриминативным. Хорошей иллюстрацией дискриминативного классификатора может служить рисунок 1.43, который мы рассматривали при описании метода SVM, где речь шла о нахождении гиперплоскости, оптимально разделяющей классы в N-мерном пространстве.
Для наглядного объяснения сути понятий генеративного и дискриминативного подходов и их различия можно обратиться к аналогии, которую приводят авторы работы [71]. У отца двое детей. Ребенок "А" способен досконально изучать сущность предметов, ребенок "Б" может определять лишь различия между объектами.
В зоопарке дети видели львов и слонов. После посещения зоопарка отец показывает детям фото льва и спрашивает: "Кто это - лев или слон?" Ребенок "А" в ответ рисует на бумаге льва и слона, основываясь на том, что он видел в зоопарке, затем сравнивает оба изображения с животным на фото и принимает решение (генеративная модель). Ребенок "Б", который только определяет различия, дает ответ на основе отличительных свойств каждого из животных, не прибегая к рисунку (дискриминативная модель).
То есть генеративные классификаторы пытаются моделировать класс. Когда этим классификаторам дается новое наблюдение, они пытаются предсказать, какой класс, скорее всего, породил данное наблюдение.
Как правило, дискриминативный классификатор более точен, поскольку пытается непосредственно решить задачу классификации, а не более общую задачу (в качестве промежуточного шага), как это делают генеративные.
Теперь дадим более общее определение. Генеративные модели основаны на использовании методов неконтролируемого машинного обучения, в процессе которого осуществляется автоматическое обнаружение и изучение закономерностей во входных данных таким образом, чтобы созданную модель можно было использовать для генерации новых примеров, которые, вероятно, могли быть получены из исходного набора данных.
Введя понятия дискриминативной и генеративной моделей, перейдем к определению генеративно-состязательной сети.
Генеративно-состязательная сеть - это метод глубокого обучения, построенный на соревновании двух нейронных сетей, двух моделей - генеративной и дискриминативной (рис. 2.15).
Генеративная сеть, или генератор (на рис. 2.15 обозначена как G), генерирует новые образцы, а вторая (сеть D - дискриминатор) их оценивает, то есть пытается различать настоящие образцы ("подлинные") и поддельные (сгенерированные).
Сеть G принимает на вход случайный шум z, и ее задача - преобразовать шум таким образом, чтобы он приобрел структуру, подобную изображениям в наборе обучающих данных.
Сеть D на вход получает изображения х, при этом выходной сигнал D (x) представляет собой вероятность того, что x является настоящим реальным изображением (1 - стопроцентно реальное изображение; 0 - изображение реальным быть не может).
Сети G и D имеют противоположные цели - "создать образцы, которые не могут быть отбракованы" и "отбраковать образцы". Эти две модели обучаются вместе в состязательной игре с нулевой
Полученные сети могут применяться для создания реалистичных изображений. Для этого исключаем из схемы дискриминатор и с помощью генератора получаем необходимые изображения.
Для наглядного и упрощенного объяснения процесса (рис. 2.15) часто прибегают к аналогии, представляя один процесс в виде художника, пытающегося подделать картину, а другой в виде искусствоведа, который пытается отличить реальное изображение от сгенерированной фальшивки.
Представим, что в данной ситуации художник имеет возможность получать информацию о том, на каком основании искусствовед отличил картину-подделку от подлинника (не тот цвет, характер мазка и т. п.), и создавать улучшенную фальшивку. При многократном повторении данного цикла должен наступить момент, когда искусствовед не найдет отличий, - это и считается моментом появления изображения, неотличимого от оригинала.
Возвращаясь к состязательным сетям, можно сказать, что цель обучения модели
G заключается в максимальном увеличении вероятности ошибки дискрминатора D. Использование этой техники и позволяет генерировать упомянутые нами ранее "фотографии несуществующих объектов", которые человеческим глазом воспринимаются как натуральные фото реальных объектов. Например, известна попытка синтезировать фотографии кошек, которые вводят в заблуждение эксперта, считающего их естественными фото [73].
Можно сказать, что мы не можем отличить сгенерированные моделью объекты от реально существующих, поскольку модель смогла "понять" характер внешности того или иного объекта именно так, как его понимают люди.
GAN-ы - это еще один этап в эволюции возможностей техники в проявлении художественных способностей, переход от умения создать точные копии объекта до возможности передачи некоторой совокупности усредненных качеств объекта, позволяющих воссоздать новый уникальный объект, неотличимый от его реальных прототипов.
GAN-ы оказались очень эффективны в решении задачи генерации изображений. И, надо отметить, возможности моделей постоянно совершенствуются. Первоначально основным способом оценки качества подобных моделей являлась экспертная оценка сгенерированных объектов, проводимая специалистом, человеком в виде ответа на вопрос "Насколько синтетический объект соответствует реальному?". Данный подход является субъективным, дорогим и малопригодным для обработки больших объемов данных. Со временем появились более объективные автоматические методы анализа характеристик генеративных моделей, которые позволяют количественно описать уровень качества создаваемых синтетических моделей и дают возможность аналитикам отслеживать процесс совершенствования моделей. Для оценки качества GAN используется ряд метрик, включая Fr?chet Inception Distance FID (начальное расстояние Фреше). Последняя метрика применима исключительно для оценки GAN, генерирующих изображения определенного формата. Метрика FID была введена в 2017 году для сравнения признаков сгенерированных и реальных изображений. Низкое значение FID соответствует изображениям высокого качества и наоборот. Добавление шума и искажений (снижение качества изображений) повышает FID.
Интересно отметить, что направления ИИ, связанные с обработкой изображений и естественного языка, в какой-то момент нашли пересечение.
В 2014 году одним из главных достижений в области ИИ стало появление технологии автоматического создания подписей к изображениям. К тому времени алгоритмы машинного обучения уже умели маркировать объекты на изображениях, и в дополнение к этому они научились создавать по изображению описания на естественном языке типа "На изображении девочка играет в мяч".
Со временем появилась идея - нельзя ли выполнить обратную задачу и сгенерировать изображение по текстовому описанию. Для того чтобы продолжить разговор о взаимодействии языковых моделей ИИ и технологий генерации изображений, следует более подробно остановиться на эволюции технологий обработки естественного языка.
До сих пор, говоря об эволюции ИИ и нейронных сетей, в частности, мы преимущественно рассматривали примеры из области компьютерного зрения. Классификация изображений действительно была первым барьером, который удалось преодолеть с помощью глубокого обучения, но вскоре модели, основанные на данной технологии, также победили в задачах NLP- в машинном переводе [74, 75] и распознавании речи [76].
При этом надо сказать, что эволюция систем обработки естественного языка не менее важный аспект развития ИИ. Более того, в области обработки языка нейросетевая революция явила не менее впечатляющие результаты: машинный перевод на наших глазах стал почти неотличим от перевода людей-переводчиков, а голосовые интеллектуальные помощники стали привычным сервисом. Возможности аннотирования документов, голосовое управление, генерация текстов и даже стихов - все эти чудеса нам стали доступны с помощью нейросетевых NLP-технологий. Так что без экскурса в эволюцию систем NLP и анализа влияния глубокого обучения на NLP рассмотрение темы будет явно неполным.
NLP - это одно из важнейших направлений искусственного интеллекта, которое позволяет обеспечить взаимодействие между компьютером и человеком на базе естественного языка, то есть помогает компьютерам понимать человеческий язык, интерпретировать его и манипулировать им. NLP - это зонтичный термин, объединяющий ряд областей, связанных с обработкой естественного языка.
Основные элементы NLP можно представить на упрощенной замкнутой схеме системы "вопрос - ответ" (рис. 2.17), которая включает: перевод речи в текст; обработку текста (представление текста в интерпретируемые машиной данные); механизм контроля диалога, имеющий интерфейс к некоторому источнику знаний о предметной области; систему генерации ответа (текста на естественном языке); и, наконец, синтез этого текста обратно в речь.
Помимо сокращения NLP часто используются аббревиатуры NLU и NLG.
NLU (Natural-language understanding, понимание естественного языка) - это часть NLP - система, отвечающая за разбор высказываний пользователей и понимание их смысла, она включает такие этапы как предварительная обработка текста, классификация запроса, соотнесение с одним из классов, известных системе, и извлечение параметров запроса (сущностей).
NLG (Natural-language generation) - генерация естественного языка - процесс преобразования структурированных данных в естественный язык.
На базе технологий NLP созданы десятки различных приложений, некоторые из которых перечислены на рис. 2.18.
Дополнительно об NLP-приложениях и типах компаний, занятых в их разработке, речь пойдет во второй лекции данного курса, а в данном разделе более подробно поговорим об истории формирования и эволюции NLP-технологий.
Можно сказать, что NLP находится на пересечении NLP направлен от лингвистики к технологиям глубокого обучения.
В самом общем плане в развитии NLP можно выделить три этапа - символьный (с 1950-х до начала 1990-х годов), статистический (1990-2010) и нейросетевой (2010 - до настоящего времени). Отмеченные периоды достаточно наглядно просматриваются на примере машинного перевода, о котором следует сказать более подробно (рис. 2.20).
Историю машинного перевода обычно отсчитывают с так называемого Джорджтаунского эксперимента (1954 год), когда программа, состоявшая из шести правил, перевела 60 предложений с
Задачи обработки естественного языка потребовали разработки модели представления текстов для компьютерной обработки. Об одной из первых таких моделей - "мешок слов" - следует кратко напомнить читателю, что будет полезно для дальнейших Bagof-words (BoW) - это простейшая модель представления информации о тексте в числовом виде, используемая в обработке естественного языка. Текст в этой модели представляется как набор слов, без учета грамматики и порядка.
Поясним методику на простом примере. Пусть имеется документ с текстом из известной песни "Пусть всегда будет солнце, пусть всегда …" и так далее (рис.2.21).
Сверху выписаны все слова, встречающиеся в документе (словарь). Для кодирования слов использована процедура так называемого "One Hot Encoding", или OHE-кодирования, суть которой поясняется на рис. 2.21 - каждое слово представляется вектором, длина которого равна длине словаря. Во всех позициях вектора стоят нули, кроме позиции, соответствующий номеру этого слова в словаре, - там, соответственно, стоит единица.
Как видно из рисунка, строчки соответствуют словам текста песни. Чтобы создать вектор, который кодировал бы весь документ (мешок слов), достаточно сложить one-hot-вектора каждого из слов. В таком векторе теряется информация о последовательности слов в тексте и остается только информация о наборе слов в рассматриваемом документе, отсюда и происходит название "мешок слов".
Недостатком подхода является то, что информация о взаимном расположении слов и связях между ними отбрасывается. Кроме того, при большом словаре векторы содержат большое количество нулей - такая "разреженная" форма представления информации имеет свои недостатки, поскольку работа с подобными векторами требует большого объема памяти и вычислительных ресурсов.
Рассмотрим основные этапы эволюции систем машинного перевода. Первый этап - это перевод, основанный на правилах, или RBMT-перевод (сокращение от "Rule Based Machine Translation"). Самая первая и элементарная форма RBMT-перевода - это прямой машинный перевод, или "перевод по словам": исходное предложение разбивается на слова, которые сравниваются с введенным словарем, осуществляется перевод по словам, который затем корректируется на основе морфологии и синтаксиса. Данный метод был отправной точкой машинного перевода, но в силу своих ограничений вскоре был заменен более совершенным трансферным машинным переводом, который позволил перейти от задания правил перевода каждого слова к возможности манипулирования более объемными синтаксическими конструкциями - перевод предваряет определение набора грамматических правил предложения на исходном языке и преобразование предложения в форму, совместимую с целевым языком.
Следующий этап в развитии RBMT - это так называемый "интерлингва-перевод" (или межъязыковый перевод) - метод, при котором осуществляется перевод с исходного языка на интерлингву, искусственный язык, разработанный для перевода слов и значений с одного языка на другой, впоследствии происходит перевод с интерлингвы на целевой язык.
Машинный перевод, основанный на правилах (RBMT), был первым шагом в решении задачи машинного перевода. Он относится к символьным методам в NLP, когда в фокусе было исследование синтаксического анализа на основе правил. Большинство исследований в данный период было посвящено обучению на ограниченных объемах данных. RBMT-перевод имел ограниченную точность, требовал наличия огромного числа правил, написанных вручную, основным недостатком метода являлось то, что не была решена проблема определения значения слова в зависимости от контекста. Наиболее популярным приложением того времени была система машинного перевода Systran, которая была разработана в 1968 году компанией Latsec.
В середине 1970-х годов Systran использовался NASA в рамках проекта тестирования корабля Союз-Аполлон, проводимого совместно с Советским Союзом. В тот период переводчики основывались на двуязычном словаре и наборе лингвистических правил под каждый язык.
Работы по созданию машинного перевода велись и в СССР. В 1956 г. в Институте точной механики и вычислительной техники был представлен первый советский компьютерный переводчик, включавший словарь из 2300 слов. В 1972 году специалисты института "Информэлектро" начали разработку системы машинного перевода - ЭТАП (Электротехнический автоматический перевод). В 1991 году бывшие сотрудники лаборатории ЛГПИ им. Герцена основали компанию PROMT.
Следующий важный шаг в развитии машинного перевода - это статистический машинный перевод (SMT - Statistical Machine Translation). Появление статистических методов в NLP произошло именно в области машинного перевода за счет появления к тому времени больших корпусов двуязычных текстов.
В 1990 году компания IBM впервые осуществила статистический машинный перевод. В отличие от своих предшественников - систем перевода на основе правил, статистические системы машинного перевода самостоятельно извлекают эти правила из большого количества примеров перевода - из так называемых параллельных текстов (текст на исходном языке и его перевод на целевой язык). К этому времени (начало 90-х) как раз стали доступны большие корпуса двуязычных текстов. Машине потребовались миллионы предложений на двух языках, чтобы набрать статистику по каждому слову. Просмотрев большое количество текстов, машина составляет словарь вероятностей перевода, основываясь на обучающей коллекции текстов. В самом общем плане суть статистического перевода состоит в том, что машина выбирает наиболее вероятные переводы каждого отдельного слова с учетом контекста и строит из них предложения. Предположим, необходимо перевести предложение "в комнате стоит красный стул", а в статистической базе уже есть переведенная фраза "в комнате стоит зеленый стол" - решение элементарно: берется существующий шаблон перевода и нужные слова просто заменяются по словарю.
Статистический машинный
Статистический машинный перевод, так же как и RBMT, прошел три стадии: перевод "на словах", на основе фраз и так называемый синтаксический перевод.
Создание статистического машинного перевода совпало с развитием Интернета, и ряд компаний, включая разработчика Systran, начали предлагать бесплатный машинный перевод онлайн. В 2006 году компания Google запустила Google Translate, который, несмотря на ограниченную в то время точность перевода, стал пользоваться большой популярностью.
С 2000-х годов нейронные сети начинают использоваться для решения задачи предсказания следующего слова в тексте с учетом предыдущих слов. В 2003 году Бенгио и др. предложили первую нейронную модель языка, состоящую из нейронной сети прямого распространения с одним скрытым слоем.
Они также одними из первых предложили технологию эмбеддингов слов. Технологию, о которой следует сказать чуть подробнее.
Для решения многих задач NLP нейронная сеть должна понимать сходство между словами. Cлова, находящиеся в похожих контекстах, обычно обозначают близкие по значению
С каждым словом у людей возникают близкие ассоциации. Например, говоря об облаке, каждый может продолжить "облако - грозовое" или "облако кучевое". То есть мы можем предположить, какое слово может соседствовать со словом "облако". Вероятно, можно численно закодировать это наше знание - сопоставить словам числа так, чтобы близкие слова имели близость на числовой прямой. Очевидно, что пространство смыслов многомерно, и мы можем взять несколько признаков и сравнить по ним слова. Например, по "принадлежности к живому" слова "котенок" и "кошка" должны быть ближе, чем "кошка" и "дом". Покажем, как можно сравнить слова, выбрав несколько параметров, по которым они сравниваются (рис. 2.22).
Как видно из рисунка, семантическое значение слова можно представить набором параметров или вектором. Слову сопоставляются векторы, отображающие его значение в "пространстве смыслов". Векторы, которые позволяют представить семантическую близость слов, назвали эмбеддингами. Если каждому слову предоставить в соответствие вектор (набор из N чисел), то расстояние между точками, на которые указывают эти векторы в N-мерном пространстве, и будет мерой близости этих слов. Значения компонент векторов определяют в процессе обучения. Процесс обучения приводит к объединению векторов в N-мерном пространстве в кластеры по семантической близости слов.
Математически задача определения такого вектора формулируется как максимизация косинусной близости между векторами слов, которые появляются в близких контекстах, и минимизация косинусной близости между векторами слов, которые не появляются друг рядом с другом. Рядом друг с другом в данном случае, значит, в близких контекстах. Если угол между двумя векторами равен 0, то они сонаправлены и значение cos(0)=1, если векторы ортогональны, то косинусная близость нулевая (cos(pi/2) = 0), а если противоположно направлены, то cos(pi) = -1.
Первый успешный инструмент создания эмбеддингов слов появился благодаря разработке сотрудников Google в 2013 году - этим инструментом явилась модель Word2Vec (дословно "слово в вектор"). Для обучения используется большой текстовый корпус, генерируется словарь корпуса, а затем модель обучается на входных текстах, вычисляя векторное представление слов.
Благодаря Word2Vec появился новый способ создания векторов слов более эффективный, чем разреженное представление слов с помощью кодирования OHE, которое мы рассмотрели выше. Использование технологии эмбеддингов слов позволило повысить производительность моделей и сократить время вычислений. Эмбеддинг может быть предобучен на больших корпусах текстов и выгружен в виде словаря, где слову ставится в соответствие вектор, формируя предобученные эмбеддинги, которые можно использовать без повторного обучения.
Эволюцию NLP-технологий можно представить в виде многослойной пирамиды, каждый из слоев в которой обозначает добавление новых возможностей (рис. 2.23). Мы рассмотрели два нижних этажа и далее рассмотрим следующий - это модели на базе рекуррентных нейронных сетей.
Рекуррентные нейронные сети (Recurrent Neural Network, RNN) сыграли важную роль в развитии NLP-технологий, и о них следует рассказать чуть более подробно.
Выше мы рассматривали сети прямого распространения, в которых сигнал распространяется строго от входного слоя к выходному. Подобные сети не имеют механизма запоминания информации о ранее полученных входах и, соответственно, не подходят для решения задач распознавания речи, в которых важно предсказывать, что будет дальше (например, какая буква будет следовать в слове или слово в предложении).
"Пусть всегда светит ***", нам очевидно, что финальное слово в предложении - "солнце". Естественно, мы можем сделать такое предсказание только при наличии механизма запоминания предшествующих слов. Этот механизм актуален для любых последовательностей. Например, в случае видео. Предположим, у нас имеется последовательность кадров, где запечатлено перемещение мяча. Сделать предположение о следующем положении мяча можно только при наличии механизма запоминания последовательности предыдущих кадров.
Рекуррентная нейронная сеть - это тип нейронной сети, которая содержит циклические связи между нейронами (в отличие от сетей прямого распространения), которые позволяют эффективно работать с временными паттернами и последовательностями данных. Таким образом, рекуррентные сети имеют внутреннюю память, что позволяет учитывать не только фактический вход, но и предыдущие, то есть запоминать то, что произошло ранее. Эта возможность рекуррентной сети и делает ее эффективной для работы с последовательными данными (рис. 2.24).
Видео, текст, речь, музыка - это все примеры последовательностей.
Первые рекуррентные сети были известны еще в 80-х годах прошлого века, однако широкое практическое применение они нашли существенно позже, как и многие другие алгоритмы глубокого обучения. Популярность рекуррентные сети получили в 2014 и 2015 годах благодаря достижениям в области глубокого обучения и увеличению вычислительных возможностей.
Рассмотрим в самом общем плане, как работают рекуррентные сети. Как мы заметили, RNN оптимально работает с последовательными данными, в случае текста можно сказать, что процедура использует i-ое слово в качестве входных данных и объединяет с выходом слова i-1, та же процедура будет применена для слова i+1, и именно поэтому алгоритм называется рекуррентной нейронной сетью, по-скольку нейронная сеть применяет одни и те же операции к каждому слову i в предложении [84].
Справа представлена развертка цикла, которая показывает, что RNN можно представить как несколько копий одной и той же сети, каждая из которых передает сообщение преемнику. В процессе обучения происходит такое "разворачивание" сети, и развернутая копия обучается алгоритмом обратного распространения, получившим название BPTT (back propagation through
В рекуррентной нейронной сети каждое значение слова в предложениипредсказываетсянетольконаосноветекущеговходногосигнала, но и на основе предыдущих входных сигналов. Следует отметить, что рекуррентная сеть способна обрабатывать последовательности различной длины, что часто наблюдается при работе с естественным языком, например в случае перевода с одного языка на другой.
Один из недостатков нейронной сети - это так называемая "проблема с долгосрочной зависимостью", которая состоит в том, что по мере того, как разрыв между необходимой информацией становится больше, RNN становится менее и менее эффективной.
Суть проблемы легко понять при анализе ( рис. 2.26). Когда расстояние между словами, которые позволяют сделать правильный прогноз, минимально, то RNN не испытывает проблем, как например в случае фразы "пусть на небе светит ***" - "солнце".
А если, предположим, необходимо ответить на вопрос, какое слово должно быть в конце предложения "Я был в Англии, познакомился с массой приятных людей и даже выучил пару фраз на ***"?
Очевидно, что автор предложения выучил несколько фраз на английском, потому что именно это слово упомянуто в начале предложения. Но чем дальше отстоят слова, которые позволяют сделать предсказание искомого слова в последовательности, тем хуже с этой задачей справляется рекуррентная сеть. Это происходит из-за того, что развернутая рекуррентная сеть обучается единым алгоритмом обратного распространения, и ошибка, проходя от конца сети к началу, претерпевает затухание.
Мы отметили, что один из недостатков рекуррентных сетей заключался в "проблеме с долгосрочной зависимостью". Эта проблема была решена при использовании специальных рекуррентных сетей с так называемой долгой краткосрочной памятью, или LSTM (Long short-term memory).
LSTM - это разновидность архитектуры рекуррентных нейронных сетей, способная к обучению долгосрочным зависимостям. LSTM-архитектура способна передавать только релевантную информацию на более глубокие слои сети, позволяя каждому слою "решать", какую информацию нужно сохранить, а какую можно отбросить, что в свою очередь обеспечило возможность фиксировать существенные детали прошлого контекста и сохранять их, пока они актуальны.
Основным недостатком LSTM-архитектуры являлось то, что технология использовала для предсказания только предшествующую информацию. Однако, например, при переводе предложения, чтобы принять правильное решение, важно иметь информацию о словах, использованных во всем предложении. Эта проблема была решена с помощью технологии "двунаправленный LSTM", которая рассматривает полное предложение для предсказания.
В 2014 году в работе Cho и др. [87] была предложена базовая модель sequence-to-sequence - "последовательность в последовательность" (seq2seq) - модель глубокого обучения, основанная на технологии рекуррентных сетей и достигшая больших успехов в задачах NLP и, в частности, в машинном переводе.
Seq2seq - это модель, которая состоит из двух рекуррентных нейронных сетей (RNN): encoder (кодер), которая обрабатывает входные данные, и decoder (декодер), которая генерирует данные вывода. Первая RNN кодирует предложение на исходном языке в так называемый контекстный вектор, вторая декодирует его в последовательность на другом языке, эта схема на новом уровне повторяет уже упомянутую нами ранее схему интерлингва, или межъязыковый перевод.
На рис. 2.27 показана схема машинного перевода с использованием алгоритма Seq2seq.
Входная последовательность (предложение на русском языке) обрабатывается кодером, который переводит входную информацию в вектор, называемый контекстом, и пересылает контекст декодеру, который элемент за элементом генерирует выходную последовательность. Заметим, что прежде чем обрабатывать слова, их переводят в векторы с помощью алгоритма эмбеддингов слов, о котором мы рассказали ранее.
RNN и LSTM-сети были весьма популярны в 2014 г., они использовались в машинном переводе, а также в таких популярных продуктах как Сири и Алекса.
В течение нескольких лет RNN и LSTM были основной технологией для задач NLP. Недостатком RNN /LSTM оставалась невысокая точность при переводе длинных фраз, и вскоре им на смену пришел еще более совершенный подход к архитектуре - так называемые "сети внимания". В 2015 году Бахданау и другие [88] предложили механизм внимания как способ устранения указанного недостатка. Механизм внимания позволил декодеру фокусироваться на различных частях входных данных при генерации каждого слова на выходе.
Сети, основанные на внимании, - это тип нейронных сетей, которые позволяют сосредоточиться на определенном подмножестве входных данных. Эти модели показали высокие результаты на многих NLP-задачах, включая машинный перевод и ответы на вопросы.
Сети, основанные на внимании, привнесли способность модели фокусироваться на релевантных входных данных. Модели со вниманием отличались от двунаправленных моделей RNN/LSTM тем, что рассматривали входную последовательность и на каждом шаге решали, какая часть этой последовательности важна и "требует внимания". То есть модель учитывала весомость слов, окружающих текущий контекст. Сети, основанные на внимании, стали популярны в 2015-2016 годах.
Метод внимания помог повысить точность, однако он столкнулся с проблемой в плане производительности. Поскольку вычисления выполнялись последовательно, было трудно масштабировать это решение.
В 2017 году был представлен новый тип нейронной сети на основе внимания, получивший название "трансформер". Как и RNN, трансформер представляет собой архитектуру для преобразования одной последовательности в другую с помощью механизма кодердекодер, но он отличается от предыдущих существующих моделей Seq2Seq тем, что не использует никаких рекуррентных сетей.
Ранее в курсе как достоинство рекуррентных сетей была отмечена возможность обработки последовательностей "слово за словом". Основным недостатком этой методики является тот факт, что обработка данных занимает много вычислительных ресурсов. Одна из задач разработчиков модели Transformer состояла в том, чтобы устранить этот недостаток. Разработчики пришли к идее обрабатывать всю входную последовательность сразу.
Механизм внимания позволил трансформерам обрабатывать все элементы одновременно за счет формирования прямых связей между отдельными элементами. Благодаря этому модель Transformer смогла обучаться быстрее и на гораздо большем количестве данных с помощью распараллеливания, что в свою очередь повысило точность при выполнении NLP-задач.
Центральным в архитектуре трансформеров является механизм внутреннего внимания (или самовнимания, self-attention), который моделирует отношения между всеми словами в предложении и оценивает, как каждое слово в предложении связано с другими словами [89].
Подробное описание механизма внутреннего внимания выходит за рамки обзорного изложения материалов, принятого в данной курсе. Заметим лишь, что при высокоуровневом объяснении механизма внутреннего внимания обычно говорят, что данный механизм позволяет смоделировать "понимание" связей отдельных слов с другими словами при обработке каждого конкретного слова.
При восприятии текста человек понимает смысл прочитанного, в том числе исходя из понимания смысла слов. Так, например, прочитав две фразы - " кошка не перешла улицу, так как она слишком устала" и "кошка не перешла улицу, потому что она была слишком широкой", - человек сразу понимает, что в первом случае слово "она" относится к слову "кошка", а во втором случае "она" относится к улице.
В рассмотренном примере механизм внутреннего внимания - это тот механизм, который позволяет установить ассоциации между словами "она" со словом "кошка" в первом случае и со словом "улица" во втором случае.
Трансформеры продемонстрировали свои возможности в обработке естественного языка, включая задачи машинного перевода (рис. 2.28) и распознавания речи.
Трансформерные архитектуры привели к фундаментальным изменениям в области компьютерной лингвистики, в которой в течение многих лет доминировали рекуррентные нейронные сети. Появились разные реализации трансформаторов, такие как BERT, GPT, GPT-2, GPT-3.
Возможность большего распараллеливания во время обучения позволила проводить обучение на больших наборах данных. Это привело к развитию трансферного обучения в области языкового моделирования и появлению предварительно обученных моделей.
Напомним, что суть трансферного обучения состоит в том, что навыки, полученные водном "проекте", можно передать в другой (рис.2.29).
Можно привести аналогию. Когда ребенок впервые пробует кататься на велосипеде, ему нужно учиться с нуля, и это требует определенного времени - необходимо научиться держать равновесие, рулить, тормозить. Когда ребенок подрастает и учится ездить на мотоцикле, ему уже не нужно начинать с нуля. Базовые навыки (такие как умение держать равновесие при вхождении в поворот) уже являются привычными.
Применительно к задачам NLP можно сказать, что суть трансферного обучения заключается в предварительном обучении модели на большом корпусе обычных текстов, из которых модель понимает базовые принципы устройства языка и последующего обучения модели на специфическом в контексте решения задачи корпусе текста, на котором модель дообучается решению конкретной задачи. Это позволяет демонстрировать более высокие результаты, чем в случае обучения на одних только специфических для задачи данных. Успехи трансферного обучения были продемонстрированы на примере таких известных моделей как GPT и BERT.
В 2018 году компания OpenAI предобучила на большом объеме текста генеративную нейронную сеть GPT. На основе разработки от OpenAI в конце 2018 года в Google создали свою нейросеть - BERT, которая сразу побила несколько рекордов по успешности решения ряда NLP-задач.
Модель появилась в начале 2018-го, а уже в октябре того же года Google встроил модель в свой поисковик. Разработчики модели выложили в открытый доступ код модели и сделали возможным скачивание различных версий BERT, переобученных на больших наборах данных. То есть базовая версия модели, которая прошла длительное предобучение на больших корпусах текстов, стала доступной для того, чтобы ее можно было дообучить на прикладных задачах сторонних пользователей. То, что исходный код BERT находился в открытом доступе, позволило множественным разработчикам использовать модель, адаптируя ее к своим уникальным задачам.
Тонкая настройка или дополнительное обучение модели на отдельном наборе данных, отличном от того, на котором модель обучалась изначально, позволяет, слегка изменив параметры сети, обеспечить решение новой задачи - получить более быстрое обучение, чем, если бы та же модель обучалась с нуля.
Тем, кому индивидуальная тонкая настройка была не нужна, было доступно множество открытых бесплатных, предварительно обученных моделей BERT для различных случаев использования, для конкретных задач, таких как анализ настроений в Twitter, категоризатор эмоций, перевод речи в текст, обнаружение токсичных комментариев и т. п. [92].
Вскоре после появления BERT вышла его мультиязычная версия, обученная на 104 языках, в том числе на русском. Обучением русскоязычных моделей BERT занималась лаборатория глубокого обучения МФТИ в рамках проекта Deep Pavlov, Институт исследования искусственного интеллекта AIRI и
Появление трансформеров привело к радикальным изменениям в мультимодальных задачах, когда одновременно используется несколько типов входных сигналов (например, текст и
Длительное время стандартом де-факто для мультимодальных задач с использованием текстов и картинок было применение сверточных нейронных сетей для извлечения признаков из визуальной области, при том, что для получения текстового представления использовались рекуррентные нейронные сети. Эта картина изменилась с появлением архитектуры трансформеров.
В феврале 2019 г. компанией OpenAI была создана модель Generative Pretrained Transformer 2 (GPT-2) - система ИИ с открытым исходным кодом, которая позволяла переводить, отвечать на вопросы и генерировать текст на уровне, который в ряде случаев неотличим от написанного человеком. GPT-2 был создан как развитие модели OpenAI GPT от 2018 года, с десятикратным увеличением как количества параметров, так и размера обучающего набора данных (модель обучили на 40 Гб текста).
В 2020 году OpenAI выпустила модель GPT-3, которая позволяла не только создавать текст, но и генерировать код, писать рассказы и сочинять
Серия моделей GPT также продемонстрировала, что обучение на очень большом корпусе и тонкая настройка модели под целевую задачу могут значительно превзойти обычные модели в качестве, однако, с другой стороны, в полный рост проявилось ограничение, связанное с непропорционально высокой стоимостью обучения больших трансформерных моделей.
Говоря о развитии глубокого обучения в задачах естественного языка интересно провести сравнение последних с развитием моделей, предназначенных для решения задач компьютерного зрения. На рис. 2.30 показан современный период развития нейросетевых моделей для решения задач компьютерного зрения, обработки естественного языка и мультимодальных задач по данным статьи Andrew Shin, Masato Ishii [93].
В верхней части диаграммы отмечены модели для решения задач компьютерного зрения. Блок, обозначенный как CNN, иллюстрирует совокупность моделей, построенных на архитектуре сверточных сетей. Модели VGG и Resnet уже были нами упомянуты при обсуждении ILSVRC (рис. 2.5). DenseNet - еще одна модель на основе архитектуры сверточных сетей, предложенная в 2017 г. Блок, обозначенный как R-CNN (Region-Based Convolutional Neural Network), - это семейство моделей машинного обучения для компьютерного зрения и, в частности, для обнаружения объектов. Данная архитектура была разработана в 2014 году и включает следующие этапы: нахождение потенциальных объектов на изображении и разбиение их на регионы, извлечение признаков каждого полученного региона с помощью сверточных нейронных сетей, классификация обработанных признаков с помощью метода опорных векторов и уточнение границ регионов с помощью линейной регрессии [94].
Обратим внимание на модель Vision Transformer, показанную на рис.2.30 на границе 2020 года. В то время как архитектура Transformer стала стандартом дефакто для задач обработки естественного языка после 2017 года, ее применение в компьютерном зрении оставалось ограниченным. В задачах компьютерного зрения механизм внимания либо применялся совместно со сверточными сетями, либо использовался для замены определенных компонентов сверточных сетей при сохранении их общей структуры.
В 2020 году Досовицкий и др. (2020) [95] предложили модель Vision Transformer (ViT) и в данной публикации показали, что выше-упомянутая зависимость от CNN не является необходимой и чистый трансформер может хорошо справляться с задачами классификации изображений.
Как ранее было отмечено, трансформеры используют механизм внимания, суть которого в самом общем плане в NLP-задачах состоит в измерении связей между парами входных слов. Стоимость этой операции (с точки зрения вычислительных ресурсов) квадратично зависит от количества слов. Для изображений основной единицей анализа является пиксель. Однако вычисление взаимосвязей для каждой пары пикселей в типичном изображении является непомерно затратным с точки зрения вычислительных ресурсов. Вместо этого ViT вычисляет отношения между пикселями в различных небольших участках изображения (например, 16x16 пикселей), что позволило значительно снизить вычислительные затраты и показать хорошие результаты [96]. В нижней части рис. 2.30 представлена эволюция архитектур нейросетевых моделей, используемых в задачах NLP. Здесь выделено два больших блока - это RNN, которая господствовала до 2017 года, и сменившая ее архитектура Transformer, о которой мы написали выше. Боксами меньшего размера представлены конкретные модели, начиная от LSTM и заканчивая GPT-3, которые также ранее были рассмотрены.
В средней части приведены модели, которые были предложены для решения мультимодальных задач (компьютерное зрение - обработка языка). Для решения указанных задач необходима совместная обработка изображения и текста, связанного с ним. Подобные модели позволяют решать такие задачи, как генерация описания по изображению, изображения по текстовому описанию, визуальные ответы на
Первая из упомянутых на рисунке моделей данного типа - это модель Google Show and Tell ("Покажи и расскажи"), которая позволяла определить, что изображено на фотографии. Модель была создана в 2014 году и в течение нескольких лет дорабатывалась. В публикации за 2016 год [97] было отмечено, что в ходе тренировки модели на подписях, созданных людьми, система научилась генерировать подписи с точностью около 94%.
Впоследствии, до появления архитектуры трансформеров (до 2017 г.) был предложен еще ряд мультимодальных моделей - это такие модели как Spatial Attention, DenseCAP, Semantic Attention.
После успеха предварительно обученных трансформаторов для языкового моделирования, таких как BERT, профессиональное сообщество предложило различные модели на основе трансформеров, такие как
В 2019 году была начата разработка нейронной сети DALL-E, когда OpenAI получила грант суммой в 1 миллиард долларов от компании Microsoft на разработку инновационных технологий в сфере искусственного интеллекта. Первая версия нейросети была представлена мировому сообществу в январе 2021 года, а в апреле 2022 года была анонсирована новая версия - DALL-E 2, созданная для генерации изображений на основе пользовательского описания.
В интернете доступна версия DALL-E Mini (Craiyon Image Generator From Text), где каждый может поэкспериментировать и посмотреть, как нейросеть строит изображения по текстовым описаниям пользователей (рис. 2.31).
Мы рассмотрели последний период развития нейросетевых моделей применительно к решению задач компьютерного зрения и задач естественного языка. И далее хотели бы продемонстрировать общую картину развития нейросетевых моделей, начиная с их зарождения и заканчивая последними моделями победителей разного рода соревнований. Общая тенденция для обсуждаемых моделей - это экспоненциальный рост числа параметров (рис. 2.32).
На создание GPT-3 ушли десятки миллионов долларов. Известно, что только вычислительные затраты на одну итерацию обучения составили около 4,6 миллиона долларов, что представляет лишь небольшую долю общих затрат. Кривая рис. 2.32 показывает резкий рост стоимости обучения модели с увеличением ее размера.
Естественно ожидать, что процесс наращивания количественных показателей, отмеченный на рис. 2.32, должен был привести к появлению качественных возможностей нейросетевых моделей. И такой переход количества в качество был отмечен - по сути, так можно трактовать появление нового термина - "базисные модели".
Термин "базисные модели" был введен исследователями из Стэнфорда в 2021 г. в статье "О возможностях и рисках базисных моделей" [101]. Предложенный термин помог обозначить смену парадигмы в развитии ИИ и позволил авторам поместить на временной шкале новый
При этом авторы упомянутой коллективной статьи подчеркивают, что само понятие "Базисная модель" не является новой технологией, а имеет в своей основе глубокие нейронные сети и самоконтролируемое обучение. И в качестве ярких примеров базисных моделей рассматривают уже упомянутые нами BERT и GPT 3.
Базисные модели вводятся как сверхглубокие мультимодальные нейросетевые модели, которые демонстрируют возникновение новых возможностей на базе технологии глубокого обучения.
Согласно выводам исследователей из Стэнфорда, история ИИ - это история универсализации моделей и развития
Говоря об универсализации моделей, можно проследить следующую цепочку. На стадии машинного обучения ( рис. 2.33) для каждой задачи было необходимо извлечение своей совокупности признаков. С появлением базисных моделей можно констатировать, что одна модель может быть базой для широкого круга задач, что, по сути, и знаменует начало эры базисных моделей.
Технологически базисные модели становятся возможными благодаря трансферному обучению и масштабированию. В рамках глубокого обучения преобладающим подходом к трансферному обучению является предварительное обучение: модель обучается на типовой задаче со стандартным датасетом (часто просто как средство достижения цели), а затем адаптируется к последующей задаче, представляющей интерес, путем тонкой настройки.
Более того, современные модели, такие как GPT-3, могут использоваться для решения задач вообще без дополнительного обучения (zero-shot learning) или с крайне небольшим количеством примеров (few-shot learning). Например, мы можем решать задачи текстовой классификации, подавая генеративной модели на вход исходный текст и далее "спрашивая" ее, к какой категории этот текст принадлежит. Это является сменой парадигмы, когда модели становятся настолько большими и дорогими в обучении, что их практически невозможно дообучить в условиях небольшой компании.
Масштабирование достигается на базе совершенствования компьютерного оборудования (например, на базе использования GPU); использование архитектуры модели Transformer, которая позволяет использовать параллелизм аппаратного обеспечения, и обеспечивает доступность гораздо большего количества обучающих данных.
До 2019 года самоконтролируемое обучение с помощью языковых моделей было, по сути, подотраслью NLP, которая развивалась параллельно с другими разработками в NLP. После 2019 года самоконтролируемое обучение с использованием языковых моделей стало скорее основой NLP, поскольку использование BERT стало нормой. Признание того, что одна модель может быть базой для такого широкого круга задач, ознаменовало начало эры базисных моделей. Базисные модели привели к высокому уровню универсализации в том плане, что почти все современные модели NLP теперь адаптированы на основе одной из нескольких базовых моделей, таких как BERT, RoBERTa, BART и др.
Появление эры базисных моделей проявилось также в универсализации и большей однородности исследовательского инструментария. Аналогичные подходы к моделированию последовательностей на основе трансформеров стали применяться к тексту, изображениям, к речи, табличным данным, к исследованиям органических молекул и т.п. Эти примеры указывают на возможность появления унифицированного набора инструментов для разработки базисных моделей в широком диапазоне модальностей (рис. 2.34).
Базисная модель может извлекать информацию из данных, различных модальностей, и одна модель может быть адаптирована к широкому спектру решаемых задач.
Это можно назвать изменением парадигмы, поскольку в прошлом считалось, что ИИ-модели способны выполнять одну задачу за раз. Исследование задач разных модальностей, таких как задачи компьютерногозренияизадачиобработкиестественногоязыка,проводилось с использованием разных технических подходов - исследователи зрения изучали такие темы, как обработка сигналов, а исследователи языка - грамматику языка. Сам термин узкий искусственный интеллект в учебниках 5-7-летней давности подавался как интеллект, заточенный на решение одной конкретной задачи и не имеющий возможности решать задачи из других областей, что противопоставлялась возможностям человека учиться в разных направлениях. Даже при наличии концепции трансферного обучения не предполагалось, что одна модель будет выполнять задачи, сильно отличающиеся друг от друга. Базисные модели с глубоким обучением позволили создавать модели, способные выполнять множество задач [103].
На рис2.30, 2.32 был упомянут ряд значимых моделей, появившихся сравнительно недавно. Но технологии развиваются так стремительно, что многие из последних и уже нашумевших проектов в книгу не попали, поскольку заявили о себе буквально за время ее написания. В итоге такие современные модели, как DALLE-2, Midjourney, LAMBDA, Gato и некоторые другие, просто не успели попасть в обзор. Однако мы не могли не отметить чат-бот ChatGPT, специализирующийся на диалогах, который был запущен компанией OpenAI 30 ноября 2022 года и который стал, наверное, самым обсуждаемым проектом в конце 2022 г., как раз на момент завершения работы над курсом.
ChatGPT получен на основе доработки базовой модели от OpenAI GPT-4.5 (улучшенной версии GPT-3). Сервис способен понимать человеческую речь, выстраивать диалог с собеседником, отвечать на сложные вопросы.
Мы попросили чат-бот рассказать о себе. В ответ на запрос "Напиши раздел про GPTChat для книги "Искусственный интеллект. Анализ, тренды, мировой опыт"" от бота был получен следующий ответ. "GPT (Generative Pre-training Transformer) Chat - это большая языковая модель, разработанная OpenAI, которая используется для генерации текста в режиме реального времени. Она была создана для того, чтобы обеспечить натуральную и убедительную коммуникацию с людьми через чат-бот. GPT Chat использует архитектуру Transformer, которая позволяет ей учитывать контекст и понимать смысл текста. Она также имеет доступ к большому корпусу текста, что помогает ей лучше отвечать на различные вопросы и учитывать разные тональности и настроения. GPT Chat уже используется в различных областях, таких как клиентская поддержка, маркетинг, образование и развлечения".
В своем обзоре развития ИИ-систем мы, по сути, подошли к переднему краю разработок, и можно сказать, что определенную (упрощенную и далеко не полную) траекторию эволюции технологий ИИ (по состоянию на конец 2022 г.) представили. В название лекции было вынесено не только слово "развитие", но и слово "структура" технологий ИИ, поэтому далее поговорим о структуре и иерархии ИИ-технологий в составе комплексных решений.
Мы проследили некоторую эволюцию ИИ-технологий и, подводя итог первой лекции, хотели бы рассмотреть, как из упомянутых технологий строятся ИИ-решения, какова их структура, каков набор и иерархия входящих в эти решения технологий искусственного интеллекта. Также в этом разделе поговорим о том, как меняется спектр наиболее востребованных технологий в современных ИИ-решениях, и завершим лекцию обсуждением вопроса "Где технологии ИИ пересекаются с другими областями знания?".
Следующий эллипс - это уровень исследовательских методов или научных школ искусственного интеллекта, включая рассмотренные нами символизм, коннекционизм и эволюционизм.
Далее показан эллипс, демонстрирующий базовые технологические направления, которые могут быть построены на основе различных алгоритмов - это уже рассмотренные нами ранее задачи компьютерного зрения, обработки естественного языка, экспертные системы, системы поддержки принятия решений и другие. И наконец, внешний эллипс отображает области внедрения ИИ-приложений, то есть комплексные решения, в которых ИИ-компоненты обеспечивают ту или иную часть их функциональности (финансы, умный город, здравоохранение, промышленность и другие).
Для того чтобы построить решение на базе ИИ, помимо программного обеспечения нужна инфраструктура, на которой все перечисленные приложения будут работать. Причем нужна специализированная инфраструктура, которая позволит обрабатывать типичные для ИИ-задач нагрузки с оптимальной производительностью. К числу инфра-структурных технологий, на которых строятся ИИ-решения, в схеме рис. 2.35 отнесены элементы аппаратного обеспечения (процессоры, память, нейроускорители, сенсоры и датчики, системы управления движением), программное обеспечение (алгоритмы, фреймворки, библиотеки, вычислительные среды, инструменты разработки) и данные (пакетные данные, потоковые данные, большие данные, разметка).
Говоря о технологиях, составляющих то или иное комплексное решение, следует отметить, что технологии быстро развиваются - совершенствуются алгоритмы, меняются вычислительные возможности, одни технологии устаревают и сходят с дистанции, другие массово применяются большинством участников рынка, третьи применяются в пилотных проектах, четвертые находятся еще только на стадии запуска. Инымисловами, для того чтобы оценить, какие технологии используются в ИИ-решении и какие будут актуальны в ближайшей перспективе, требуется еще одна точка зрения - это взгляд, связанный с анализом жизненного цикла технологии от запуска до выхода на массовый рынок. Обратимся к материалам аналитической компании Gartner, которая ежегодно публикует так называемый цикл ажиотажа (Gartner Hype Cycle), показывающий стадию развития той или иной технологии с точки зрения ее зрелости и с точки зрения ее субъективного восприятия профессиональным сообществом. В данной методике Gartner исходит из того, что каждая новация проходит пять различных стадий, представленных на рис. 2.36.
Поскольку Gartner проводит оценку ИИ-технологий ежегодно, появляется возможность показать, как рассмотренные нами выше технологии, "проходят сквозь цикл ажиотажа". Нельзя сказать, что все технологии последовательно движутся вдоль кривой с одинаковой скоростью. Некоторые, как, например, технология сильного ИИ как находились на этапе запуска, так и остаются в этом состоянии, более того - ряд ученых полагают, что этой технологии не суждено воплотиться в полной мере на практике. Другие ИИ-технологии, такие как "распознавание речи" и "использование графических ускорителей" на кривой 2021 г., уже прошли плато продуктивности и находятся за пределами цикла, третьи (такие как, например, "семантический поиск") перемещаются в сторону "плато продуктивности".
Не для всех технологий можно показать, как они продвигаются по кривой ажиотажа, поскольку не все технологии, которые были, например, в фокусе внимания компании Gartner в предшествующие годы, попадают в область рассмотрения в последующие. Некоторые просто выпадают из поля зрения аналитической компании.
Когда говорят о наборе технологий, составляющих ИИ-решение, неизбежно заходит речь о том, где проходит граница между ИИ-технологией и смежными областями. Очевидно, что ИИ-технологии имеют области пересечения с другими технологиями, имеющими отношение к наукам о данных. Различные авторы пытались показать, в какой степени область искусственного интеллекта пересекается с другими технологиями, что позволяет лучше понять предмет ИИ как области науки. Существует достаточно много попыток отобразить графически данные пересечения в виде диаграмм Венна (например, они приведены в работах [106, 107]). Некоторые из этих диаграмм, на наш взгляд, имеют слишком ограниченный перечень областей, другие, напротив, перегружены подробностями и теряют наглядность. Мы остановились на диаграмме, которую в своих работах использовали специалисты компании SAS Institute ( рис. 2.37).
Пользуясь данной схемой, обсудим, где же технологии ИИ пересекаются с другими областями
Например, первые OCR-системы (относящиеся к технологии распознавания образов) не применяли алгоритмы машинного обучения, а использовали относительно простые алгоритмы попиксельного сравнения символа и шаблона, что давало приемлемые результаты в рамках одного шрифта.
Современные OCR-системы, использующие машинное обучение, позволяют выполнять более сложные операции: не только решать задачу
Следующая область на рисунке (представленная вытянутым эллипсом) - это вычислительная
Цель нейронауки - понять работу мозга, и высшая цель - объяснить феномен сознания. Цель ИИ заключается в том, чтобы научить компьютеры имитировать разумное поведение, решать задачи, требующие интеллекта. Очевидно, что указанные области имеют пересечение. Информация о строении и функционировании мозга позволяет совершенствовать и создавать новые алгоритмы для решения задач из области ИИ. Наиболее ярким примером являются успехи создания моделей глубокого обучения на базе искусственных нейронных сетей. Таким образом, оба направления развиваются и обогащают друг друга. Еще одна окружность - "Обнаружение знаний в базах данных" (Knowledge Discovery in Databases KDD) - обозначает методику обнаружения полезных знаний в данных. Датамайнинг является под множеством KDD.
KDD и датамайнинг имеют существенное пересечение с машинным обучением. Датамайнинг может использовать общие методы вместе с машинным обучением. "Но если машинное обучение сосредоточено на прогнозировании, основанном на известных свойствах, полученных из обучающих данных, то датамайнинг сосредоточен на обнаружении ранее неизвестных свойств в данных, являясь этапом анализа для обнаружения знаний в KDD".
"В машинном обучении производительность обычно оценивается по способности воспроизводить известные знания, в то время как в обнаружении знаний и добыче данных ключевой задачей является обнаружение ранее неизвестных знаний. При оценке по известным знаниям неконтролируемый метод (без учителя) будет легко превзойден контролируемыми методами (с учителем), тогда как в типичной задаче KDD контролируемые методы не могут быть использованы из-за недоступности обучающих данных" [109].
Некоторые задачи датамайнинга и машинного обучения пересекаются: классификация, кластеризация, прогнозирование, анализ и обнаружение отклонений. Для решения этих задач может применяться инструментарий машинного обучения, а может и не применяться. Например, для решения задач классификации и кластеризации могут применяться как искусственные нейронные сети, являющиеся одним из методов машинного обучения, так и другие подходы, например графическое представление информации, при том, что интеллектуальное решение принимается человеком. При этом в датамайнинге успешно применяются интерпретируемые методы машинного обучения, такие как деревья решений, по которым затем могут быть построены правила, описывающие свойства предметной области.
Вариантов применения ИИ большое множество, и не все они служат для решения задач датамайнинга. Например, обучение с учителем, при котором выполняется процесс обучения, это задача построения модели, основанной на данных, которая сможет научиться на основе размеченных данных "понять" правила, которым систему ИИ обучает учитель, и начать различать разные типы данных. При этом такая область, как распознавание речи или машинный перевод (которые были рассмотрены ранее в данной лекции), являются задачами ИИ и не являются задачами датамайнинга. Кроме того, в понятие ИИ входит целый ряд методов, основанных на явном представлении знаний и логическом выводе.
Долее рассмотрим, где происходит пересечение областей "наука о данных" (data science, дата-сайнс) и искусственный интеллект.
Термин дата-сайнс появился сравнительно недавно (в 2008 году), чтобы описать развивающуюся область исследований, направленную на выявление скрытой ценности в
Дата-сайнс неслучайно показан как самое большое множество, наука о данных подразумевает комплексный процесс, включающий предварительную обработку данных, их анализ, визуализацию и выработку прогнозов на основе данных. Несмотря на то, что ИИ в первую очередь ассоциируется с созданием компьютерных алгоритмов интеллектуальной обработки данных, во многих проектах по реализации ИИ могут использоваться вышеперечисленные стадии сбора и обработки данных.
Говоря о различии методов классической статистики ИИ, сошлемся на мнение авторов статьи [110]. Они отмечают, что традиционная статистика имеет дедуктивный подход к истине (от общего к частному), и если классический статистический подход начинается с набора гипотез, то методология ИИ и машинного обучения в начале исследования не делают каких-либо предположений относительно типа поведения переменных, чтобы соотнести их с целевым результатом.
Можно ли сказать, что, применяя алгоритм линейной регрессии, известный еще в начале 19 века, вы решаете задачу машинного обучения?
Разные специалисты дадут разные ответы. Однако такие гуру машинного обучения как Кристофер Бишоп в книге "Распознавание образов и машинное обучение", Ян Гудфеллоу в книге "Глубокое обучение" и ряд других упоминают линейную регрессию как один из алгоритмов машинного обучения. Так что граница между классической статистикой и машинным обучением как областью искусственного интеллекта в некотором смысле размыта. Можно привести такую аналогию - те, кто делают колеса, создают автомобиль, но колесо не является автомобилем, и колесо появилось задолго до появления автомобиля.
Так, в классических статистических моделях за моделью стоит теория, доказанная математически, при этом необходимо, чтобы данные строго соответствовали определенным предположениям. Машинное обучение также основано на строгих математических основах, однако, оно в большей степени связано с исследованиями закономерностей в данных, которые могут проводиться эмпирическим путем. Поскольку машинное обучение часто использует итерационный подход для получения знаний, извлекаемых из данных, обучение можно легко автоматизировать. Данные обрабатываются до тех пор, пока не будет найдена надежная модель определенной точности [111].
В предыдущих разделах, говоря об эволюции ИИ, мы рассмотрели ряд научных направлений, включая коннекционистский и символьный, отметили, что в каждом из них есть свои подходы и алгоритмы.
Очевидно, что наблюдать процесс развития технологий ИИ можно в разных аспектах, и рассмотрение эволюции с точки зрения решения ключевых научно-практических задач является одним из важнейших. При этом развитие прикладной науки и технологий движет не только жажда ученых к познанию, но и стремление бизнеса к участию в проектах, сулящих прибыль, а также активность государственных организаций, ответственных за решение стратегических задач.
Рассматривая ИИ в рамках обозначенной логики, прежде всего полезно проследить, как совершенствовались технологии искусственного интеллекта при решении двух задач - построения систем компьютерного зрения и обработки естественного языка.
Создатели компьютерного зрения добились значительных успехов в разработке систем, имитирующих биологическое зрение, и в некоторых задачах возможности зрительного аппарата человека уже удалось превзойти. Технология нашла широчайшее практическое применение во всех отраслях - умные камеры, распознавание лиц в качестве биометрических приложений, анализ медицинских изображений, анализ действий покупателей в магазине, распознавание номерных знаков и мониторинг соблюдения ПДД, приложения для создания автономных транспортных средств, распознавание жестов, в том числе для управления различного рода устройствами, создание фотореалистичных изображений. Список практически неисчерпаем.
Постараемся, избегая технических подробностей и формул, рассказать о некоторых ключевых ИИ-технологиях, которые лежат в основе большинства из перечисленных приложений.
Прежде всего заметим, что разговор про распознавание изображений - как основу компьютерного зрения - мы уже начали в предыдущих разделах курса, большинство примеров по использованию искусственных нейронных сетей как раз были связаны с распознаванием изображений. То есть мы уже затронули тему компьютерного зрения, но до сих пор не привели определение этого понятия.
В самом общем плане можно сказать, что компьютерное зрение - это технология, основанная на ИИ, позволяющая извлекать значимую информацию из визуальных данных (изображения, видео), принимать решения и осуществлять действия на основе этой информации. Уточняя понятие, следует отметить, что компьютерное зрение - это междисциплинарная область, которая базируется на ряде технологий (обработка электронных сигналов, машинное обучение, обработка изображений) и в свою очередь развивает такие прикладные направления, как машинное и робототехническое зрение ( рис. 2.1).
Суть термина проявляется более наглядно при рассмотрении родственных
Компьютерное зрение больше направлено на извлечение информации из изображений и делает акцент на анализе
Компьютерное зрение и машинное зрение имеют области пересечения и в некоторых случаях могут использоваться как синонимы. При этом различия все-таки существуют. Машинное зрение - это инженерная область знания, которая в основном относится к промышленному использованию для автоматического контроля и управления процессами. Его можно считать дочерней областью, поскольку в нем используются методы и алгоритмы компьютерного зрения и обработки изображений.
Различие можно продемонстрировать на особенностях употребления. Например, когда мы говорим о том, что видеохостеры используют компьютерное зрение для выявления опасного контента в Интернете - здесь термин "машинное зрение" неуместен, а если речь идет о том, что системы компьютерного зрения были использованы на производственной линии завода для контроля качества, здесь возможно употребление терминов машинное или техническое зрение.
Робототехническое зрение - понятие родственное термину машинное зрение - также имеет свою специфику. Приложения машинного зрения не обязательно связаны с робототехникой - например, деталь для контроля на наличие дефектов может просто помещаться перед системой машинного зрения. Робототехническое зрение, как правило, является более сложной системой, чем машинное зрение, поскольку обеспечивает управление движением робота и должно быть включено в систему обратной связи, подразумевающей реакцию на действия робота.
Таким образом, робототехническое зрение подразумевает использование комбинации аппаратных средств, камеры и компьютерных алгоритмов, позволяющих роботам обрабатывать визуальные данные из окружающего мира и в некотором смысле понимать смысл
Ключевые отличия перечисленных технологий можно наглядно проследить по тому, какие данные они получают на входе и в каком виде формируют данные на выходе (табл. 2.1)
| Технология | Вход | Выход |
|---|---|---|
| Обработка сигналов | Электрические сигналы | Электрические сигналы |
| Обработка изображений | Изображения | Изображения |
| Компьютерное зрение | Изображения | Информация/ характеристики |
| Распознавание образов/ машинное обучение | Информация/функции | Информация |
| Машинное зрение | Изображения | Информация |
| Робототехническое зрение | Изображения | Физические действия |
Для более подробного обсуждения технологии компьютерного зрения вернемся к теме возникновения и эволюции данных систем. Одна из первых работ, в которой упоминалось компьютерное распознавание изображений и звука, вышла в 1955 г. - профессор Массачусетского технологического института Оливер Селфридж опубликовал статью "Глаза и уши для компьютера". Работа, которую, несомненно, можно считать пионерской в области компьютерного зрения, мы уже упомянули в начале курса - это Персептрон Фрэнка Розенблата. Еще одним отцом компьютерного зрения называют Лоуренса Робертса (Lawrence Roberts), который в 1963 году опубликовал работу "Машинное восприятие трехмерных твердых тел", в которой обсуждались вопросы извлечения трехмерной информации об объектах из двухмерных фотографий. Лоуренс защитил в этой области диссертацию и уже в 1970 году читал в MIT курс по компьютерному зрению.
В 1966 году Сеймур Пейперт организовал в Массачусетском технологическом институте проект по сегментации фона и переднего плана на фотоизображениях с целью извлечения из них непересекающихся объектов, который тоже можно отнести к пионерским проектам в области компьютерного зрения.
Одна из ранних прикладных задач компьютерного зрения - это оптическое распознавание символов OCR обучались на изображениях отдельных символов и должны были переобучаться при каждом изменении шрифта. В 1970-х годах уже упомянутый в курсе изобретатель Рэй OCR, который мог обрабатывать текст, напечатанный практически любым шрифтом. В начале 90-х российские разработчики, впоследствии создавшие всемирно известную компанию OCR-программы, которая позднее стала популярным продуктом FineReader. Другая отечественная компания - Cognitive Technologies - примерно в это же время разрабатывала свою систему оптического распознавания текстов OCR CuneiForm. Как коммерческий продукт эта программа появилась в 1993 году. В начале 2000-х годов оптическое распознавание символов стало доступно в Интернете в виде облачного сервиса.
Параллельно развивались также приложения для распознавания лиц при участии и финансировании военных ведомств. Например, в 1993 стартовал проект "Технология распознавания лиц (FERET)", который спонсировался правительством США, целью проекта было создание большой автоматической системы распознавания лиц для целей разведки, безопасности и правоохранительных органов. Проект преследовал задачи автоматизации процессов поиска по фотографиям с камер видеонаблюдения, контроль доступа к объектам и т. п. Примерно в это же время появились первые беспилотные системы управления автотранспортом. В 2003 году системы распознавания лиц стали использоваться в корпоративных приложениях.
В 2010-х годах в области распознавания и классификации изображений начался переход к методам глубокого обучения.
Распознавание изображений постепенно перешло из дорогой специфической технологии в доступную в широком наборе отраслей благодаря развитию алгоритмов, использованию больших наборов данных и росту вычислительной мощности доступного оборудования. Начиная с 2012 года активный рост ИИ был преимущественно обусловлен моделями глубоких нейронных сетей, которые, в отличие от классических методов машинного обучения, позволили исключить процедуру ручного извлечении признаков.
Рассмотренные нами выше методы классического машинного обучения, такие, как, например, метод опорных векторов, не могут быть применены непосредственно к необработанным данным, таким как изображения или текст. Необходим упомянутый этап предварительного извлечения признаков для решения исходной задачи (например, такой как классификация данных).
Извлечение особенностей или признаков изображения - это отдельная процедура (обнаружение цвета, краев, углов, объектов и т. п.). В подобных алгоритмах компьютерного зрения данные признаки создаются человеком, и точность моделей напрямую зависит от самих признаков и от методов их извлечения.
Для извлечения признаков применялись специальные алгоритмы, такие как, например, алгоритм
Поясним это на примере - пусть модель машинного обучения используется для ответа на вопрос, изображен на конкретном изображении автомобиль или нет (рис. 2.2).
На основе выделенных признаков (если они правильно выбраны) алгоритм проведет классификацию изображений.
В случае с моделью глубокого обучения шаг извлечения признаков не нужен. Сеть извлекает эти признаки самостоятельно. Причем извлечение признаков возможно там, где человек выполнить подобную процедуру не может в принципе.
Действительно, даже если человек способен распознать тот или иной объект, он далеко не всегда может определить совокупность признаков, по которым он принял решение. Увидев ночью кошку или собаку, перебегающую дорогу даже при слабом освещении, мы, как правило, можем сказать, кто это был на самом деле, а вот сформулировать набор признаков, по которым мы смогли дать классификацию, крайне сложно.
Способность глубокого обучения в извлечении уникального набора признаков и демонстрация высочайшей производительности (более высокой, чем у человека) состоит в том, что глубокая нейронная сеть опирается при обучении на огромные объемы данных. Глубокие нейронные сети позволяют получить производительность, недостижимую для алгоритмов классического машинного обучения, но, как правило, требуют для этого наборы данных очень большого объема (рис. 2.3).
Многие достижения в области искусственного интеллекта за последние годы связаны именно с глубоким обучением. Наиболее точные модели на его основе требуют тысяч и даже миллионов элементов обучающих данных.
Для решения задач, возникающих в небольших компаниях с ограниченными финансами, такие большие наборы данных и такие вычислительные ресурсы для обучения сети недоступны. При этом следует отметить, что классические алгоритмы машинного обучения (которые мы упоминали выше) в ряде случаев не потеряли своей актуальности, и часто их применение бывает даже более эффективным (см. рис. 2.3).
Например, для того чтобы классифицировать на конвейере продукты разного цвета, не обязательно использовать глубокую нейросеть, решения можно добиться, используя простое пороговое цветовое выделение. Например, можно посчитать среднее значение цвета по всем пикселям изображения и различать по этому числу разные продукты.
Существует множество задач в области компьютерного зрения, таких как потоковая обработка видео, автоматическая сшивка панорам, оценка движения и идентификация движущихся объектов, которые иногда проще реализовать классическими методами [62].
Говоря об эволюции моделей на базе глубокого обучения, необходимо отметить, что здесь прорыв возможностей нейросетей по распознаванию изображений стал прямым результатом роста вычислительной мощности. Этот факт наглядно демонстрирует рис. 2.4, рассматривая эволюцию производительности аппаратного обеспечения и рост потребностей в вычислительных мощностях со стороны крупнейших нейросетевых проектов.
На рисунке отмечено три периода - эра масштабирования
Как известно, рост производительности аппаратного обеспечения связывают с законом
В районе 2004-2005 гг. закон масштабирования Деннарда перестал работать, поскольку при уменьшении размеров транзисторов токи утечки приводят к перегреву процессора и выходу его из строя. Невозможность наращивания тактовой частоты стимулировала альтернативный подход - разработку многоядерных процессоров. В соответствии, с чем следующий период назван "мультиядерная эра".
В период с 1985 по 2009 год рост вычислительных требований наиболее крупных из используемых нейронных сетей увеличивался примерно пропорционально росту вычислительной мощности оборудования.
Поскольку рост вычислительной мощности в расчете на один доллар примерно повторяет рост вычислительной мощности в расчете на один чип, стоимость работы таких моделей была в значительной степени стабильной с течением времени примерно до 2009 года.
Переломным моментом стал перенос глубокого обучения на
Таким образом, кривая роста потребностей в вычислительной мощности для крупнейших проектов глубокого обучения после примерно 2005 года изменялась с ускорением, а кривая роста производительности оборудования с замедлением.
Одно из направлений преодоления "замедления закона Мура" стимулировало подходы, основанные на увеличении количества серверов путем объединения их в кластеры. Другое исходило из того, что, если темпы увеличения производительности центрального процессора сервера замедляются, необходимо ускорить работу серверного оборудования путем создания специализированных процессоров. То есть вместо использования универсальных процессоров для обработки множества различных задач внедрить различные типы процессоров, адаптированных к потребностям конкретных задач. Так, одним из важнейших факторов для практического применения глубоких нейронных сетей стала доступность параллельных вычислений на графических ускорителях, о чем более подробно пойдет речь ниже.
Помимо проблем доступной вычислительной мощности следует отметить, что до 2005 года у специалистов не было достаточного количества данных, на основе которых можно было бы создать высокопроизводительные модели распознавания изображений. В 2009 году произошло объединение ряда американских институтов для создания массивного набора данных под названием ImageNet.
ImageNet - это проект по созданию и сопровождению массивной базы данных размеченных изображений из более чем 14 миллионов изображений 1000
С 2010 года в рамках
Например, сеть распознает животное на картинке и выдает в порядке убывания вероятности следующие предположения: "ягуар, гепард, снежный леопард, египетская кошка" - если правильный ответ попадает в эти пять предположений, то этот ответ засчитывается как верный.
В 2011 году хорошим результатом считалась ошибка классификации на уровне 25%.
На рис. 2.5 выделяется 2012 год, который мы уже упомянули, говоря о новых возможностях доступного для обучения нейронной сети оборудования (см. рис. 2.4). В этом году исследователи из Университета Торонто использовали методы, основанные на глубоком обучении, чтобы установить новый уровень техники в конкурс ILSVRC - сверточная нейронная GPU).
Это было значимое событие поскольку ошибку удалось снизить радикально, показав результат, на который все остальные методы были неспособны. В последующие годы ошибка упала до нескольких процентов (рис. 2.5). В 2014 г. победителем конкурса ILSVRC стала сеть VGGNet. Модель, предложенная Симоняном и Зиссерманом, состояла из 19 слоев (138 млн параметров). В том же году GoogleNet, которая имела 22 слоя, еще снизила ошибку, а в 2015 году исследователи констатировали, что программы в определенных задачах проекта ILSVRC превзошли человеческие способности.
Нейронная сеть Resnet (Residual Networks), разработанная Microsoft Research, стала победителем конкурса ImageNet в 2015 году, она имела уже 152 слоя и демонстрировала ошибку на уровне 3,6% [65]. В 2016 г. при использовании ансамбля SENet снизила ошибку до уровня 2,25%.
После окончания конкурса в 2017 году исследователи продолжают использовать набор данных ImageNet для тестирования и разработки приложений компьютерного зрения. На рис. 2.6 показаны успехи систем, показывающих все более высокие результаты с течением времени. В отличие от рис. 2.5, где была показана ошибка, на рис. 2.6 показана точность в процентах "TOP-5 Accuracy".
В последние годы исследователи стали повышать производительность своих систем путем их предварительного обучения на дополнительных данных, в частности на фотографиях из социальных сетей. Предварительное обучение на этих наборах данных обеспечивает более эффективное использование данных ImageNet, что позволило в 2021 г. в категории "TOP-5 Accuracy" достигнуть точности на уровне 98,8% (ошибка всего в 1,2%).
Мы упомянули решающую роль архитектуры сверточных сетей в достижении высокой точности распознавания изображений. Учитывая важность данной технологии, рассмотрим принцип ее действия чуть подробнее.
Ранее мы отметили, что при решении задачи распознавания простого геометрического объекта мы можем описать правила его начертания (указать признаки, по которым его можно отличить). Однако, говоря о решении более сложной задачи (например, такой как необходимость отличить на фото кошку от собаки), описать признаки, по которым можно принять подобное решение, достаточно сложно. Животное может находиться в разных позах, может быть сфотографировано в разных ракурсах при разном освещении. Собака, если на фото видно лишь три лапы, не перестает быть собакой, при этом человеку достаточно мельком взглянуть на фото и определить, что это за животное, вне зависимости от того, видны на фото лапы и хвост или нет.
Как это делает человек?
Интересно заметить, что при мгновенном решении подобных задач человеку непросто перечислить, по каким именно признакам он отличил кошку от собаки на том или ином изображении. То есть найти признаки - это отдельная задача, которую необходимо формализовать для ИИ. Сверточная сеть обладает способностью самостоятельно учиться находить подобные признаки, составляя их на основании элементов изображения, причем решает она эту задачу более эффективно и экономично, чем многослойный персептрон.
Почему речь идет об экономичности?
Следует отметить, что обработка больших изображений по схеме, которую мы рассмотрели, говоря о работе многослойного персептрона рис. 1.28, когда на вход подаются значения каждого пикселя в виде входного вектора, требует весьма существенных вычислительных ресурсов. Например, если речь идет об обработке цветного изображения 100 на 100 пикселей, по схеме рис. 1.29, то число входных параметров (учитывая, что цвет обычно предоставляется значениями яркости по трем каналам Red Blue Green) составит 100 х 100 х 3, то есть 30 000. При изображении 1000 на 1000 точек мы получим уже три миллиона параметров. Одна из задач, стоявших перед разработчиками нейросетей для распознавания изображений, заключалась в получении экономичного решения, которое бы учитывало особенности представления информации в изображениях.
Большое количество параметров сети плохо не только с точки зрения вычислительной сложности, но и с точки зрения необходимого для обучения количества данных. Поскольку в процессе обучения параметры подстраиваются по обучающим примерам, то чем больше параметров необходимо подстроить - тем большее количество примеров необходимо. С точки зрения работы с изображениями это означает, что для распознавания кота необходимо показать нейросети изображения, на которых кот располагается во всех возможных позах во всех местоположениях внутри кадра. Распознавание же кота человеком устроено несколько по-другому - человек "сканирует" изображение, ища знакомые признаки (паттерны).
Известно, что изображения обладают свойством локальной связности, то есть если мы говорим, например, о том, что на фотографии изображен человек, то точки, принадлежащие отдельным элементам его лица, будут располагаться рядом, а не разбросаны по разным частям изображения. Когда мы двумерную
Описать подробно, как работает сверточная сеть в рамках данного курса (где мы планируем дать концептуальный обзор многих технологий), не предоставляется возможным, поэтому остановимся на описании только ключевых идей.
Идея сверточных сетей базируется на сведениях о некоторых механизмах зрительного восприятия у живых организмов. Согласно исследованиям Хьюбела и Визеля, проведенным еще в 1962 году, отдельные клетки нейронов в мозге реагируют при наличии в изображении краев определенной ориентации. Например, некоторые нейроны реагируют на вертикальные грани, другие на горизонтальные или диагональные.
Можно сказать, что именно идея наличия нейронов в зрительной коре, ответственных за поиск определенных характеристик изображения, лежит в основе сверточных нейронных сетей.
Существует достаточно много попыток художников проиллюстрировать механизм работы сверточных нейронных сетей (СНС), при этом каждая схема не идеальна в том смысле, что использует те или иные упрощенные аналогии. Мы приведем несколько подходов иллюстрирования работы сверточных сетей, которые интерпретируют идею на разном уровне абстракции и в сочетании дают возможность понять принцип работы СНС. Начнем с самого общего представления сверточной сети (рис. 2.7).
На рис. 2.7 (в верхней части) показано, что сеть изначально обучается распознавать разные виды животных. Это стадия первичного обучения, когда сеть учится распознавать размеченные изображения, то есть такие, к которым прикреплены теги, несущие информацию о свойствах каждого объекта (принадлежность тому или иному классу животных). После того как сеть обучена, ей на распознавание дается новое неразмеченное изображение - как показано на рис. 2.7 - это изображение собаки, которое сеть должна отнести к одному из классов животных, которые она "знает". Сверточная сеть состоит из нескольких скрытых слоев, так что при обработке изображения на этих слоях выявляются разные группы признаков - от наиболее простых до все более сложных. СНС может иметь десятки или даже сотни слоев, каждый из которых учится обнаруживать различные признаки. Выходные данные сверточного слоя используются в качестве входных данных для следующего слоя. В результате сеть дает заключение о том, к какому классу и с какой вероятностью относится исследуемое изображение.
Первые слои отвечают за распознавание простейших паттернов - уже упомянутых краев различной ориентации или определенной текстуры. Следующий слой отвечает за комбинирование паттернов предыдущего слоя - например, из двух наклонных штрихов он может составить "угол", напоминающий ухо. Последующие слои учатся комбинировать результаты предыдущих слоев, тем самым образуя иерархию фрагментов различной степени содержательности.
Более подробно работу СНС рассмотрим на рис. 2.8. Здесь обозначены ранее упомянутые слои: сверточные (convolutional) слои, слои подвыборки или субдискретизации (subsampling, называемых также слоями пулинга / pooling) и слои "обычной" нейронной сети - персептрона.
Сверточные сети получили свое название от "операции свертки". Свертка в данном случае - это механизм выявления особенностей (признаков) из входных изображений. Свертка сохраняет пространственные отношения между пикселями, изучая особенности изображения, используя каждый раз небольшую площадь входных данных. Работа СНС заключается в том, что изображение "пропускается" через ряд сверточных (convolution), субдискретизирующих (subsampling) и полностью связанных (dense) слоев для получения на выходе результата ( рис. 2.8).
В рассматриваемом случае выходной сигнал является вероятностью принадлежности классу изображений, который наилучшим образом подходит к исследуемому изображению. На рис. 2.7 это показано как вероятность того, что исследуемое изображение принадлежит классу "собаки", составляет 90%.
Далее разберемся более подробно, что делает каждый из упомянутых слоев.
Первым слоем в СНС является сверточный слой. Лучший способ объяснить работу свертки - это рассмотреть графическую интерпретацию процесса рис. 2.9. Здесь показано окно, которое перемещается по всем областям входного изображения. Это же окно показано и на рис. 2.8.
Упомянутое окно называют фильтром или ядром, а область, на которую оно в данный момент проецируется, - рецептивным полем. Фильтр (ядро) - это матрица небольшого размера с определенным набором параметров (весов). По мере того, как фильтр перемещается по исходному изображению, он производит операцию свертки, то есть поэлементно перемножает значения (веса) матрицы фильтра с исходными значениями пикселей рецепторного поля, получая число для каждого положения фильтра. На рис. 2.8 пунктирными линиями показан процесс преобразования матрицы рецептивного поля в точку - число (значение на сверточном поле). После серии последовательных перемещений фильтра по изображению получится массив чисел, который называется картой признаков.
Фильтр можно интерпретировать как графическое кодирование какого-либо признака, например, наличие вертикальной, горизонтальной или наклонной линии. Для исследования разных признаков используется множество фильтров, кодирующих разные типы графических элементов. Важно отметить, что ядра свертки не закладываются разработчиками, а формируются автоматически путем обучения сети с использованием метода обратного распространения ошибки. Фильтры на первом слое обрабатывают простейшие характеристики изображения и усложняются до характеристик, которые определяют объект целиком. Этот процесс мы уже абстрактно изобразили на рис. 2.7.
На рис. 2.8 показан один сверточный слой, на практике их могут быть десятки и даже сотни, и на каждом слое формируется несколько каналов (независимых карт признаков). На рис. 2.8 условно показано шесть каналов.
В тот момент, когда фильтр расположен над рецептивным полем, как это показано на рисунке, перемноженные и просуммированные значения дадут в результате число 6600 (см. рис. 2.9).
Из рисунка также видно, что в момент, когда фильтр находился в положении левее на один пиксел, значение свертки равнялось
На выходе получается карта признаков, которая дает нам определенную информацию об изображении. Обычно за сверточным слоем следует слой субдискретизации (пулинга). Основная цель этого слоя - уменьшение пространственного размера свернутой карты признаков. Этот слой уменьшает количество параметров на входе, что позволяет снизить вычислительные затраты. Смысл этой операции в том, что, если мы обнаружили некоторый фрагмент изображения, нас перестает интересовать его точное положение с точностью до пиксела - поэтому мы можем заменить некоторую пиксельную окрестность (например, 2x2 или 3x3) одним значением, показывающим, был признак обнаружен в этой окрестности или нет. Как и в случае со сверточным слоем, операция пулинга прогоняет окно по всему полю, и (в зависимости от применяемого метода) на участке заданного размера выбирается максимальное значение (MaxPooling) или вычисляется среднее значение элементов на участке (Average pooling). На рис. 2.8 показан только один сверточный слой и один слой пулинга, на практике их могут быть десятки. На каждом следующем слое операция повторяется, в результате чего карта уменьшается в размере, при том, что количество каналов увеличивается. После прохождения всех слоев свертки и пулинга формируются сотни каналов с признаками, которые интерпретируются как самые абстрактные понятия, выявленные из исходного изображения.
На финальной стадии данные трансформируются в вектор и передаются на обычную полносвязную нейронную сеть (см. рис. 2.8). На выходе мы получаем ответ, в частности в представленном примере с вероятностью 90% сеть распознает изображение как принадлежащее классу "собака".
Ранее мы рассмотрели задачу классификации изображений, когда необходимо распознать и присвоить метку объекту (или множеству объектов), присутствующему на изображении, отвечая на вопрос "Что это?". Со временем нейронные сети научились выполнять более сложные задачи, чем классификация изображений, например ИНС, научились выделять на фотографиях контуры объектов, даже если таких экземпляров несколько и они загораживают друг друга.
Сегментация объектов на изображениях подразумевает умение выполнять целый ряд операций (рис. 2.10).
Локализация объектов подразумевает определение местоположения одного или нескольких объектов на изображении и построение прямоугольной рамки вокруг их границ. Обнаружение объектов объединяет локализацию и классификацию одного или нескольких объектов на изображении (рис. 2.11)
Из рис. 2.11 (б) следует, что модель определила собак как один класс, а кошек как другой, что видно по цвету (тону) рамок. Еще одна задача компьютерного зрения - это сегментация, процесс идентификации похожих объектов, принадлежащих к одному классу, на уровне пикселей, то есть это задача отнесения каждого пикселя изображения к определенному классу: кошка, собака, человек, фон и т. д. (см. рис. 2.11 (в)). Сегментация является базовой технологией, например, для медицинских приложений (идентификация и выделение объектов на снимках) или для автономных автомобилей (идентификация и выделение объектов на дорогах).
Для обучения глубоких нейронных сетей пониманию городской среды используются специализированные наборы данных (датасеты), например такие, как
Cityscapes фокусируется на
Существуют соревнования по оценке уровня точности сегментации объектов изображения на базе Cityscapes. Участники оцениваются на основе метрики (IoU - Inter Over-Union), пересечение над объединением - это метрика для оценки точности модели, которая измеряет правильность предсказания ограничивающего объект контура. IoU - это число, которое количественно определяет степень перекрытия между двумя контурами: области "истины" и области предсказания (рис. 2.12).
Методика выглядит следующим образом: на обучающем изображении отмечают диапазон обнаруживаемого объекта, затем смотрят на диапазон результатов, полученных по используемому алгоритму, и берут отношение площади пересечения этих областей к площади их объединения. Таким образом, для идеально совпадающих областей получим IoU=1, а для полностью непересекающихся - 0.
В случае семантической сегментации изображения на основе нескольких классов, где на одном изображении могут быть объекты, принадлежащие к разным классам, каждому объекту необходимо присвоить свою метку и соответствующим образом обработать ее при вычислении IoU. Для этого можно найти среднее значение IoU, соответствующее различным классам, которое будет соответствовать фактической степени сходства. Это среднее значение обозначается как средний IoU (Mean IoU - mIoU).
Динамика совершенствования моделей на основе показателя mIoU (по данным соревнования на датасете Cityscape в решении задач семантической маркировки на уровне пикселя) представлена на рис. 2.13.
Технологии искусственного интеллекта позволяют не только распознавать существующие объекты, но и генерировать синтетические изображения новых, которые даже эксперты не могут отличить от фотографий реальных объектов нашего мира.
Новые возможности в данном направлении открыли так называемые генеративно-состязательные сети. Основа технологии была разработана Яном Гудфеллоу (Ian Goodfellow) в 2014 г. - в период, когда он являлся аспирантом Монреальского университета. Об этих сетях расскажем чуть подробнее.
Генеративно-состязательные сети, или GAN (от Generative Adversarial Network) - это сравнительно молодая и быстро развивающаяся технология, которая поражает воображение возможностью генерировать фотореалистичные изображения несуществующих объектов, неотличимо похожих на реальные, которые невозможно определить как подделку.
"Фотографии несуществующих людей", сгенерированные GAN-ами, обошли все конференции на тему GAN.
Генеративно-состязательные сети находят массу практических применений: их используют не только для создания изображений, но также для дополнения, восстановления и повышения качества изображений. Например, с помощью GAN можно перевести черно-белые фото и видеоматериалы в цветные, трансформировать летние изображения в зимние, дневные в ночные и так далее. Также GAN используют для улучшения технологий поиска, которые основаны на том, что отыскать конкретное изображение легче, если возможно создать другие синтетические изображения, похожие на него.
И заметим, что в данном разделе мы упоминаем лишь примеры из области работы с изображениями.
Прежде чем дать более полное толкование GAN, следует ввести понятие генеративных и дискриминативных моделей. Чтобы понять разницу в этих подходах, рассмотрим применение каждого для решения задач классификации (рис. 2.14).
Дискриминативные классификаторы пытаются определить, какие признаки на входных данных наиболее полезны для классификации. Модель данного типа пытается определить границу, отделяющую один класс от другого. При этом дискриминативные модели классифицируют точки данных, не задаваясь целью определить, как эти точки были созданы.
Заметим, что мы уже рассматривали задачи классификации при описании метода опорных векторов и нейронных сетей и просто не упоминали, что получаемые модели относятся к дискриминативным. Хорошей иллюстрацией дискриминативного классификатора может служить рисунок 1.43, который мы рассматривали при описании метода SVM, где речь шла о нахождении гиперплоскости, оптимально разделяющей классы в N-мерном пространстве.
Для наглядного объяснения сути понятий генеративного и дискриминативного подходов и их различия можно обратиться к аналогии, которую приводят авторы работы [71]. У отца двое детей. Ребенок "А" способен досконально изучать сущность предметов, ребенок "Б" может определять лишь различия между объектами.
В зоопарке дети видели львов и слонов. После посещения зоопарка отец показывает детям фото льва и спрашивает: "Кто это - лев или слон?" Ребенок "А" в ответ рисует на бумаге льва и слона, основываясь на том, что он видел в зоопарке, затем сравнивает оба изображения с животным на фото и принимает решение (генеративная модель). Ребенок "Б", который только определяет различия, дает ответ на основе отличительных свойств каждого из животных, не прибегая к рисунку (дискриминативная модель).
То есть генеративные классификаторы пытаются моделировать класс. Когда этим классификаторам дается новое наблюдение, они пытаются предсказать, какой класс, скорее всего, породил данное наблюдение.
Как правило, дискриминативный классификатор более точен, поскольку пытается непосредственно решить задачу классификации, а не более общую задачу (в качестве промежуточного шага), как это делают генеративные.
Теперь дадим более общее определение. Генеративные модели основаны на использовании методов неконтролируемого машинного обучения, в процессе которого осуществляется автоматическое обнаружение и изучение закономерностей во входных данных таким образом, чтобы созданную модель можно было использовать для генерации новых примеров, которые, вероятно, могли быть получены из исходного набора данных.
Введя понятия дискриминативной и генеративной моделей, перейдем к определению генеративно-состязательной сети.
Генеративно-состязательная сеть - это метод глубокого обучения, построенный на соревновании двух нейронных сетей, двух моделей - генеративной и дискриминативной (рис. 2.15).
Генеративная сеть, или генератор (на рис. 2.15 обозначена как G), генерирует новые образцы, а вторая (сеть D - дискриминатор) их оценивает, то есть пытается различать настоящие образцы ("подлинные") и поддельные (сгенерированные).
Сеть G принимает на вход случайный шум z, и ее задача - преобразовать шум таким образом, чтобы он приобрел структуру, подобную изображениям в наборе обучающих данных.
Сеть D на вход получает изображения х, при этом выходной сигнал D (x) представляет собой вероятность того, что x является настоящим реальным изображением (1 - стопроцентно реальное изображение; 0 - изображение реальным быть не может).
Сети G и D имеют противоположные цели - "создать образцы, которые не могут быть отбракованы" и "отбраковать образцы". Эти две модели обучаются вместе в состязательной игре с нулевой
Полученные сети могут применяться для создания реалистичных изображений. Для этого исключаем из схемы дискриминатор и с помощью генератора получаем необходимые изображения.
Для наглядного и упрощенного объяснения процесса (рис. 2.15) часто прибегают к аналогии, представляя один процесс в виде художника, пытающегося подделать картину, а другой в виде искусствоведа, который пытается отличить реальное изображение от сгенерированной фальшивки.
Представим, что в данной ситуации художник имеет возможность получать информацию о том, на каком основании искусствовед отличил картину-подделку от подлинника (не тот цвет, характер мазка и т. п.), и создавать улучшенную фальшивку. При многократном повторении данного цикла должен наступить момент, когда искусствовед не найдет отличий, - это и считается моментом появления изображения, неотличимого от оригинала.
Возвращаясь к состязательным сетям, можно сказать, что цель обучения модели
G заключается в максимальном увеличении вероятности ошибки дискрминатора D. Использование этой техники и позволяет генерировать упомянутые нами ранее "фотографии несуществующих объектов", которые человеческим глазом воспринимаются как натуральные фото реальных объектов. Например, известна попытка синтезировать фотографии кошек, которые вводят в заблуждение эксперта, считающего их естественными фото [73].
Можно сказать, что мы не можем отличить сгенерированные моделью объекты от реально существующих, поскольку модель смогла "понять" характер внешности того или иного объекта именно так, как его понимают люди.
GAN-ы - это еще один этап в эволюции возможностей техники в проявлении художественных способностей, переход от умения создать точные копии объекта до возможности передачи некоторой совокупности усредненных качеств объекта, позволяющих воссоздать новый уникальный объект, неотличимый от его реальных прототипов.
GAN-ы оказались очень эффективны в решении задачи генерации изображений. И, надо отметить, возможности моделей постоянно совершенствуются. Первоначально основным способом оценки качества подобных моделей являлась экспертная оценка сгенерированных объектов, проводимая специалистом, человеком в виде ответа на вопрос "Насколько синтетический объект соответствует реальному?". Данный подход является субъективным, дорогим и малопригодным для обработки больших объемов данных. Со временем появились более объективные автоматические методы анализа характеристик генеративных моделей, которые позволяют количественно описать уровень качества создаваемых синтетических моделей и дают возможность аналитикам отслеживать процесс совершенствования моделей. Для оценки качества GAN используется ряд метрик, включая Fr?chet Inception Distance FID (начальное расстояние Фреше). Последняя метрика применима исключительно для оценки GAN, генерирующих изображения определенного формата. Метрика FID была введена в 2017 году для сравнения признаков сгенерированных и реальных изображений. Низкое значение FID соответствует изображениям высокого качества и наоборот. Добавление шума и искажений (снижение качества изображений) повышает FID.
Интересно отметить, что направления ИИ, связанные с обработкой изображений и естественного языка, в какой-то момент нашли пересечение.
В 2014 году одним из главных достижений в области ИИ стало появление технологии автоматического создания подписей к изображениям. К тому времени алгоритмы машинного обучения уже умели маркировать объекты на изображениях, и в дополнение к этому они научились создавать по изображению описания на естественном языке типа "На изображении девочка играет в мяч".
Со временем появилась идея - нельзя ли выполнить обратную задачу и сгенерировать изображение по текстовому описанию. Для того чтобы продолжить разговор о взаимодействии языковых моделей ИИ и технологий генерации изображений, следует более подробно остановиться на эволюции технологий обработки естественного языка.
До сих пор, говоря об эволюции ИИ и нейронных сетей, в частности, мы преимущественно рассматривали примеры из области компьютерного зрения. Классификация изображений действительно была первым барьером, который удалось преодолеть с помощью глубокого обучения, но вскоре модели, основанные на данной технологии, также победили в задачах NLP- в машинном переводе [74, 75] и распознавании речи [76].
При этом надо сказать, что эволюция систем обработки естественного языка не менее важный аспект развития ИИ. Более того, в области обработки языка нейросетевая революция явила не менее впечатляющие результаты: машинный перевод на наших глазах стал почти неотличим от перевода людей-переводчиков, а голосовые интеллектуальные помощники стали привычным сервисом. Возможности аннотирования документов, голосовое управление, генерация текстов и даже стихов - все эти чудеса нам стали доступны с помощью нейросетевых NLP-технологий. Так что без экскурса в эволюцию систем NLP и анализа влияния глубокого обучения на NLP рассмотрение темы будет явно неполным.
NLP - это одно из важнейших направлений искусственного интеллекта, которое позволяет обеспечить взаимодействие между компьютером и человеком на базе естественного языка, то есть помогает компьютерам понимать человеческий язык, интерпретировать его и манипулировать им. NLP - это зонтичный термин, объединяющий ряд областей, связанных с обработкой естественного языка.
Основные элементы NLP можно представить на упрощенной замкнутой схеме системы "вопрос - ответ" (рис. 2.17), которая включает: перевод речи в текст; обработку текста (представление текста в интерпретируемые машиной данные); механизм контроля диалога, имеющий интерфейс к некоторому источнику знаний о предметной области; систему генерации ответа (текста на естественном языке); и, наконец, синтез этого текста обратно в речь.
Помимо сокращения NLP часто используются аббревиатуры NLU и NLG.
NLU (Natural-language understanding, понимание естественного языка) - это часть NLP - система, отвечающая за разбор высказываний пользователей и понимание их смысла, она включает такие этапы как предварительная обработка текста, классификация запроса, соотнесение с одним из классов, известных системе, и извлечение параметров запроса (сущностей).
NLG (Natural-language generation) - генерация естественного языка - процесс преобразования структурированных данных в естественный язык.
На базе технологий NLP созданы десятки различных приложений, некоторые из которых перечислены на рис. 2.18.
Дополнительно об NLP-приложениях и типах компаний, занятых в их разработке, речь пойдет во второй лекции данного курса, а в данном разделе более подробно поговорим об истории формирования и эволюции NLP-технологий.
Можно сказать, что NLP находится на пересечении NLP направлен от лингвистики к технологиям глубокого обучения.
В самом общем плане в развитии NLP можно выделить три этапа - символьный (с 1950-х до начала 1990-х годов), статистический (1990-2010) и нейросетевой (2010 - до настоящего времени). Отмеченные периоды достаточно наглядно просматриваются на примере машинного перевода, о котором следует сказать более подробно (рис. 2.20).
Историю машинного перевода обычно отсчитывают с так называемого Джорджтаунского эксперимента (1954 год), когда программа, состоявшая из шести правил, перевела 60 предложений с
Задачи обработки естественного языка потребовали разработки модели представления текстов для компьютерной обработки. Об одной из первых таких моделей - "мешок слов" - следует кратко напомнить читателю, что будет полезно для дальнейших Bagof-words (BoW) - это простейшая модель представления информации о тексте в числовом виде, используемая в обработке естественного языка. Текст в этой модели представляется как набор слов, без учета грамматики и порядка.
Поясним методику на простом примере. Пусть имеется документ с текстом из известной песни "Пусть всегда будет солнце, пусть всегда …" и так далее (рис.2.21).
Сверху выписаны все слова, встречающиеся в документе (словарь). Для кодирования слов использована процедура так называемого "One Hot Encoding", или OHE-кодирования, суть которой поясняется на рис. 2.21 - каждое слово представляется вектором, длина которого равна длине словаря. Во всех позициях вектора стоят нули, кроме позиции, соответствующий номеру этого слова в словаре, - там, соответственно, стоит единица.
Как видно из рисунка, строчки соответствуют словам текста песни. Чтобы создать вектор, который кодировал бы весь документ (мешок слов), достаточно сложить one-hot-вектора каждого из слов. В таком векторе теряется информация о последовательности слов в тексте и остается только информация о наборе слов в рассматриваемом документе, отсюда и происходит название "мешок слов".
Недостатком подхода является то, что информация о взаимном расположении слов и связях между ними отбрасывается. Кроме того, при большом словаре векторы содержат большое количество нулей - такая "разреженная" форма представления информации имеет свои недостатки, поскольку работа с подобными векторами требует большого объема памяти и вычислительных ресурсов.
Рассмотрим основные этапы эволюции систем машинного перевода. Первый этап - это перевод, основанный на правилах, или RBMT-перевод (сокращение от "Rule Based Machine Translation"). Самая первая и элементарная форма RBMT-перевода - это прямой машинный перевод, или "перевод по словам": исходное предложение разбивается на слова, которые сравниваются с введенным словарем, осуществляется перевод по словам, который затем корректируется на основе морфологии и синтаксиса. Данный метод был отправной точкой машинного перевода, но в силу своих ограничений вскоре был заменен более совершенным трансферным машинным переводом, который позволил перейти от задания правил перевода каждого слова к возможности манипулирования более объемными синтаксическими конструкциями - перевод предваряет определение набора грамматических правил предложения на исходном языке и преобразование предложения в форму, совместимую с целевым языком.
Следующий этап в развитии RBMT - это так называемый "интерлингва-перевод" (или межъязыковый перевод) - метод, при котором осуществляется перевод с исходного языка на интерлингву, искусственный язык, разработанный для перевода слов и значений с одного языка на другой, впоследствии происходит перевод с интерлингвы на целевой язык.
Машинный перевод, основанный на правилах (RBMT), был первым шагом в решении задачи машинного перевода. Он относится к символьным методам в NLP, когда в фокусе было исследование синтаксического анализа на основе правил. Большинство исследований в данный период было посвящено обучению на ограниченных объемах данных. RBMT-перевод имел ограниченную точность, требовал наличия огромного числа правил, написанных вручную, основным недостатком метода являлось то, что не была решена проблема определения значения слова в зависимости от контекста. Наиболее популярным приложением того времени была система машинного перевода Systran, которая была разработана в 1968 году компанией Latsec.
В середине 1970-х годов Systran использовался NASA в рамках проекта тестирования корабля Союз-Аполлон, проводимого совместно с Советским Союзом. В тот период переводчики основывались на двуязычном словаре и наборе лингвистических правил под каждый язык.
Работы по созданию машинного перевода велись и в СССР. В 1956 г. в Институте точной механики и вычислительной техники был представлен первый советский компьютерный переводчик, включавший словарь из 2300 слов. В 1972 году специалисты института "Информэлектро" начали разработку системы машинного перевода - ЭТАП (Электротехнический автоматический перевод). В 1991 году бывшие сотрудники лаборатории ЛГПИ им. Герцена основали компанию PROMT.
Следующий важный шаг в развитии машинного перевода - это статистический машинный перевод (SMT - Statistical Machine Translation). Появление статистических методов в NLP произошло именно в области машинного перевода за счет появления к тому времени больших корпусов двуязычных текстов.
В 1990 году компания IBM впервые осуществила статистический машинный перевод. В отличие от своих предшественников - систем перевода на основе правил, статистические системы машинного перевода самостоятельно извлекают эти правила из большого количества примеров перевода - из так называемых параллельных текстов (текст на исходном языке и его перевод на целевой язык). К этому времени (начало 90-х) как раз стали доступны большие корпуса двуязычных текстов. Машине потребовались миллионы предложений на двух языках, чтобы набрать статистику по каждому слову. Просмотрев большое количество текстов, машина составляет словарь вероятностей перевода, основываясь на обучающей коллекции текстов. В самом общем плане суть статистического перевода состоит в том, что машина выбирает наиболее вероятные переводы каждого отдельного слова с учетом контекста и строит из них предложения. Предположим, необходимо перевести предложение "в комнате стоит красный стул", а в статистической базе уже есть переведенная фраза "в комнате стоит зеленый стол" - решение элементарно: берется существующий шаблон перевода и нужные слова просто заменяются по словарю.
Статистический машинный
Статистический машинный перевод, так же как и RBMT, прошел три стадии: перевод "на словах", на основе фраз и так называемый синтаксический перевод.
Создание статистического машинного перевода совпало с развитием Интернета, и ряд компаний, включая разработчика Systran, начали предлагать бесплатный машинный перевод онлайн. В 2006 году компания Google запустила Google Translate, который, несмотря на ограниченную в то время точность перевода, стал пользоваться большой популярностью.
С 2000-х годов нейронные сети начинают использоваться для решения задачи предсказания следующего слова в тексте с учетом предыдущих слов. В 2003 году Бенгио и др. предложили первую нейронную модель языка, состоящую из нейронной сети прямого распространения с одним скрытым слоем.
Они также одними из первых предложили технологию эмбеддингов слов. Технологию, о которой следует сказать чуть подробнее.
Для решения многих задач NLP нейронная сеть должна понимать сходство между словами. Cлова, находящиеся в похожих контекстах, обычно обозначают близкие по значению
С каждым словом у людей возникают близкие ассоциации. Например, говоря об облаке, каждый может продолжить "облако - грозовое" или "облако кучевое". То есть мы можем предположить, какое слово может соседствовать со словом "облако". Вероятно, можно численно закодировать это наше знание - сопоставить словам числа так, чтобы близкие слова имели близость на числовой прямой. Очевидно, что пространство смыслов многомерно, и мы можем взять несколько признаков и сравнить по ним слова. Например, по "принадлежности к живому" слова "котенок" и "кошка" должны быть ближе, чем "кошка" и "дом". Покажем, как можно сравнить слова, выбрав несколько параметров, по которым они сравниваются (рис. 2.22).
Как видно из рисунка, семантическое значение слова можно представить набором параметров или вектором. Слову сопоставляются векторы, отображающие его значение в "пространстве смыслов". Векторы, которые позволяют представить семантическую близость слов, назвали эмбеддингами. Если каждому слову предоставить в соответствие вектор (набор из N чисел), то расстояние между точками, на которые указывают эти векторы в N-мерном пространстве, и будет мерой близости этих слов. Значения компонент векторов определяют в процессе обучения. Процесс обучения приводит к объединению векторов в N-мерном пространстве в кластеры по семантической близости слов.
Математически задача определения такого вектора формулируется как максимизация косинусной близости между векторами слов, которые появляются в близких контекстах, и минимизация косинусной близости между векторами слов, которые не появляются друг рядом с другом. Рядом друг с другом в данном случае, значит, в близких контекстах. Если угол между двумя векторами равен 0, то они сонаправлены и значение cos(0)=1, если векторы ортогональны, то косинусная близость нулевая (cos(pi/2) = 0), а если противоположно направлены, то cos(pi) = -1.
Первый успешный инструмент создания эмбеддингов слов появился благодаря разработке сотрудников Google в 2013 году - этим инструментом явилась модель Word2Vec (дословно "слово в вектор"). Для обучения используется большой текстовый корпус, генерируется словарь корпуса, а затем модель обучается на входных текстах, вычисляя векторное представление слов.
Благодаря Word2Vec появился новый способ создания векторов слов более эффективный, чем разреженное представление слов с помощью кодирования OHE, которое мы рассмотрели выше. Использование технологии эмбеддингов слов позволило повысить производительность моделей и сократить время вычислений. Эмбеддинг может быть предобучен на больших корпусах текстов и выгружен в виде словаря, где слову ставится в соответствие вектор, формируя предобученные эмбеддинги, которые можно использовать без повторного обучения.
Эволюцию NLP-технологий можно представить в виде многослойной пирамиды, каждый из слоев в которой обозначает добавление новых возможностей (рис. 2.23). Мы рассмотрели два нижних этажа и далее рассмотрим следующий - это модели на базе рекуррентных нейронных сетей.
Рекуррентные нейронные сети (Recurrent Neural Network, RNN) сыграли важную роль в развитии NLP-технологий, и о них следует рассказать чуть более подробно.
Выше мы рассматривали сети прямого распространения, в которых сигнал распространяется строго от входного слоя к выходному. Подобные сети не имеют механизма запоминания информации о ранее полученных входах и, соответственно, не подходят для решения задач распознавания речи, в которых важно предсказывать, что будет дальше (например, какая буква будет следовать в слове или слово в предложении).
"Пусть всегда светит ***", нам очевидно, что финальное слово в предложении - "солнце". Естественно, мы можем сделать такое предсказание только при наличии механизма запоминания предшествующих слов. Этот механизм актуален для любых последовательностей. Например, в случае видео. Предположим, у нас имеется последовательность кадров, где запечатлено перемещение мяча. Сделать предположение о следующем положении мяча можно только при наличии механизма запоминания последовательности предыдущих кадров.
Рекуррентная нейронная сеть - это тип нейронной сети, которая содержит циклические связи между нейронами (в отличие от сетей прямого распространения), которые позволяют эффективно работать с временными паттернами и последовательностями данных. Таким образом, рекуррентные сети имеют внутреннюю память, что позволяет учитывать не только фактический вход, но и предыдущие, то есть запоминать то, что произошло ранее. Эта возможность рекуррентной сети и делает ее эффективной для работы с последовательными данными (рис. 2.24).
Видео, текст, речь, музыка - это все примеры последовательностей.
Первые рекуррентные сети были известны еще в 80-х годах прошлого века, однако широкое практическое применение они нашли существенно позже, как и многие другие алгоритмы глубокого обучения. Популярность рекуррентные сети получили в 2014 и 2015 годах благодаря достижениям в области глубокого обучения и увеличению вычислительных возможностей.
Рассмотрим в самом общем плане, как работают рекуррентные сети. Как мы заметили, RNN оптимально работает с последовательными данными, в случае текста можно сказать, что процедура использует i-ое слово в качестве входных данных и объединяет с выходом слова i-1, та же процедура будет применена для слова i+1, и именно поэтому алгоритм называется рекуррентной нейронной сетью, по-скольку нейронная сеть применяет одни и те же операции к каждому слову i в предложении [84].
Справа представлена развертка цикла, которая показывает, что RNN можно представить как несколько копий одной и той же сети, каждая из которых передает сообщение преемнику. В процессе обучения происходит такое "разворачивание" сети, и развернутая копия обучается алгоритмом обратного распространения, получившим название BPTT (back propagation through
В рекуррентной нейронной сети каждое значение слова в предложениипредсказываетсянетольконаосноветекущеговходногосигнала, но и на основе предыдущих входных сигналов. Следует отметить, что рекуррентная сеть способна обрабатывать последовательности различной длины, что часто наблюдается при работе с естественным языком, например в случае перевода с одного языка на другой.
Один из недостатков нейронной сети - это так называемая "проблема с долгосрочной зависимостью", которая состоит в том, что по мере того, как разрыв между необходимой информацией становится больше, RNN становится менее и менее эффективной.
Суть проблемы легко понять при анализе ( рис. 2.26). Когда расстояние между словами, которые позволяют сделать правильный прогноз, минимально, то RNN не испытывает проблем, как например в случае фразы "пусть на небе светит ***" - "солнце".
А если, предположим, необходимо ответить на вопрос, какое слово должно быть в конце предложения "Я был в Англии, познакомился с массой приятных людей и даже выучил пару фраз на ***"?
Очевидно, что автор предложения выучил несколько фраз на английском, потому что именно это слово упомянуто в начале предложения. Но чем дальше отстоят слова, которые позволяют сделать предсказание искомого слова в последовательности, тем хуже с этой задачей справляется рекуррентная сеть. Это происходит из-за того, что развернутая рекуррентная сеть обучается единым алгоритмом обратного распространения, и ошибка, проходя от конца сети к началу, претерпевает затухание.
Мы отметили, что один из недостатков рекуррентных сетей заключался в "проблеме с долгосрочной зависимостью". Эта проблема была решена при использовании специальных рекуррентных сетей с так называемой долгой краткосрочной памятью, или LSTM (Long short-term memory).
LSTM - это разновидность архитектуры рекуррентных нейронных сетей, способная к обучению долгосрочным зависимостям. LSTM-архитектура способна передавать только релевантную информацию на более глубокие слои сети, позволяя каждому слою "решать", какую информацию нужно сохранить, а какую можно отбросить, что в свою очередь обеспечило возможность фиксировать существенные детали прошлого контекста и сохранять их, пока они актуальны.
Основным недостатком LSTM-архитектуры являлось то, что технология использовала для предсказания только предшествующую информацию. Однако, например, при переводе предложения, чтобы принять правильное решение, важно иметь информацию о словах, использованных во всем предложении. Эта проблема была решена с помощью технологии "двунаправленный LSTM", которая рассматривает полное предложение для предсказания.
В 2014 году в работе Cho и др. [87] была предложена базовая модель sequence-to-sequence - "последовательность в последовательность" (seq2seq) - модель глубокого обучения, основанная на технологии рекуррентных сетей и достигшая больших успехов в задачах NLP и, в частности, в машинном переводе.
Seq2seq - это модель, которая состоит из двух рекуррентных нейронных сетей (RNN): encoder (кодер), которая обрабатывает входные данные, и decoder (декодер), которая генерирует данные вывода. Первая RNN кодирует предложение на исходном языке в так называемый контекстный вектор, вторая декодирует его в последовательность на другом языке, эта схема на новом уровне повторяет уже упомянутую нами ранее схему интерлингва, или межъязыковый перевод.
На рис. 2.27 показана схема машинного перевода с использованием алгоритма Seq2seq.
Входная последовательность (предложение на русском языке) обрабатывается кодером, который переводит входную информацию в вектор, называемый контекстом, и пересылает контекст декодеру, который элемент за элементом генерирует выходную последовательность. Заметим, что прежде чем обрабатывать слова, их переводят в векторы с помощью алгоритма эмбеддингов слов, о котором мы рассказали ранее.
RNN и LSTM-сети были весьма популярны в 2014 г., они использовались в машинном переводе, а также в таких популярных продуктах как Сири и Алекса.
В течение нескольких лет RNN и LSTM были основной технологией для задач NLP. Недостатком RNN /LSTM оставалась невысокая точность при переводе длинных фраз, и вскоре им на смену пришел еще более совершенный подход к архитектуре - так называемые "сети внимания". В 2015 году Бахданау и другие [88] предложили механизм внимания как способ устранения указанного недостатка. Механизм внимания позволил декодеру фокусироваться на различных частях входных данных при генерации каждого слова на выходе.
Сети, основанные на внимании, - это тип нейронных сетей, которые позволяют сосредоточиться на определенном подмножестве входных данных. Эти модели показали высокие результаты на многих NLP-задачах, включая машинный перевод и ответы на вопросы.
Сети, основанные на внимании, привнесли способность модели фокусироваться на релевантных входных данных. Модели со вниманием отличались от двунаправленных моделей RNN/LSTM тем, что рассматривали входную последовательность и на каждом шаге решали, какая часть этой последовательности важна и "требует внимания". То есть модель учитывала весомость слов, окружающих текущий контекст. Сети, основанные на внимании, стали популярны в 2015-2016 годах.
Метод внимания помог повысить точность, однако он столкнулся с проблемой в плане производительности. Поскольку вычисления выполнялись последовательно, было трудно масштабировать это решение.
В 2017 году был представлен новый тип нейронной сети на основе внимания, получивший название "трансформер". Как и RNN, трансформер представляет собой архитектуру для преобразования одной последовательности в другую с помощью механизма кодердекодер, но он отличается от предыдущих существующих моделей Seq2Seq тем, что не использует никаких рекуррентных сетей.
Ранее в курсе как достоинство рекуррентных сетей была отмечена возможность обработки последовательностей "слово за словом". Основным недостатком этой методики является тот факт, что обработка данных занимает много вычислительных ресурсов. Одна из задач разработчиков модели Transformer состояла в том, чтобы устранить этот недостаток. Разработчики пришли к идее обрабатывать всю входную последовательность сразу.
Механизм внимания позволил трансформерам обрабатывать все элементы одновременно за счет формирования прямых связей между отдельными элементами. Благодаря этому модель Transformer смогла обучаться быстрее и на гораздо большем количестве данных с помощью распараллеливания, что в свою очередь повысило точность при выполнении NLP-задач.
Центральным в архитектуре трансформеров является механизм внутреннего внимания (или самовнимания, self-attention), который моделирует отношения между всеми словами в предложении и оценивает, как каждое слово в предложении связано с другими словами [89].
Подробное описание механизма внутреннего внимания выходит за рамки обзорного изложения материалов, принятого в данной курсе. Заметим лишь, что при высокоуровневом объяснении механизма внутреннего внимания обычно говорят, что данный механизм позволяет смоделировать "понимание" связей отдельных слов с другими словами при обработке каждого конкретного слова.
При восприятии текста человек понимает смысл прочитанного, в том числе исходя из понимания смысла слов. Так, например, прочитав две фразы - " кошка не перешла улицу, так как она слишком устала" и "кошка не перешла улицу, потому что она была слишком широкой", - человек сразу понимает, что в первом случае слово "она" относится к слову "кошка", а во втором случае "она" относится к улице.
В рассмотренном примере механизм внутреннего внимания - это тот механизм, который позволяет установить ассоциации между словами "она" со словом "кошка" в первом случае и со словом "улица" во втором случае.
Трансформеры продемонстрировали свои возможности в обработке естественного языка, включая задачи машинного перевода (рис. 2.28) и распознавания речи.
Трансформерные архитектуры привели к фундаментальным изменениям в области компьютерной лингвистики, в которой в течение многих лет доминировали рекуррентные нейронные сети. Появились разные реализации трансформаторов, такие как BERT, GPT, GPT-2, GPT-3.
Возможность большего распараллеливания во время обучения позволила проводить обучение на больших наборах данных. Это привело к развитию трансферного обучения в области языкового моделирования и появлению предварительно обученных моделей.
Напомним, что суть трансферного обучения состоит в том, что навыки, полученные водном "проекте", можно передать в другой (рис.2.29).
Можно привести аналогию. Когда ребенок впервые пробует кататься на велосипеде, ему нужно учиться с нуля, и это требует определенного времени - необходимо научиться держать равновесие, рулить, тормозить. Когда ребенок подрастает и учится ездить на мотоцикле, ему уже не нужно начинать с нуля. Базовые навыки (такие как умение держать равновесие при вхождении в поворот) уже являются привычными.
Применительно к задачам NLP можно сказать, что суть трансферного обучения заключается в предварительном обучении модели на большом корпусе обычных текстов, из которых модель понимает базовые принципы устройства языка и последующего обучения модели на специфическом в контексте решения задачи корпусе текста, на котором модель дообучается решению конкретной задачи. Это позволяет демонстрировать более высокие результаты, чем в случае обучения на одних только специфических для задачи данных. Успехи трансферного обучения были продемонстрированы на примере таких известных моделей как GPT и BERT.
В 2018 году компания OpenAI предобучила на большом объеме текста генеративную нейронную сеть GPT. На основе разработки от OpenAI в конце 2018 года в Google создали свою нейросеть - BERT, которая сразу побила несколько рекордов по успешности решения ряда NLP-задач.
Модель появилась в начале 2018-го, а уже в октябре того же года Google встроил модель в свой поисковик. Разработчики модели выложили в открытый доступ код модели и сделали возможным скачивание различных версий BERT, переобученных на больших наборах данных. То есть базовая версия модели, которая прошла длительное предобучение на больших корпусах текстов, стала доступной для того, чтобы ее можно было дообучить на прикладных задачах сторонних пользователей. То, что исходный код BERT находился в открытом доступе, позволило множественным разработчикам использовать модель, адаптируя ее к своим уникальным задачам.
Тонкая настройка или дополнительное обучение модели на отдельном наборе данных, отличном от того, на котором модель обучалась изначально, позволяет, слегка изменив параметры сети, обеспечить решение новой задачи - получить более быстрое обучение, чем, если бы та же модель обучалась с нуля.
Тем, кому индивидуальная тонкая настройка была не нужна, было доступно множество открытых бесплатных, предварительно обученных моделей BERT для различных случаев использования, для конкретных задач, таких как анализ настроений в Twitter, категоризатор эмоций, перевод речи в текст, обнаружение токсичных комментариев и т. п. [92].
Вскоре после появления BERT вышла его мультиязычная версия, обученная на 104 языках, в том числе на русском. Обучением русскоязычных моделей BERT занималась лаборатория глубокого обучения МФТИ в рамках проекта Deep Pavlov, Институт исследования искусственного интеллекта AIRI и
Появление трансформеров привело к радикальным изменениям в мультимодальных задачах, когда одновременно используется несколько типов входных сигналов (например, текст и
Длительное время стандартом де-факто для мультимодальных задач с использованием текстов и картинок было применение сверточных нейронных сетей для извлечения признаков из визуальной области, при том, что для получения текстового представления использовались рекуррентные нейронные сети. Эта картина изменилась с появлением архитектуры трансформеров.
В феврале 2019 г. компанией OpenAI была создана модель Generative Pretrained Transformer 2 (GPT-2) - система ИИ с открытым исходным кодом, которая позволяла переводить, отвечать на вопросы и генерировать текст на уровне, который в ряде случаев неотличим от написанного человеком. GPT-2 был создан как развитие модели OpenAI GPT от 2018 года, с десятикратным увеличением как количества параметров, так и размера обучающего набора данных (модель обучили на 40 Гб текста).
В 2020 году OpenAI выпустила модель GPT-3, которая позволяла не только создавать текст, но и генерировать код, писать рассказы и сочинять
Серия моделей GPT также продемонстрировала, что обучение на очень большом корпусе и тонкая настройка модели под целевую задачу могут значительно превзойти обычные модели в качестве, однако, с другой стороны, в полный рост проявилось ограничение, связанное с непропорционально высокой стоимостью обучения больших трансформерных моделей.
Говоря о развитии глубокого обучения в задачах естественного языка интересно провести сравнение последних с развитием моделей, предназначенных для решения задач компьютерного зрения. На рис. 2.30 показан современный период развития нейросетевых моделей для решения задач компьютерного зрения, обработки естественного языка и мультимодальных задач по данным статьи Andrew Shin, Masato Ishii [93].
В верхней части диаграммы отмечены модели для решения задач компьютерного зрения. Блок, обозначенный как CNN, иллюстрирует совокупность моделей, построенных на архитектуре сверточных сетей. Модели VGG и Resnet уже были нами упомянуты при обсуждении ILSVRC (рис. 2.5). DenseNet - еще одна модель на основе архитектуры сверточных сетей, предложенная в 2017 г. Блок, обозначенный как R-CNN (Region-Based Convolutional Neural Network), - это семейство моделей машинного обучения для компьютерного зрения и, в частности, для обнаружения объектов. Данная архитектура была разработана в 2014 году и включает следующие этапы: нахождение потенциальных объектов на изображении и разбиение их на регионы, извлечение признаков каждого полученного региона с помощью сверточных нейронных сетей, классификация обработанных признаков с помощью метода опорных векторов и уточнение границ регионов с помощью линейной регрессии [94].
Обратим внимание на модель Vision Transformer, показанную на рис.2.30 на границе 2020 года. В то время как архитектура Transformer стала стандартом дефакто для задач обработки естественного языка после 2017 года, ее применение в компьютерном зрении оставалось ограниченным. В задачах компьютерного зрения механизм внимания либо применялся совместно со сверточными сетями, либо использовался для замены определенных компонентов сверточных сетей при сохранении их общей структуры.
В 2020 году Досовицкий и др. (2020) [95] предложили модель Vision Transformer (ViT) и в данной публикации показали, что выше-упомянутая зависимость от CNN не является необходимой и чистый трансформер может хорошо справляться с задачами классификации изображений.
Как ранее было отмечено, трансформеры используют механизм внимания, суть которого в самом общем плане в NLP-задачах состоит в измерении связей между парами входных слов. Стоимость этой операции (с точки зрения вычислительных ресурсов) квадратично зависит от количества слов. Для изображений основной единицей анализа является пиксель. Однако вычисление взаимосвязей для каждой пары пикселей в типичном изображении является непомерно затратным с точки зрения вычислительных ресурсов. Вместо этого ViT вычисляет отношения между пикселями в различных небольших участках изображения (например, 16x16 пикселей), что позволило значительно снизить вычислительные затраты и показать хорошие результаты [96]. В нижней части рис. 2.30 представлена эволюция архитектур нейросетевых моделей, используемых в задачах NLP. Здесь выделено два больших блока - это RNN, которая господствовала до 2017 года, и сменившая ее архитектура Transformer, о которой мы написали выше. Боксами меньшего размера представлены конкретные модели, начиная от LSTM и заканчивая GPT-3, которые также ранее были рассмотрены.
В средней части приведены модели, которые были предложены для решения мультимодальных задач (компьютерное зрение - обработка языка). Для решения указанных задач необходима совместная обработка изображения и текста, связанного с ним. Подобные модели позволяют решать такие задачи, как генерация описания по изображению, изображения по текстовому описанию, визуальные ответы на
Первая из упомянутых на рисунке моделей данного типа - это модель Google Show and Tell ("Покажи и расскажи"), которая позволяла определить, что изображено на фотографии. Модель была создана в 2014 году и в течение нескольких лет дорабатывалась. В публикации за 2016 год [97] было отмечено, что в ходе тренировки модели на подписях, созданных людьми, система научилась генерировать подписи с точностью около 94%.
Впоследствии, до появления архитектуры трансформеров (до 2017 г.) был предложен еще ряд мультимодальных моделей - это такие модели как Spatial Attention, DenseCAP, Semantic Attention.
После успеха предварительно обученных трансформаторов для языкового моделирования, таких как BERT, профессиональное сообщество предложило различные модели на основе трансформеров, такие как
В 2019 году была начата разработка нейронной сети DALL-E, когда OpenAI получила грант суммой в 1 миллиард долларов от компании Microsoft на разработку инновационных технологий в сфере искусственного интеллекта. Первая версия нейросети была представлена мировому сообществу в январе 2021 года, а в апреле 2022 года была анонсирована новая версия - DALL-E 2, созданная для генерации изображений на основе пользовательского описания.
В интернете доступна версия DALL-E Mini (Craiyon Image Generator From Text), где каждый может поэкспериментировать и посмотреть, как нейросеть строит изображения по текстовым описаниям пользователей (рис. 2.31).
Мы рассмотрели последний период развития нейросетевых моделей применительно к решению задач компьютерного зрения и задач естественного языка. И далее хотели бы продемонстрировать общую картину развития нейросетевых моделей, начиная с их зарождения и заканчивая последними моделями победителей разного рода соревнований. Общая тенденция для обсуждаемых моделей - это экспоненциальный рост числа параметров (рис. 2.32).
На создание GPT-3 ушли десятки миллионов долларов. Известно, что только вычислительные затраты на одну итерацию обучения составили около 4,6 миллиона долларов, что представляет лишь небольшую долю общих затрат. Кривая рис. 2.32 показывает резкий рост стоимости обучения модели с увеличением ее размера.
Естественно ожидать, что процесс наращивания количественных показателей, отмеченный на рис. 2.32, должен был привести к появлению качественных возможностей нейросетевых моделей. И такой переход количества в качество был отмечен - по сути, так можно трактовать появление нового термина - "базисные модели".
Термин "базисные модели" был введен исследователями из Стэнфорда в 2021 г. в статье "О возможностях и рисках базисных моделей" [101]. Предложенный термин помог обозначить смену парадигмы в развитии ИИ и позволил авторам поместить на временной шкале новый
При этом авторы упомянутой коллективной статьи подчеркивают, что само понятие "Базисная модель" не является новой технологией, а имеет в своей основе глубокие нейронные сети и самоконтролируемое обучение. И в качестве ярких примеров базисных моделей рассматривают уже упомянутые нами BERT и GPT 3.
Базисные модели вводятся как сверхглубокие мультимодальные нейросетевые модели, которые демонстрируют возникновение новых возможностей на базе технологии глубокого обучения.
Согласно выводам исследователей из Стэнфорда, история ИИ - это история универсализации моделей и развития
Говоря об универсализации моделей, можно проследить следующую цепочку. На стадии машинного обучения ( рис. 2.33) для каждой задачи было необходимо извлечение своей совокупности признаков. С появлением базисных моделей можно констатировать, что одна модель может быть базой для широкого круга задач, что, по сути, и знаменует начало эры базисных моделей.
Технологически базисные модели становятся возможными благодаря трансферному обучению и масштабированию. В рамках глубокого обучения преобладающим подходом к трансферному обучению является предварительное обучение: модель обучается на типовой задаче со стандартным датасетом (часто просто как средство достижения цели), а затем адаптируется к последующей задаче, представляющей интерес, путем тонкой настройки.
Более того, современные модели, такие как GPT-3, могут использоваться для решения задач вообще без дополнительного обучения (zero-shot learning) или с крайне небольшим количеством примеров (few-shot learning). Например, мы можем решать задачи текстовой классификации, подавая генеративной модели на вход исходный текст и далее "спрашивая" ее, к какой категории этот текст принадлежит. Это является сменой парадигмы, когда модели становятся настолько большими и дорогими в обучении, что их практически невозможно дообучить в условиях небольшой компании.
Масштабирование достигается на базе совершенствования компьютерного оборудования (например, на базе использования GPU); использование архитектуры модели Transformer, которая позволяет использовать параллелизм аппаратного обеспечения, и обеспечивает доступность гораздо большего количества обучающих данных.
До 2019 года самоконтролируемое обучение с помощью языковых моделей было, по сути, подотраслью NLP, которая развивалась параллельно с другими разработками в NLP. После 2019 года самоконтролируемое обучение с использованием языковых моделей стало скорее основой NLP, поскольку использование BERT стало нормой. Признание того, что одна модель может быть базой для такого широкого круга задач, ознаменовало начало эры базисных моделей. Базисные модели привели к высокому уровню универсализации в том плане, что почти все современные модели NLP теперь адаптированы на основе одной из нескольких базовых моделей, таких как BERT, RoBERTa, BART и др.
Появление эры базисных моделей проявилось также в универсализации и большей однородности исследовательского инструментария. Аналогичные подходы к моделированию последовательностей на основе трансформеров стали применяться к тексту, изображениям, к речи, табличным данным, к исследованиям органических молекул и т.п. Эти примеры указывают на возможность появления унифицированного набора инструментов для разработки базисных моделей в широком диапазоне модальностей (рис. 2.34).
Базисная модель может извлекать информацию из данных, различных модальностей, и одна модель может быть адаптирована к широкому спектру решаемых задач.
Это можно назвать изменением парадигмы, поскольку в прошлом считалось, что ИИ-модели способны выполнять одну задачу за раз. Исследование задач разных модальностей, таких как задачи компьютерногозренияизадачиобработкиестественногоязыка,проводилось с использованием разных технических подходов - исследователи зрения изучали такие темы, как обработка сигналов, а исследователи языка - грамматику языка. Сам термин узкий искусственный интеллект в учебниках 5-7-летней давности подавался как интеллект, заточенный на решение одной конкретной задачи и не имеющий возможности решать задачи из других областей, что противопоставлялась возможностям человека учиться в разных направлениях. Даже при наличии концепции трансферного обучения не предполагалось, что одна модель будет выполнять задачи, сильно отличающиеся друг от друга. Базисные модели с глубоким обучением позволили создавать модели, способные выполнять множество задач [103].
На рис2.30, 2.32 был упомянут ряд значимых моделей, появившихся сравнительно недавно. Но технологии развиваются так стремительно, что многие из последних и уже нашумевших проектов в книгу не попали, поскольку заявили о себе буквально за время ее написания. В итоге такие современные модели, как DALLE-2, Midjourney, LAMBDA, Gato и некоторые другие, просто не успели попасть в обзор. Однако мы не могли не отметить чат-бот ChatGPT, специализирующийся на диалогах, который был запущен компанией OpenAI 30 ноября 2022 года и который стал, наверное, самым обсуждаемым проектом в конце 2022 г., как раз на момент завершения работы над курсом.
ChatGPT получен на основе доработки базовой модели от OpenAI GPT-4.5 (улучшенной версии GPT-3). Сервис способен понимать человеческую речь, выстраивать диалог с собеседником, отвечать на сложные вопросы.
Мы попросили чат-бот рассказать о себе. В ответ на запрос "Напиши раздел про GPTChat для книги "Искусственный интеллект. Анализ, тренды, мировой опыт"" от бота был получен следующий ответ. "GPT (Generative Pre-training Transformer) Chat - это большая языковая модель, разработанная OpenAI, которая используется для генерации текста в режиме реального времени. Она была создана для того, чтобы обеспечить натуральную и убедительную коммуникацию с людьми через чат-бот. GPT Chat использует архитектуру Transformer, которая позволяет ей учитывать контекст и понимать смысл текста. Она также имеет доступ к большому корпусу текста, что помогает ей лучше отвечать на различные вопросы и учитывать разные тональности и настроения. GPT Chat уже используется в различных областях, таких как клиентская поддержка, маркетинг, образование и развлечения".
В своем обзоре развития ИИ-систем мы, по сути, подошли к переднему краю разработок, и можно сказать, что определенную (упрощенную и далеко не полную) траекторию эволюции технологий ИИ (по состоянию на конец 2022 г.) представили. В название лекции было вынесено не только слово "развитие", но и слово "структура" технологий ИИ, поэтому далее поговорим о структуре и иерархии ИИ-технологий в составе комплексных решений.
Мы проследили некоторую эволюцию ИИ-технологий и, подводя итог первой лекции, хотели бы рассмотреть, как из упомянутых технологий строятся ИИ-решения, какова их структура, каков набор и иерархия входящих в эти решения технологий искусственного интеллекта. Также в этом разделе поговорим о том, как меняется спектр наиболее востребованных технологий в современных ИИ-решениях, и завершим лекцию обсуждением вопроса "Где технологии ИИ пересекаются с другими областями знания?".
Следующий эллипс - это уровень исследовательских методов или научных школ искусственного интеллекта, включая рассмотренные нами символизм, коннекционизм и эволюционизм.
Далее показан эллипс, демонстрирующий базовые технологические направления, которые могут быть построены на основе различных алгоритмов - это уже рассмотренные нами ранее задачи компьютерного зрения, обработки естественного языка, экспертные системы, системы поддержки принятия решений и другие. И наконец, внешний эллипс отображает области внедрения ИИ-приложений, то есть комплексные решения, в которых ИИ-компоненты обеспечивают ту или иную часть их функциональности (финансы, умный город, здравоохранение, промышленность и другие).
Для того чтобы построить решение на базе ИИ, помимо программного обеспечения нужна инфраструктура, на которой все перечисленные приложения будут работать. Причем нужна специализированная инфраструктура, которая позволит обрабатывать типичные для ИИ-задач нагрузки с оптимальной производительностью. К числу инфра-структурных технологий, на которых строятся ИИ-решения, в схеме рис. 2.35 отнесены элементы аппаратного обеспечения (процессоры, память, нейроускорители, сенсоры и датчики, системы управления движением), программное обеспечение (алгоритмы, фреймворки, библиотеки, вычислительные среды, инструменты разработки) и данные (пакетные данные, потоковые данные, большие данные, разметка).
Говоря о технологиях, составляющих то или иное комплексное решение, следует отметить, что технологии быстро развиваются - совершенствуются алгоритмы, меняются вычислительные возможности, одни технологии устаревают и сходят с дистанции, другие массово применяются большинством участников рынка, третьи применяются в пилотных проектах, четвертые находятся еще только на стадии запуска. Инымисловами, для того чтобы оценить, какие технологии используются в ИИ-решении и какие будут актуальны в ближайшей перспективе, требуется еще одна точка зрения - это взгляд, связанный с анализом жизненного цикла технологии от запуска до выхода на массовый рынок. Обратимся к материалам аналитической компании Gartner, которая ежегодно публикует так называемый цикл ажиотажа (Gartner Hype Cycle), показывающий стадию развития той или иной технологии с точки зрения ее зрелости и с точки зрения ее субъективного восприятия профессиональным сообществом. В данной методике Gartner исходит из того, что каждая новация проходит пять различных стадий, представленных на рис. 2.36.
Поскольку Gartner проводит оценку ИИ-технологий ежегодно, появляется возможность показать, как рассмотренные нами выше технологии, "проходят сквозь цикл ажиотажа". Нельзя сказать, что все технологии последовательно движутся вдоль кривой с одинаковой скоростью. Некоторые, как, например, технология сильного ИИ как находились на этапе запуска, так и остаются в этом состоянии, более того - ряд ученых полагают, что этой технологии не суждено воплотиться в полной мере на практике. Другие ИИ-технологии, такие как "распознавание речи" и "использование графических ускорителей" на кривой 2021 г., уже прошли плато продуктивности и находятся за пределами цикла, третьи (такие как, например, "семантический поиск") перемещаются в сторону "плато продуктивности".
Не для всех технологий можно показать, как они продвигаются по кривой ажиотажа, поскольку не все технологии, которые были, например, в фокусе внимания компании Gartner в предшествующие годы, попадают в область рассмотрения в последующие. Некоторые просто выпадают из поля зрения аналитической компании.
Когда говорят о наборе технологий, составляющих ИИ-решение, неизбежно заходит речь о том, где проходит граница между ИИ-технологией и смежными областями. Очевидно, что ИИ-технологии имеют области пересечения с другими технологиями, имеющими отношение к наукам о данных. Различные авторы пытались показать, в какой степени область искусственного интеллекта пересекается с другими технологиями, что позволяет лучше понять предмет ИИ как области науки. Существует достаточно много попыток отобразить графически данные пересечения в виде диаграмм Венна (например, они приведены в работах [106, 107]). Некоторые из этих диаграмм, на наш взгляд, имеют слишком ограниченный перечень областей, другие, напротив, перегружены подробностями и теряют наглядность. Мы остановились на диаграмме, которую в своих работах использовали специалисты компании SAS Institute ( рис. 2.37).
Пользуясь данной схемой, обсудим, где же технологии ИИ пересекаются с другими областями
Например, первые OCR-системы (относящиеся к технологии распознавания образов) не применяли алгоритмы машинного обучения, а использовали относительно простые алгоритмы попиксельного сравнения символа и шаблона, что давало приемлемые результаты в рамках одного шрифта.
Современные OCR-системы, использующие машинное обучение, позволяют выполнять более сложные операции: не только решать задачу
Следующая область на рисунке (представленная вытянутым эллипсом) - это вычислительная
Цель нейронауки - понять работу мозга, и высшая цель - объяснить феномен сознания. Цель ИИ заключается в том, чтобы научить компьютеры имитировать разумное поведение, решать задачи, требующие интеллекта. Очевидно, что указанные области имеют пересечение. Информация о строении и функционировании мозга позволяет совершенствовать и создавать новые алгоритмы для решения задач из области ИИ. Наиболее ярким примером являются успехи создания моделей глубокого обучения на базе искусственных нейронных сетей. Таким образом, оба направления развиваются и обогащают друг друга. Еще одна окружность - "Обнаружение знаний в базах данных" (Knowledge Discovery in Databases KDD) - обозначает методику обнаружения полезных знаний в данных. Датамайнинг является под множеством KDD.
KDD и датамайнинг имеют существенное пересечение с машинным обучением. Датамайнинг может использовать общие методы вместе с машинным обучением. "Но если машинное обучение сосредоточено на прогнозировании, основанном на известных свойствах, полученных из обучающих данных, то датамайнинг сосредоточен на обнаружении ранее неизвестных свойств в данных, являясь этапом анализа для обнаружения знаний в KDD".
"В машинном обучении производительность обычно оценивается по способности воспроизводить известные знания, в то время как в обнаружении знаний и добыче данных ключевой задачей является обнаружение ранее неизвестных знаний. При оценке по известным знаниям неконтролируемый метод (без учителя) будет легко превзойден контролируемыми методами (с учителем), тогда как в типичной задаче KDD контролируемые методы не могут быть использованы из-за недоступности обучающих данных" [109].
Некоторые задачи датамайнинга и машинного обучения пересекаются: классификация, кластеризация, прогнозирование, анализ и обнаружение отклонений. Для решения этих задач может применяться инструментарий машинного обучения, а может и не применяться. Например, для решения задач классификации и кластеризации могут применяться как искусственные нейронные сети, являющиеся одним из методов машинного обучения, так и другие подходы, например графическое представление информации, при том, что интеллектуальное решение принимается человеком. При этом в датамайнинге успешно применяются интерпретируемые методы машинного обучения, такие как деревья решений, по которым затем могут быть построены правила, описывающие свойства предметной области.
Вариантов применения ИИ большое множество, и не все они служат для решения задач датамайнинга. Например, обучение с учителем, при котором выполняется процесс обучения, это задача построения модели, основанной на данных, которая сможет научиться на основе размеченных данных "понять" правила, которым систему ИИ обучает учитель, и начать различать разные типы данных. При этом такая область, как распознавание речи или машинный перевод (которые были рассмотрены ранее в данной лекции), являются задачами ИИ и не являются задачами датамайнинга. Кроме того, в понятие ИИ входит целый ряд методов, основанных на явном представлении знаний и логическом выводе.
Долее рассмотрим, где происходит пересечение областей "наука о данных" (data science, дата-сайнс) и искусственный интеллект.
Термин дата-сайнс появился сравнительно недавно (в 2008 году), чтобы описать развивающуюся область исследований, направленную на выявление скрытой ценности в
Дата-сайнс неслучайно показан как самое большое множество, наука о данных подразумевает комплексный процесс, включающий предварительную обработку данных, их анализ, визуализацию и выработку прогнозов на основе данных. Несмотря на то, что ИИ в первую очередь ассоциируется с созданием компьютерных алгоритмов интеллектуальной обработки данных, во многих проектах по реализации ИИ могут использоваться вышеперечисленные стадии сбора и обработки данных.
Говоря о различии методов классической статистики ИИ, сошлемся на мнение авторов статьи [110]. Они отмечают, что традиционная статистика имеет дедуктивный подход к истине (от общего к частному), и если классический статистический подход начинается с набора гипотез, то методология ИИ и машинного обучения в начале исследования не делают каких-либо предположений относительно типа поведения переменных, чтобы соотнести их с целевым результатом.
Можно ли сказать, что, применяя алгоритм линейной регрессии, известный еще в начале 19 века, вы решаете задачу машинного обучения?
Разные специалисты дадут разные ответы. Однако такие гуру машинного обучения как Кристофер Бишоп в книге "Распознавание образов и машинное обучение", Ян Гудфеллоу в книге "Глубокое обучение" и ряд других упоминают линейную регрессию как один из алгоритмов машинного обучения. Так что граница между классической статистикой и машинным обучением как областью искусственного интеллекта в некотором смысле размыта. Можно привести такую аналогию - те, кто делают колеса, создают автомобиль, но колесо не является автомобилем, и колесо появилось задолго до появления автомобиля.
Так, в классических статистических моделях за моделью стоит теория, доказанная математически, при этом необходимо, чтобы данные строго соответствовали определенным предположениям. Машинное обучение также основано на строгих математических основах, однако, оно в большей степени связано с исследованиями закономерностей в данных, которые могут проводиться эмпирическим путем. Поскольку машинное обучение часто использует итерационный подход для получения знаний, извлекаемых из данных, обучение можно легко автоматизировать. Данные обрабатываются до тех пор, пока не будет найдена надежная модель определенной точности [111].
Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.