Навіщо оптимізувати максимальну ймовірність журналу замість ймовірності


66

У більшості завдань машинного навчання, де можна сформулювати деяку ймовірність яку слід максимально збільшити, ми б насправді оптимізували ймовірність замість ймовірності для деяких параметрів . Наприклад, у навчанні з максимальною вірогідністю, зазвичай це ймовірність журналу. Якщо робити це за допомогою градієнтного методу, це включає чинник:plogpθ

logpθ=1ppθ

Дивіться тут чи тут кілька прикладів.

Звичайно, оптимізація рівнозначна, але градієнт буде іншим, тому будь-який метод на основі градієнта буде вести себе по-різному (наприклад, стохастичні градієнтні методи). Чи є обґрунтування того, що градієнт працює краще, ніж градієнт ?logpp


3
вам потрібно помітити, що ми зазвичай збільшуємо ймовірність використання похідних. З іншого боку, у багатьох випадках застосовується умова незалежності, тобто ймовірність є результатом деяких функцій щільності ймовірності. Крім того, добуток багатьох малих значень (в інтервалі [0,1]) призводить до дуже крихітного значення. Це призводить до труднощів з обчисленнями.
TPArrow

@AlejandroRodriguez ознайомтеся з моєю відповіддю тут для більш детальної інформації.
Пол

Відповіді:


65

Градієнтні методи, як правило, краще оптимізують ніж тому що градієнт як правило, більш масштабований . Тобто, він має розмір, який послідовно та корисно відображає геометрію цільової функції, полегшуючи вибір відповідного розміру кроку та досягти оптимального за кілька кроків.logp(x)p(x)logp(x)

Щоб побачити, що я маю на увазі, порівняйте процес оптимізації градієнта для та . У будь-якій точці градієнт дорівнюєЯкщо ми помножимо це на , ми отримаємо точний розмір кроку, необхідний для досягнення глобального оптимуму у початку, незалежно від того,p(x)=exp(x2)f(x)=logp(x)=x2xf(x)

f(x)=2x.
1/2xє. Це означає, що нам не доводиться надто працювати, щоб отримати хороший розмір кроків (або "швидкість навчання" в жаргоні ML). Незалежно від того, де знаходиться наша початкова точка, ми просто встановимо наш крок на половину градієнта, і ми будемо біля початку в один крок. І якщо ми не знаємо точний коефіцієнт, який необхідний, ми можемо просто вибрати розмір кроку навколо 1, здійснити невеликий пошук рядків, і ми дуже швидко знайдемо великий розмір кроку, який добре працює незалежно від того, де є. Ця властивість є надійною для перекладу та масштабування . Хоча масштабування призведе до того, що оптимальне масштабування кроків буде відрізнятися від 1/2, принаймні масштабне ступінь буде однаковим, незалежно від того, що таке , тому нам потрібно знайти лише один параметр для отримання ефективної оптимізації на основі градієнта схема.xf(x)f(x)x

Навпаки, градієнт має дуже погані глобальні властивості для оптимізації. МаємоЦе помножує ідеально приємний градієнт з коефіцієнтом який занепадає (швидше, ніж) експоненціально в міру збільшення . У нас вже є , тому крок уздовж вектора градієнта приблизно разів замалий. Щоб отримати розумний розмір кроку до оптимального, нам доведеться масштабувати градієнт шляхом зворотної, величезної постійноїp(x)

p(x)=f(x)p(x)=2xexp(x2).
2xexp(x2)xx=5exp(x2)=1.4101110111011. Такий погано масштабований градієнт гірший, ніж марний для оптимізаційних цілей - нам було б краще просто спробувати одиничний крок у гору, ніж встановити наш крок шляхом масштабування проти ! (У багатьох змінних стає дещо кориснішим, оскільки ми принаймні отримуємо інформацію про напрямки з градієнта, але проблема масштабування залишається.)p(x)p(x)

Загалом немає гарантії, що матиме такі великі властивості масштабування градієнта, як цей приклад іграшки, особливо коли у нас є більше однієї змінної. Однак для майже будь-якої нетривіальної проблеми буде набагато кращим, ніж . Це тому, що ймовірність - це великий продукт з купою термінів, і журнал перетворює цей товар на суму, як зазначається в кількох інших відповідях. За умови, що умови, ймовірно, добре поводяться з точки зору оптимізації, їхній журнал, як правило, добре ведеться, а сума належних функцій добре дотримується. Під поводженням я маю на увазіlogp(x)logp(x)p(x)f(x)не змінюється занадто сильно або занадто швидко, що призводить до майже квадратичної функції, яку легко оптимізувати градієнтними методами. Сума похідної - це похідна від суми, незалежно від того, який порядок є похідним, що допомагає забезпечити, що велика купа суми має дуже розумну другу похідну!


