Поддержка векторной машины или искусственной нейронной сети для обработки текста?

Нам нужно решить, между машинами поддержки Vector и быстрой искусственной нейронной сетью для некоторого проекта обработки текста.

Он включает в себя контекстуальную коррекцию правописания, а затем помещает текст в определенные фразы и их синонимы.

Каким будет правильный подход? Или есть альтернатива обоим из них... Что-то более подходящее, чем FANN, а также SVM?

Ответ 1

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

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

Отделите свои данные обучения в 3:

  • 1-й набор данных будет использоваться для обучения (искусственной) нейронной сети и векторных машин поддержки.
  • Второй набор данных будет использоваться для обучения Оптимального классификатора Байеса, взяв исходные предсказания из ANN и SVM.
  • 3-й набор данных будет вашим набором квалификационных данных, где вы проверите свой обученный оптимальный классификатор Байеса.

Обновление 2.0:
Другим способом создания ансамбля алгоритмов является использование кросс-валидация в 10 раз (или, более широко, k-fold):

  • Разбить данные на 10 наборов размера n/10.
  • Поезд на 9 наборов данных и тест на 1.
  • Повторите 10 раз и возьмите среднюю точность.

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

Ответ 2

Вы также можете взглянуть на maxent classifiers (/log linear models).

Они действительно популярны для проблем НЛП. Современные реализации, которые используют методы квази-ньютона для оптимизации, а не медленные итерационные алгоритмы масштабирования, работают быстрее, чем SVM. Они также кажутся менее чувствительными к точному значению гиперпараметра регуляризации. Вероятно, вы предпочитаете только SVM над maxent, если вы хотите использовать ядро ​​для бесплатного подключения к контенту.

Что касается SVM против нейронных сетей, использование SVM, вероятно, будет лучше, чем использование ANN. Как и максимальные модели, обучение SVM является проблемой выпуклой оптимизации. Это означает, что с учетом набора данных и конкретной конфигурации классификатора SVM будут последовательно находить одно и то же решение. При обучении многослойных нейронных сетей система может сходиться к различным локальным минимумам. Таким образом, вы получите лучшие или худшие решения в зависимости от того, какие веса вы используете для инициализации модели. С помощью ANN вам необходимо выполнить несколько тренировочных прогонов, чтобы оценить, насколько хороша или плохая данная модель.

Ответ 3

Этот вопрос очень старый. За последние 7 лет в НЛП произошло много событий.

Convolutional_neural_network и Recurrent_neural_network развивались в течение этого времени.

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

Word embeddings

CNN для НЛП:

  1. Предложения сначала разбиваются на слова, которые затем преобразуются в матрицу встраивания слов (т.е. Входной слой встраивания) размера d.

  2. Сверточные фильтры применяются к этому входному встраиваемому слою для создания карты объектов.

  3. Операция максимального пула на каждом фильтре позволяет получить выходные данные фиксированной длины и уменьшить размерность выходных данных.

CNN for NLP

Так как у CNN был недостаток не сохранять междугородную контекстную информацию, RNN были введены.

RNN - это специализированные нейронные подходы, которые эффективны при обработке последовательной информации.

RNN запоминает результат предыдущих вычислений и использует его в текущих вычислениях.

RNN for NLP

Существует несколько вариантов RNN - блок краткосрочной памяти (LSTM) и рекуррентные блоки GUT (GRU)

Посмотрите на ресурсы ниже:

глубоководное обучение-для-NLP

Последние тенденции в глубоком изучении бумаги

Ответ 4

Для обучения НЛП вы можете использовать нейронную сеть сверток (CNN) или рекуррентную нейронную сеть (RNN). Я думаю, что CNN достигла самого современного уровня.