1. Представьте
При разработке системы перевода с моделью Seq2Seq предполагается, что вводится предложение на французском языке, а выводится на английском языке. В разделе Вывод декодера выберите другие слова, и результаты вывода (перевода) будут другими.
Вот пример со следующим рисунком:
Французское предложение переводится в 4 разных английских предложения с помощью модели Seq2Seq. Какой результат мы должны выбрать в качестве окончательного результата?
На приведенном выше рисунке дана формула, в которойx
означает французское предложение,y
Представляет окончательное английское предложение, состоящее из каждого слова, а разные комбинации y представляют разные переводы, то есть y1~yn представляет последовательность слов.
Ключом к решению этой проблемы является поиск подходящего значения y, чтобы максимизировать значение формулы на графике.
Но как именно?
Здесь мы вводим метод:Beam Search
.
2. Алгоритм поиска луча: Поиск луча
Ранее мы представили贪心算法
, это самое простое: каждый раз слово с наибольшим значением выходной вероятности выбирается для формирования последовательности слов, как показано на следующем рисунке.
集束搜索
и贪心算法
Аналогично, разница в том, что он выбирает последовательности N слов с наибольшим значением выходной вероятности каждый раз, N относится к集束宽度
(Beam Width
). В следующем примере предполагается, что ширина пучка N=2.
-
На первом шаге в первом выводе выбираются 2 слова с наибольшими значениями вероятности. Как показано на рисунке, на этом шаге выбираются A и C.
-
Второй шаг - использовать A и C в качестве входных данных LSTM по очереди, чтобы получить вероятность каждого слова (два набора выходных данных) и выбрать два слова с наибольшим значением вероятности в двух наборах выходных данных. Как показано на рисунке, на этом этапе выбираются B и E.
-
Второй шаг - использовать B и E в качестве входных данных LSTM по очереди, чтобы получить вероятность каждого слова (два набора выходных данных) и выбрать два слова с наибольшим значением вероятности в двух наборах выходных данных. Как показано на рисунке, на этом шаге выбираются D и D.
-
Конечным результатом являются два предложения, ABD и CED.
Видно, что если ширина пучка N=1, то集束搜索
эквивалентно贪心算法
.
3. Преимущества алгоритма
集束搜索
Полученное решение не является оптимальным решением, но при определенной ширине можно искать N субоптимальных решений. Такие алгоритмы часто используются в больших системах, где нет единственного правильного решения. Например, распознавание речи, машинный перевод, автоматический ответ на вопрос. Такая система имеет сложные алгоритмы, большой объем данных и высокую размерность VC. Таким образом, основная цель системы состоит не в том, чтобы найти оптимальное решение, а в том, чтобы использовать наибольшую скорость для поиска ближайшего правильного решения в качестве вывода.
Ссылаться на
- [1]. blog.CSDN.net/WeChat_3893…
- [2]. Andrew Ng Sequence Models video
- [3]. из 2 come.love/chapter_zealous…
Оригинальная статья, первоначально опубликованная:blog.CSDN.net/общее желание/AR…