Увеличение данных в машинном обучении — это популярный метод создания надежных и обобщенных моделей машинного обучения даже в ситуациях с низкой доступностью данных. Это помогает увеличить объем исходных данных за счет добавления слегка измененных копий уже существующих данных или вновь созданных синтетических данных из существующих данных. Добавление разнообразных данных очень помогает уменьшить переоснащение при обучении модели машинного обучения на данных низкого качества и размера.
Было замечено, что он довольно хорошо работает в приложениях компьютерного зрения, таких как классификация изображений, обнаружение объектов и т. д., где теперь у нас есть набор функций преобразования, таких как вращение, сдвиг, обрезка и т. д., которые легко доступны, исследованы и работают (с небольшими затратами). осознанность, конечно). В этом документе, подготовленном Protago Labs Research, Дартмутским колледжем и Джорджтаунским университетом, представлены функции преобразования увеличения данных при обработке естественного языка с особым акцентом на задаче классификации текста.
С этим предысторией и введением, давайте сразу перейдем к предложенному методу.
Предлагаемые функции преобразования
- Замена синонимов (SR) — случайный выбор n слов из предложения, которые не являются стоп-словами. Замените каждое из этих слов одним из его синонимов, выбранным наугад.
- Случайная вставка (RI) — найти случайный синоним случайного слова в предложении, которое не является стоп-словом. Вставьте этот синоним в произвольное место в предложении. Сделайте это n раз.
- Случайная замена (RS) — случайным образом выберите два слова в предложении и поменяйте их местами. Сделайте это n раз.
- Случайное удаление (RD) — случайное удаление каждого слова в предложении с вероятностью p.
Авторы выбирают коэффициент индукции шума как функцию длины предложения. Гипотеза состоит в том, что короткие документы менее подвержены шуму обработки, и преобразование может привести к изменчивости класса. При этом длинные предложения могут поглощать больше шума, сохраняя при этом свою первоначальную метку класса. Количество слов, которые они изменяют в предложении, определяется какn=αL; где L — длина предложения на уровне слова, α — параметр, указывающий процент слов в предложении, которые нужно изменить. быть изменен. Они играют со значениями α {0,05, 0,1, 0,2, 0,3, 0,4, 0,5}. На рисунке ниже показано то же самое —
Из рисунка видно, что в среднем, когда вы увеличиваете процент слов, с которыми нужно играть, прирост производительности обычно снижается на определенную величину, независимо от количества данных, которые должны быть дополнены.
Эксперименты и результаты
Они выбирают пять эталонных задач классификации текста для оценки предлагаемой системы —
- SST-2: Stanford Sentiment Treebank v2(SST2) StanfordНабор данных содержит обзоры Moview и связанные с ними настроения. Справочная бумага
- CR: набор данных по отзывам клиентов и связанным ярлыкам. Справочная статья
- SUBJ: набор данных Субъективность/объективность со связанными настроениями. Справочная бумага
- TREC: набор данных классификации типов вопросов с определенными классами грубой и тонкой детализации. Справочная бумага
- ПК: Pro-Con – это набор данных для анализа настроений из пользовательского контента в Интернете. Справочная бумага
Эксперимент авторов со случайным набором обучающих данных разного размера с {500, 2000, 5000, все доступные данные} выборками, поскольку они предполагают, что их метод более полезен для небольших наборов данных.
Они выбирают RNN и CNN в качестве моделей классификации с EDA и без него.
Как видно из приведенной выше таблицы результатов, прирост относительно высок для небольшого набора данных (~ 3,0%) по сравнению с полным набором (~ 0,8%). Это может быть возможно просто из-за того, что меньшее количество данных означает ограниченные шаблоны и информацию, поэтому аугментация может помочь намного лучше в таких случаях, а не тогда, когда вы используете большой набор данных для целей обучения, при этом в нем уже достаточно шаблонов и информации. для модели, чтобы учиться. Следовательно, выполнение аугментации на этом уровне фактически не повышает показатели производительности.
Аналогичная картина, которую мы обсуждали выше, можно увидеть и для наборов данных по отдельности. См. рисунок выше.
Сколько аугментации?
Следующий важный вопрос заключается в том, сколько предложений (naug) генерировать в каждом предложении. Авторы экспериментируют с различными значениями размера увеличения, как показано на рисунке ниже.
В случае небольших обучающих данных большее увеличение может привести к переоснащению и, следовательно, к значительному повышению производительности. Принимая во внимание, что для большего размера обучения высокое значение naug, похоже, не работает должным образом просто потому, что модель уже имеет доступ к большим данным для правильного обобщения. После обширных экспериментов они рекомендуют ниже показанные параметры —
У меня есть многоязычный видеопросмотр с субтитрами того же самого, если вам нравится потреблять видеоконтент вместо текста (так же, как и я :D), обязательно ознакомьтесь —
Обязательно прочитайте статью, если вы все еще в чем-то запутались. Кроме того, скажите «Привет» авторам и поблагодарите их за вклад.
Название статьи: EDA: простые методы увеличения данных для повышения производительности при выполнении задач классификации текста
Ссылка на статью:https://arxiv.org/abs/1901.11196
Ссылка на код: http://github. com/jasonwei20/eda_nlp
Авторы:Джейсон Вэй, Кай Зоу
Надеюсь, чтение стоило вашего времени! Поделитесь им со своими друзьями, чтобы все, кто заинтересован в таком содержании.
Спасибо.