Дипам Васани

29 април 2019 г. · 4 минути четене

Въведение

В предишната си статия споменах, че увеличаването на данните помага на моделите за дълбоко обучение да се обобщават добре. Това беше от страна на данните на нещата. Ами моделната страна на нещата? Какво можем да направим, докато обучаваме нашите модели, което ще им помогне да се обобщават още по-добре.

нарича

Параметри на модел

Започваме с разглеждането на изображението по-горе. Виждаме, че имаме куп точки от данни и че не можем да ги съберем добре с права линия. Следователно използваме полином от 2-ра степен, за да го направим. Също така забелязваме, че ако увеличим степента на полинома отвъд определена точка, тогава нашият модел става твърде сложен и започва да се пренастройва.

Това означава, че за да се предотврати прекаленото монтиране, не трябва да позволяваме на нашите модели да станат твърде сложни. За съжаление, това доведе до погрешно схващане в дълбокото обучение, че не бива да използваме много параметри (за да предпазим моделите си от прекалено сложни).

Произход на разпадането на теглото

На първо място, данните от реалния свят няма да бъдат толкова прости, колкото показаните по-горе. Данните от реалния свят са сложни и за да решим сложни проблеми, се нуждаем от сложни решения.

Наличието на по-малко параметри е само един от начините да предотвратим прекалено сложния модел. Но всъщност това е много ограничаваща стратегия. Повече параметри означават повече взаимодействия между различни части на нашата невронна мрежа. И повече взаимодействия означават повече нелинейности. Тези нелинейности ни помагат да решаваме сложни проблеми.

Не искаме обаче тези взаимодействия да излязат извън контрол. Следователно, какво ще стане, ако накажем сложността. Все още ще използваме много параметри, но ще предотвратим прекалено сложния модел. Така се появи идеята за намаляване на теглото.

Виждаме намаляване на теглото в статията ми за съвместно филтриране. Всъщност всеки обучаван в библиотеката на fastai има параметър, наречен намаляване на теглото.

Това нещо се нарича разпадане на теглото

Един от начините да накажем сложността е да добавим всички наши параметри (тегла) към нашата функция за загуби. Е, това няма да работи, защото някои параметри са положителни, а други отрицателни. И така, ако добавим квадратите на всички параметри към нашата функция за загуби. Можем да направим това, но това може да доведе до загуба, която става толкова голяма, че най-добрият модел ще бъде да зададем всички параметри на 0.

За да предотвратим това, умножаваме сумата на квадратите с друго по-малко число. Това число се нарича намаляване на теглото или wd.

Нашата функция за загуби сега изглежда по следния начин:

Когато актуализираме тежести, използвайки градиентно спускане, правим следното:

Сега, тъй като нашата функция за загуби има 2 термина, производната на втория член w.r.t w ще бъде:

Това е отсега нататък, ние не само ще извадим градиента на скоростта на обучение * от тежестите, но и 2 * wd * w. Изваждаме константа, умножена по теглото от първоначалното тегло. Ето защо се нарича разпадане на теглото.

Решаване на стойността на wd

Като цяло wd = 0,1 работи доста добре. Хората от фастаи обаче бяха малко консервативни в това отношение. Следователно стойността по подразбиране за намаляване на теглото в fastai всъщност е 0,01 .

Причината да изберете тази стойност е, защото ако имате прекалено много намаляване на теглото, независимо от това колко тренирате, моделът никога не се вписва достатъчно добре, докато ако имате твърде малко намаляване на теглото, пак можете да тренирате добре, просто трябва спрете малко по-рано.

Демонстрирах тази концепция в този тетрадка jupyter.

Това е многокласен (а не многоетикетен) проблем с класификацията, при който се опитваме да предскажем класа на растителните разсад.

Използвал съм 3 стойности за намаляване на теглото, 0,01 по подразбиране, най-добрата стойност 0,1 и голяма стойност 10. В първия случай нашият модел отнема повече епохи, за да се побере. Във втория случай той работи най-добре, а в последния случай никога не се вписва добре дори след 10 епохи. (вж. разлика в черно-бяло обучение и загуба на валидиране.)

Това ще бъде всичко за тази статия. Можете да научите за други техники за регулиране тук.

Ако искате да научите повече за дълбокото обучение, разгледайте поредицата ми статии за тях: