Як розмір партії впливає на конвергенцію SGD і чому?


18

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

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

1|Х|хХл(х,ш)Ехpгата[л(х,ш)]
чим більший розмір партії, тим точнішим він повинен бути. Чому на практиці це не так?


Ось кілька моїх (ймовірно неправильних) думок, які намагаються пояснити.

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

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

Або це тому, що коли розмір партій наблизиться до масштабу тренувального набору, мініатюри вже не можуть розглядатися як іid від розподілу даних, оскільки велика ймовірність корельованих мініатюр?


Оновлення
Як було зазначено у відповіді Бенуа Санчеса, однією важливою причиною є те, що для великих міні-матчів потрібно більше обчислень, щоб виконати одне оновлення, і більшість аналізів використовують порівняльну кількість навчальних епох для порівняння.

Однак цей документ (Wilson and Martinez, 2003) показує, що більший розмір партії все ще є дещо невигідним, навіть з огляду на достатню кількість навчальних епох. Це взагалі так? введіть тут опис зображення

Відповіді:


12

N

  • 27N
  • 8343×N200000,47N

Ви можете бачити, що для більших партій вам потрібно набагато менше оновлень для тієї ж точності.

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

кБj1jкБj

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

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

Розмір міні-пакетів по суті є частотою оновлень: чим менше мініатюр, тим більше оновлень. На одному крайньому рівні (minibatch = набір даних) у вас є схил градієнта. В іншому крайньому (minibatch = один рядок) у вас є повний SGD за рядком. На лінійку SGD все одно краще, але для більш ефективної паралелізації підходять більші міні-боти.

Після закінчення процесу конвергенції SGD стає менш точним, ніж (пакетний) GD. Але в цей момент речі стають (як правило) своєрідною марно точною підгонкою. Хоча ви отримуєте трохи меншу функцію втрат на тренувальному наборі, ви не отримуєте реальної прогнозованої сили. Ви шукаєте лише дуже точний оптимум, але це не допомагає. Якщо функція втрати правильно регулюється (що перешкоджає переналагодженню), ви точно не «переоцінюєте», ви просто марно «гіпер» -фіть. Це показує як незначну зміну точності на тестовому наборі.


1
дякую, це має великий сенс Отже, якщо робити однакову кількість оновлень, то більший розмір партії буде принаймні таким же хорошим, правда?
dontloo

чи знаєте ви які-небудь опубліковані експерименти з цим (порівнюючи різні розміри партії з фіксованою кількістю оновлень)?
dontloo

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

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

Відповідно до статті різниця в точності не є істотною. Вони просто хочуть зазначити, що точність по суті однакова. Вони головним чином хочуть зазначити, що SGD з невеликими партіями відбувається набагато швидше.
Бенуа Санчес

4

Щоб додати відповідь Кертіса Уайта (та додати ще кілька посилань):

Так, SGD працює як тип регуляризації. Це важливо, тому що в іншому випадку важко пояснити, чому DNN не завжди переобладнають, тому що можуть .

Як я розумію, причина, що SGD викликає "стрибки навколо" в просторі параметрів, тому під час тренінгу параметри не можуть залишатися на вузькому мінімумі, лише в (або близько до) ширших. І ці ширші, мабуть, [1] узагальнюють краще (інакше, менше переобладнання).

Більше посилань:

  • Ось [2] ще один документ, який формалізує це (або намагається, я не дотримувався всього, перевірте самі!)
  • Цей документ [3] стверджує, що існує фаза, до "stochastic relaxation, or random diffusion"якої призводить стохастичність, властива SGD "maximiz[ation of] the conditional entropy of the layer".

Обидва кажуть, що SGD відповідає терміну регуляризації ентропії.

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


[1] Приклад: "Байєсівська перспектива на генералізацію та стохастичний градієнт походження", Smith, Le, 2018. З конспекту: "We propose that the noise introduced by small mini-batches drives the parameters towards minima whose evidence is large."

[2] "Стохастичний градієнтний спуск виконує варіативні умовиводи, сходяться для обмеження циклів для глибоких мереж", Chaudhari, Soatto 2017

[3] "Відкриття чорної скриньки глибоких нейронних мереж за допомогою інформації" Schwartz-Ziv, Tishby, 2017

[4] "Розуміння глибокого навчання вимагає переосмислення узагальнення", Ч. Чжан та ін 2016


(+1) Хороші посилання. btw, першим автором [4] є Ч. Чжан
користувач20160

О, ти маєш рацію! Відредагував це, дякую за виправлення.
dasWesen

0

Занадто великий розмір партії може запобігти конвергенції принаймні при використанні SGD та тренуванні MLP з використанням Keras. Що стосується того, чому я не на 100% впевнений, що це стосується усереднення градієнтів чи менші оновлення забезпечують більшу ймовірність уникнути локальних мінімумів.

Дивіться тут .

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