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

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

Быстрое распространение ИИ, которое в настоящее время не оставляет незатронутой ни одну отрасль, является результатом нескольких разработок: улучшения алгоритмов сверточных нейронных сетей (Часть 2), доступности огромного количества недорогих вычислительных мощностей и данных — множество данные. По мере увеличения объема данных, используемых для обучения и проверки сети, растет и точность. Хорошим примером этого является то, что лучшая система идентификации изображений, ImageNet, превратилась из академического любопытства в 1980-х годах в сверхчеловеческую точность сегодня.

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

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

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

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

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

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

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

Чтобы узнать больше о TTP, посетите ttp.com

Доктор Саймон Шекспир

дальнейшее чтение

Введение в трансферное обучение в машинном обучении (Брайан Карри)

Насколько переносимы функции в глубоких нейронных сетях?

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

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