Через півтора року я повертаюся до своєї відповіді, оскільки моя попередня відповідь була неправильною.
Розмір партії значно впливає на навчання. Що відбувається, коли ви розміщуєте партію через вашу мережу, це те, що ви оцінюєте середні градієнти. Концепція полягає в тому, що якщо розмір вашої партії досить великий, це дасть достатньо стабільну оцінку того, яким буде градієнт повного набору даних. Беручи зразки з вашого набору даних, ви оцінюєте градієнт, значно зменшуючи обчислювальні витрати. Чим нижче ви йдете, тим менш точним буде ваш показник, проте в деяких випадках ці галасливі градієнти насправді можуть допомогти уникнути місцевих мінімумів. Коли він занадто низький, ваги вашої мережі можуть просто стрибати, якщо ваші дані галасливі, і вони можуть не в змозі дізнатися або вони зближуються дуже повільно, що негативно впливає на загальний час обчислення.
Ще одна перевага пакетного пакетування - це для обчислення GPU, GPU дуже добре паралелізують обчислення, які відбуваються в нейронних мережах, якщо частина обчислень однакова (наприклад, повторне множення матриць на ту саму вагову матрицю вашої мережі). Це означає, що розмір партії 16 займе менше, ніж удвічі більше, ніж розмір партії 8.
У випадку, якщо вам потрібні великі розміри партії, але вона не підходить для вашого GPU, ви можете подати невелику партію, зберегти оцінки градієнта і подати одну або декілька партій, а потім зробити оновлення ваги. Таким чином ви отримуєте більш стабільний градієнт, оскільки ви збільшили розмір віртуальної партії.
WRONG, СТАРИЙ ВІДПОВІДЬ: [[[Ні, batch_size в середньому впливає лише на швидкість вашого навчання, а не на якість навчання. Batch_size також не повинні бути повноваженнями 2, хоча я розумію, що деякі пакети дозволяють отримати потужність лише 2. Ви повинні спробувати отримати свій batch_size максимальний, що все ще може відповідати пам’яті вашого GPU, щоб отримати максимальну швидкість .]]]]