Як і чому "Нормалізація партії" використовує рухомі середні значення для відстеження точності моделі під час тренування?


21

Я читав папір для нормалізації партії (BN) (1) і не розумів необхідності використання ковзаючих середніх для відстеження точності моделі, і навіть якщо я визнав, що це правильно зробити, я не розумію що саме вони роблять.

Наскільки я розумію (що я помиляюся), у статті йдеться про те, що вона використовує статистику населення, а не міні-пакет, статистику після того, як модель закінчила навчання. Після деякого обговорення неупереджених оцінок (це здається мені дотичним і не розумію, чому це говорить про це), вони йдуть і кажуть:

Використовуючи натомість ковзні середні показники, ми відстежуємо точність моделі під час тренування.

Це та частина, яка мене бентежить. Чому вони роблять ковзні середні, щоб оцінити точність моделі та над яким набором даних?

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


1 : Іоффе С. та Сегеді К. (2015),
"Нормалізація партії: прискорення глибокої мережевої підготовки шляхом зменшення внутрішнього коваріатного зсуву",
Матеріали 32-ї міжнародної конференції з машинного навчання , Лілль, Франція, 2015.
Журнал машинного навчання: W&CP том 37


Чи задоволені ви обґрунтованою відповіддю? Це зовсім не "відповідь", якщо ви запитаєте мене; якщо все ще актуально, я можу надати кращу відповідь.
OverLordGoldDragon

@OverLordGoldDragon надайте ур власну відповідь :)
Буратіно

Відповіді:


8

Під час використання batch_normalization перше, що ми повинні розуміти, це це працювати двома різними способами під час навчання та тестування .

  1. У навчанні нам потрібно обчислити середню мінімальну партію, щоб нормалізувати партію

  2. У висновку ми просто застосовуємо заздалегідь обчислену мініатюрну статистику

Отже, у другому, як обчислити цю мініатюрну статику

Тут наближається ковзна середня

running_mean = momentum * running_mean + (1 - momentum) * sample_mean
running_var = momentum * running_var + (1 - momentum) * sample_var

Це ніяк не відповідає на питання; "чому" і "як" запитували, і поверхове "що" було дано. Це не повинно проголошуватися.
OverLordGoldDragon

1

Вони говорять про нормалізацію партії, яку вони описали для тренувальної процедури, але не для висновку.

Це процес нормалізації прихованих одиниць за допомогою засобів вибірки тощо.

У цьому розділі вони пояснюють, що робити на етапі висновку, коли ви тільки робите прогнози (тобто після того, як навчання закінчилося).

Однак у зупиненій валідації ви переплітаєте передбачення щодо встановлення валідації з навчанням для оцінки вашої помилки перевірки.

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

Саме в цьому сенсі це

Використовуючи натомість ковзні середні показники, ми відстежуємо точність моделі під час тренування.

нічого спільного з буквальним використанням бігових засобів як метрики для продуктивності нейронної мережі.

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