Опубликован: 30.05.2023 | Доступ: свободный | Студентов: 688 / 180 | Длительность: 16:08:00
Лекция 4:

ИИ как экосистема, бизнес и рынок

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

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

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

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

Согласно оценкам компании Cognilytica, этап "аугментация данных" составляет около 15% от рассматриваемого цикла 5Следует отметить, что на других модальностях данных аугментация применяется гораздо реже. - Примечание научного редактора .

После того как данные приведены в пригодный для использования вид, разработчики переходят к разработке ML-алгоритма (на данный этап на рис. 3.4 отнесено всего 3% времени), далее следуют обучение (10%) и этап настройки (5%).

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

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

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

Этот этап требует выбора и применения методов моделирования, обучения модели, установки и настройки гиперпараметров модели.

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

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

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

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

Финальная стадия - это операционализация, которая, согласно рис. 3.4, занимает всего лишь 2%7Если это интеграция, то 2% - это слишком мало. Быстро модель можно интегрировать только в существующую отлаженную платформу. В реальности это сложные интеграционные проекты. - Примечание научного редактора. Даже после того, как модель обучена, она не готова к внедрению, пока не будет пройдена стадия операционализации, то есть модель не будет развернута в бизнес-приложении, не начнет анализировать данные и делать прогнозы [116].

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

Если дата-сайнс-команды отвечают за разработку и обучение модели, то ввод в эксплуатацию моделей машинного обучения обычно осуществляется MLOps-командами 8MLOPS от Machine Learning Operations - набор средств для оптимизации жизненного цикла машинного обучения, который, в отличие от цикла разработки обычного ПО (где заранее известно, какие функции предстоит запрограммировать), требует проверки множества видов моделей, прежде чем выбрать ту (заранее неизвестную), которая позволяет лучше описывать имеющееся распределение данных и инженерами заказчика.

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

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

 Иерархия потребностей в дата-сайнс-приложениях. Источник: Data Flair [117]

Рис. 3.6. Иерархия потребностей в дата-сайнс-приложениях. Источник: Data Flair [117]

Сравнение рисунков 3.1, 3.4 и рис. 3.6 позволяет еще раз затронуть вопрос таксономии. На рис. 3.1 и 3.4 речь шла о типовом ИИ/ ML-проекте, где все этапы трактуются как часть ИИ-проекта, а на рис. 3.6 лишь только самый верхний слой пирамиды отнесен к ИИ, в то время как все остальные этапы обозначены как подготовительные. По сути, вопрос о том, какая часть пирамиды рис. 3.6 относится к ИИ/ML-проекту, а какая является подготовкой к нему, остается открытым. Отсутствие общепринятой точки зрения на этот вопрос - это одна из причин того, что разные аналитики по-разному оценивают экосистему компаний, создающих ИИ-решения, и по-разному оценивают объем рынка ИИ.

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

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