В большинстве задач машинного обучения, где вы можете сформулировать некоторую вероятность которая должна быть максимизирована, мы фактически оптимизировали бы логарифмическую вероятность вместо вероятности для некоторых параметров . Например, в обучении с максимальным правдоподобием, это, как правило, логарифмическое правдоподобие. При выполнении этого с некоторым методом градиента, это включает в себя фактор:
Смотрите здесь или здесь для некоторых примеров.
Конечно, оптимизация эквивалентна, но градиент будет другим, поэтому любой метод, основанный на градиенте, будет вести себя иначе (особенно методы стохастического градиента). Есть ли основания полагать, что градиент работает лучше, чем градиент ?
Ответы:
Методы градиента обычно работают лучше, оптимизируя чем потому что градиент обычно более хорошо масштабируется . Таким образом, он имеет размер, который последовательно и полезно отражает геометрию целевой функции, облегчая выбор подходящего размера шага и достижение оптимального за меньшее количество шагов.logp(x) p(x) logp(x)
Чтобы понять, что я имею в виду, сравните процесс оптимизации градиента для и . В любой точке градиент равенЕсли мы умножим это на , мы получим точный размер шага, необходимый для достижения глобального оптимума в начале координат, независимо от того, чтоp(x)=exp(−x2) f(x)=logp(x)=−x2 x f(x)
Напротив, градиент имеет очень плохие глобальные свойства для оптимизации. Мы имеемЭто умножает совершенно хороший, хорошо себя градиент на с коэффициентом который затухает (быстрее, чем) экспоненциально с увеличением . При у нас уже есть , поэтому шаг по вектору градиента примерно в раз слишком мал. Чтобы получить разумный размер шага к оптимальному, мы должны масштабировать градиент на обратную величину, огромную постояннуюp(x)
В общем, нет никакой гарантии, что будет иметь такие большие свойства градиентного масштабирования, как этот игрушечный пример, особенно когда у нас более одной переменной. Однако для почти любой нетривиальной задачи будет намного лучше, чем . Это потому, что вероятность - это большой продукт с кучей терминов, и журнал превращает этот продукт в сумму, как отмечено в нескольких других ответах. При условии, что термины в вероятности хорошо себя ведут с точки зрения оптимизации, их журнал, как правило, хорошо себя ведет, а сумма функций хорошо ведет себя хорошо. Под хорошим поведением я подразумеваюlogp(x) logp(x) p(x) f′′(x) не меняется слишком сильно или слишком быстро, что приводит к почти квадратичной функции, которую легко оптимизировать с помощью градиентных методов. Сумма производной является производной от суммы, независимо от того, каков порядок производной, что помогает гарантировать, что эта большая куча слагаемых имеет очень разумную вторую производную!
источник
Underflow
Компьютер использует представление дробных чисел с плавающей запятой ограниченного числа, поэтому умножение такого количества вероятностей будет очень близко к нулю.
С у нас нет этой проблемы.log
источник
Логарифм вероятности множественных совместных вероятностей упрощается до суммы логарифмов отдельных вероятностей (а правило сумм проще, чем правило произведения для дифференцирования).
Логарифм члена семейства экспоненциальных распределений вероятностей (который включает в себя вездесущую нормаль) является полиномиальным по параметрам (т. Е. Максимальное правдоподобие сводится к наименьшим квадратам для нормальных распределений)
Последняя форма является более численно устойчивой и символически легче дифференцируемой, чем первая.
И последнее, но не менее важное: логарифм представляет собой монотонное преобразование, которое сохраняет местоположения экстремумов (в частности, оценочные параметры по максимальному правдоподобию идентичны для исходной и лог-преобразованной формулировок)
источник
Намного проще взять производную от суммы логарифмов, чем взять производную от продукта, который содержит, скажем, 100 множителей.
источник
Как правило, наиболее простой и простой задачей оптимизации является оптимизация квадратичной функции. Вы можете легко найти оптимальный вариант для такой функции, где бы вы ни начинали. Как это проявляется, зависит от конкретного метода, но чем ближе ваша функция к квадратичному, тем лучше.
Как отмечает TemplateRex, в широком спектре задач вероятности, которые входят в расчет функции правдоподобия, берутся из нормального распределения или аппроксимируются им. Поэтому, если вы работаете с журналом, вы получите хорошую квадратичную функцию. Принимая во внимание, что если вы работаете над вероятностями, у вас есть функция, которая
Какую функцию вы бы предпочли оптимизировать, это или это ?
(На самом деле это было легко; в практических приложениях ваш поиск может начинаться настолько далеко от оптимума, что значения функций и градиенты, даже если вы смогли их численно вычислить, будут неотличимы от 0 и бесполезны для целей оптимизации. Алгоритм. Но преобразование в квадратичную функцию делает это легко.)
Обратите внимание, что это полностью согласуется с уже упомянутыми проблемами числовой стабильности. Причина, по которой для работы с этой функцией требуется масштаб журнала, - это та же самая причина, по которой вероятность ведения журнала намного лучше (для оптимизации и других целей), чем в оригинале.
Вы также можете подойти к этому по-другому. Даже если у лога не было никаких преимуществ (которые есть) - мы все равно будем использовать логарифмический масштаб для дериваций и вычислений, так какая же причина в том, чтобы применять преобразование exp только для вычисления градиента? Мы также можем оставаться в соответствии с журналом.
источник
Используя мы увеличиваем динамический диапазон алгоритма оптимизации. в приложениях, как правило , является продуктом функций. Например, при оценке максимального правдоподобия это произведение вида , где - функция плотности, которая может быть больше или меньше 1, между прочимlnp p L(x|θ)=Πni=1f(xi|θ) f(.)
Так что , когда очень велико, то есть большая выборка, ваша функция правдоподобия обычно далека от 1: это либо очень маленьких или очень большие, потому что это функция мощности .n L(.) L∼f(.)n
Делая журнал, мы просто улучшаем динамический диапазон любого алгоритма оптимизации, позволяя ему работать с очень большими или маленькими значениями одинаково.
источник
Некоторые хорошие ответы уже были даны. Но я недавно столкнулся с новым:
Часто вам дается огромный набор обучающих данных , и вы определяете некоторую вероятностную модель , и вы хотите максимизировать вероятность для . Предполагается, что они независимы, т.е. у вас есть Теперь вы часто проводите какое-то стохастическое (мини-пакетное) обучение на основе градиента, т.е. на каждом шаге для вашей потери вы оптимизируете для , то естьX p(x|θ) x∈X p(X|θ)=∏x∈Xp(x|θ). L L(X′|θ) X′⊂X θ′:=θ−∂∑x∈X′L(x|θ)∂θ.
Теперь эти стохастические шаги накапливаются аддитивно. Из-за этого вам нужно свойство, которое в общем случае
Это имеет место для
L(X|θ)=∑x∈XL(x|θ). L(x|θ)=−logp(x|θ).
источник