Искусственный интеллект

Эволюция ИИ в процессе решения практических задач

Разбить на страницы
Показывать лекцию целиком

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

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

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

Компьютерное зрение

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

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

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

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

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

Компьютерное зрение больше направлено на извлечение информации из изображений и делает акцент на анализе изображений Компьютерное зрение - это широкое понятие, которое включает еще и обработку видео, и 3D зрение, и computational imaging - технологию, в которой разрешающая способность достигается не за счет физики, но за счет математики и т. д. - Примечание научного редактора . Типовыми задачами компьютерного зрения являются классификация, детекция и сегментация, о которых пойдет речь далее в этой лекции.

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

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

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

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

Ключевые отличия перечисленных технологий можно наглядно проследить по тому, какие данные они получают на входе и в каком виде формируют данные на выходе (табл. 2.1)

Сравнение технологий по типу данных на входе и выходе. Источник: [61]
Технология Вход Выход
Обработка сигналов Электрические сигналы Электрические сигналы
Обработка изображений Изображения Изображения
Компьютерное зрение Изображения Информация/ характеристики
Распознавание образов/ машинное обучение Информация/функции Информация
Машинное зрение Изображения Информация
Робототехническое зрение Изображения Физические действия

Для более подробного обсуждения технологии компьютерного зрения вернемся к теме возникновения и эволюции данных систем. Одна из первых работ, в которой упоминалось компьютерное распознавание изображений и звука, вышла в 1955 г. - профессор Массачусетского технологического института Оливер Селфридж опубликовал статью "Глаза и уши для компьютера". Работа, которую, несомненно, можно считать пионерской в области компьютерного зрения, мы уже упомянули в начале курса - это Персептрон Фрэнка Розенблата. Еще одним отцом компьютерного зрения называют Лоуренса Робертса (Lawrence Roberts), который в 1963 году опубликовал работу "Машинное восприятие трехмерных твердых тел", в которой обсуждались вопросы извлечения трехмерной информации об объектах из двухмерных фотографий. Лоуренс защитил в этой области диссертацию и уже в 1970 году читал в MIT курс по компьютерному зрению.

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

Одна из ранних прикладных задач компьютерного зрения - это оптическое распознавание символов OCR Optical Character Recognition . Различные реализации данного рода программ существовали задолго до бума глубокого обучения. Ранние версии OCR обучались на изображениях отдельных символов и должны были переобучаться при каждом изменении шрифта. В 1970-х годах уже упомянутый в курсе изобретатель Рэй Курцвейл Американский изобретатель и футуролог, создатель многочисленных систем распознавания речи. Известен научными технологическими прогнозами, учитывающими появление искусственного интеллекта и средств радикального продления жизни людей выпустил в продажу первый омнишрифтовой OCR, который мог обрабатывать текст, напечатанный практически любым шрифтом. В начале 90-х российские разработчики, впоследствии создавшие всемирно известную компанию ABBYY В то время компания еще называлась BIT Software , начали проект по созданию OCR-программы, которая позднее стала популярным продуктом FineReader. Другая отечественная компания - Cognitive Technologies - примерно в это же время разрабатывала свою систему оптического распознавания текстов OCR CuneiForm. Как коммерческий продукт эта программа появилась в 1993 году. В начале 2000-х годов оптическое распознавание символов стало доступно в Интернете в виде облачного сервиса.

Параллельно развивались также приложения для распознавания лиц при участии и финансировании военных ведомств. Например, в 1993 стартовал проект "Технология распознавания лиц (FERET)", который спонсировался правительством США, целью проекта было создание большой автоматической системы распознавания лиц для целей разведки, безопасности и правоохранительных органов. Проект преследовал задачи автоматизации процессов поиска по фотографиям с камер видеонаблюдения, контроль доступа к объектам и т. п. Примерно в это же время появились первые беспилотные системы управления автотранспортом. В 2003 году системы распознавания лиц стали использоваться в корпоративных приложениях.

В 2010-х годах в области распознавания и классификации изображений начался переход к методам глубокого обучения.

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

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

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

Для извлечения признаков применялись специальные алгоритмы, такие как, например, алгоритм SIFT Scale-Invariant Feature Transform - алгоритм масштабно-инвариантной трансформации признаков, созданный в 1999 году для выявления и описания локальных признаков в изображениях . Согласно методике применения алгоритма, сначала извлекаются и запоминаются в базе данных ключевые точки объектов из набора контрольных изображений, и далее новый объект распознается на основе этих данных путем сравнивания каждого признака из нового изображения с признаками из базы данных.

Поясним это на примере - пусть модель машинного обучения используется для ответа на вопрос, изображен на конкретном изображении автомобиль или нет (рис. 2.2).

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

На основе выделенных признаков (если они правильно выбраны) алгоритм проведет классификацию изображений.

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

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

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

Многие достижения в области искусственного интеллекта за последние годы связаны именно с глубоким обучением. Наиболее точные модели на его основе требуют тысяч и даже миллионов элементов обучающих данных.

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

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

Существует множество задач в области компьютерного зрения, таких как потоковая обработка видео, автоматическая сшивка панорам, оценка движения и идентификация движущихся объектов, которые иногда проще реализовать классическими методами [62].

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

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

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

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

В период с 1985 по 2009 год рост вычислительных требований наиболее крупных из используемых нейронных сетей увеличивался примерно пропорционально росту вычислительной мощности оборудования.

Поскольку рост вычислительной мощности в расчете на один доллар примерно повторяет рост вычислительной мощности в расчете на один чип, стоимость работы таких моделей была в значительной степени стабильной с течением времени примерно до 2009 года.

Переломным моментом стал перенос глубокого обучения на GPU Графический процессор (GPU) - специализированная электронная схема, эффективная при работе с обработкой изображений. Параллельная структура GPU делает их более эффективными (чем центральные процессоры общего назначения CPU) для алгоритмов, которые параллельно обрабатывают большие блоки данных , что дало ускорение в потреблении вычислительной мощности новыми моделями глубокого обучения в районе 2012 года, именно это, в частности, позволило осуществить важную победу Alexnet (о которой речь пойдет ниже) на конкурсе Imagenet в упомянутом году Заметим, что резкий рост доли исследований, посвященных компьютерному зрению после 2012 г., хорошо виден на самом первом рисунке данного курса .

Таким образом, кривая роста потребностей в вычислительной мощности для крупнейших проектов глубокого обучения после примерно 2005 года изменялась с ускорением, а кривая роста производительности оборудования с замедлением.

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

Помимо проблем доступной вычислительной мощности следует отметить, что до 2005 года у специалистов не было достаточного количества данных, на основе которых можно было бы создать высокопроизводительные модели распознавания изображений. В 2009 году произошло объединение ряда американских институтов для создания массивного набора данных под названием ImageNet.

ImageNet - это проект по созданию и сопровождению массивной базы данных размеченных изображений из более чем 14 миллионов изображений 1000 классов По состоянию на 2021 г. , который предоставляет данные исследователям для обучения алгоритмов искусственного интеллекта.

С 2010 года в рамках ILSVRC ImageNet Large Scale Visual Recognition Challenge - широкомасштабное соревнование по распознаванию образов на базе ImageNet проводятся соревнования, где конкурируют различные исследовательские группы по распознаванию объектов. На рис. 2.5 показаны данные результатов соревнований разработчиков ИИ в рамках данного проекта в период с 2010 по 2017 г.

На рис. 2.5 представлены данные в так называемой категории "Top-5 error". Соревнование предполагает, что для ответа выбирается Топ-5 предсказаний, в которых сеть наиболее уверена, и если искомый ответ (класс) попал в эти пять предсказаний, то утверждается, что сеть не ошиблась, и напротив, если правильный класс в эти 5 предсказаний не попал, то, соответственно, считается, что сеть ошиблась.

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

В 2011 году хорошим результатом считалась ошибка классификации на уровне 25%.

