Я знаю, що стохастичний градієнтний спуск має випадкову поведінку, але я не знаю, чому.
Чи є пояснення з цього приводу?
Я знаю, що стохастичний градієнтний спуск має випадкову поведінку, але я не знаю, чому.
Чи є пояснення з цього приводу?
Відповіді:
Алгоритм стохастичного градієнта (SG) веде себе як алгоритм імітаційного відпалу (SA), де швидкість навчання СГ пов'язана з температурою СА. Випадковість або шум, внесений SG, дозволяє втекти від місцевих мінімумів для досягнення кращого мінімуму. Звичайно, це залежить від того, наскільки швидко ви знижуєте рівень навчання. Прочитайте розділ 4.2 Стохастичного градієнтного навчання в нейронних мережах (pdf) , де це пояснено більш докладно.
При стохастичному градієнтному спуску параметри оцінюються для кожного спостереження, на відміну від усього зразка при регулярному градієнтному спуску (пакетний градієнтний спуск). Це те, що дає йому багато випадковості. Шлях стохастичного градієнтного спуску блукає по більшій кількості місць, і, таким чином, більше шансів «вискочити» з локального мінімуму і знайти глобальний мінімум (Примітка *). Однак стохастичний градієнтний спуск все ще може застрягти в локальному мінімумі.
Примітка: звичайно тримати рівень навчання постійним, в цьому випадку стохастичний градієнтний спуск не збігається; він просто блукає навколо тієї ж точки. Однак, якщо час навчання зменшується з часом, скажімо, це обернено пов'язане з кількістю ітерацій, то стохастичний градієнтний спуск сходиться.
Як вже було сказано в попередніх відповідях, стохастичний градієнтний спуск має набагато шумнішу поверхню помилок, оскільки ви оцінюєте кожен зразок ітеративно. Поки ви робите крок до глобального мінімуму в пакетному градієнті спуску в кожну епоху (проходите навчальний набір), окремі кроки вашого стохастичного градієнта спуску градієнта не завжди повинні вказувати на глобальний мінімум залежно від оцінюваної вибірки.
Щоб візуалізувати це за допомогою двовимірного прикладу, ось декілька фігур та малюнків з класу машинного навчання Ендрю Нґ.
Перший градієнтний спуск:
По-друге, стохастичний градієнтний спуск:
Червоне коло на нижній фігурі ілюструє, що стохастичний градієнтний спуск буде "оновлюватися" десь у районі навколо глобального мінімуму, якщо ви використовуєте постійну швидкість навчання.
Отже, ось кілька практичних порад, якщо ви використовуєте стохастичний градієнтний спуск:
1) перемішайте навчальний набір перед кожною епохою (або ітерацію у "стандартному" варіанті)
2) використовувати адаптивну швидкість навчання, щоб "відпалити" ближче до світового мінімуму
for
переміщую навчальний набір перед кожною епохою, а потім просто переходжу через перетасований набір