Вступ
Уявіть, що у нас є функція і ми хочемо знайти її мінімум. Що б ти зробив ?
Просто так? Нам потрібно лише розв’язати таке рівняння:
Справа в тому, що знайти формулу не завжди легко, оскільки вони, як правило, надзвичайно складні, особливо в глибокому навчанні, де ми маємо справу зі складними функціями. Отже, нам потрібно знайти інший метод, який може надати нам мінімум функції без необхідності знаходити формулу похідної .
Давайте розвинемо інтуїцію
Припустимо, що у нас є функція f з відповідним графіком:
Почнемо з випадкової точки . Мета полягає в тому, щоб перемістити цю точку та наблизити її до так, щоб x*. Тому проблему можна розділити на дві частини:
-
У якому напрямку потрібно перемістити точку ? Вліво чи вправо?
-
На скільки ми повинні його перемістити?
Напрямок
Давайте розвинемо трохи інтуїції, щоб відповісти на перше запитання. Зверніть увагу на наступний пункт:
Зауважте, що:
-
коли точка знаходиться праворуч від оптимальної точки , її дотична лінія йде вгору.
-
коли точка знаходиться праворуч від оптимальної точки , її дотична лінія йде вниз.
Напрям прямої визначається знаком її нахилу:
-
Лінія йде вгору нахил позитивний.
-
Лінія йде вниз нахил негативний.
Зверніть увагу, що: \
Нахил дотичної до функції в певній точці не більше ніж похідна в цій точці :
Отже, як відповідь на запитання "Куди нам перемістити ?":
-
праворуч від Нам потрібно перемістити ліворуч.
-
ліворуч від Нам потрібно перемістити праворуч.
Кроки
А тепер друге запитання: Скільки ми повинні перемістити ?
Подивіться на наступні приклади:
Ми можемо зробити висновок, що:
-
близьке до => Нахил дотичної невеликий => невеликий.
-
віддалений від => Нахил дотичної великий => великий.
Відповівши на обидва запитання, ми дійшли висновку, що лише знання похідної в точці може дати нам багато розуміння напрямку та відстані оптимальної точки .
Градієнтний спуск
Градієнтний спуск - це формулювання відповідей на попередні два запитання. Це ітераційний алгоритм оптимізації, який апроксимує мінімум функції, починаючи з випадкової початкової точки . Алгоритм викладено таким чином:
де:
-
не більше ніж похідна від у точці .
-
— додатна константа, яка визначає, наскільки великими будуть кроки.
Зауважте, що:
-
знаходиться праворуч від => => => рухається вліво.
-
знаходиться ліворуч від => => => рухається вправо.
-
близько до => близько до => Невелике оновлення до .
Вікторина
-
Коли градієнтний спуск припиняє ітерацію:
-
Коли достатньо малий.
-
Коли близьке до .
-
Коли . XXX
-
Як ми вибираємо :
-
Ми вибираємо випадково. XXX
-
Ми беремо його в районі .
— Це залежить від проблеми.
- Навіщо нам градієнтний спуск:
– Тому що комп’ютери недостатньо потужні, щоб обчислювати похідні.
– Тому що надзвичайно важко знайти формули похідних моделей глибокого навчання. XXX
- Оскільки функції мають більше одного локального мінімуму.