В новом уроке курса по глубокому обучению Эндрю Ын (Andrew Ng), основатель DeepLearning.AI, подробно разбирает методы оптимизации алгоритма Beam Search (лучового поиска). Эти уточнения позволяют нейросетям более эффективно справляться с машинным переводом длинных предложений и избегать критических вычислительных ошибок, делая системы искусственного интеллекта стабильнее и точнее.
🧮 Борьба с вычислительной нестабильностью: переход к логарифмам 0:00
Базовый алгоритм Beam Search направлен на максимизацию вероятности последовательности слов . В математическом выражении это выглядит как произведение условных вероятностей каждого следующего слова. Однако при практической реализации на компьютере возникает серьезная техническая проблема: числовая потеря значимости (numerical underflow) .
Поскольку вероятность каждого отдельного слова — это число меньше единицы (часто значительно меньше), перемножение десятков или сотен таких чисел приводит к получению экстремально малого значения . Современные компьютеры не могут хранить такие крошечные числа в стандартном формате с плавающей запятой с достаточной точностью .
Чтобы решить эту проблему, Эндрю Ын рекомендует использовать логарифмическую шкалу:
- Вместо максимизации произведения вероятностей алгоритм максимизирует сумму их логарифмов .
- Логарифм произведения равен сумме логарифмов сомножителей.
- Функция логарифма является строго монотонно возрастающей. Это гарантирует, что значение последовательности (Y), максимизирующее сумму логарифмов, будет тем же самым, что и максимизирующее исходное произведение вероятностей .
Такой подход делает алгоритм более устойчивым к ошибкам округления и вычислительным сбоям .
📏 Нормализация длины: почему ИИ «любит» короткие фразы 3:04
У стандартной целевой функции Beam Search есть скрытый недостаток: она создает неестественное преимущество для очень коротких переводов . Это происходит потому, что вероятность длинного предложения складывается из большего количества сомножителей (вероятностей отдельных слов), каждый из которых меньше единицы. Чем больше слов в предложении, тем меньше итоговое произведение и тем более отрицательной становится сумма логарифмов .
Чтобы сбалансировать работу алгоритма и не позволять ему игнорировать качественные, но длинные варианты перевода, вводится нормализация по длине .
Основные принципы нормализации, предложенные Эндрю Ыном:
- Простое усреднение: Сумма логарифмов делится на общее количество слов в предложении ($T_y$). Это позволяет оценивать среднюю вероятность каждого слова .
- Мягкая нормализация (Эвристика): На практике чаще используется формула, где сумма логарифмов делится на $T_y$ в степени $\alpha$ (альфа) .
- Гиперпараметр $\alpha$:
По словам Эндрю Ына, для использования $\alpha$ нет жесткого теоретического обоснования, это чистая эвристика, которая, тем не менее, отлично зарекомендовала себя на практике в исследовательских группах по всему миру .
⚖️ Ширина луча: поиск баланса между скоростью и точностью 7:10
Ключевым параметром алгоритма является ширина луча ($B$). Она определяет количество альтернативных вариантов, которые алгоритм удерживает в памяти на каждом шаге . Выбор этого параметра — это всегда компромисс между качеством результата и затраченными ресурсами.
Эндрю Ын выделяет следующие особенности выбора ширины луча:
- Малая ширина (например, B = 3): Алгоритм работает очень быстро и потребляет мало памяти, но может упустить оптимальный перевод .
- Средняя ширина для продакшена: В коммерческих системах часто используют значения около $B = 10$. Значение $B = 100$ уже считается довольно большим для реальных приложений .
- Большая ширина для исследований: В научных работах, где важно выжать максимум производительности для публикации, нередко используют значения $B = 1000$ или даже $B = 3000$ .
Эксперт предупреждает о законе убывающей доходности: переход от $B=1$ (жадный поиск) к $B=10$ обычно дает огромный прирост качества, тогда как переход от $B=1000$ к $B=3000$ может дать лишь незначительное улучшение при колоссальных затратах вычислительной мощности .
🔍 Сравнение с классическими алгоритмами поиска 9:39
Для специалистов, знакомых с классическим программированием, Эндрю Ын проводит параллель между Beam Search и такими алгоритмами, как поиск в ширину (BFS) или поиск в глубину (DFS) .
Главное отличие заключается в том, что:
- BFS и DFS являются алгоритмами точного поиска. Они гарантированно находят глобальный максимум, но требуют слишком много времени в огромных пространствах вариантов машинного перевода .
- Beam Search — это эвристический алгоритм. Он работает значительно быстрее, но не дает 100% гарантии нахождения абсолютно лучшего варианта .
В завершение Эндрю Ын отмечает, что понимание того, когда стоит увеличивать ширину луча, а когда проблема кроется в самой нейросети, является критически важным навыком. Этому будет посвящен следующий урок об анализе ошибок в Beam Search .