Grunderna i AI

Vad ÃĪr Backpropagation?

mm
LÃĪgg till Unite.AI bland dina fÃķredragna kÃĪllor pÃĨ Google

Vad ÃĪr Backpropagation?

Deep learning-system ÃĪr kapabla att lÃĪra sig extremt komplexa mÃķnster, och de ÃĨstadkommer detta genom att justera sina vikter. Hur justeras vikterna i ett djupt neuronnÃĪtverk exakt? De justeras genom en process som kallas backpropagation. Utan backpropagation skulle djupa neuronnÃĪtverk inte kunna utfÃķra uppgifter som att kÃĪnna igen bilder och tolka naturligt sprÃĨk. Att fÃķrstÃĨ hur backpropagation fungerar ÃĪr avgÃķrande fÃķr att fÃķrstÃĨ djupa neuronnÃĪtverk i allmÃĪnhet, sÃĨ lÃĨt oss diskutera backpropagation och se hur processen anvÃĪnds fÃķr att justera en nÃĪtverks vikter.

Backpropagation kan vara svÃĨrt att fÃķrstÃĨ, och berÃĪkningarna som anvÃĪnds fÃķr att utfÃķra backpropagation kan vara ganska komplexa. Den hÃĪr artikeln kommer att fÃķrsÃķka ge dig en intuitiv fÃķrstÃĨelse av backpropagation, med lite komplex matematik. Emellertid ÃĪr nÃĨgon diskussion om matematiken bakom backpropagation nÃķdvÃĪndig.

MÃĨlet med Backpropagation

LÃĨt oss bÃķrja med att definiera mÃĨlet med backpropagation. Vikterna i ett djupt neuronnÃĪtverk ÃĪr styrkan i anslutningarna mellan enheterna i ett neuronnÃĪtverk. NÃĪr neuronnÃĪtverket etableras gÃķrs antaganden om hur enheterna i en lager ÃĪr anslutna till de lager som ÃĪr anslutna till dem. NÃĪr data flyttar genom neuronnÃĪtverket berÃĪknas vikterna och antaganden gÃķrs. NÃĪr data nÃĨr det sista lagret i nÃĪtverket gÃķrs en fÃķrutsÃĪgelse om hur funktionerna ÃĪr relaterade till klasserna i datamÃĪngden. Skillnaden mellan de fÃķrutsagda vÃĪrdena och de faktiska vÃĪrdena ÃĪr fÃķrlusten/fel, och mÃĨlet med backpropagation ÃĪr att minska fÃķrlusten. Detta uppnÃĨs genom att justera vikterna i nÃĪtverket, vilket gÃķr antagandena mer lika de sanna relationerna mellan indatafunktionerna.

TrÃĪning av ett Djupt NeuronnÃĪtverk

Innan backpropagation kan utfÃķras pÃĨ ett neuronnÃĪtverk mÃĨste den vanliga/framÃĨtriktade trÃĪningspassen av ett neuronnÃĪtverk utfÃķras. NÃĪr ett neuronnÃĪtverk skapas initieras en uppsÃĪttning vikter. VÃĪrdet pÃĨ vikterna kommer att ÃĪndras nÃĪr nÃĪtverket trÃĪnas. Den framÃĨtriktade trÃĪningspassen av ett neuronnÃĪtverk kan ses som tre diskreta steg: neuronaktivering, neurontilldelning och framÃĨtriktad propagation.

NÃĪr du trÃĪnar ett djupt neuronnÃĪtverk mÃĨste du anvÃĪnda flera matematiska funktioner. Neuroner i ett djupt neuronnÃĪtverk bestÃĨr av inkommande data och en aktiveringsfunktion, som avgÃķr vÃĪrdet som krÃĪvs fÃķr att aktivera noden. AktiveringsvÃĪrdet fÃķr en neuron berÃĪknas med flera komponenter, vilket ÃĪr en viktad summa av indata. Vikterna och indatavÃĪrdet beror pÃĨ indexet fÃķr noderna som anvÃĪnds fÃķr att berÃĪkna aktiveringen. Ett annat nummer mÃĨste beaktas nÃĪr aktiveringsvÃĪrdet berÃĪknas, en bias-vÃĪrde. Bias-vÃĪrden varierar inte, sÃĨ de multipliceras inte med vikten och indata, de lÃĪggs bara till. Allt detta betyder att fÃķljande ekvation kan anvÃĪndas fÃķr att berÃĪkna aktiveringsvÃĪrdet:

Aktivering = summa(vikt * indata) + bias

Efter att neuronen har aktiverats anvÃĪnds en aktiveringsfunktion fÃķr att bestÃĪmma vad den faktiska utmatningen frÃĨn neuronen kommer att vara. Olika aktiveringsfunktioner ÃĪr optimala fÃķr olika inlÃĪrningsuppgifter, men vanligtvis anvÃĪnda aktiveringsfunktioner inkluderar sigmoidfunktionen, Tanh-funktionen och ReLU-funktionen.