На рис. 2.5 выделяется 2012 год, который мы уже упомянули, говоря о новых возможностях доступного для обучения нейронной сети оборудования (см. рис. 2.4). В этом году исследователи из Университета Торонто использовали методы, основанные на глубоком обучении, чтобы установить новый уровень техники в конкурс ILSVRC - сверточная нейронная сеть Сверточная нейронная сеть (СНС) - это сеть глубокого обучения специальной архитектуры, предложенная Яном Лекуном в 1988 году и нацеленная на эффективное распознавание образов. Принцип действия сверточных сетей будет описан ниже в данной лекции AlexNet Архитектура сети была разработана Алексом Крижевским в сотрудничестве с Ильей Суцкевером и Джеффри Хинтоном показала уникальный результат, достигнув ошибки на уровне 15,3% в "ILSVRCTOP-5", что было более чем на 10,8 процентных пункта ниже, чем у проекта, занявшего второе место. Высокая производительность достигалась за счет глубины модели AlexNet имела 8 слоев, включая 5 сверточных, 600 млн соединений и 61 млн обучаемых параметров , что потребовало высокой производительности, которая достигалась благодаря использованию во время обучения графических процессоров (GPU).

Это было значимое событие поскольку ошибку удалось снизить радикально, показав результат, на который все остальные методы были неспособны. В последующие годы ошибка упала до нескольких процентов (рис. 2.5). В 2014 г. победителем конкурса ILSVRC стала сеть VGGNet. Модель, предложенная Симоняном и Зиссерманом, состояла из 19 слоев (138 млн параметров). В том же году GoogleNet, которая имела 22 слоя, еще снизила ошибку, а в 2015 году исследователи констатировали, что программы в определенных задачах проекта ILSVRC превзошли человеческие способности.

Нейронная сеть Resnet (Residual Networks), разработанная Microsoft Research, стала победителем конкурса ImageNet в 2015 году, она имела уже 152 слоя и демонстрировала ошибку на уровне 3,6% [65]. В 2016 г. при использовании ансамбля моделей Несколько обученных моделей делают предсказание, и выбирается коллективное решение тем или иным способом удалось показать результат с ошибкой в 3%, а в 2017 г. 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 точек мы получим уже три миллиона параметров. Одна из задач, стоявших перед разработчиками нейросетей для распознавания изображений, заключалась в получении экономичного решения, которое бы учитывало особенности представления информации в изображениях.

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

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

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

Идея сверточных сетей базируется на сведениях о некоторых механизмах зрительного восприятия у живых организмов. Согласно исследованиям Хьюбела и Визеля, проведенным еще в 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 условно показано шесть каналов.

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

В тот момент, когда фильтр расположен над рецептивным полем, как это показано на рисунке, перемноженные и просуммированные значения дадут в результате число 6600 (см. рис. 2.9).

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

На выходе получается карта признаков, которая дает нам определенную информацию об изображении. Обычно за сверточным слоем следует слой субдискретизации (пулинга). Основная цель этого слоя - уменьшение пространственного размера свернутой карты признаков. Этот слой уменьшает количество параметров на входе, что позволяет снизить вычислительные затраты. Смысл этой операции в том, что, если мы обнаружили некоторый фрагмент изображения, нас перестает интересовать его точное положение с точностью до пиксела - поэтому мы можем заменить некоторую пиксельную окрестность (например, 2x2 или 3x3) одним значением, показывающим, был признак обнаружен в этой окрестности или нет. Как и в случае со сверточным слоем, операция пулинга прогоняет окно по всему полю, и (в зависимости от применяемого метода) на участке заданного размера выбирается максимальное значение (MaxPooling) или вычисляется среднее значение элементов на участке (Average pooling). На рис. 2.8 показан только один сверточный слой и один слой пулинга, на практике их могут быть десятки. На каждом следующем слое операция повторяется, в результате чего карта уменьшается в размере, при том, что количество каналов увеличивается. После прохождения всех слоев свертки и пулинга формируются сотни каналов с признаками, которые интерпретируются как самые абстрактные понятия, выявленные из исходного изображения.

На финальной стадии данные трансформируются в вектор и передаются на обычную полносвязную нейронную сеть (см. рис. 2.8). На выходе мы получаем ответ, в частности в представленном примере с вероятностью 90% сеть распознает изображение как принадлежащее классу "собака".

Компьютерное зрение - это не только классификация

Ранее мы рассмотрели задачу классификации изображений, когда необходимо распознать и присвоить метку объекту (или множеству объектов), присутствующему на изображении, отвечая на вопрос "Что это?". Со временем нейронные сети научились выполнять более сложные задачи, чем классификация изображений, например ИНС, научились выделять на фотографиях контуры объектов, даже если таких экземпляров несколько и они загораживают друг друга.

Сегментация объектов на изображениях подразумевает умение выполнять целый ряд операций (рис. 2.10).

Локализация объектов подразумевает определение местоположения одного или нескольких объектов на изображении и построение прямоугольной рамки вокруг их границ. Обнаружение объектов объединяет локализацию и классификацию одного или нескольких объектов на изображении (рис. 2.11)

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

Для обучения глубоких нейронных сетей пониманию городской среды используются специализированные наборы данных (датасеты), например такие, как Cityscapes Переводится как "Городские пейзажи" .

Cityscapes фокусируется на семантической Различают понятия "semantic segmentation" (семантическая сегментация) - когда на изображении объекты одного класса не отделены друг от друга (показана общая граница пересекающихся объектов) и "instance segmentation" (инстанс сегментация) - когда на изображении пересекающиеся объекты одного класса отделены друг от друга внутренней границей. - Примечание научного редактора сегментации, включает набор городских уличных сцен из пятидесяти городов, сфотографированных в разное время года. Набор данных содержит около 5 тыс. изображений с аннотациями на уровне пикселей и около 20 тыс. частично маркированных изображений.

Существуют соревнования по оценке уровня точности сегментации объектов изображения на базе 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.

На рис. 2.16 показан прогресс генеративных моделей за последние два года в создании синтетических изображений, проведенный по метрике FID на базе набора данных STL-10, который используется для проверки того, насколько эффективно системы генерируют изображения. STL-10 - это датасет для распознавания изображений, который состоит из 100 000 неразмеченных и 500 обучающих изображений и используется для разработки алгоритмов глубокого обучения и самообучения.

Интересно отметить, что направления ИИ, связанные с обработкой изображений и естественного языка, в какой-то момент нашли пересечение.

В 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 находится на пересечении лингвистики Наука о естественном языке, его природе и структурах. Области лингвистического анализа включают: синтаксис (правила, регулирующие структуру предложений); семантику (значение); морфологию (структуру слов); фонетику (звуки речи) и т. п. и технологий искусственного интеллекта (см. рис. 2.19), при том, что вектор эволюции NLP направлен от лингвистики к технологиям глубокого обучения.

В самом общем плане в развитии NLP можно выделить три этапа - символьный (с 1950-х до начала 1990-х годов), статистический (1990-2010) и нейросетевой (2010 - до настоящего времени). Отмеченные периоды достаточно наглядно просматриваются на примере машинного перевода, о котором следует сказать более подробно (рис. 2.20).

Историю машинного перевода обычно отсчитывают с так называемого Джорджтаунского эксперимента (1954 год), когда программа, состоявшая из шести правил, перевела 60 предложений с транслитерированного Транслитерация - передача знаков одной письменности знаками другой письменности, в данном случае русский текст был записан с помощью латинского алфавита русского на английский язык.

Задачи обработки естественного языка потребовали разработки модели представления текстов для компьютерной обработки. Об одной из первых таких моделей - "мешок слов" - следует кратко напомнить читателю, что будет полезно для дальнейших рассуждений Одно из первых упоминаний о модели "мешок слов" в лингвистическом контексте можно найти в статье Зеллига Харриса за 1954 год . Мешок слов 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.

Примерно в 80-х годах (см. рис. 2.20) появился машинный перевод на основе примеров (Example Based Machine Translation EBMT) - это метод машинного перевода, в котором в качестве основы используются параллельные тексты (двуязычные корпуса), составленные по принципу "фраза к фразе". Метод повысил доступность машинного перевода, позволяя применять в переводе сложные языковые правила, которые уже встроены в используемые фразы.

Следующий важный шаг в развитии машинного перевода - это статистический машинный перевод (SMT - Statistical Machine Translation). Появление статистических методов в NLP произошло именно в области машинного перевода за счет появления к тому времени больших корпусов двуязычных текстов.

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

