Чому важливо включити термін корекції зміщення для оптимізатора Адама для глибокого навчання?


15

Я читав про оптимізатора Адама для глибокого навчання і натрапив на таке речення у новій книзі « Глибоке навчання » Беґніо, Гудфллоу та Кортвіла:

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

видається, що основною причиною включення цих термінів виправлення зміщення є те, що якимось чином усуває зміщення ініціалізації mt=0 і vt=0 .

  • Я не на 100% впевнений, що це означає, але мені здається, що це, ймовірно, означає, що перший і другий момент починаються з нуля і якось починають його з нульового нахилу значення ближче до нуля несправедливим (або корисним) способом навчання ?
  • Хоча я хотів би знати, що це означає трохи точніше і як це шкодить навчанню. Зокрема, якими перевагами має оптимізатор, що не підключає зусилля, щодо оптимізації?
  • Як це допомагає навчанню моделей глибокого навчання?
  • Крім того, що це означає, коли він неупереджений? Мені відомо, що означає неупереджене стандартне відхилення, але мені незрозуміло, що це означає в цьому контексті.
  • Чи є корекція зміщення дійсно великою справою чи щось переоцінено в роботі оптимізатора Адама?

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


2
Посилання: arxiv.org/pdf/1412.6980v8.pdf Оцінки градієнта 1-го та 2-го моменту оновлюються за допомогою ковзної середньої величини і починаються з того, що обидва estimat4es дорівнюють нулю. , оскільки початкові оцінки нуля лише поступово вимирають. Я не розумію, чому градієнт у початковій точці не використовується для початкових значень цих речей, а потім оновлення першого параметра. Тоді не було б забруднення початковими нульовими значеннями, яке повинно бути скасовано. Так що не було б потреби в корекції зміщення.
Марк Л. Стоун

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

@ MarkL.Stone автори наголошують настільки на коригуванні упередженості, що мені здалося, що це є новим чи важливим у їхньому документі. Так вони могли просто не «виправити ухил» і мати той самий алгоритм? Якщо це правда, я не розумію, чому Адам є таким важливим оптимізатором чи в чому полягає велика справа. Я завжди думав, що це корекція зміщення.
Чарлі Паркер

4
Вони вводять упередження, а потім виправляють його, без жодних вагомих причин. Це як множення на 2 (о, мій, результат упереджений), а потім ділення на 2, щоб "виправити" його. Вся справа з упередженням введення та видалення здається непотрібною стороною. Можливо, папір виявилася недостатньо довгою, не зробивши цього, тому вони додали цей шпиль, щоб зробити його довше :) Адам, можливо, має свої заслуги, але вони будуть так само, як це я запропонував. Я хотів би, щоб автори завітали сюди і пояснили це. Можливо, я пропускаю якусь тонку точку або щось нерозумію.
Марк Л. Стоун

Відповіді:


17

Проблема НЕ виправлення зміщення
відповідно до статті

У разі розріджених градієнтів для надійної оцінки другого моменту потрібно провести середнє значення за багатьма градієнтами, вибравши невелике значення β2; однак саме цей випадок малого β2, коли відсутність корекції зсуву ініціалізації призведе до початкових кроків, значно більших.

введіть тут опис зображення

β2β1β2=0.999β1=0.91β2=0.0011β1=0.1

m1=0.1gtv1=0.001gt2m1/(v1+ϵ)

m1^=g1v1^=g12mt^/(vt^+ϵ)β1β2


m0mt=βmt1+(1β)gtm0

m1=βm0+(1β)gtβm0m1(1β)m1^=(m1βm0)/(1β)m0=0mt^=mt/(1βt)


Як добре прокоментував Марк Л. Стоун

Це як множення на 2 (о, мій, результат упереджений), а потім ділення на 2, щоб "виправити" його.

Якось це не зовсім рівнозначно

для початкових значень цих речей використовується градієнт у початковій точці, а потім оновлення першого параметра

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

Наприклад, виправлений перший момент часу 2

m2^=β(1β)g1+(1β)g21β2=βg1+g2β+1

g1

m2=βg1+(1β)g2
g1

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

ϵ


m^t

m^t=βt1g1+βt2g2+...+gtβt1+βt2+...+1

m1g1

mtβmt+gt
m^t(1β)mt1βt

Тому це можливо зробити без введення терміна зміщення та виправлення. Я думаю, що стаття розмістила його у формі виправлення зміщення для зручності порівняння з іншими алгоритмами (наприклад, RmsProp).


1
Чи згодні ви з моїм другим коментарем до питання? Для мене це суть. Справа у множенні та діленні на 2 повинна була бути просто "зрозумілою" аналогією, а не математикою, що використовується в даній справі. якщо були інші документи, на які я не дивився, які ввели зміщення за тим самим механізмом, який у випадку ADAM видається цілком уникнутим, але не виправив, то це просто повністю СТУПІД (якщо якимось чином упередження допоміг виконувати алгоритм).
Марк Л. Стоун

@ MarkL.Stone так! насправді я виступив з цим, вибачте за мою англійську. і я думаю, що алгоритм, який не виправив зміщення, - це rmsprop, але на відміну від Адама rmsprop добре працює з ухилом.
dontloo

@dontloo чи відповідає ваша відповідь на коментар Марка Л. Стоун про те, чому корекція зміщення здається зайвою? (На мою думку, це досить важливо, можливо, навіть більше, ніж перефразовувати те, що йдеться в оригінальному документі).
Чарлі Паркер

@CharlieParker Ви маєте на увазі, чому корекція зміщення є зайвою або чому автор робить це виглядати зайвим?
dontloo

@dontloo Я не думаю, що автори роблять це зайвим. Я думав, що вони дійсно потребують цього (враховуючи їх конкретні умови). Однак я подумав, що з огляду на пропозицію Марка це не потрібно. Я думаю, що моє запитання в розділі коментарів зараз полягає в тому, чи дійсно їм потрібен термін виправлення.
Чарлі Паркер
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.