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

В Части 2 моей серии блогов я обсуждал, что вы можете сделать с избытком данных, в частности, как вы можете сократить свои избыточные данные до наиболее важных примеров, то есть отфильтровывая мусор. Я установил, что не по вашей вине, ваш набор данных, вероятно, содержит много мусора, который необходимо отфильтровать, чтобы более эффективно обучать ваши модели. Я предложил несколько методов фильтрации данных, основываясь на собственном опыте, и при необходимости привел примеры. В части 3 будет рассмотрено, как использовать избыток данных в одном домене для повышения производительности в другом домене.

Часть 3

Адаптация домена

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

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

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

Еще один шаг - сопоставить данные вне домена с тем же пространством, что и данные в домене. Корреляционное выравнивание (CORAL) - это «невероятно простой» метод, который вы можете использовать. Его называют «невероятно простым», потому что он может быть реализован всего за 4 строки кода MATLAB и превосходит многие более сложные методы! Основной алгоритм можно понимать как сначала отбеливание ваших данных вне домена, а затем их перекрашивание в соответствии с ковариацией данных в домене, и было показано, что он на удивление эффективен в таких областях, как распознавание объектов по изображениям.

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

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

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

Выводы

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

Конец части 3/3.

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