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


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.