Повысьте производительность своей модели, генерируя данные на ходу.

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

Простое расширение данных для повышения производительности при классификации текста от Джейсона Вей и Кай Цзоу.

Почему нужно увеличивать объем данных?

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

Увеличение данных в НЛП

В документе говорилось о четырех простых идеях дополнения текстов для задач классификации текстов. Да, эти идеи так же просты, как редактирование текстов. Они здесь:

  1. Замена синонима. Выберите случайным образом n слов из предложения, которые не являются стоп-словами. Замените каждое из этих слов одним из его синонимов, выбранных наугад.
  2. Случайная вставка. Найдите в предложении случайный синоним случайного слова, не являющийся стоп-словом. Вставьте этот синоним в случайную позицию в предложении. Сделайте это n раз.
  3. Произвольный обмен: случайным образом выберите два слова в предложении и поменяйте их местами. Сделайте это n раз.
  4. Случайное удаление: случайное удаление каждого слова в предложении с вероятностью p.

Вот пример того, как может выглядеть это расширенное предложение

Были ли эти идеи успешными? Поначалу кажется, что только первая идея «Замена синонима» сработает. Но эксперименты с набором данных показывают, что все четыре идеи работали почти одинаково. Предоставление модели расширенным данным, даже если они имеют меньший смысл, за счет применения некоторых случайных операций к небольшому набору данных сработало очень хорошо, что помешало модели глубоко изучить ограниченные примеры и в конечном итоге не обобщить. Ниже приведено изображение, которое показывает, насколько EDA превзошла обычный процесс.

А как насчет ярлыков расширенных данных?

Правильный вопрос: что произойдет с метками расширенных данных? Останутся ли они такими же или изменятся? Если последнее верно, то это делает EDA неэффективным способом увеличения данных.

Чтобы понять это, обучите модель, используя RNN в наборе данных, который не дополняется ради анализа настроений. Затем примените EDA к набору тестов, создав N дополненных предложений на исходное предложение. Они загружаются в RNN вместе с исходными предложениями. Выходные векторы этих примеров извлекаются из последнего плотного слоя. После применения уменьшения размерности к этим выходным векторам и построения их в скрытом пространстве. Сюжет выглядел примерно так….

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

Индивидуальная визуализация четырех идей

Как эти идеи действуют индивидуально? Чтобы увидеть этот эффект, примените все четыре по очереди. Вот графики того, как на самом деле эти идеи выполнялись индивидуально при применении к модели RNN.

Параметр Alpha: размер предложения сильно различается. Следовательно, мы не можем применять одинаковое количество дополнений ко всем предложениям. Подобно битам предложения могут потребовать большего дополнения. Выполнение такого же количества дополнений к маленькому предложению обернулось бы катастрофой !! Чтобы избежать этого, мы используем так называемый параметр Alpha.

значение n, n = alpha_parameter * length_of_the_sentence

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

Размер набора данных по сравнению с альфа-значением?

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

Что мы делаем из рисунка выше? Прирост производительности высок для небольших наборов данных с большим числом Naug в предложении. Значение Naug уменьшается с 16 до 2, поскольку размер набора данных увеличивается с 500 до ›5000 для максимального значения прироста производительности.

Следует учитывать гиперпараметры

Здесь у нас есть два гиперпараметра.

  1. альфа - ›Процент слов, которые нужно изменить в предложении.
  2. Naug - ›количество дополненных предложений в исходном предложении.

Исходя из этих результатов, рекомендуемые значения для использования параметров:

Это все для этого поста…. Сделайте аплодисменты, если вам это понравилось. Опытные люди, читающие этот пост, помогите мне понять больше, предоставив предложения и более глубокую информацию. Подключите меня к LinkedIn.



Все благодарности бумаге, выпущенной Джейсоном Вей и Кай Цзоу. Ссылка на статью приведена ниже. Я многому у него научился.



Ссылка на другую статью neptune.ai, в которой рассказывается о многих методах увеличения текстовых данных.



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



Спасибо, за то что прочитали эту статью. Удачного дня :)