Статистический машинный перевод Для обозначения термина часто используется аббревиатура SMT (Statistical machine translation) часто противопоставляют алгоритмам перевода, основанным на правилах. В случае статистического машинного перевода система ничего не знает о лингвистических правилах - перевод генерируется на основе статистических моделей, параметры которых являются производными от анализа двуязычных корпусов текста.

Статистический машинный перевод, так же как и 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].

На рис. 2.25 (слева) показана часть нейронной сети A, которая принимает входной сигнал x и выводит значение h. Цикл позволяет передавать информацию с одного шага сети на другой.

Справа представлена развертка цикла, которая показывает, что RNN можно представить как несколько копий одной и той же сети, каждая из которых передает сообщение преемнику. В процессе обучения происходит такое "разворачивание" сети, и развернутая копия обучается алгоритмом обратного распространения, получившим название BPTT (back propagation through time Обратное распространение во времени ).

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

Один из недостатков нейронной сети - это так называемая "проблема с долгосрочной зависимостью", которая состоит в том, что по мере того, как разрыв между необходимой информацией становится больше, 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 и Sber AI Следует упомянуть заслуги команды Сергея Маркова из SberDevices, который с командой обучил ru-GPT3, ru-DALLE и ряд других проектов. - Примечание научного редактора .

Тренды последних лет - мультимодальность, базисные модели

Появление трансформеров привело к радикальным изменениям в мультимодальных задачах, когда одновременно используется несколько типов входных сигналов (например, текст и изображения Это не обязательно текст и картинки. Может быть любая пара (и не только пара) типов сигналов. - Примечание научного редактора ).

Длительное время стандартом де-факто для мультимодальных задач с использованием текстов и картинок было применение сверточных нейронных сетей для извлечения признаков из визуальной области, при том, что для получения текстового представления использовались рекуррентные нейронные сети. Эта картина изменилась с появлением архитектуры трансформеров.

В феврале 2019 г. компанией OpenAI была создана модель Generative Pretrained Transformer 2 (GPT-2) - система ИИ с открытым исходным кодом, которая позволяла переводить, отвечать на вопросы и генерировать текст на уровне, который в ряде случаев неотличим от написанного человеком. GPT-2 был создан как развитие модели OpenAI GPT от 2018 года, с десятикратным увеличением как количества параметров, так и размера обучающего набора данных (модель обучили на 40 Гб текста).

В 2020 году OpenAI выпустила модель GPT-3, которая позволяла не только создавать текст, но и генерировать код, писать рассказы и сочинять стихи Следует отметить, что, строго говоря, никакая модель еще не научилась писать рассказы и полноценные стихи (только хокку). Но главное достижение GPT-3 не в том, что она умеет что-то новое, а то, насколько качественнее она это делает по отношению к GPT-2. Остальные примеры - следствие этого качественного скачка . Для обучения модели потребовалось 570 Гб текста.

Серия моделей 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, профессиональное сообщество предложило различные модели на основе трансформеров, такие как Vil-BERT ViLBERT - сокращение от Vision-and-Language BERT - модель для обучения совместных представлений изображений и естественного языка на базе архитектуры BERT (Lu и др. 2019), UNITER UNITER - сокращение от UNiversal Image-Text Representation Learning - универсальное обучение представлению изображения и текста (Chen и др. 2020), ViLT ViLT- сокращение от Vision-and-Language Transformer - модель для обучения совместных представлений изображений и естественного языка на базе архитектуры трансформер (Kim, Son и др. 2021), которые объединяют представления из текста и изображений и достигают высоких результатов в нескольких мультимодальных задачах [98].

В 2019 году была начата разработка нейронной сети DALL-E, когда OpenAI получила грант суммой в 1 миллиард долларов от компании Microsoft на разработку инновационных технологий в сфере искусственного интеллекта. Первая версия нейросети была представлена мировому сообществу в январе 2021 года, а в апреле 2022 года была анонсирована новая версия - DALL-E 2, созданная для генерации изображений на основе пользовательского описания.

В интернете доступна версия DALL-E Mini (Craiyon Image Generator From Text), где каждый может поэкспериментировать и посмотреть, как нейросеть строит изображения по текстовым описаниям пользователей (рис. 2.31).

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

Отсчет на рис. 2.32 ведется начиная с упомянутых в начале курса моделей - Персептрон, Alexnet, Resnet. Следом на рисунке идет представленная впервые в 2016 году нейронная сеть Yolo (You Only Look Once), используемая для обнаружения объектов в реальном времени с высокой точностью, которая имела более 65 млн обучаемых параметров. Следующей в ряду указана Google Neural MachineTranslation (GNMT) - система нейронного машинного перевода, разработанная компанией Google и представленная в ноябре 2016 года. Решение было использовано для повышения скорости и точности перевода в Google Translate. Двумя годами позже появилась также упомянутая нами нейросетевая модель-трансформер по имени BERT от компании Google, которая появилась в начале 2018 года. BERT имела 110 миллионов параметров, а ее версия Bert Large - 340 миллионов [99]. В 2019 году вышла модель GPT-2 от компании OpenAI с рекордным на момент появления числом параметров в полтора млрд [100]. GPT-3 была представлена в мае 2020 года и имела около 175 миллиардов обучаемых параметров, полная версия OpenAI GPT-3 стала самой большой моделью, обученной на момент представления.

На создание GPT-3 ушли десятки миллионов долларов. Известно, что только вычислительные затраты на одну итерацию обучения составили около 4,6 миллиона долларов, что представляет лишь небольшую долю общих затрат. Кривая рис. 2.32 показывает резкий рост стоимости обучения модели с увеличением ее размера.

Естественно ожидать, что процесс наращивания количественных показателей, отмеченный на рис. 2.32, должен был привести к появлению качественных возможностей нейросетевых моделей. И такой переход количества в качество был отмечен - по сути, так можно трактовать появление нового термина - "базисные модели".

Термин "базисные модели" был введен исследователями из Стэнфорда в 2021 г. в статье "О возможностях и рисках базисных моделей" [101]. Предложенный термин помог обозначить смену парадигмы в развитии ИИ и позволил авторам поместить на временной шкале новый период Возможно, авторы из Стэнфорда преувеличивают значимость предложенного ими нового термина, поставив его в такой ряд. - Примечание научного редактора , который по значимости соседствует с такими глобальными понятиями как "искусственный интеллект" и "машинное обучение". Если ранее мы демонстрировали диаграммы Венна, где глубокое обучение было крайним вложенным элементом (см. рис. 1.14), то теперь внутри последнего вложено еще и множество "базисные модели" (см. рис. 2.33).

При этом авторы упомянутой коллективной статьи подчеркивают, что само понятие "Базисная модель" не является новой технологией, а имеет в своей основе глубокие нейронные сети и самоконтролируемое обучение. И в качестве ярких примеров базисных моделей рассматривают уже упомянутые нами 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 показана схема, отражающая иерархию технологий, необходимых для построения современного ИИ-решения. Во внутреннем эллипсе представлены различные алгоритмы, на основе которых строятся ИИ-решения, в частности здесь перечислены упоминаемые нами ранее алгоритмы "дерево решений", "метод опорных векторов", "генетическое программирование", "линейная регрессия", "нейронные сети".

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

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

Для того чтобы построить решение на базе ИИ, помимо программного обеспечения нужна инфраструктура, на которой все перечисленные приложения будут работать. Причем нужна специализированная инфраструктура, которая позволит обрабатывать типичные для ИИ-задач нагрузки с оптимальной производительностью. К числу инфра-структурных технологий, на которых строятся ИИ-решения, в схеме рис. 2.35 отнесены элементы аппаратного обеспечения (процессоры, память, нейроускорители, сенсоры и датчики, системы управления движением), программное обеспечение (алгоритмы, фреймворки, библиотеки, вычислительные среды, инструменты разработки) и данные (пакетные данные, потоковые данные, большие данные, разметка).