4
+1 Ця відповідь підкреслює і підкреслює моменти, які досягають суті справи.
whuber

47

Підтік

Комп'ютер використовує обмежене розрядне представлення дробів з плаваючою комою, помноживши стільки ймовірностей, гарантовано, дуже близьких до нуля.

З нас немає цієї проблеми.log


3
+1 для чисельної стабільності - це і відповідь Юріла має бути одна!
Alec Teal

1
Ви можете обчислити продукт у лог-просторі, таким чином він стане сумою, а потім перенести його назад. Або ви обчислюєте який дорівнює . Отже, чисельна стабільність - це не питання. logpθppθ
Альберт

1
Майте на увазі, що ви згадали, - це множення ймовірностей усіх подій у вибірці, а - елемент, що підлягає підтопленню. pp
Урі Горен

5
@Filip Термінологія в цій темі дещо необдумана. Ми обговорюємо щільність ймовірності , а не ймовірності. Щільності довільні: вони залежать від одиниць вимірювання. Крім того, для достатнього розміру вибірки щільність ймовірності будь-якого простого зразка з параметричної моделі з часом буде менше . У великих проблемах (з мільйонами даних) щільність ймовірності звичайно становить або менше. Навіть зразок розміром зі стандартного нормального розподілу майже певний має щільність вірогідності менше . 212721000000802127
whuber

4
@FilipHaglund: проте правильний, але факт, що це щільність, не є вирішальним спостереженням тут. Ми могли б так само обговорювати дискретний процес і говорити про фактичні ймовірності (а насправді ОП нічого не сказала, що виключає цей випадок). Але ми говоримо про ймовірність дуже конкретних результатів (наприклад, мільйон спостережень, які йдуть певним чином). Окремий конкретний результат малоймовірний, але в байєсівських співвідношеннях імовірностей важливі, тому нам потрібно знати, наскільки більша одна крихітна ймовірність від іншої.
Мені Розенфельд

34
  1. Логарифм ймовірності множинних спільних ймовірностей спрощується до суми логарифмів окремих ймовірностей (а правило суми простіше, ніж правило добутку для диференціації)

    log(iP(xi))=ilog(P(xi))

  2. Логарифм члена сімейства експоненціальних розподілів ймовірностей (який включає всюдисущий нормальний) є поліноміальним у параметрах (тобто максимальна ймовірність зводиться до найменших квадратів для нормальних розподілів)

    log(exp(12x2))=12x2

  3. Остання форма є і чисельніше стійкою, і символічно легшою для розмежування, ніж перша.

  4. І останнє, але не менш важливе значення, логарифм - це монотонне перетворення, яке зберігає місця екстремуму (зокрема, розрахункові параметри за максимальною вірогідністю ідентичні для вихідної та журнальної трансформованої рецептури)


5
Причина 2 не може бути достатньо наголошена. Щоб досягти максимальної ймовірності журналу для лінійної моделі з гауссовим шумом, потрібно просто вирішити задачу з найменшими квадратами, що означає розв’язання лінійної системи рівнянь.
Пол,

Причини 1 і 3 просто описують, як його обчислити. Ви можете обчислити його таким чином, а потім перетворити його назад (помножити на ), щоб отримати . Насправді цілком поширене обчислення в просторі журналу для чисельної стійкості. Але це не пояснює, чому ви використовуєте цей градієнт. Причина 4 також не є причиною, чому градієнт кращий. Ви можете зробити це і з багатьма іншими перетвореннями. Причина 2 цікава, але я все ще не зовсім впевнений, чому градієнт многочлена кращий, ніж градієнт іншої функції. ppθlogp
Альберт

@ Альберт похідне від многочлена є многочленом на один градус нижчим (зокрема, квадратичний переходить до лінійного), тоді як експоненти не просто під диференціюванням
TemplateRex,

@TemplateRex: Так, це зрозуміло. Але я запитую про властивості конвергенції в методі стохастичного градієнта.
Альберт

25

