Отказ от ответственности: если точность моделей машинного обучения не является вашим приоритетом, эта статья может быть не для вас. Моим инженерам по машинному обучению, специалистам по данным, инженерам по компьютерному зрению и менеджерам по продуктам: добро пожаловать домой. Выпейте кофе и приступим.
Для большинства случаев использования компьютерного зрения разработка модели изначально выполняется довольно быстро и относительно просто. За короткий период времени вы можете разработать элементарную модель машинного обучения (ML), достаточную для подтверждения концепции.
Для этого просто найдите набор данных с открытым исходным кодом, потратьте некоторое время на разметку и используйте перенесенное обучение. В кратчайшие сроки вуаля: у вас есть базовая модель.
Эта модель, конечно, не будет иметь достаточно высокого уровня точности или уверенности, чтобы обеспечить какую-либо ценность для бизнеса. Именно тогда, когда вы хотите повысить точность и надежность своей модели, разработка становится намного дороже и становится все более сложной. .
Это связано с тем, что скорость обучения моделей машинного обучения по мере продвижения выходит на плато - это Проклятие длинного хвоста.
В моей прошлой статье мы обсуждали проблему иголки в стоге сена. Мы исследовали, как эта проблема связана с машинным обучением и почему она является чрезмерным упрощением реальной проблемы данных. Если вы еще этого не сделали, вы можете проверить публикацию здесь.
В этой статье мы исследуем, почему проблема данных так важна при разработке автономных систем и моделей видения машинного обучения, и почему командам машинного обучения требуется решение для работы с данными в их инструментарии.
Еще в 2019 году, когда я работал с первоклассной компанией по производству беспилотных автомобилей, проблема разработки автономных систем стала для меня очевидной. Я очень быстро понял, что все дело в поиске правильных данных.
Данные были самым большим препятствием на пути повышения точности наших моделей машинного обучения. Способность находить высококачественные данные из существующих наборов данных - вот то, что требовалось, чтобы перейти из лаборатории на дороги и, в конечном итоге, в дилерский центр.
Основная проблема точности модели заключается в данных. В коммерческих приложениях мы видим, что обычно основа моделей машинного обучения довольно стандартна и обычно не является корнем проблемы.
Предоставление высококачественных данных - это итеративный процесс. Завершив свою работу с командой разработчиков беспилотных автомобилей, я понял, что этот процесс обнаружения данных необходим для создания гораздо большего, чем просто беспилотные автомобили; практически все автономные системы и приложения машинного зрения машинного зрения решают эту задачу. Помня об этом, мы с моей командой решили сместить акцент с консалтинга и создать продуктовую компанию с единственной целью решить эту проблему.
Многие компании сталкиваются с уменьшением прибыли при улучшении своих моделей машинного обучения, особенно при переходе с 80% на ›95% точности. Чтобы повысить точность модели, вам обычно нужно сначала пройти длинный хвост улучшений. Этот длинный хвост замедляет постепенное повышение точности модели и, как таковой, замедляет вывод продукта на рынок.
Длинные хвосты присутствуют и в человеческом обучении. На приведенном выше рисунке показана кривая изучения языка. Выглядит знакомо?
Представьте, что вы решили переехать в Испанию, чтобы работать в кафе и изучать испанский язык. Обладая базовыми знаниями и обучением ваших коллег, вы очень быстро сможете выполнять простые, обычные заказы, такие как кафе или сервеза. Однако, если кто-то пришел к вам с необычным или нестандартным заказом, например, tostada con tomate, aceite, y jamón, вы можете с трудом добиться желаемого результата.
В ML мы называем эти необычные заказы «крайними случаями», и, к сожалению для нас, их, по-видимому, бесконечное количество.
Допустим, в 80% случаев люди делают простые заказы. Это означает, что в 80% случаев мы можем выполнить их заказ, а в 20% случаев наше языковое обучение (наши данные обучения) терпит неудачу.
Обычно при разработке машинного обучения, когда точность модели достигает ~ 70–80%, большинство низко висящих фруктовых задач (заказы на кофе, пиво и т. Д.) Уже изучены.
Отсюда вы можете улучшить свою модель, определив эти крайние случаи / режимы отказа вашей модели, а затем найдя другие аналогичные экземпляры для обучения вашей модели.
Проще сказать, чем сделать.
Сложная часть - найти и исправить эти крайние случаи, вызывающие сбой модели. Это иголки в ваших стогах сена.
Ошибки в ваших наземных метках также могут привести к ошибкам модели. Вот почему вы хотите учиться у испанских экспертов, а не у своего американского коллеги, который также изучает язык.
Глядя на приведенные выше кривые разработки машинного обучения, ошибки в вашей основной информации обычно обнаруживаются в длинном хвосте разработки.
Обнаружить ошибку в вашей наземной истине сложно - обычно это делается либо с помощью проверок контроля качества на основе консенсуса, либо путем ручного критического анализа достоверной информации.
Если точность модели является приоритетом для вашего варианта использования, то в какой-то момент вам понадобится масштабируемая платформа для визуализации данных и управления ими. В конце концов, особенно если вы создаете критически важные автономные системы, вам необходимо повысить уровень операций с данными машинного обучения.
Используя предустановленную платформу ML DataOps производственного уровня, вы сможете сократить начальные 3–6 месяцев на сборку, которые замедляют разработку ML. Зачем строить, если вы можете использовать расширенную платформу, на создание которой уйдет более 24 месяцев, с более продвинутыми функциями и лучшей интеграцией, чем может предоставить базовое внутреннее решение?
Возвращаясь к нашему длинному хвосту, эти 3–6 месяцев начальной сборки удерживают вас от начала итерации вашего критически важного проекта машинного обучения. Чтобы начать итерацию, вам сначала понадобится решение для операций с данными.
Как только вы начнете итерацию, ваш проект будет иметь несколько компонентов, на которые стоит обратить внимание, в частности модель:
- Точность
- Режимы отказа
- Пробелы в данных
Чтобы сделать эту статью несколько краткой, мы сосредоточимся на третьем компоненте, рассматривая пробелы в данных в вашей модели. То есть найти, какие данные отсутствуют в вашей модели, найти эти данные в ваших существующих данных, а затем подключить их к вашей модели.
Для просмотра и тестирования вашей модели необходимо найти и определить, как выглядит этот пробел в данных, игла. На каждой итерации это занимает некоторое время. Кроме того, фактический сбор или поиск данных, отвечающих этим критериям, также занимает много времени.
При приближении к верхним пределам точности модели увеличение производительности модели на 5%, которое раньше занимало 5 недель, начинает занимать 5 месяцев.
Например, вы решили создать модель, которая прогнозирует состояние годового урожая пшеницы в Китае с использованием исторических спутниковых снимков.
Ваши первые 2 недели и 1000 изображений с этикетками дают впечатляющее увеличение производительности модели на 60% - с 0% до 60%.
Ваши следующие 2 недели и 1000 помеченных изображений улучшат модель с 60% до 80% - теперь только на 20%.
Таким же усилием модель улучшается с 80% до 85%, то есть скачок на 5%.
И это становится все более и более лестным.
Ваша следующая итерация может дать увеличение на 2% до 87%.
Чем дальше вы идете, тем труднее становится.
Используя существующую платформу производственного уровня, вы не только пропускаете начальное время сборки и бессрочное обслуживание и улучшения, но и процесс улучшения итеративной модели, описанный выше, продолжается с нескольких недель до дней.
Используя этот инструмент, вы можете гораздо более эффективно находить виды отказов модели, находить нужные данные, обрабатывать метки ваших данных и обеспечивать качество меток.
Таким образом, используя правильный набор инструментов, вы можете быстрее достичь желаемой точности тремя способами:
- Начните повторять прямо сейчас. Вам не нужно создавать инфраструктуру, необходимую для начала итерации.
- Каждая итерация будет быстрее. Использование специальной платформы ML DataOps помогает сократить время проверки за счет автоматизации простых операций с данными.
- Каждая итерация будет лучше. Данные, которые вы можете использовать на каждой итерации, - это данные более высокого качества.
Из-за необходимости многие крупные компании, находящиеся на переднем крае разработки моделей компьютерного зрения, создали платформу DataOps для машинного обучения. Подробнее об их разработке вы можете узнать здесь и здесь.
Наше видение состоит в том, чтобы сделать инструменты одного калибра доступными в готовом виде для организаций любого размера, чтобы они могли развиваться одинаковыми темпами и не отставать в гонке AI / ML. Мы стремимся снизить барьеры для входа для организаций, наращивающих свое развитие компьютерного зрения. Вместо того, чтобы иметь дело с этими наборами инструментов для работы с данными внутри компании, вы можете использовать готовую производственную систему с нашим флагманским продуктом SceneBox.
Последние два года мы в Caliber Data Labs работали над проблемами, описанными выше, и создали платформу высочайшего уровня для решения этих проблем с данными. Наша платформа SceneBox на сегодняшний день является наиболее полным инструментом для работы с данными восприятия на рынке.
Если вы хотите узнать больше и хотите запланировать демонстрацию, вы можете зарегистрироваться здесь или написать нам по адресу [email protected].
Я хотел бы услышать ваши мысли по поводу этой статьи. Наша команда всегда открыта для общения. Пожалуйста, свяжитесь со мной в LinkedIn, если вы хотите более детально изучить меня.
Следите за новостями из следующей части этой серии: Интеллект платформы.