Чому ми просто не вивчимо гіпер параметри?


11

Я реалізовував досить популярний документ " ПОЯСНЕННЯ ТА ПІДПРИЄМСТВО ДОСЛІДНИХ ПРИКЛАДІВ ", і в роботі він тренує протиборчу цільову функцію

J '' (θ) = αJ (θ) + (1 - α) J '(θ).

Це трактує α як гіперпараметр. α може бути 0,1, 0,2, 0,3 і т.д.

Незалежно від цього конкретного документу, мені цікаво, чому ми просто не включимо α в наші параметри і не вивчимо найкращий α?

Який недолік зробити це? Це через перевитрату? Якщо так, то чому навчитися лише 1 параметру викликає стільки перевитрат?


Ну а якщо гіперпараметр є параметром функції витрат (а не процесу генерації даних DGP), не ясно, що дані самі по собі містять інформацію про нього.
kjetil b halvorsen

1
У багатьох випадках ми використовуємо дані для вибору αпереглядаючи продуктивність моделі на валідаційному наборі. (тобто проксі для помилки узагальнення.)
Vimal

Відповіді:


8

"Чому ми просто не вивчимо гіпер параметри?"

Це чудове запитання! Я спробую дати більш загальну відповідь. Відповідь TL; DR полягає в тому, що ви можете точно вивчити гіперпараметри, тільки не з тих же даних. Читайте далі для дещо детальнішої відповіді.


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

Чому в першу чергу є різниця? Типовий випадок для створення параметра гіперпараметром полягає в тому, що вивчити цей параметр з навчального набору просто не доречно. Наприклад, оскільки завжди легше знизити похибку тренувань, додавши більше нейронів, перетворення кількості нейронів у шарі на звичайний параметр завжди заохочуватиме дуже великі мережі, що нам відомо, адже це не завжди бажано (через надмірний).

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

Використовуючи ще один розкол даних (таким чином створюючи три роз'єднані частини: навчальний набір, набір валідації та тестовий набір, те, що ви могли теоретично зробити, це наступна процедура вкладеної оптимізації : у зовнішньому циклі ви намагаєтеся знайти значення для гіперпараметрів, що мінімізують втрати валідації , а у внутрішньому циклі ви намагаєтеся знайти значення для регулярних параметрів, що мінімізують втрати тренувань .

Це можливо в теорії, але дуже дорого обчислюється: кожен крок зовнішньої петлі вимагає вирішення (до завершення або десь близько до цього) внутрішнього циклу, який, як правило, важко обчислювальний. Що ще більше ускладнює те, що зовнішня проблема непроста: для одного, простір пошуку дуже великий.

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


Привіт, дякую за вашу відповідь. Що станеться, якщо я використовую ті самі дані ??
Ерін

7

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

Інший спосіб побачити це, що функція втрати - це сурогат фактичної мети, яку важко визначити або оптимізувати, наприклад "генерування вихідних зображень має виглядати реалістично" або "має бути стійким до змагальних прикладів". У цьому випадку справжня мета не «знайти гіперпараметри, щоб мінімізувати втрати сурогату», це «знайти гіперпараметри такі, що коли ми запускаємо SGD за іншими параметрами для оптимізації сурогату, ми отримуємо хороші показники на істинних об'єктивний ».


4

Оскільки ви запитували "незалежно від паперу", я хотів би взяти простіший приклад: пенізована лінійна регресія (Рідж / Лассо).

У цих випадках я можу подумати з двох причин: Але спочатку зауважте, що тут є дві функції: (F1) Функція втрати, яка є аналітичною функцією гіперпараметра та даних (у роботі, яку ви пов’язали, його J~; та (F2) - оцінка помилки генералізації, яка залежить від оптимального рішення (F1) та гіперпараметра, який ви вибрали (F1).

Caveat: Побіжний погляд на документ показує, що автори тренують класифікатор нейронної мережі для набору даних MNIST. Це прямо не говорить про те, як вибрати гіперпараметрα, але я вибрав би одного α що мінімізує помилку перевірки найкращої моделі.

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

  2. Оцінка функції (F2) вимагає вирішити оптимізаційну задачу, яка може бути дорогою. Отже, навіть якщо ви можете наблизити градієнт для F2, щоб зробити спуск градієнта, це було б дорого і повільно. У таких випадках пошук по сітці часто "досить хороший".

Сказавши це, існують методи оптимізації об'єктивних функцій чорного поля (наприклад, F2), передбачаючи деяку структуру гладкості через їх залежність від гіперпараметра. Як приклад, ви можете побачити цю публікацію, яка показує, як продуктивність моделі Лассо змінюється залежно від її гіперпараметраλ:

Продуктивність моделі Lasso

(Знімок, зроблений з цієї публікації: https://stats.stackexchange.com/a/26607/54725 )

Деякі посилання:


Ви конкретно посилаєтесь на другий член у статті J (θ, x + esign (∇xJ (θ, x, y)) як F2?
Aerin

@Aaron немає. J функція витрат; J~є функцією регульованої вартості. Оскільки вони будують класифікатор, я б сказав, що F2 може бути функцією втрати перевірки. Папір насправді говорить, що вони відібралиα бути 0,5, оскільки це спрацювало досить добре (вони не вивчали інших значень α, ні стратегія вибору α).
Vimal

Отже, що у статті ви посилаєтесь на F1 та F2?
Ерін

F1 є J~і я б використав помилку перевірки як F2. Я уточну свою відповідь, щоб уточнити це.
Vimal

1

Давайте подивимось, як виглядала б умова першого порядку, якщо ми підключимо гіперпараметр α і спробуйте дізнатися це так само, як і θ з даних:

αJ(θ)=ααJ(θ)+α(1α)J(θ)=J(θ)J(θ)=0
Отже,
J(θ)=J(θ)

Коли цей гіперпараметр оптимізований, він призведе до того, що J і J 'стануть однаковою функцією, тобто рівними вагами. Ви закінчите тривіальне рішення.

Якщо ви хочете більш загального філософствування, то врахуйте це: гіперпараметри зазвичай не пов'язані з даними. Що я маю на увазі? У нейромережі або навіть у простому регресії параметри моделі будуть певним чином взаємодіяти з даними: і так далі вниз по шарах. Ви бачите, як заплутується у ваших даних. Отже, коли ви берете похідну над будь-якою цільової функції, ви отримуєте точки даних, що вводять результат неочевидними способами в матрицю, гессі, перехресні продукти тощо.

yL=XLβL
aL=σ(yL)
XL+1=aL
βLβ

Однак якщо ви спробуєте оцінити умови першого порядку за гіперпараметрами, ви не отримаєте цього ефекту. Похідні гіперпараметрів часто оперують усіма фрагментами вашої моделі, не перетасовуючи її частини, як похідні над параметрами. Ось чому оптимізація гіперпараметрів часто призводить до банальних рішень, подібних до того, який я дав вам для конкретного документа. Оптимізація гіперпараметрів не викликає негараздів у вашому наборі даних і не робить їх досить незручним для створення чогось цікавого.

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