Набагато простіше взяти похідну від суми логарифмів, ніж брати похідну продукту, яка містить, скажімо, 100 множників.


10
Крім того, ви зменшите потенційні числові проблеми, коли терміни стають дуже маленькими або великими.
Björn

8
Навпаки, ОП неявно забезпечує відмінний спосіб обчислення похідної будь-якого продукту негативних функцій: помножити суму похідних журналів на сам продукт. (Це множення найкраще проводити з точки зору логарифмів, що також усуває числові проблеми, про які йдеться у коментарі @ Бьорна.) Таким чином, "легкість" не пропонує реальної пояснювальної сили, а також не відповідає більш значущому питанню щодо порівняння градієнтів .
whuber

10

Як правило, найбільш основна і проста проблема оптимізації - це оптимізація квадратичної функції. Ви можете легко знайти оптимум такої функції незалежно від того, з чого починаєте. Як це проявляється, залежить від конкретного методу, але чим ближче ваша функція до квадратику, тим краще.

Як зазначає TemplateRex, в широкому спектрі проблем ймовірності, які входять в обчислення функції ймовірності, походять від звичайного розподілу або наближаються ним. Отже, якщо ви працюєте над журналом, ви отримуєте хорошу квадратичну функцію. Якщо ви працюєте над ймовірностями, у вас є така функція

  1. Чи не опуклий (область алгоритмів оптимізації скрізь)
  2. Швидко перетинає кілька масштабів, і тому він має дуже вузький діапазон, де значення функцій вказують на те, куди слід направляти пошук.

Яку функцію ви краще оптимізуєте, це чи це ?

(Насправді це було просто; у практичних програмах ваш пошук може починатись настільки далеко від оптимального, що значення функцій та градієнти, навіть якщо ви змогли їх обчислити чисельно, не відрізнятимуться від 0 та будуть непотрібними для цілей оптимізації. алгоритм. Але перетворення на квадратичну функцію робить це частиною пирога.)

Зауважте, що це повністю відповідає численним питанням стабільності, про які вже говорилося. Причина масштабування журналу для роботи з цією функцією - це саме та сама причина, що ймовірність журналу ведеться набагато краще (для оптимізації та інших цілей), ніж оригінал.

Ви також можете підійти до цього іншим способом. Навіть якщо не було переваги журналу (який існує) - ми все одно будемо використовувати шкалу журналу для виведення та обчислення, тож яка причина для застосування перетворення exp тільки для обчислення градієнта? Ми можемо також залишатися узгодженими з журналом.


@TemplateRex: Журнал (вниз) опуклої позитивної функції опуклий, але зворотне не відповідає дійсності. Ймовірності не є опуклими, тому їм немає чого зберігати, але журнал опуклий. Подивіться на графіки, які я зв'язав - exp (-10x ^ 2), очевидно, не випуклий, але -10x ^ 2 є.
Мені Розенфельд

4

Використовуючи ми збільшуємо динамічний діапазон алгоритму оптимізації. в додатках, як правило , є продуктом функцій. Наприклад, за максимальною оцінкою ймовірності це добуток форми , де - функція щільності, яка може бути більший або менший, ніж 1, btw.lnppL(x|θ)=Πi=1nf(xi|θ)f(.)

Так що , коли дуже велике, то є велика вибірка, ваша функція правдоподібності зазвичай далека від 1: це або дуже маленьких або дуже великі, тому що це функція потужності .nL(.)Lf(.)n

Беручи журнал, ми просто покращуємо динамічний діапазон будь-якого алгоритму оптимізації, дозволяючи йому однаково працювати з надзвичайно великими або малими значеннями.


0

Уже дано кілька приємних відповідей. Але я нещодавно зіткнувся з новим:

Часто вам дають величезний набір даних про навчання , і ви визначаєте деяку ймовірнісну модель , і ви хочете збільшити ймовірність для . Вони вважаються незалежними, тобто у вас Тепер ви часто проводите якесь стохастичне (міні-пакетне) навчання на основі градієнта, тобто на кожному кроці для втрати ви оптимізуєте для , тобто Xp(x|θ)xX

p(X|θ)=xXp(x|θ).
LL(X|θ)XX
θ:=θxXL(x|θ)θ.
Тепер ці стохастичні кроки накопичуються додатково. Через це ви хочете властивість, яка взагалі Це стосується
L(X|θ)=xXL(x|θ).
L(x|θ)=logp(x|θ).

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.