Подумайте про "оптимізаційний ландшафт". Наприклад, якщо у вас була мережа лише з двома вагами, ви могли побудувати всі комбінації цих двох ваг на поверхні, де висота в кожній точці представляє суму помилки, яку повертає ваша вартість витрат, якщо ви використовуєте це (x, y ) координуйте як дві ваги. Ви намагаєтеся перейти до нижньої точки на цій поверхні, щоб отримати найнижчий рівень помилок.
Іноді проблема полягає в тому, що поверхня може зійти з розуму, особливо в мережах з мільйонами параметрів, а не лише двома. Ви можете застрягнути в сідлових точках, де прогрес сповільнюється, а потім раптом відкидається назад на пагорб.
Ось анімація, яка допоможе візуалізувати це.
Як ви бачите, основні алгоритми спуску градієнта застрягають у цих положеннях набагато простіше.
Для цього можуть бути й інші причини, але саме про це ви чуєте найчастіше. Можливо, мережа може мати купу одиниць, що отримують насичені активації (або у випадку relu, блок, який активується лише дуже невеликою кількістю тренувальних входів), і коли один блок виходить із насичення запускає ланцюгову реакцію, яка виводить решту із насичення, і ваги раптом отримують прискорення градієнтного потоку? Я не розглядав нічого подібного, але мені було б цікаво, чи є у когось інші причини.