Оптимізація градієнта спуску


9

Я намагаюся зрозуміти оптимізацію градієнта спуску в алгоритмах ML (машинне навчання). Я розумію, що існує функція витрат - де мета - мінімізувати помилку . У сценарії, коли ваги оптимізуються, щоб дати мінімальну помилку, і використовуються часткові похідні, чи змінюються вони як і на кожному кроці чи це комбінація (наприклад, у кількох ітераціях лише і коли більше не зменшує помилку, похідна починається з )? Додаток може бути лінійною регресійною моделлю, логістичною регресійною моделлю або алгоритмами підвищення.у^-уш1,ш2ш1ш2ш1ш1ш2

Відповіді:


10

Спуск градієнта оновлює всі параметри на кожному кроці. Це можна побачити в правилі оновлення:

ш(т+1)=ш(т)-η∇f(ш(т)).

Оскільки градієнт функції втрат векторно оцінюється за розмірами, що відповідають розміру , всі параметри оновлюються при кожній ітерації.∇f(ш)ш

Коефіцієнт навчання - це додатне число, яке повторно масштабує градієнт. Якщо зробити занадто великий крок, ви можете нескінченно перекинути вас на поверхню втрат, не покращивши функцію втрат; Занадто малий крок може означати нудно повільний прогрес до досягнення оптимального.η

Хоча ви можете оцінити параметри лінійної регресії за допомогою градієнтного спуску, це не дуже гарна ідея.

Так само є кращі способи оцінювання коефіцієнтів логістичної регресії.


Тож алгоритм може спробувати різні комбінації, такі як збільшення w1, зменшення w2на основі напрямку від часткової похідної до локальних мінімумів і просто для підтвердження алгоритму не обов'язково завжди даватись глобальні мінімуми?
— Pb89

і чи допомагає часткова похідна пояснити, на скільки потрібно збільшити або зменшити, w1і w2чи це робиться швидкістю / скороченням навчання, тоді як часткова похідна забезпечує лише напрямок спуску?
— Pb89

Градієнт є вектором, тому він дає напрямок і величину. Вектор можна довільно змінити за допомогою позитивного скаляра і він матиме той самий напрямок, але масштабування змінить свою величину.
— Sycorax каже, що повернеться до Моніки

Якщо величина також задана градієнтом, то яка роль усадки чи швидкості навчання?
— Pb89

Коефіцієнт навчання змінює градієнт. Припустимо∇f(х)має велику норму (довжину). Зробивши великий крок, ви перемістите вас у віддалену частину поверхні втрат (перестрибуючи з однієї гори на іншу). Основним виправданням градієнтного спуску є те, що це лінійне наближення в околицяхш(т). Це наближення завжди неточне, але, мабуть, гірше, чим далі ви рухаєтесь - значить, ви хочете робити невеликі кроки, тому використовуєте невеликіη, де "малий" - цілком специфічний для проблеми.
— Sycorax каже, що повернеться до Моніки

7

Коли оптимізація відбувається за допомогою часткових похідних, вона щоразу змінює зміну як w1, так і w2 або це комбінація, як у кількох ітераціях, лише w1 змінюється, і коли w1 більше не зменшує помилку, похідна починається з w2 - до дістатися до місцевих мінімумів?

У кожній ітерації алгоритм буде змінювати всі ваги одночасно на основі градієнтного вектора. Насправді градієнт - вектор. Довжина градієнта така ж, як кількість ваг у моделі.

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

Ось цікава відповідь на алгоритм вільного градієнта

Чи можливо тренувати нейронну мережу без зворотного розповсюдження?


1

Метою градієнтного зниження є мінімізація функції витрат. Ця мінімізація досягається за допомогою регулювання ваги для вашого випадку w1 та w2. Загалом таких ваг може бути п .

Спуск градієнта здійснюється наступним чином:

  1. ініціалізуйте ваги випадковим чином.
  2. обчислити функцію витрат та градієнт із ініціалізованими вагами.
  3. оновлення ваг: може статися, що градієнт O для деяких ваг, у такому випадку ці ваги не показують змін після оновлення. наприклад: Скажімо, градієнт [1,0], W2 залишиться незмінним.
  4. перевірити функцію витрат за оновленими вагами, якщо декремент є прийнятним, продовжуйте ітерації, які інше припиняються.

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


"якщо декремент є прийнятним, продовжуйте ітерації, інакше закінчуються", чи є значення за замовчуванням, яке застосовується в пакетах python ( sklearn) або R-пакетах, таких як caret? Це може бути визначено користувачем лише у створеній вручну функції градієнта спуску?
— Pb89

1

Градієнт гідний застосовується як для кожної ітерації, так w1і w2для кожної ітерації. Під час кожної ітерації параметри оновлюються відповідно до градієнтів. Вони, ймовірно, мають різні часткові похідні.

Перевірте тут .

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