NÃĪr utmatningarna frÃĨn neuronen har berÃĪknats genom att kÃķra aktiveringsvÃĪrdet genom den Ãķnskade aktiveringsfunktionen, ÃĪr framÃĨtriktad propagation klar. FramÃĨtriktad propagation ÃĪr bara att ta utmatningarna frÃĨn ett lager och gÃķra dem till indata fÃķr nÃĪsta lager. De nya indata anvÃĪnds sedan fÃķr att berÃĪkna de nya aktiveringsfunktionerna, och utmatningen frÃĨn denna operation skickas till fÃķljande lager. Denna process fortsÃĪtter hela vÃĪgen till slutet av neuronnÃĪtverket.

Backpropagation i NÃĪtverket

Processen med backpropagation tar emot de slutliga besluten frÃĨn en modells trÃĪningspass, och sedan bestÃĪms felen i dessa beslut. Felen berÃĪknas genom att kontrastera utmatningarna/besluten frÃĨn nÃĪtverket och de fÃķrvÃĪntade/Ãķnskade utmatningarna frÃĨn nÃĪtverket.

NÃĪr felen i nÃĪtverkets beslut har berÃĪknats, skickas denna information tillbaka genom nÃĪtverket och parametrarna i nÃĪtverket ÃĪndras lÃĪngs vÃĪgen. Metoden som anvÃĪnds fÃķr att uppdatera vikterna i nÃĪtverket baseras pÃĨ kalkyl, specifikt, det baseras pÃĨ kedjeregeln. Emellertid behÃķvs ingen fÃķrstÃĨelse av kalkyl fÃķr att fÃķrstÃĨ idÃĐn bakom backpropagation. Bara veta att nÃĪr en utmatningsvÃĪrde tillhandahÃĨlls frÃĨn en neuron, berÃĪknas lutningen pÃĨ utmatningsvÃĪrdet med en ÃķverfÃķringsfunktion, vilket producerar en hÃĪrledd utmatning. NÃĪr backpropagation utfÃķrs, berÃĪknas felet fÃķr en specifik neuron enligt fÃķljande formel:

fel = (fÃķrvÃĪntat utmatningsvÃĪrde – faktiskt utmatningsvÃĪrde) * lutning pÃĨ neuronens utmatningsvÃĪrde

NÃĪr man arbetar med neuroner i utmatningslagret, anvÃĪnds klassvÃĪrdet som det fÃķrvÃĪntade vÃĪrdet. Efter att felet har berÃĪknats, anvÃĪnds felet som indata fÃķr neuroner i det dolda lagret, vilket innebÃĪr att felet fÃķr detta dolda lager ÃĪr de viktade felen frÃĨn neuroner i utmatningslagret. FelmÃĪtningarna reser bakÃĨt genom nÃĪtverket lÃĪngs vikterna i nÃĪtverket.

Efter att felen fÃķr nÃĪtverket har berÃĪknats, mÃĨste vikterna i nÃĪtverket uppdateras. Som nÃĪmnts, berÃĪkning av felet innebÃĪr att bestÃĪmma lutningen pÃĨ utmatningsvÃĪrdet. Efter att lutningen har berÃĪknats, kan en process som kallas gradientnedstigning anvÃĪndas fÃķr att justera vikterna i nÃĪtverket. En gradient ÃĪr en lutning, vars vinkel/branthet kan mÃĪtas. Lutning berÃĪknas genom att plotta “y Ãķver” eller “stigning” Ãķver “lÃķp”. I fallet med neuronnÃĪtverket och felet, ÃĪr “y” det berÃĪknade felet, medan “x” ÃĪr nÃĪtverkets parametrar. NÃĪtverkets parametrar har ett fÃķrhÃĨllande till de berÃĪknade feletvÃĪrdena, och nÃĪr nÃĪtverkets vikter justeras, Ãķkar eller minskar felet.

“Gradientnedstigning” ÃĪr processen att uppdatera vikterna sÃĨ att felet minskar. Backpropagation anvÃĪnds fÃķr att fÃķrutsÃĪga fÃķrhÃĨllandet mellan neuronnÃĪtverkets parametrar och felet, vilket fÃķrbereder nÃĪtverket fÃķr gradientnedstigning. TrÃĪning av ett nÃĪtverk med gradientnedstigning innebÃĪr att berÃĪkna vikterna genom framÃĨtriktad propagation, backpropagera felet och sedan uppdatera vikterna i nÃĪtverket.

Blogger och programmerare med specialomrÃĨden inom Machine Learning och Deep Learning ÃĪmnen. Daniel hoppas pÃĨ att hjÃĪlpa andra att anvÃĪnda kraften frÃĨn AI fÃķr socialt vÃĪl.