Прямые и обратные алгоритмы в CRF - PullRequest
0 голосов
/ 30 сентября 2018

В статьях о CRF (например, , или , ) все авторы упоминают алгоритм прямого-обратного хода, но все же реализации в GitHub (или базовую реализацию в PyTorch ).учебник ), кажется, использует только прямой алгоритм для расчета отрицательной логарифмической вероятности, которая будет оптимизирована с SGD.

Если я хочу обучить NER функциям BiLSTM и единственному типу запросов, которые я сделаюэто как «дано предложение, найти названные сущности», мне нужен алгоритм вперед-назад?Или, в более общем плане, в чем разница между этими двумя алгоритмами и когда они используются?

Ответы [ 2 ]

0 голосов
/ 30 сентября 2018

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

0 голосов
/ 30 сентября 2018

BiLSTM дает вам больше контекста и потенциально лучшие результаты.Рассмотрим следующий пример:

  1. Мишка Тедди - мягкая игрушка в форме медведя.
  2. Тедди Рузвельт был 26-м президентом США.

В первом случае «Тедди» не является NE, но во втором «Тедди» является NE.BiLSTM лучше заметит это, поскольку выглядит не только в прошлом, но и в будущих состояниях (то есть "медведь" и "Рузвельт").

Из Википедии о BiLSTM:

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

...