Примітка: у цій відповіді я маю на увазі мінімізацію втрат у навчанні, і я не обговорюю такі критерії зупинки, як втрата валідації. Вибір критеріїв зупинки не впливає на процес / концепції, описані нижче.
Процес тренування нейронної мережі полягає у знаходженні мінімального значення функції втрат , де являє собою матрицю (або кілька матриць) ваг між нейронами, а являє навчальний набір даних. Я використовую підпис для щоб вказати, що наша мінімізація відбувається лише над вагами (тобто ми шукаємо таким, що мінімізоване), поки є фіксованим.LX(W)WXXLWWLX
Тепер, якщо припустити, що у нас є елементи в (тобто в мережі є ваги ), - поверхня в розмірному просторі . Щоб дати візуальний аналог, уявіть, що у нас є лише дві ваги нейронів ( ). Тоді має просту геометричну інтерпретацію: це поверхня в тривимірному просторі. Це випливає з того, що для будь-яких заданих матриць ваг функцію втрат можна оцінити на і це значення стає висотою поверхні.PWPLP+1P=2LWX
Але є проблема невипуклості; поверхня, яку я описав, матиме численні локальні мінімуми, тому алгоритми спуску градієнта чутливі до того, що вони "застрягають" у цих мінімумах, тоді як поблизу може лежати глибше / нижче / краще рішення. Це, швидше за все, відбудеться, якщо буде незмінним для всіх тренувань тренувань, оскільки поверхня закріплена для даного ; всі його риси є статичними, включаючи різні його мінімуми.XX
Рішенням цього є міні-серійні тренування в поєднанні з перетасуванням. Перемішуючи рядки і тренуючись лише на підмножині з них під час заданої ітерації, змінюється з кожною ітерацією, і насправді цілком можливо, що жодна дві ітерації протягом усієї послідовності тренувань і епох тренувань не будуть виконані в точно такому ж . Ефект полягає в тому, що вирішувач може легко «відскочити» від локального мінімуму. Уявіть, що вирішувач застряг у локальному мінімумі під час ітерації з навчанням міні-партії . Цей локальний мінімум відповідає оцінюється за певним значенням ваг; ми будемо називати цеXXiXiLLXi(Wi). При наступній ітерації форма нашої поверхні втрат насправді змінюється, оскільки ми використовуємо , тобто може приймати дуже інше значення від і цілком можливо, що це не відповідає локальному мінімуму! Зараз ми можемо обчислити оновлення градієнта та продовжити навчання. Щоб було зрозуміло: форма взагалі буде відрізнятися від форми . Зауважте, що тут я маю на увазі функцію втрат оцінену на тренувальному наборі ; це повна поверхня, визначена за всіма можливими значеннямиXi+1LXi+1(Wi)LXi(Wi)LXi+1LXiLXW, А не оцінки цієї втрати (який є тільки скаляром) для певного значення . Зауважте також, що якщо міні-партії використовуються без перетасування, все ще існує ступінь "диверсифікації" поверхонь, що втрачають, але буде обмежена (і відносно невелика) кількість унікальних поверхонь помилок, які бачить вирішувач (конкретно, він побачить той самий точний набір міні-партій - і, отже, втратні поверхні - протягом кожної епохи).W
Одне, чого я навмисно уникав, - це обговорення розмірів міні-партії, оскільки на це є мільйон думок, і це має значні практичні наслідки (більша кількість паралелізації може бути досягнута з більшими партіями). Однак я вважаю, що варто згадати наступне. Оскільки оцінюється шляхом обчислення значення для кожного рядка (і підсумовування або взяття середнього; тобто комутативного оператора) для заданого набору вагових матриць , розташування рядків не має ефекту при використанні повно- спуск градієнта партії (тобто коли кожна партія є повною , а ітерації та епохи - це одне і те ж).LXWX X