Gradient Descent
Жаңыртылды November 15, 2024 3 Протокол окуу

Киришүү
Элестеткиле, бизде $f(x)$ функциясы бар жана биз анын минимумун тапкыбыз келет. Эмне кылмаксыз?
Жөнөкөй, туурабы? Бизге төмөнкү теңдемени гана чечиш керек:
$$f’(x) = 0$$
Кеп нерсе, $f’$ формуласын табуу дайыма эле оңой боло бербейт, анткени алар өтө татаал, өзгөчө терең үйрөнүүдө биз татаал функциялар менен алектенебиз. Демек, $f’$ туундусунун формуласын табууга муктаж болбостон, функциянын минимумун камсыз кыла турган башка ыкманы табышыбыз керек.
Бир аз интуиция түзөлү
Тиешелүү графиги бар f функциясы бар дейли:
$x_{0}$ кокустук чекити менен баштайлы. Максат бул чекитти жылдыруу жана аны $f’($x*$) = 0$ боло тургандай кылып $x*$га жакындатуу. Ошентип, маселени эки бөлүккө бөлүүгө болот:
-
$x$ чекитинин кайсы тарапка жылдырылышы керек? Солбу же оңбу?
-
Канча жылдырышыбыз керек?
Багыт
Биринчи суроого жооп берүү үчүн бир аз интуиция түзөлү. Төмөнкү пунктту карап көрүңүз:
Белгилей кетчү нерсе:
-
$x_{0}$ чекити оптималдуу $x*$ чекитинин оң жагында болгондо, анын тангенс сызыгы жогору көтөрүлөт.
-
$x_{0}$ чекити оптималдуу $x*$ чекитинин оң жагында болгондо, анын тангенс сызыгы төмөндөйт.
Сызыктын багыты анын эңкейиш белгиси менен аныкталат:
-
Сызыктын жогору көтөрүлүшү $\кеңешинин $a$ оң экендигин билдирет.
-
Төмөн сызык $\накайда $a$ терс болот.
Эскертүү: \
Белгилүү $x_{0}$ чекитиндеги функциянын тангенс сызыгынын эңкейиши ошол $f’(x_{0})$ чекитиндеги туундудан ашпайт:
$$ tangent(x*{0}): g(x) = f’(x*{0}).(x-x*{0}) + f(x*{0}) $$
Ошентип, “$x_{0}$ кайда жылдырышыбыз керек?” деген суроого жооп катары:
-
$f’(x_{0}) < 0$ $\implies$ $x_{0}$ $x*$ оң жагында $\implies$ Биз $x_{0}$ солго жылдырышыбыз керек.
-
$f’(x_{0}) > 0$ $\implies$ $x_{0}$ $x*$ сол жагына $\implies$ Биз $x_{0}$ оңго жылдырышыбыз керек.
Кадамдар
Эми экинчи суроого: $x_{0}$ канча жылдырышыбыз керек?
Төмөнкү мисалдарды карап көрүңүз:
Биз төмөнкүдөй жыйынтык чыгарсак болот:
-
$x_{0}$ $x*$ жакын => Тангенстин эңкейиши кичине => $f’(x_{0})$ кичине.
-
$x_{0}$ $x*$дан алыс => Тангенстин эңкейиши чоң => $f’(x_{0})$ чоң.
Эки суроого тең жооп берип, биз $x_{0}$ чекитиндеги туундуну билүү гана $x_{0}$ оптималдуу чекитинин багыты жана алыстыгы жөнүндө көп түшүнүк бере алат деген жыйынтыкка келдик.
Градиенттин түшүүсү
Градиенттин түшүүсү - бул мурунку эки суроонун жооптору. Бул $x_{0}$ кокус баштапкы чекитинен баштап функциянын минималдуу $x*$ өлчөмүнө жакындаган оптималдаштыруунун итеративдик алгоритми. Алгоритм төмөнкүчө чагылдырылган:
$$ x*{n+1} = x*{n} - lr \times \frac{\mathrm{d} f}{\mathrm{d} x_{n}} $$
кайда:
-
$ \frac{\mathrm{d} f}{\mathrm{d} x*{n}} $ $x*{n}$ чекитиндеги $f$ туундусунан көп эмес.
-
$lr$ кадамдардын канчалык чоң болорун аныктаган оң константа.
Көңүл буруңуз:
-
$x_{n}$ $x*$ оң жагында => $\frac{\mathrm{d} f}{\mathrm{d} x_{n}} > 0 $ => $ x_{n+ 1} = x_{n} - оң $ => $x_{n}$ солго жылат.
-
$x_{n}$ $x*$ сол жагында => $\frac{\mathrm{d} f}{\mathrm{d} x_{n}} < 0$ => $ x*{n +1} = x*{n} + оң $ => $x_{n}$ оңго жылат.
-
$x_{n}$ жакын $x*$ => $\frac{\mathrm{d} f}{\mathrm{d} x_{n}}$ $0$га жакын => $x_{ чейин кичине жаңыртуу n}$.
Викторина
-
Градиенттин түшүүсү итерацияны качан токтотот:
-
$x_{n}$ жетиштүү кичине болгондо.
-
$x_{n}$ $x_{0}$ жакын болгондо.
-
$\frac{\mathrm{d} f}{\mathrm{d} x_{n}} = 0 $ болгондо. ХХХ
-
$x_{0}$ кантип тандайбыз:
-
Кокус тандап алабыз. ХХХ
-
Биз аны $x_{n}$ жакын жерде алабыз.
-
Бул маселеге жараша болот.
-
Эмне үчүн бизге градиенттүү түшүү керек:
-
Анткени туундуларды эсептөөгө компьютерлердин күчү жетпейт.
-
Анткени терең үйрөнүү моделдеринин туунду формулаларын табуу өтө кыйын. ХХХ
-
Анткени функцияларда бирден ашык локалдык минимум бар.
Мастер Data Science and AI менен Code Labs Academy! Биздин онлайн окуу лагерине кошулуңуз – Ийкемдүү жарым-жартылай жана толук убакыт опциялары бар.