Говоря о технологиях, составляющих то или иное комплексное решение, следует отметить, что технологии быстро развиваются - совершенствуются алгоритмы, меняются вычислительные возможности, одни технологии устаревают и сходят с дистанции, другие массово применяются большинством участников рынка, третьи применяются в пилотных проектах, четвертые находятся еще только на стадии запуска. Инымисловами, для того чтобы оценить, какие технологии используются в ИИ-решении и какие будут актуальны в ближайшей перспективе, требуется еще одна точка зрения - это взгляд, связанный с анализом жизненного цикла технологии от запуска до выхода на массовый рынок. Обратимся к материалам аналитической компании Gartner, которая ежегодно публикует так называемый цикл ажиотажа (Gartner Hype Cycle), показывающий стадию развития той или иной технологии с точки зрения ее зрелости и с точки зрения ее субъективного восприятия профессиональным сообществом. В данной методике Gartner исходит из того, что каждая новация проходит пять различных стадий, представленных на рис. 2.36.

  • Запуск технологии - научное открытие или иное событие, которое обращает внимание сообщества на новую технологию.
  • Пик завышенных ожиданий - стадия, на которой общественность обращает внимание на технологию и начинает возлагать на нее чрезмерные надежды.
  • Впадина разочарований, на которой пользователи выясняют, что те надежды, которые возлагались на технологию, не оправдались, специалистов, которые умеют доказать преимущества технологии, еще нет, и положительных примеров ее внедрения мало. На этой стадии СМИ обычно перестают писать о технологии, вследствие чего создается впечатление, что эта технология "ушла со сцены".
  • Подъем осведомленности - по мере того как люди адаптируются к новой технологии, узнают о ее применении и появляется больше сведущих в ней специалистов, наступает признание ее реальной пользы.
  • Плато продуктивности - на этой стадии технология становится стабильной, общепризнанной и широко применяемой.
  • Поскольку Gartner проводит оценку ИИ-технологий ежегодно, появляется возможность показать, как рассмотренные нами выше технологии, "проходят сквозь цикл ажиотажа". Нельзя сказать, что все технологии последовательно движутся вдоль кривой с одинаковой скоростью. Некоторые, как, например, технология сильного ИИ как находились на этапе запуска, так и остаются в этом состоянии, более того - ряд ученых полагают, что этой технологии не суждено воплотиться в полной мере на практике. Другие ИИ-технологии, такие как "распознавание речи" и "использование графических ускорителей" на кривой 2021 г., уже прошли плато продуктивности и находятся за пределами цикла, третьи (такие как, например, "семантический поиск") перемещаются в сторону "плато продуктивности".

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

    Когда говорят о наборе технологий, составляющих ИИ-решение, неизбежно заходит речь о том, где проходит граница между ИИ-технологией и смежными областями. Очевидно, что ИИ-технологии имеют области пересечения с другими технологиями, имеющими отношение к наукам о данных. Различные авторы пытались показать, в какой степени область искусственного интеллекта пересекается с другими технологиями, что позволяет лучше понять предмет ИИ как области науки. Существует достаточно много попыток отобразить графически данные пересечения в виде диаграмм Венна (например, они приведены в работах [106, 107]). Некоторые из этих диаграмм, на наш взгляд, имеют слишком ограниченный перечень областей, другие, напротив, перегружены подробностями и теряют наглядность. Мы остановились на диаграмме, которую в своих работах использовали специалисты компании SAS Institute ( рис. 2.37).

    Пользуясь данной схемой, обсудим, где же технологии ИИ пересекаются с другими областями знаний Следует отметить, что, имея дело с реальной прикладной задачей, подчас очень трудно определить, к какой области она относится. - Примечание научного редактора . Начнем рассмотрение рис. 2.37 с области, представленной окружностью в верхней части рисунка - "распознавание паттернов В английском часто используется сокращение PR от Pattern Recognition, может переводиться как распознавание паттернов или выявление зависимостей в данных (не путать с Public Relations). Паттерны могут наблюдаться не только в изображениях (распознавание образов), но также и текстах, аудио и т. п. ". Технология распознавания паттернов подразумевает использование различных алгоритмов с целью выявления закономерностей в данных как с использованием, так и без использования машинного обучения.

    Например, первые OCR-системы (относящиеся к технологии распознавания образов) не применяли алгоритмы машинного обучения, а использовали относительно простые алгоритмы попиксельного сравнения символа и шаблона, что давало приемлемые результаты в рамках одного шрифта.

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

    Следующая область на рисунке (представленная вытянутым эллипсом) - это вычислительная нейробиология Вычислительная нейробиология (или computational neuroscience) был предложен Эриком Шварцем (Eric L. Schwartz) в 1985 году, ранее данная область знаний называлась моделированием нервных систем, теорией мозга, нейронными сетями и т. п. , область, где используются математические модели для изучения принципов, которые управляют развитием, структурой, физиологией и когнитивными способностями мозга. Вычислительная нейробиология имеет существенное пересечение с ИИ и особенно с глубоким обучением Данный термин будет рассмотрен более подробно ниже в данной лекции .

    Цель нейронауки - понять работу мозга, и высшая цель - объяснить феномен сознания. Цель ИИ заключается в том, чтобы научить компьютеры имитировать разумное поведение, решать задачи, требующие интеллекта. Очевидно, что указанные области имеют пересечение. Информация о строении и функционировании мозга позволяет совершенствовать и создавать новые алгоритмы для решения задач из области ИИ. Наиболее ярким примером являются успехи создания моделей глубокого обучения на базе искусственных нейронных сетей. Таким образом, оба направления развиваются и обогащают друг друга. Еще одна окружность - "Обнаружение знаний в базах данных" (Knowledge Discovery in Databases KDD) - обозначает методику обнаружения полезных знаний в данных. Датамайнинг является под множеством KDD.

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

    "В машинном обучении производительность обычно оценивается по способности воспроизводить известные знания, в то время как в обнаружении знаний и добыче данных ключевой задачей является обнаружение ранее неизвестных знаний. При оценке по известным знаниям неконтролируемый метод (без учителя) будет легко превзойден контролируемыми методами (с учителем), тогда как в типичной задаче KDD контролируемые методы не могут быть использованы из-за недоступности обучающих данных" [109].

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

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

    Долее рассмотрим, где происходит пересечение областей "наука о данных" (data science, дата-сайнс) и искусственный интеллект.

    Термин дата-сайнс появился сравнительно недавно (в 2008 году), чтобы описать развивающуюся область исследований, направленную на выявление скрытой ценности в данных Термин предложили д-р Ди Джей Патил и Джефф Хаммербахер, руководители отделов аналитики и данных в LinkedIn и Facebook, соответственно (Facebook и LinkedIn - компании, деятельность которых в России запрещена) . Дата-сайнс включает в себя такие области как датамайнинг и обнаружение данных Обнаружение данных - data discovery - технология и инструментарий, ориентированный на бизнес-пользователей и заключающийся в визуальной навигации по данным и применении расширенной аналитики для выявления закономерностей, получения понимания, ответов на конкретные бизнес-вопросы и извлечения ценности из бизнес-данных и имеет пересечение со всеми ранее перечисленными категориями.

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

    Говоря о различии методов классической статистики ИИ, сошлемся на мнение авторов статьи [110]. Они отмечают, что традиционная статистика имеет дедуктивный подход к истине (от общего к частному), и если классический статистический подход начинается с набора гипотез, то методология ИИ и машинного обучения в начале исследования не делают каких-либо предположений относительно типа поведения переменных, чтобы соотнести их с целевым результатом.

    Можно ли сказать, что, применяя алгоритм линейной регрессии, известный еще в начале 19 века, вы решаете задачу машинного обучения?

    Разные специалисты дадут разные ответы. Однако такие гуру машинного обучения как Кристофер Бишоп в книге "Распознавание образов и машинное обучение", Ян Гудфеллоу в книге "Глубокое обучение" и ряд других упоминают линейную регрессию как один из алгоритмов машинного обучения. Так что граница между классической статистикой и машинным обучением как областью искусственного интеллекта в некотором смысле размыта. Можно привести такую аналогию - те, кто делают колеса, создают автомобиль, но колесо не является автомобилем, и колесо появилось задолго до появления автомобиля.

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

    Страницы:

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

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

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

    Компьютерное зрение

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

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

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

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

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

    Компьютерное зрение больше направлено на извлечение информации из изображений и делает акцент на анализе изображений Компьютерное зрение - это широкое понятие, которое включает еще и обработку видео, и 3D зрение, и computational imaging - технологию, в которой разрешающая способность достигается не за счет физики, но за счет математики и т. д. - Примечание научного редактора . Типовыми задачами компьютерного зрения являются классификация, детекция и сегментация, о которых пойдет речь далее в этой лекции.

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

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

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

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

    Ключевые отличия перечисленных технологий можно наглядно проследить по тому, какие данные они получают на входе и в каком виде формируют данные на выходе (табл. 2.1)

    Сравнение технологий по типу данных на входе и выходе. Источник: [61]
    Технология Вход Выход
    Обработка сигналов Электрические сигналы Электрические сигналы
    Обработка изображений Изображения Изображения
    Компьютерное зрение Изображения Информация/ характеристики
    Распознавание образов/ машинное обучение Информация/функции Информация
    Машинное зрение Изображения Информация
    Робототехническое зрение Изображения Физические действия

    Для более подробного обсуждения технологии компьютерного зрения вернемся к теме возникновения и эволюции данных систем. Одна из первых работ, в которой упоминалось компьютерное распознавание изображений и звука, вышла в 1955 г. - профессор Массачусетского технологического института Оливер Селфридж опубликовал статью "Глаза и уши для компьютера". Работа, которую, несомненно, можно считать пионерской в области компьютерного зрения, мы уже упомянули в начале курса - это Персептрон Фрэнка Розенблата. Еще одним отцом компьютерного зрения называют Лоуренса Робертса (Lawrence Roberts), который в 1963 году опубликовал работу "Машинное восприятие трехмерных твердых тел", в которой обсуждались вопросы извлечения трехмерной информации об объектах из двухмерных фотографий. Лоуренс защитил в этой области диссертацию и уже в 1970 году читал в MIT курс по компьютерному зрению.

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

    Одна из ранних прикладных задач компьютерного зрения - это оптическое распознавание символов OCR Optical Character Recognition . Различные реализации данного рода программ существовали задолго до бума глубокого обучения. Ранние версии OCR обучались на изображениях отдельных символов и должны были переобучаться при каждом изменении шрифта. В 1970-х годах уже упомянутый в курсе изобретатель Рэй Курцвейл Американский изобретатель и футуролог, создатель многочисленных систем распознавания речи. Известен научными технологическими прогнозами, учитывающими появление искусственного интеллекта и средств радикального продления жизни людей выпустил в продажу первый омнишрифтовой OCR, который мог обрабатывать текст, напечатанный практически любым шрифтом. В начале 90-х российские разработчики, впоследствии создавшие всемирно известную компанию ABBYY В то время компания еще называлась BIT Software , начали проект по созданию OCR-программы, которая позднее стала популярным продуктом FineReader. Другая отечественная компания - Cognitive Technologies - примерно в это же время разрабатывала свою систему оптического распознавания текстов OCR CuneiForm. Как коммерческий продукт эта программа появилась в 1993 году. В начале 2000-х годов оптическое распознавание символов стало доступно в Интернете в виде облачного сервиса.

    Параллельно развивались также приложения для распознавания лиц при участии и финансировании военных ведомств. Например, в 1993 стартовал проект "Технология распознавания лиц (FERET)", который спонсировался правительством США, целью проекта было создание большой автоматической системы распознавания лиц для целей разведки, безопасности и правоохранительных органов. Проект преследовал задачи автоматизации процессов поиска по фотографиям с камер видеонаблюдения, контроль доступа к объектам и т. п. Примерно в это же время появились первые беспилотные системы управления автотранспортом. В 2003 году системы распознавания лиц стали использоваться в корпоративных приложениях.

    В 2010-х годах в области распознавания и классификации изображений начался переход к методам глубокого обучения.

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

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

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

    Для извлечения признаков применялись специальные алгоритмы, такие как, например, алгоритм SIFT Scale-Invariant Feature Transform - алгоритм масштабно-инвариантной трансформации признаков, созданный в 1999 году для выявления и описания локальных признаков в изображениях . Согласно методике применения алгоритма, сначала извлекаются и запоминаются в базе данных ключевые точки объектов из набора контрольных изображений, и далее новый объект распознается на основе этих данных путем сравнивания каждого признака из нового изображения с признаками из базы данных.

    Поясним это на примере - пусть модель машинного обучения используется для ответа на вопрос, изображен на конкретном изображении автомобиль или нет (рис. 2.2).

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

    На основе выделенных признаков (если они правильно выбраны) алгоритм проведет классификацию изображений.

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

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

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

    Многие достижения в области искусственного интеллекта за последние годы связаны именно с глубоким обучением. Наиболее точные модели на его основе требуют тысяч и даже миллионов элементов обучающих данных.

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

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

    Существует множество задач в области компьютерного зрения, таких как потоковая обработка видео, автоматическая сшивка панорам, оценка движения и идентификация движущихся объектов, которые иногда проще реализовать классическими методами [62].

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

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

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

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

    В период с 1985 по 2009 год рост вычислительных требований наиболее крупных из используемых нейронных сетей увеличивался примерно пропорционально росту вычислительной мощности оборудования.

    Поскольку рост вычислительной мощности в расчете на один доллар примерно повторяет рост вычислительной мощности в расчете на один чип, стоимость работы таких моделей была в значительной степени стабильной с течением времени примерно до 2009 года.

    Переломным моментом стал перенос глубокого обучения на GPU Графический процессор (GPU) - специализированная электронная схема, эффективная при работе с обработкой изображений. Параллельная структура GPU делает их более эффективными (чем центральные процессоры общего назначения CPU) для алгоритмов, которые параллельно обрабатывают большие блоки данных , что дало ускорение в потреблении вычислительной мощности новыми моделями глубокого обучения в районе 2012 года, именно это, в частности, позволило осуществить важную победу Alexnet (о которой речь пойдет ниже) на конкурсе Imagenet в упомянутом году Заметим, что резкий рост доли исследований, посвященных компьютерному зрению после 2012 г., хорошо виден на самом первом рисунке данного курса .

    Таким образом, кривая роста потребностей в вычислительной мощности для крупнейших проектов глубокого обучения после примерно 2005 года изменялась с ускорением, а кривая роста производительности оборудования с замедлением.

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

    Помимо проблем доступной вычислительной мощности следует отметить, что до 2005 года у специалистов не было достаточного количества данных, на основе которых можно было бы создать высокопроизводительные модели распознавания изображений. В 2009 году произошло объединение ряда американских институтов для создания массивного набора данных под названием ImageNet.

    ImageNet - это проект по созданию и сопровождению массивной базы данных размеченных изображений из более чем 14 миллионов изображений 1000 классов По состоянию на 2021 г. , который предоставляет данные исследователям для обучения алгоритмов искусственного интеллекта.

    С 2010 года в рамках ILSVRC ImageNet Large Scale Visual Recognition Challenge - широкомасштабное соревнование по распознаванию образов на базе ImageNet проводятся соревнования, где конкурируют различные исследовательские группы по распознаванию объектов. На рис. 2.5 показаны данные результатов соревнований разработчиков ИИ в рамках данного проекта в период с 2010 по 2017 г.

    На рис. 2.5 представлены данные в так называемой категории "Top-5 error". Соревнование предполагает, что для ответа выбирается Топ-5 предсказаний, в которых сеть наиболее уверена, и если искомый ответ (класс) попал в эти пять предсказаний, то утверждается, что сеть не ошиблась, и напротив, если правильный класс в эти 5 предсказаний не попал, то, соответственно, считается, что сеть ошиблась.

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

    В 2011 году хорошим результатом считалась ошибка классификации на уровне 25%.

    На рис. 2.5 выделяется 2012 год, который мы уже упомянули, говоря о новых возможностях доступного для обучения нейронной сети оборудования (см. рис. 2.4). В этом году исследователи из Университета Торонто использовали методы, основанные на глубоком обучении, чтобы установить новый уровень техники в конкурс ILSVRC - сверточная нейронная сеть Сверточная нейронная сеть (СНС) - это сеть глубокого обучения специальной архитектуры, предложенная Яном Лекуном в 1988 году и нацеленная на эффективное распознавание образов. Принцип действия сверточных сетей будет описан ниже в данной лекции AlexNet Архитектура сети была разработана Алексом Крижевским в сотрудничестве с Ильей Суцкевером и Джеффри Хинтоном показала уникальный результат, достигнув ошибки на уровне 15,3% в "ILSVRCTOP-5", что было более чем на 10,8 процентных пункта ниже, чем у проекта, занявшего второе место. Высокая производительность достигалась за счет глубины модели AlexNet имела 8 слоев, включая 5 сверточных, 600 млн соединений и 61 млн обучаемых параметров , что потребовало высокой производительности, которая достигалась благодаря использованию во время обучения графических процессоров (GPU).

    Это было значимое событие поскольку ошибку удалось снизить радикально, показав результат, на который все остальные методы были неспособны. В последующие годы ошибка упала до нескольких процентов (рис. 2.5). В 2014 г. победителем конкурса ILSVRC стала сеть VGGNet. Модель, предложенная Симоняном и Зиссерманом, состояла из 19 слоев (138 млн параметров). В том же году GoogleNet, которая имела 22 слоя, еще снизила ошибку, а в 2015 году исследователи констатировали, что программы в определенных задачах проекта ILSVRC превзошли человеческие способности.

    Нейронная сеть Resnet (Residual Networks), разработанная Microsoft Research, стала победителем конкурса ImageNet в 2015 году, она имела уже 152 слоя и демонстрировала ошибку на уровне 3,6% [65]. В 2016 г. при использовании ансамбля моделей Несколько обученных моделей делают предсказание, и выбирается коллективное решение тем или иным способом удалось показать результат с ошибкой в 3%, а в 2017 г. 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 точек мы получим уже три миллиона параметров. Одна из задач, стоявших перед разработчиками нейросетей для распознавания изображений, заключалась в получении экономичного решения, которое бы учитывало особенности представления информации в изображениях.

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

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

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

    Идея сверточных сетей базируется на сведениях о некоторых механизмах зрительного восприятия у живых организмов. Согласно исследованиям Хьюбела и Визеля, проведенным еще в 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 условно показано шесть каналов.

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

    В тот момент, когда фильтр расположен над рецептивным полем, как это показано на рисунке, перемноженные и просуммированные значения дадут в результате число 6600 (см. рис. 2.9).

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

    На выходе получается карта признаков, которая дает нам определенную информацию об изображении. Обычно за сверточным слоем следует слой субдискретизации (пулинга). Основная цель этого слоя - уменьшение пространственного размера свернутой карты признаков. Этот слой уменьшает количество параметров на входе, что позволяет снизить вычислительные затраты. Смысл этой операции в том, что, если мы обнаружили некоторый фрагмент изображения, нас перестает интересовать его точное положение с точностью до пиксела - поэтому мы можем заменить некоторую пиксельную окрестность (например, 2x2 или 3x3) одним значением, показывающим, был признак обнаружен в этой окрестности или нет. Как и в случае со сверточным слоем, операция пулинга прогоняет окно по всему полю, и (в зависимости от применяемого метода) на участке заданного размера выбирается максимальное значение (MaxPooling) или вычисляется среднее значение элементов на участке (Average pooling). На рис. 2.8 показан только один сверточный слой и один слой пулинга, на практике их могут быть десятки. На каждом следующем слое операция повторяется, в результате чего карта уменьшается в размере, при том, что количество каналов увеличивается. После прохождения всех слоев свертки и пулинга формируются сотни каналов с признаками, которые интерпретируются как самые абстрактные понятия, выявленные из исходного изображения.

    На финальной стадии данные трансформируются в вектор и передаются на обычную полносвязную нейронную сеть (см. рис. 2.8). На выходе мы получаем ответ, в частности в представленном примере с вероятностью 90% сеть распознает изображение как принадлежащее классу "собака".

    Компьютерное зрение - это не только классификация

    Ранее мы рассмотрели задачу классификации изображений, когда необходимо распознать и присвоить метку объекту (или множеству объектов), присутствующему на изображении, отвечая на вопрос "Что это?". Со временем нейронные сети научились выполнять более сложные задачи, чем классификация изображений, например ИНС, научились выделять на фотографиях контуры объектов, даже если таких экземпляров несколько и они загораживают друг друга.

    Сегментация объектов на изображениях подразумевает умение выполнять целый ряд операций (рис. 2.10).

    Локализация объектов подразумевает определение местоположения одного или нескольких объектов на изображении и построение прямоугольной рамки вокруг их границ. Обнаружение объектов объединяет локализацию и классификацию одного или нескольких объектов на изображении (рис. 2.11)

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

    Для обучения глубоких нейронных сетей пониманию городской среды используются специализированные наборы данных (датасеты), например такие, как Cityscapes Переводится как "Городские пейзажи" .

    Cityscapes фокусируется на семантической Различают понятия "semantic segmentation" (семантическая сегментация) - когда на изображении объекты одного класса не отделены друг от друга (показана общая граница пересекающихся объектов) и "instance segmentation" (инстанс сегментация) - когда на изображении пересекающиеся объекты одного класса отделены друг от друга внутренней границей. - Примечание научного редактора сегментации, включает набор городских уличных сцен из пятидесяти городов, сфотографированных в разное время года. Набор данных содержит около 5 тыс. изображений с аннотациями на уровне пикселей и около 20 тыс. частично маркированных изображений.

    Существуют соревнования по оценке уровня точности сегментации объектов изображения на базе 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.

    На рис. 2.16 показан прогресс генеративных моделей за последние два года в создании синтетических изображений, проведенный по метрике FID на базе набора данных STL-10, который используется для проверки того, насколько эффективно системы генерируют изображения. STL-10 - это датасет для распознавания изображений, который состоит из 100 000 неразмеченных и 500 обучающих изображений и используется для разработки алгоритмов глубокого обучения и самообучения.

    Интересно отметить, что направления ИИ, связанные с обработкой изображений и естественного языка, в какой-то момент нашли пересечение.

    В 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 находится на пересечении лингвистики Наука о естественном языке, его природе и структурах. Области лингвистического анализа включают: синтаксис (правила, регулирующие структуру предложений); семантику (значение); морфологию (структуру слов); фонетику (звуки речи) и т. п. и технологий искусственного интеллекта (см. рис. 2.19), при том, что вектор эволюции NLP направлен от лингвистики к технологиям глубокого обучения.

    В самом общем плане в развитии NLP можно выделить три этапа - символьный (с 1950-х до начала 1990-х годов), статистический (1990-2010) и нейросетевой (2010 - до настоящего времени). Отмеченные периоды достаточно наглядно просматриваются на примере машинного перевода, о котором следует сказать более подробно (рис. 2.20).

    Историю машинного перевода обычно отсчитывают с так называемого Джорджтаунского эксперимента (1954 год), когда программа, состоявшая из шести правил, перевела 60 предложений с транслитерированного Транслитерация - передача знаков одной письменности знаками другой письменности, в данном случае русский текст был записан с помощью латинского алфавита русского на английский язык.

    Задачи обработки естественного языка потребовали разработки модели представления текстов для компьютерной обработки. Об одной из первых таких моделей - "мешок слов" - следует кратко напомнить читателю, что будет полезно для дальнейших рассуждений Одно из первых упоминаний о модели "мешок слов" в лингвистическом контексте можно найти в статье Зеллига Харриса за 1954 год . Мешок слов 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.

    Примерно в 80-х годах (см. рис. 2.20) появился машинный перевод на основе примеров (Example Based Machine Translation EBMT) - это метод машинного перевода, в котором в качестве основы используются параллельные тексты (двуязычные корпуса), составленные по принципу "фраза к фразе". Метод повысил доступность машинного перевода, позволяя применять в переводе сложные языковые правила, которые уже встроены в используемые фразы.

    Следующий важный шаг в развитии машинного перевода - это статистический машинный перевод (SMT - Statistical Machine Translation). Появление статистических методов в NLP произошло именно в области машинного перевода за счет появления к тому времени больших корпусов двуязычных текстов.

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

    Статистический машинный перевод Для обозначения термина часто используется аббревиатура SMT (Statistical machine translation) часто противопоставляют алгоритмам перевода, основанным на правилах. В случае статистического машинного перевода система ничего не знает о лингвистических правилах - перевод генерируется на основе статистических моделей, параметры которых являются производными от анализа двуязычных корпусов текста.

    Статистический машинный перевод, так же как и 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].

    На рис. 2.25 (слева) показана часть нейронной сети A, которая принимает входной сигнал x и выводит значение h. Цикл позволяет передавать информацию с одного шага сети на другой.

    Справа представлена развертка цикла, которая показывает, что RNN можно представить как несколько копий одной и той же сети, каждая из которых передает сообщение преемнику. В процессе обучения происходит такое "разворачивание" сети, и развернутая копия обучается алгоритмом обратного распространения, получившим название BPTT (back propagation through time Обратное распространение во времени ).

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

    Один из недостатков нейронной сети - это так называемая "проблема с долгосрочной зависимостью", которая состоит в том, что по мере того, как разрыв между необходимой информацией становится больше, 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 и Sber AI Следует упомянуть заслуги команды Сергея Маркова из SberDevices, который с командой обучил ru-GPT3, ru-DALLE и ряд других проектов. - Примечание научного редактора .

    Тренды последних лет - мультимодальность, базисные модели

    Появление трансформеров привело к радикальным изменениям в мультимодальных задачах, когда одновременно используется несколько типов входных сигналов (например, текст и изображения Это не обязательно текст и картинки. Может быть любая пара (и не только пара) типов сигналов. - Примечание научного редактора ).

    Длительное время стандартом де-факто для мультимодальных задач с использованием текстов и картинок было применение сверточных нейронных сетей для извлечения признаков из визуальной области, при том, что для получения текстового представления использовались рекуррентные нейронные сети. Эта картина изменилась с появлением архитектуры трансформеров.

    В феврале 2019 г. компанией OpenAI была создана модель Generative Pretrained Transformer 2 (GPT-2) - система ИИ с открытым исходным кодом, которая позволяла переводить, отвечать на вопросы и генерировать текст на уровне, который в ряде случаев неотличим от написанного человеком. GPT-2 был создан как развитие модели OpenAI GPT от 2018 года, с десятикратным увеличением как количества параметров, так и размера обучающего набора данных (модель обучили на 40 Гб текста).

    В 2020 году OpenAI выпустила модель GPT-3, которая позволяла не только создавать текст, но и генерировать код, писать рассказы и сочинять стихи Следует отметить, что, строго говоря, никакая модель еще не научилась писать рассказы и полноценные стихи (только хокку). Но главное достижение GPT-3 не в том, что она умеет что-то новое, а то, насколько качественнее она это делает по отношению к GPT-2. Остальные примеры - следствие этого качественного скачка . Для обучения модели потребовалось 570 Гб текста.

    Серия моделей 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, профессиональное сообщество предложило различные модели на основе трансформеров, такие как Vil-BERT ViLBERT - сокращение от Vision-and-Language BERT - модель для обучения совместных представлений изображений и естественного языка на базе архитектуры BERT (Lu и др. 2019), UNITER UNITER - сокращение от UNiversal Image-Text Representation Learning - универсальное обучение представлению изображения и текста (Chen и др. 2020), ViLT ViLT- сокращение от Vision-and-Language Transformer - модель для обучения совместных представлений изображений и естественного языка на базе архитектуры трансформер (Kim, Son и др. 2021), которые объединяют представления из текста и изображений и достигают высоких результатов в нескольких мультимодальных задачах [98].

    В 2019 году была начата разработка нейронной сети DALL-E, когда OpenAI получила грант суммой в 1 миллиард долларов от компании Microsoft на разработку инновационных технологий в сфере искусственного интеллекта. Первая версия нейросети была представлена мировому сообществу в январе 2021 года, а в апреле 2022 года была анонсирована новая версия - DALL-E 2, созданная для генерации изображений на основе пользовательского описания.

    В интернете доступна версия DALL-E Mini (Craiyon Image Generator From Text), где каждый может поэкспериментировать и посмотреть, как нейросеть строит изображения по текстовым описаниям пользователей (рис. 2.31).

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

    Отсчет на рис. 2.32 ведется начиная с упомянутых в начале курса моделей - Персептрон, Alexnet, Resnet. Следом на рисунке идет представленная впервые в 2016 году нейронная сеть Yolo (You Only Look Once), используемая для обнаружения объектов в реальном времени с высокой точностью, которая имела более 65 млн обучаемых параметров. Следующей в ряду указана Google Neural MachineTranslation (GNMT) - система нейронного машинного перевода, разработанная компанией Google и представленная в ноябре 2016 года. Решение было использовано для повышения скорости и точности перевода в Google Translate. Двумя годами позже появилась также упомянутая нами нейросетевая модель-трансформер по имени BERT от компании Google, которая появилась в начале 2018 года. BERT имела 110 миллионов параметров, а ее версия Bert Large - 340 миллионов [99]. В 2019 году вышла модель GPT-2 от компании OpenAI с рекордным на момент появления числом параметров в полтора млрд [100]. GPT-3 была представлена в мае 2020 года и имела около 175 миллиардов обучаемых параметров, полная версия OpenAI GPT-3 стала самой большой моделью, обученной на момент представления.

    На создание GPT-3 ушли десятки миллионов долларов. Известно, что только вычислительные затраты на одну итерацию обучения составили около 4,6 миллиона долларов, что представляет лишь небольшую долю общих затрат. Кривая рис. 2.32 показывает резкий рост стоимости обучения модели с увеличением ее размера.

    Естественно ожидать, что процесс наращивания количественных показателей, отмеченный на рис. 2.32, должен был привести к появлению качественных возможностей нейросетевых моделей. И такой переход количества в качество был отмечен - по сути, так можно трактовать появление нового термина - "базисные модели".

    Термин "базисные модели" был введен исследователями из Стэнфорда в 2021 г. в статье "О возможностях и рисках базисных моделей" [101]. Предложенный термин помог обозначить смену парадигмы в развитии ИИ и позволил авторам поместить на временной шкале новый период Возможно, авторы из Стэнфорда преувеличивают значимость предложенного ими нового термина, поставив его в такой ряд. - Примечание научного редактора , который по значимости соседствует с такими глобальными понятиями как "искусственный интеллект" и "машинное обучение". Если ранее мы демонстрировали диаграммы Венна, где глубокое обучение было крайним вложенным элементом (см. рис. 1.14), то теперь внутри последнего вложено еще и множество "базисные модели" (см. рис. 2.33).

    При этом авторы упомянутой коллективной статьи подчеркивают, что само понятие "Базисная модель" не является новой технологией, а имеет в своей основе глубокие нейронные сети и самоконтролируемое обучение. И в качестве ярких примеров базисных моделей рассматривают уже упомянутые нами 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 показана схема, отражающая иерархию технологий, необходимых для построения современного ИИ-решения. Во внутреннем эллипсе представлены различные алгоритмы, на основе которых строятся ИИ-решения, в частности здесь перечислены упоминаемые нами ранее алгоритмы "дерево решений", "метод опорных векторов", "генетическое программирование", "линейная регрессия", "нейронные сети".

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

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

    Для того чтобы построить решение на базе ИИ, помимо программного обеспечения нужна инфраструктура, на которой все перечисленные приложения будут работать. Причем нужна специализированная инфраструктура, которая позволит обрабатывать типичные для ИИ-задач нагрузки с оптимальной производительностью. К числу инфра-структурных технологий, на которых строятся ИИ-решения, в схеме рис. 2.35 отнесены элементы аппаратного обеспечения (процессоры, память, нейроускорители, сенсоры и датчики, системы управления движением), программное обеспечение (алгоритмы, фреймворки, библиотеки, вычислительные среды, инструменты разработки) и данные (пакетные данные, потоковые данные, большие данные, разметка).

    Говоря о технологиях, составляющих то или иное комплексное решение, следует отметить, что технологии быстро развиваются - совершенствуются алгоритмы, меняются вычислительные возможности, одни технологии устаревают и сходят с дистанции, другие массово применяются большинством участников рынка, третьи применяются в пилотных проектах, четвертые находятся еще только на стадии запуска. Инымисловами, для того чтобы оценить, какие технологии используются в ИИ-решении и какие будут актуальны в ближайшей перспективе, требуется еще одна точка зрения - это взгляд, связанный с анализом жизненного цикла технологии от запуска до выхода на массовый рынок. Обратимся к материалам аналитической компании Gartner, которая ежегодно публикует так называемый цикл ажиотажа (Gartner Hype Cycle), показывающий стадию развития той или иной технологии с точки зрения ее зрелости и с точки зрения ее субъективного восприятия профессиональным сообществом. В данной методике Gartner исходит из того, что каждая новация проходит пять различных стадий, представленных на рис. 2.36.

  • Запуск технологии - научное открытие или иное событие, которое обращает внимание сообщества на новую технологию.
  • Пик завышенных ожиданий - стадия, на которой общественность обращает внимание на технологию и начинает возлагать на нее чрезмерные надежды.
  • Впадина разочарований, на которой пользователи выясняют, что те надежды, которые возлагались на технологию, не оправдались, специалистов, которые умеют доказать преимущества технологии, еще нет, и положительных примеров ее внедрения мало. На этой стадии СМИ обычно перестают писать о технологии, вследствие чего создается впечатление, что эта технология "ушла со сцены".
  • Подъем осведомленности - по мере того как люди адаптируются к новой технологии, узнают о ее применении и появляется больше сведущих в ней специалистов, наступает признание ее реальной пользы.
  • Плато продуктивности - на этой стадии технология становится стабильной, общепризнанной и широко применяемой.
  • Поскольку Gartner проводит оценку ИИ-технологий ежегодно, появляется возможность показать, как рассмотренные нами выше технологии, "проходят сквозь цикл ажиотажа". Нельзя сказать, что все технологии последовательно движутся вдоль кривой с одинаковой скоростью. Некоторые, как, например, технология сильного ИИ как находились на этапе запуска, так и остаются в этом состоянии, более того - ряд ученых полагают, что этой технологии не суждено воплотиться в полной мере на практике. Другие ИИ-технологии, такие как "распознавание речи" и "использование графических ускорителей" на кривой 2021 г., уже прошли плато продуктивности и находятся за пределами цикла, третьи (такие как, например, "семантический поиск") перемещаются в сторону "плато продуктивности".

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

    Когда говорят о наборе технологий, составляющих ИИ-решение, неизбежно заходит речь о том, где проходит граница между ИИ-технологией и смежными областями. Очевидно, что ИИ-технологии имеют области пересечения с другими технологиями, имеющими отношение к наукам о данных. Различные авторы пытались показать, в какой степени область искусственного интеллекта пересекается с другими технологиями, что позволяет лучше понять предмет ИИ как области науки. Существует достаточно много попыток отобразить графически данные пересечения в виде диаграмм Венна (например, они приведены в работах [106, 107]). Некоторые из этих диаграмм, на наш взгляд, имеют слишком ограниченный перечень областей, другие, напротив, перегружены подробностями и теряют наглядность. Мы остановились на диаграмме, которую в своих работах использовали специалисты компании SAS Institute ( рис. 2.37).

    Пользуясь данной схемой, обсудим, где же технологии ИИ пересекаются с другими областями знаний Следует отметить, что, имея дело с реальной прикладной задачей, подчас очень трудно определить, к какой области она относится. - Примечание научного редактора . Начнем рассмотрение рис. 2.37 с области, представленной окружностью в верхней части рисунка - "распознавание паттернов В английском часто используется сокращение PR от Pattern Recognition, может переводиться как распознавание паттернов или выявление зависимостей в данных (не путать с Public Relations). Паттерны могут наблюдаться не только в изображениях (распознавание образов), но также и текстах, аудио и т. п. ". Технология распознавания паттернов подразумевает использование различных алгоритмов с целью выявления закономерностей в данных как с использованием, так и без использования машинного обучения.

    Например, первые OCR-системы (относящиеся к технологии распознавания образов) не применяли алгоритмы машинного обучения, а использовали относительно простые алгоритмы попиксельного сравнения символа и шаблона, что давало приемлемые результаты в рамках одного шрифта.

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

    Следующая область на рисунке (представленная вытянутым эллипсом) - это вычислительная нейробиология Вычислительная нейробиология (или computational neuroscience) был предложен Эриком Шварцем (Eric L. Schwartz) в 1985 году, ранее данная область знаний называлась моделированием нервных систем, теорией мозга, нейронными сетями и т. п. , область, где используются математические модели для изучения принципов, которые управляют развитием, структурой, физиологией и когнитивными способностями мозга. Вычислительная нейробиология имеет существенное пересечение с ИИ и особенно с глубоким обучением Данный термин будет рассмотрен более подробно ниже в данной лекции .

    Цель нейронауки - понять работу мозга, и высшая цель - объяснить феномен сознания. Цель ИИ заключается в том, чтобы научить компьютеры имитировать разумное поведение, решать задачи, требующие интеллекта. Очевидно, что указанные области имеют пересечение. Информация о строении и функционировании мозга позволяет совершенствовать и создавать новые алгоритмы для решения задач из области ИИ. Наиболее ярким примером являются успехи создания моделей глубокого обучения на базе искусственных нейронных сетей. Таким образом, оба направления развиваются и обогащают друг друга. Еще одна окружность - "Обнаружение знаний в базах данных" (Knowledge Discovery in Databases KDD) - обозначает методику обнаружения полезных знаний в данных. Датамайнинг является под множеством KDD.

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

    "В машинном обучении производительность обычно оценивается по способности воспроизводить известные знания, в то время как в обнаружении знаний и добыче данных ключевой задачей является обнаружение ранее неизвестных знаний. При оценке по известным знаниям неконтролируемый метод (без учителя) будет легко превзойден контролируемыми методами (с учителем), тогда как в типичной задаче KDD контролируемые методы не могут быть использованы из-за недоступности обучающих данных" [109].

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

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

    Долее рассмотрим, где происходит пересечение областей "наука о данных" (data science, дата-сайнс) и искусственный интеллект.

    Термин дата-сайнс появился сравнительно недавно (в 2008 году), чтобы описать развивающуюся область исследований, направленную на выявление скрытой ценности в данных Термин предложили д-р Ди Джей Патил и Джефф Хаммербахер, руководители отделов аналитики и данных в LinkedIn и Facebook, соответственно (Facebook и LinkedIn - компании, деятельность которых в России запрещена) . Дата-сайнс включает в себя такие области как датамайнинг и обнаружение данных Обнаружение данных - data discovery - технология и инструментарий, ориентированный на бизнес-пользователей и заключающийся в визуальной навигации по данным и применении расширенной аналитики для выявления закономерностей, получения понимания, ответов на конкретные бизнес-вопросы и извлечения ценности из бизнес-данных и имеет пересечение со всеми ранее перечисленными категориями.

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

    Говоря о различии методов классической статистики ИИ, сошлемся на мнение авторов статьи [110]. Они отмечают, что традиционная статистика имеет дедуктивный подход к истине (от общего к частному), и если классический статистический подход начинается с набора гипотез, то методология ИИ и машинного обучения в начале исследования не делают каких-либо предположений относительно типа поведения переменных, чтобы соотнести их с целевым результатом.

    Можно ли сказать, что, применяя алгоритм линейной регрессии, известный еще в начале 19 века, вы решаете задачу машинного обучения?

    Разные специалисты дадут разные ответы. Однако такие гуру машинного обучения как Кристофер Бишоп в книге "Распознавание образов и машинное обучение", Ян Гудфеллоу в книге "Глубокое обучение" и ряд других упоминают линейную регрессию как один из алгоритмов машинного обучения. Так что граница между классической статистикой и машинным обучением как областью искусственного интеллекта в некотором смысле размыта. Можно привести такую аналогию - те, кто делают колеса, создают автомобиль, но колесо не является автомобилем, и колесо появилось задолго до появления автомобиля.

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

    Вернуться к учебному плану