Машинное обучение часто имеет дело с оптимизацией функции, которая имеет много локальных минимас. Нейронные сети прямой связи со скрытыми единицами - хороший пример. Независимо от того, являются ли эти функции дискретными или непрерывными, не существует метода, который достигает глобального минимума и останавливается. Нетрудно доказать, что не существует общего алгоритма для нахождения глобального минимума непрерывной функции, даже если она одномерна и гладка (имеет бесконечно много производных). На практике все алгоритмы обучения нейронных сетей застряли в локальном минимуме. Это легко проверить: создайте случайную нейронную сеть, сделайте большой набор ее ответов на случайные входы, затем попытайтесь изучить другую нейронную сеть с той же архитектурой, чтобы скопировать ответы. Хотя идеальное решение существует, ни обратное распространение, ни какой-либо другой алгоритм обучения не смогут его обнаружить,
Некоторые методы обучения, такие как имитация отжига или генетические алгоритмы, исследуют многие локальные минимы. Для непрерывных функций существуют методы типа градиентного спуска, которые находят ближайший локальный минимум. Они намного быстрее, поэтому широко используются на практике. Но, учитывая достаточное количество времени, первая группа методов превосходит более позднюю с точки зрения ошибки в обучающей установке. Но с разумными временными ограничениями для реальных проблем последняя группа обычно лучше.
Для некоторых моделей, таких как логистическая регрессия, существует один локальный минимум, функция выпуклая, минимизация сходится к минимуму, но сами модели являются упрощенными.
Это горькая правда.
Отметим также, что доказательство сходимости и доказательство сходимости к лучшему решению - это две разные вещи. Алгоритм K-средних является примером этого.
Наконец, для некоторых моделей мы вообще не знаем, как учиться. Например, если выходные данные являются произвольной вычислимой функцией входных данных, мы не знаем хороших алгоритмов, которые в разумные сроки находят механизм Тьюринга или эквивалентную машину, реализующую эту функцию. Например, если f (1) = 2, f (2) = 3, f (3) = 5, f (4) = 7, ..., f (10) = 29 (десять первых простых чисел), мы Не знаю ни одного алгоритма обучения, который мог бы за разумное время предсказать, что f (11) = 31, если он уже не знает концепцию простых чисел.