Stumm Wat ass Gradient Descent? - Unite.AI
Connect mat eis

AI 101

Wat ass Gradient Descent?

mm
aktualiséiert on

Wat ass e Gradient Descent?

Wann Dir gelies hutt wéi neural Netzwierker trainéiert ginn, hutt Dir bal sécher de Begrëff "gradient Ofstamung" scho begéint. Gradient Ofstamung ass déi primär Method fir d'Performance vun engem neurale Netzwierk ze optimiséieren, d'Verloscht / Feelerrate vum Netz ze reduzéieren. Wéi och ëmmer, Gradient Ofstamung kann e bësse schwéier sinn ze verstoen fir déi nei fir Maschinnléieren, an dësen Artikel wäert beméien Iech eng anstänneg Intuitioun ze ginn fir wéi Gradient Ofstamung funktionnéiert.

Gradient Ofstamung ass en Optimisatiounsalgorithmus. Et gëtt benotzt fir d'Performance vun engem neurale Netzwierk ze verbesseren andeems d'Tweaks un d'Parameteren vum Netz gemaach ginn, sou datt den Ënnerscheed tëscht de Prognosen vum Netz an den aktuellen / erwaarte Wäerter vum Netz (de Verloscht bezeechent) sou kleng wéi méiglech ass. Gradient Ofstamung hëlt déi initial Wäerter vun de Parameteren a benotzt Operatiounen baséiert am Berechnung fir hir Wäerter un d'Wäerter unzepassen, déi d'Netzwierk sou genau maachen wéi et ka sinn. Dir musst net vill Berechnung wëssen fir ze verstoen wéi Gradient Ofstamung funktionnéiert, awer Dir musst Verständnis vu Gradienten hunn.

Wat sinn Gradienten?

Ugeholl datt et eng Grafik gëtt déi de Betrag u Feeler duerstellt en neurale Netzwierk mécht. Den ënneschten Deel vun der Grafik representéiert d'Punkte vum niddregsten Feeler, während d'Spëtzt vun der Grafik ass wou de Feeler am héchsten ass. Mir wëllen vun der Spëtzt vun der Grafik erof bis ënnen réckelen. E Gradient ass just e Wee fir d'Relatioun tëscht Feeler an de Gewiichter vum neurale Netzwierk ze quantifizéieren. D'Relatioun tëscht dësen zwou Saachen kann als Hang graféiert ginn, mat falschen Gewiichter déi méi Feeler produzéieren. D'Steepheet vum Hang / Gradient representéiert wéi séier de Modell léiert.

E méi steile Steigung bedeit datt grouss Reduktioune vu Feeler gemaach ginn an de Modell léiert séier, wärend wann den Hang Null ass, ass de Modell op engem Plateau a léiert net. Mir kënnen den Hang a manner Feeler erofgoen andeems Dir e Gradient, eng Bewegungsrichtung (Ännerung vun de Parameteren vum Netz) fir eise Modell berechnen.

Loosst eis d'Metapher just e bëssen verréckelen an Iech eng Serie vun Hiwwelen an Däller virstellen. Mir wëllen op den Hiwwel kommen an deen Deel vum Dall fannen, deen den niddregsten Verloscht duerstellt. Wa mir un der Spëtzt vum Hiwwel ufänken, kënne mir grouss Schrëtt erof den Hiwwel maachen an zouversiichtlech sinn datt mir op den ënneschten Punkt am Dall fueren.

Wéi mer awer méi no un den déifste Punkt am Dall kommen, mussen eis Schrëtt méi kleng ginn, soss kënne mir de richtegen déifste Punkt iwwerschratt. Ähnlech ass et méiglech datt wann Dir d'Gewiichter vum Netz ugepasst hutt, d'Ajustementer et tatsächlech méi wäit vum Punkt vum niddregsten Verloscht kënne huelen, an dofir mussen d'Upassunge mat der Zäit méi kleng ginn. Am Kontext vun engem Hiwwel erof op e Punkt vum niddregsten Verloscht ass de Gradient e Vektor / Instruktiounen déi detailléiert de Wee dee mir huelen sollten a wéi grouss eis Schrëtt solle sinn.

Elo wësse mer datt Gradienten Instruktioune sinn, déi eis soen a wéi eng Richtung mir eis bewegen (wéi eng Koeffizienten solle aktualiséiert ginn) a wéi grouss d'Schrëtt déi mir maache solle sinn (wéi vill d'Koeffizienten solle aktualiséiert ginn), kënne mir entdecken wéi de Gradient berechent gëtt.

Berechnung vun Gradienten & Gradient Descent

Gradient Ofstamung fänkt op enger Plaz vum héije Verloscht un an duerch multiple Iteratiounen, mécht Schrëtt a Richtung vum niddregsten Verloscht, fir déi optimal Gewiichtkonfiguratioun ze fannen. Foto: Роман Сузи iwwer Wikimedia Commons, CCY BY SA 3.0 (https://commons.wikimedia.org/wiki/File:Gradient_descent_method.png)

Fir Gradient Ofstamung auszeféieren, mussen d'Gradienten als éischt berechent ginn. An der Rei den Gradient ze berechnen, Mir mussen d'Verloscht / Käschten Funktioun wëssen. Mir benotzen d'Käschtefunktioun fir d'Derivat ze bestëmmen. Am Berechnung bezitt sech d'Derivat just op den Hang vun enger Funktioun op engem bestëmmte Punkt, also berechnen mir am Fong just den Hang vum Hiwwel baséiert op de Verloscht Funktioun. Mir bestëmmen de Verloscht andeems d'Koeffizienten duerch d'Verloschtfunktioun lafen. Wa mir d'Verlustfunktioun als "f" representéieren, da kënne mir soen datt d'Gleichung fir de Verloscht ze berechnen ass wéi follegt (mir lafen just d'Koeffizienten duerch eis gewielte Käschtefunktioun):

