TL; DR: Занадто великий розмір міні-партії зазвичай призводить до зниження точності!
Для тих, хто цікавиться, ось пояснення.
Існує два поняття швидкості:
- Обчислювальна швидкість
- Швидкість конвергенції алгоритму
Обчислювальна швидкість - це просто швидкість виконання числових обчислень в апаратному забезпеченні. Як ви вже говорили, зазвичай більший розмір міні-партії. Це тому, що лінійні бібліотеки алгебри використовують векторизацію для операцій з вектором та матрицею, щоб пришвидшити їх за рахунок використання більшої кількості пам'яті. Виграш може бути значним до певного моменту. З мого досвіду, є момент, після якого є лише граничні надбавки в швидкості, якщо такі є. Точка залежить від набору даних, обладнання та бібліотеки, яка використовується для чисельних обчислень (під кришкою).
Але не будемо забувати, що існує й інше поняття швидкості, яке говорить нам про те, як швидко сходиться наш алгоритм.
По-перше, що означає зближення нашого алгоритму? Що ж, нам належить визначити і вирішити, коли ми задоволені точністю або помилкою, яку ми отримаємо, обчисленій на основі валідації. Ми можемо або визначити його заздалегідь, і чекати, коли алгоритм підійде до цього моменту, або ми можемо відстежувати навчальний процес і вирішити зупинити його, коли помилка перевірки починає значно зростати (модель починає переповнювати набір даних). Ми дійсно не повинні зупиняти це відразу, в перший момент, коли помилка починає зростати, якщо ми працюємо з міні-партіями, оскільки ми використовуємо Stochastic Gradient Descent, SGD. У випадку (повної партії) градієнтного спуску, після кожної епохи алгоритм встановлюється як мінімум, будь то локальний чи глобальний. SGD ніколи насправді не встановлюється як мінімум. Він постійно коливається навколо нього. Це може тривати нескінченно,
Тепер, після всієї цієї теорії, є "улов", на який нам потрібно звернути увагу. При використанні меншого розміру партії обчислення помилки має більше шуму, ніж коли ми використовуємо більший розмір партії. Можна було б сказати: ну це погано, чи не так? Вся справа в тому, що шум може допомогти алгоритму вийти з поганого локального мінімуму і мати більше шансів знайти або кращий локальний мінімум, або, сподіваємось, глобальний мінімум.
Таким чином, якщо ми можемо швидше знайти краще рішення, використовуючи менший розмір партії замість більшого, просто за допомогою «небажаного» шуму, ми можемо налаштувати між загальним часом, необхідним для нашого алгоритму, щоб знайти задовільний рішення та більш висока точність.
Я хочу сказати, що для певної точності (або помилки) менший розмір партії може призвести до скорочення загального часу тренування, не довшого, як вважають багато хто.
Або, якщо ми вирішимо зберегти той самий час навчання, що і раніше, ми можемо отримати трохи більшу точність з меншим розміром партії, і ми, швидше за все, будемо, особливо якщо ми обрали свій рівень навчання відповідним чином.
Якщо у вас є час, ознайомтеся з цією статтею:
Систематичне оцінювання успіхів CNN у ImageNet
Особливо перевірте "3.7. Розмір партії та швидкість навчання" та малюнок 8. Ви побачите, що великі розміри міні-пакетів призводять до гіршої точності , навіть якщо налаштування швидкості навчання на евристичну.
Взагалі, розмір партії 32 - це хороша відправна точка, і ви також повинні спробувати 64, 128 та 256. Інші значення (нижчі або вищі) можуть бути нормальними для деяких наборів даних, але заданий діапазон, як правило, найкраще почніть експериментувати з. Хоча під 32 років воно може надто повільно статися через значно меншу обчислювальну швидкість, оскільки не використовує векторизацію в повній мірі. Якщо у вас виникла помилка "поза пам'яттю", ви все одно спробуйте зменшити розмір міні-партії.
Отже, справа не просто у використанні найбільшого можливого розміру міні-партії, який вписується в пам'ять.
На закінчення та відповідаючи на ваше запитання, менший розмір міні-пакетів (не надто малий) зазвичай призводить не тільки до меншої кількості ітерацій алгоритму тренувань, ніж до великого розміру партії, але і до більшої точності в цілому, тобто нейронна мережа, яка працює краще, за однакову кількість тренувального часу або менше.
Не забувайте, що більш високий шум може допомогти йому вискочити з поганого локального мінімуму, а не залишити його в ньому.