У контексті нейронних мереж, яка різниця між швидкістю навчання та зниженням ваги?
У контексті нейронних мереж, яка різниця між швидкістю навчання та зниженням ваги?
Відповіді:
Коефіцієнт навчання - це параметр, який визначає, наскільки крок оновлення впливає на поточне значення ваг. Хоча зменшення ваги є додатковим терміном у правилі оновлення ваги, що призводить до того, що ваги експоненціально зменшуються до нуля, якщо інше оновлення не планується.
Тож скажімо, що у нас є функція витрат або помилок яку ми хочемо мінімізувати. Спуск градієнта підказує нам змінити ваги у напрямку найкрутішого спуску в : де - рівень навчання, і якщо він великий, ви матимете відповідно велику модифікацію ваг (загалом вона не повинна бути занадто великою, інакше ви перевищуватимете місцевий мінімум у вашій вартості функції).
З метою ефективного обмеження кількості вільних параметрів у вашій моделі, щоб уникнути переналагодження, можна регулювати вартість витрат. Простий спосіб зробити це шляхом введення нульової середньої гауссової сили перед вагами, що еквівалентно зміні функції витрат на . На практиці це карає великих ваг і ефективно обмежує свободу вашої моделі. Параметр регуляризації визначає, як ви торгуєте початковою вартістю при пеналізації великих ваг.
Застосовуючи градієнтний спуск до цієї нової функції витрат, ми отримуємо: Новий термін виходить від регуляризації, призводить до того, що вага пропорційно його розміру.
Окрім відповіді @ mrig (+1), для багатьох практичних застосувань нейронних мереж краще використовувати більш просунутий алгоритм оптимізації, такий як Левенберг-Марквард (мережі малого та середнього розміру) або масштабований зменшений градієнт спуску (середній-великий мережах), оскільки вони будуть набагато швидшими, і не потрібно встановлювати швидкість навчання (обидва алгоритми по суті адаптують швидкість навчання за допомогою кривизни, а також градієнта). Будь-який гідний нейронний мережевий пакет або бібліотека матиме реалізацію одного з цих методів, будь-який пакет, який, мабуть, не є застарілим. Я використовую бібліотеку NETLAB для MATLAB, яка є чудовим комплектом.
I прості умови:
learning_rate: Він контролює, наскільки швидко чи повільно модель нейромережі дізнається проблему.
посилання: https://machinelearningmastery.com/learning-rate-for-deep-learning-neural-networks/
wight_decay: Це техніка регуляризації, що використовується для уникнення перенапруги .
посилання: https://metacademy.org/graphs/concepts/weight_decay_neural_networks