Verloscht = f(Koeffizient)

Mir berechnen dann d'Derivat, oder bestëmmen den Hang. D'Derivat vum Verloscht ze kréien wäert eis soen wéi eng Richtung den Hang erop oder erof ass, andeems mir eis dat passende Schëld ginn fir eis Koeffizienten unzepassen. Mir representéieren déi entspriechend Richtung als "Delta".

delta = derivative_function(verloscht)

Mir hunn elo festgestallt wéi eng Richtung biergop Richtung de Punkt vum niddregsten Verloscht ass. Dëst bedeit datt mir d'Koeffizienten an den neurale Netzwierkparameter aktualiséieren an hoffentlech de Verloscht reduzéieren. Mir aktualiséieren d'Koeffizienten op Basis vun de fréiere Koeffizienten minus déi entspriechend Ännerung am Wäert wéi bestëmmt duerch d'Richtung (Delta) an en Argument dat d'Gréisst vun der Ännerung kontrolléiert (d'Gréisst vun eisem Schrëtt). D'Argument, dat d'Gréisst vum Update kontrolléiert gëtt "Léieren Taux" a mir wäerten et als "Alpha" duerstellen.

Koeffizient = Koeffizient – ​​(alpha * delta)

Mir widderhuelen dann just dëse Prozess bis d'Netzwierk ronderëm de Punkt vum niddregsten Verloscht konvergéiert ass, deen no bei Null sollt sinn.

Et ass ganz wichteg de richtege Wäert fir de Léierrate (Alpha) ze wielen. De gewielte Léierquote däerf weder ze kleng oder ze grouss sinn. Denkt drun datt wa mir de Punkt vum niddregsten Verloscht ugoen, eis Schrëtt musse méi kleng ginn oder soss wäerte mir de richtege Punkt vum niddregsten Verloscht iwwerschreiden an op der anerer Säit ophalen. De Punkt vum klengste Verloscht ass kleng a wann eisen Taux vun der Ännerung ze grouss ass, kann de Feeler um Enn erëm eropgoen. Wann d'Schrëttgréissten ze grouss sinn, wäert d'Leeschtung vum Netz weider ronderëm de Punkt vum niddregsten Verloscht sprangen, iwwerschratt et op enger Säit an dann déi aner. Wann dat passéiert, wäert d'Netz ni op déi richteg optimal Gewiichtkonfiguratioun konvergéieren.

Am Géigesaz, wann de Léierquote ze kleng ass, kann d'Netz potenziell eng aussergewéinlech laang Zäit daueren fir op déi optimal Gewiichter ze konvergéieren.

Zorte vu Gradient Ofstamung

Elo wou mir verstinn wéi Gradient Ofstamung am Allgemengen funktionnéiert, loosst eis e puer vun de verschiddene kucken Zorte vu Gradient Ofstamung.

Batch Gradient Descent: Dës Form vu Gradient Ofstamung leeft duerch all Trainingsproben ier Dir d'Koeffizienten aktualiséiert. Dës Zort vu Gradient Ofstamung ass méiglecherweis déi computationally effizient Form vu Gradient Ofstamung, well d'Gewiichter nëmmen aktualiséiert ginn nodeems de ganze Batch veraarbecht gouf, dat heescht datt et manner Updates total sinn. Wéi och ëmmer, wann den Dataset eng grouss Zuel vun Trainingsbeispiller enthält, da kann d'Batchgradient Ofstamung d'Ausbildung laang daueren.

Stochastic Gradient Descent: Am Stochastic Gradient Descent gëtt nëmmen een eenzegt Trainingsbeispill fir all Iteratioun vum Gradient Descent a Parameterupdate veraarbecht. Dëst geschitt fir all Training Beispill. Well nëmmen een Trainingsbeispill veraarbecht gëtt ier d'Parameteren aktualiséiert ginn, tendéiert et méi séier ze konvergéieren wéi Batch Gradient Descent, well Updates méi séier gemaach ginn. Wéi och ëmmer, well de Prozess op all Element am Trainingsset muss duerchgefouert ginn, kann et zimmlech laang daueren fir ze kompletéieren wann den Dataset grouss ass, an dofir eng vun den aneren Gradient-Descent-Typen benotzen wann et léiwer ass.

Mini-Batch Gradient Descent: Mini-Batch Gradient Descent funktionéiert andeems de ganze Trainingsdataset an Ënnersektiounen opgedeelt gëtt. Et erstellt méi kleng Mini-Batches déi duerch d'Netzwierk lafen, a wann de Mini-Batch benotzt gouf fir de Feeler ze berechnen, ginn d'Koeffizienten aktualiséiert. Mini-Batch Gradient Descent schloen e Mëttelstuf tëscht Stochastic Gradient Descent a Batch Gradient Descent. De Modell gëtt méi dacks aktualiséiert wéi am Fall vu Batch Gradient Descent, dat heescht e bësse méi séier a méi robust Konvergenz op den optimalen Parameteren vum Modell. Et ass och méi computationally effizient wéi Stochastic Gradient Descent

Blogger a Programméierer mat Spezialitéiten am Machine Learning an Deep Learning Themen. Den Daniel hofft anerer ze hëllefen d'Kraaft vun der AI fir sozial Gutt ze benotzen.