Поддержка Vector Machine или Искусственная нейронная сеть для обработки текста? - PullRequest
14 голосов
/ 12 марта 2010

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

Включает контекстную коррекцию орфографии, а затем помечает текст определенными фразами и их синонимами.

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

Ответы [ 4 ]

14 голосов
/ 12 марта 2010

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

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

Разделите данные о тренировках на 3:

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

Обновление 2.0:
Еще один способ создать совокупность алгоритмов - использовать 10-кратную (или, в более общем случае, k-кратную) перекрестную проверку :

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

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

8 голосов
/ 12 марта 2010

Вы также можете взглянуть на максимальные классификаторы (/ log линейные модели) .

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

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

2 голосов
/ 03 апреля 2019

Этот вопрос очень старый. За последние 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) и рекуррентные блоки стробированного типа (GRU)

Взгляните на следующие ресурсы:

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

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

0 голосов
/ 17 января 2018

Вы можете использовать Convolution Neural Network (CNN) или Recurrent Neural Network (RNN) для обучения NLP. Я думаю, что CNN достиг современного уровня сейчас.

...