Виходячи з того, що робити, коли запитання, розміщене на DataScience, є дублікатом запитання, розміщеного на CrossValidated? , Я надсилаю відповідь на те саме запитання, яке було задано на CrossValidated ( https://stats.stackexchange.com/a/311318/89653 ).
Примітка: у цій відповіді я маю на увазі мінімізацію втрат у навчанні, і я не обговорюю такі критерії зупинки, як втрата перевірки. Вибір критеріїв зупинки не впливає на процес / концепції, описані нижче.
Процес тренування нейронної мережі полягає у знаходженні мінімального значення функції втрат , де являє собою матрицю (або кілька матриць) ваг між нейронами, а являє навчальний набір даних. Я використовую підпис для щоб вказати, що наша мінімізація відбувається лише над вагами (тобто ми шукаємо таким, що мінімізоване), поки фіксований.WX ℒ WW ℒ XLX(W)WXXLWWLX
Тепер, якщо припустити, що у нас є елементи в (тобто в мережі є ваги), - поверхня в розмірному просторі . Щоб дати візуальний аналог, уявіть, що у нас є лише дві ваги нейронів ( ). Тоді має просту геометричну інтерпретацію: це поверхня в тривимірному просторі. Це випливає з того, що для будь-яких заданих матриць ваг функцію втрат можна оцінити на і це значення стає висотою поверхні.W P ℒ P + 1 P = 2 ℒ W XPWPLP+1P=2LWX
Але є проблема невипуклості; поверхня, яку я описав, матиме численні локальні мінімуми, а тому алгоритми спуску градієнта чутливі до того, що вони "застрягають" у цих мінімумах, тоді як поблизу може лежати глибше / нижче / краще рішення. Це, швидше за все, відбудеться, якщо незмінний для всіх тренувань тренувань, оскільки поверхня фіксується для заданого ; всі його особливості статичні, включаючи різні його мінімуми.XXX
Рішенням цього є міні-серійні тренування в поєднанні з перетасуванням. Перемішуючи рядки і тренуючись лише на підмножині з них під час заданої ітерації, змінюється з кожною ітерацією, і насправді цілком можливо, що жодна дві ітерації протягом усієї послідовності тренувань і епох тренувань не будуть виконані в точно такому ж . Ефект полягає в тому, що вирішувач може легко «відскочити» від локального мінімуму. Уявіть, що вирішувач застряг у локальному мінімумі під час ітерації з навчальним міні-партією . Цей локальний мінімум відповідає оцінюється за певним значенням ваг; ми будемо називати цеX i X i ℒ ℒ X i ( W i ) X i + 1 ℒ X i + 1 ( W i ) ℒ X i ( W i ) ℒ X i + 1 ℒ X i ℒ X W WXXiXiLLXi(Wi). При наступній ітерації форма нашої втрати поверхні фактично змінюється, оскільки ми використовуємо , тобто може приймати дуже інше значення від і цілком можливо, що це не відповідає локальному мінімуму! Тепер ми можемо обчислити оновлення градієнта і продовжити навчання. Щоб було зрозуміло: форма взагалі буде відрізнятися від форми . Зауважте, що тут я маю на увазі функцію втрат оцінену на тренувальному наборі ; це повна поверхня, визначена за всіма можливими значеннямиXi+1LXi+1(Wi)LXi(Wi)LXi+1LXiLXW, А не оцінки цієї втрати (який є тільки скаляром) для певного значення . Зауважимо також, що якщо міні-партії використовуються без переміщення, все ще існує ступінь "диверсифікації" поверхонь, що втрачаються, але буде обмежена (і відносно невелика) кількість унікальних похибних поверхонь, які бачить вирішувач (конкретно, він побачить той самий точний набір міні-партій - і, отже, втратні поверхні - протягом кожної епохи).W
Одне, чого я навмисно уникнув, - це обговорення розмірів міні-партії, оскільки на це є мільйон думок, і це має значні практичні наслідки (більша паралелізація може бути досягнута більшими партіями). Однак я вважаю, що варто згадати наступне. Оскільки оцінюється шляхом обчислення значення для кожного рядка (і підсумовування або взяття середнього; тобто комутативного оператора) для заданого набору вагових матриць , розташування рядків не має ефекту при використанні повно- спуск градієнта партії (тобто коли кожна партія є повною , а ітерації та епохи - це одне і те ж). X W X XLXWX X