Эндрю Ын: «Beam Search — это компромисс между качеством перевода и вычислительными затратами»

DeepLearning.AI 21,9 тыс. 11 мин 3 мин 05.02.2018
Главное

В новом уроке курса по глубокому обучению Эндрю Ын (Andrew Ng), основатель DeepLearning.AI, подробно разбирает методы оптимизации алгоритма Beam Search (лучового поиска). Эти уточнения позволяют нейросетям более эффективно справляться с машинным переводом длинных предложений и избегать критических вычислительных ошибок, делая системы искусственного интеллекта стабильнее и точнее.

🧮 Борьба с вычислительной нестабильностью: переход к логарифмам 0:00

Базовый алгоритм Beam Search направлен на максимизацию вероятности последовательности слов . В математическом выражении это выглядит как произведение условных вероятностей каждого следующего слова. Однако при практической реализации на компьютере возникает серьезная техническая проблема: числовая потеря значимости (numerical underflow) .

Поскольку вероятность каждого отдельного слова — это число меньше единицы (часто значительно меньше), перемножение десятков или сотен таких чисел приводит к получению экстремально малого значения . Современные компьютеры не могут хранить такие крошечные числа в стандартном формате с плавающей запятой с достаточной точностью .

Чтобы решить эту проблему, Эндрю Ын рекомендует использовать логарифмическую шкалу:

Такой подход делает алгоритм более устойчивым к ошибкам округления и вычислительным сбоям .

📏 Нормализация длины: почему ИИ «любит» короткие фразы 3:04

У стандартной целевой функции Beam Search есть скрытый недостаток: она создает неестественное преимущество для очень коротких переводов . Это происходит потому, что вероятность длинного предложения складывается из большего количества сомножителей (вероятностей отдельных слов), каждый из которых меньше единицы. Чем больше слов в предложении, тем меньше итоговое произведение и тем более отрицательной становится сумма логарифмов .

Чтобы сбалансировать работу алгоритма и не позволять ему игнорировать качественные, но длинные варианты перевода, вводится нормализация по длине .

Основные принципы нормализации, предложенные Эндрю Ыном:

  1. Простое усреднение: Сумма логарифмов делится на общее количество слов в предложении ($T_y$). Это позволяет оценивать среднюю вероятность каждого слова .
  2. Мягкая нормализация (Эвристика): На практике чаще используется формула, где сумма логарифмов делится на $T_y$ в степени $\alpha$ (альфа) .
  3. Гиперпараметр $\alpha$:
    • Если $\alpha = 1$, происходит полная нормализация по длине.
    • Если $\alpha = 0$, нормализация отсутствует.
    • Обычно выбирается промежуточное значение, например, $\alpha = 0.7$ .

По словам Эндрю Ына, для использования $\alpha$ нет жесткого теоретического обоснования, это чистая эвристика, которая, тем не менее, отлично зарекомендовала себя на практике в исследовательских группах по всему миру .

⚖️ Ширина луча: поиск баланса между скоростью и точностью 7:10

Ключевым параметром алгоритма является ширина луча ($B$). Она определяет количество альтернативных вариантов, которые алгоритм удерживает в памяти на каждом шаге . Выбор этого параметра — это всегда компромисс между качеством результата и затраченными ресурсами.

Эндрю Ын выделяет следующие особенности выбора ширины луча:

Эксперт предупреждает о законе убывающей доходности: переход от $B=1$ (жадный поиск) к $B=10$ обычно дает огромный прирост качества, тогда как переход от $B=1000$ к $B=3000$ может дать лишь незначительное улучшение при колоссальных затратах вычислительной мощности .

🔍 Сравнение с классическими алгоритмами поиска 9:39

Для специалистов, знакомых с классическим программированием, Эндрю Ын проводит параллель между Beam Search и такими алгоритмами, как поиск в ширину (BFS) или поиск в глубину (DFS) .

Главное отличие заключается в том, что:

В завершение Эндрю Ын отмечает, что понимание того, когда стоит увеличивать ширину луча, а когда проблема кроется в самой нейросети, является критически важным навыком. Этому будет посвящен следующий урок об анализе ошибок в Beam Search .

💬 Цитаты

«Перемножение множества чисел меньше единицы приводит к крошечному результату, который компьютер не может хранить точно.»

«Использование параметра альфа — это эвристика или «хак», у него нет строгого теоретического обоснования, но это хорошо работает на практике.»

«Для многих приложений я ожидаю огромный скачок качества при переходе от ширины луча 1 к 10, но прогресс от 1000 до 3000 может быть уже не таким заметным.»

👥 Спикер
📖 Термины
Numerical underflow
Ситуация, когда результат вычисления становится настолько малым, что компьютер не может его точно представить.
Beam Width (Ширина луча)
Количество наиболее вероятных вариантов, которые алгоритм поиска сохраняет на каждом шаге генерации текста.
Эвристика
Практический метод решения задачи, который не гарантирует оптимальный результат, но достаточен для достижения цели за разумное время.
📊 Цифры
⚖️ Другая сторона
Искусственный интеллект Beam Search Эндрю Ын DeepLearning.AI Машинный перевод Нормализация длины