{"id":347723,"date":"2021-12-08T22:05:00","date_gmt":"2021-12-08T19:05:00","guid":{"rendered":"https:\/\/inform.com.de\/?p=347723"},"modified":"2021-12-07T19:36:47","modified_gmt":"2021-12-07T16:36:47","slug":"med-enkle-ord-om-komplekset-hva-er-nevrale-nettverk-skrive-et-feedforward-nevralt-nettverk-fra-bunnen-av","status":"publish","type":"post","link":"https:\/\/inform.com.de\/no\/med-enkle-ord-om-komplekset-hva-er-nevrale-nettverk-skrive-et-feedforward-nevralt-nettverk-fra-bunnen-av\/","title":{"rendered":"Med enkle ord om komplekset: hva er nevrale nettverk? Skrive et feedforward nevralt nettverk fra bunnen av."},"content":{"rendered":"<h2>Hva er et nevralt nettverk?<\/h2>\n<p>Som du vet, er hjernen v\u00e5r en kompleks ting. Koordineringen av arbeidet skjer gjennom nerveceller &#8211; nerveceller med grener som strekker seg fra dem. Sammenfletter seg med hverandre, danner nevroner et nevralt nettverk &#8211; en intrikat mekanisme som bestemmer hele mangfoldet i den menneskelige psyken. Dette er roten til v\u00e5r selvbevissthet, f\u00f8lelsen av oss som individer, styrt av v\u00e5re indre \u00f8nsker og ambisjoner.<\/p>\n<p>Hvis det oppst\u00e5r en funksjonsfeil i arbeidet med nevroner, forandrer personen seg uten anerkjennelse. Avhengig av alvorlighetsgraden av skaden, varierer endringene fra milde tegn p\u00e5 avvikende oppf\u00f8rsel til opph\u00f8r av kroppens normale funksjon. Hjerneskade er ofte d\u00f8delig.<\/p>\n<p>Men i dag vil vi ikke snakke om biologi, fordi ikke bare hjernesystemet v\u00e5rt kalles nevrale nettverk, men ogs\u00e5 et komplekst dataprogram med lignende driftsprinsipper. Som gr\u00e5 materie er det fraktal, det vil si at det best\u00e5r av mange enklere programmer som danner en slags symbiose.<\/p>\n<p>Mens det fungerer, l\u00e6rer nevrale nettverk, f\u00e5r erfaring og blir mer perfekt. Dermed har vi \u00e5 gj\u00f8re med en ekte digital organisme, som er sp\u00e5dd \u00e5 overg\u00e5 skaperen en dag.<\/p>\n<h2>Hvordan nevrale nettverk dukket opp<\/h2>\n<p>Fremveksten av konseptet med kunstige nevrale nettverk dateres tilbake til 40-tallet i forrige \u00e5rhundre. Spesielt er det knyttet til forskere McCulloch og Pitts, som pr\u00f8vde \u00e5 simulere hjernens prosesser. De foreslo ogs\u00e5 ideen om \u00e5 lage et selvl\u00e6ringssystem designet for \u00e5 utf\u00f8re forskjellige logiske operasjoner. Problemet var at datidens teknologier var langt fra dagens, og oppfinnerne klarte ikke \u00e5 realisere ideene sine fullt ut.<\/p>\n<p>(Warren McCulloch og Walter Pitts)<\/p>\n<p>Arbeidet deres ble videref\u00f8rt av den kanadiske fysiologen Donald Hebb, og i 1949 ble den f\u00f8rste algoritmen for beregning av ANN presentert for verden. I de neste ti \u00e5rene tjente den som en base for utviklingen av andre forskere, til slutt, i 1958, skapte Frank Rosenblatt parceptronen, en teknologi som etterligner hjernenes arbeid. For sin tid var denne nyheten utrolig. Sovjetiske og amerikanske forskere ble med p\u00e5 arbeidet, som ogs\u00e5 bidro betydelig til forskningen.<\/p>\n<p>P\u00e5 slutten av XX &#8211; begynnelsen av XXI \u00e5rhundre gjorde teknologien et skarpt sprang, som fungerte som et godt incitament for mer intensiv vitenskapelig aktivitet, og i 2007 kom datavitenskapsmann Jeffrey Hinton med en dyp l\u00e6ringsalgoritme for nevrale nettverk, som n\u00e5 er mye brukt i selvkj\u00f8rende biler.<\/p>\n<p><a href=\"https:\/\/inform.com.de\/wp-content\/uploads\/2021\/04\/post-190136-607bea3d9471a.jpg\" data-rel=\"lightbox-image-bGlnaHRib3g=\" data-rl_title=\"\" data-rl_caption=\"\"  title=\"\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/inform.com.de\/wp-content\/uploads\/2021\/04\/post-190136-607bea3d9471a.jpg\" alt=\"Med enkle ord om komplekset: hva er nevrale nettverk? Skrive et feedforward nevralt nettverk fra bunnen av.\" ><\/a><\/p>\n<p>(Geoffrey Hinton)<\/p>\n<h3>Litt historie<\/h3>\n<p>For f\u00f8rste gang oppstod konseptet med kunstige nevrale nettverk (ANN) n\u00e5r man pr\u00f8vde \u00e5 simulere hjernens prosesser. Det f\u00f8rste store gjennombruddet i dette omr\u00e5det kan betraktes som opprettelsen av McCulloch-Pitts nevrale nettverksmodell i 1943. Forskere utviklet f\u00f8rst en modell av et kunstig nevron. De foreslo ogs\u00e5 bygging av et nettverk av disse elementene for \u00e5 utf\u00f8re logiske operasjoner. Men viktigst av alt, forskere har bevist at et slikt nettverk er i stand til \u00e5 l\u00e6re.<\/p>\n<p><a href=\"https:\/\/inform.com.de\/wp-content\/uploads\/2021\/04\/post-190136-607bea3e7c52e.jpg\" data-rel=\"lightbox-image-bGlnaHRib3g=\" data-rl_title=\"\" data-rl_caption=\"\"  title=\"\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/inform.com.de\/wp-content\/uploads\/2021\/04\/post-190136-607bea3e7c52e.jpg\" alt=\"Med enkle ord om komplekset: hva er nevrale nettverk? Skrive et feedforward nevralt nettverk fra bunnen av.\" ><\/a><\/p>\n<p>Det neste viktige trinnet var utviklingen av Donald Hebb av den f\u00f8rste algoritmen for beregning av ANN i 1949, som ble grunnleggende de neste ti\u00e5rene. I 1958 utviklet Frank Rosenblatt parceptron, et system som etterligner hjernens prosesser. P\u00e5 en gang hadde teknologien ingen analoger og er fortsatt grunnleggende i nevrale nettverk. I 1986 forbedret amerikanske og sovjetiske forskere nesten samtidig, uavhengig av hverandre, den grunnleggende metoden for \u00e5 l\u00e6re ut <a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%9C%D0%BD%D0%BE%D0%B3%D0%BE%D1%81%D0%BB%D0%BE%D0%B9%D0%BD%D1%8B%D0%B9_%D0%BF%D0%B5%D1%80%D1%86%D0%B5%D0%BF%D1%82%D1%80%D0%BE%D0%BD_%D0%A0%D1%83%D0%BC%D0%B5%D0%BB%D1%8C%D1%85%D0%B0%D1%80%D1%82%D0%B0\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">flerlagsperseptronen betydelig<\/a>. I 2007 gjennomgikk nevrale nettverk en gjenf\u00f8delse. Britisk datavitenskapsmann <a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%A5%D0%B8%D0%BD%D1%82%D0%BE%D0%BD,_%D0%94%D0%B6%D0%B5%D1%84%D1%84%D1%80%D0%B8\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Jeffrey Hinton<\/a> utviklet f\u00f8rst en dybdel\u00e6ringsalgoritme for flerlags nevrale nettverk, som n\u00e5 for eksempel brukes til \u00e5 betjene ubemannede kj\u00f8ret\u00f8y.<\/p>\n<h3>Kort om det viktigste<\/h3>\n<p>I ordets generelle forstand er nevrale nettverk matematiske modeller som fungerer p\u00e5 prinsippet om nettverk av nerveceller i en dyreorganisme. ANN kan implementeres i b\u00e5de programmerbare og maskinvarel\u00f8sninger. For \u00e5 gj\u00f8re det lettere \u00e5 oppfatte kan en nevron forestilles som en slags celle, som har mange inngangshull og en utgang. Hvor mange innkommende signaler som dannes til den utg\u00e5ende, bestemmer beregningsalgoritmen. Effektive verdier blir matet til hver nevroninngang, som deretter forplantes langs interneuronale forbindelser (synopsis). Synapser har en parameter &#8211; vekt, p\u00e5 grunn av hvilken inngangsinformasjonen endres n\u00e5r man beveger seg fra en nevron til en annen. Den enkleste m\u00e5ten \u00e5 forestille seg hvordan nevrale nettverk fungerer, kan representeres av eksemplet p\u00e5 fargeblanding. De bl\u00e5, gr\u00f8nne og r\u00f8de nevronene har forskjellige vekter.<\/p>\n<p><a href=\"https:\/\/inform.com.de\/wp-content\/uploads\/2021\/04\/post-190136-607bea3f7db4e.png\" data-rel=\"lightbox-image-bGlnaHRib3g=\" data-rl_title=\"\" data-rl_caption=\"\" title=\"\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/inform.com.de\/wp-content\/uploads\/2021\/04\/post-190136-607bea3f7db4e.png\" alt=\"Med enkle ord om komplekset: hva er nevrale nettverk? Skrive et feedforward nevralt nettverk fra bunnen av.\" ><\/a><\/p>\n<p>Nevrale nettverket er et system av mange slike nevroner (prosessorer). Separat er disse prosessorene ganske enkle (mye enklere enn en personlig datamaskinprosessor), men n\u00e5r de er koblet til et stort system, er nevroner i stand til \u00e5 utf\u00f8re sv\u00e6rt komplekse oppgaver.<\/p>\n<p>Avhengig av bruksomr\u00e5de, kan et nevralt nettverk tolkes p\u00e5 forskjellige m\u00e5ter. For eksempel er ANN et m\u00f8nstergjenkjenningsmetode fra synspunkt maskinl\u00e6ring. Fra et matematisk synspunkt er dette et multi-parameter problem. Fra cybernetics synspunkt er det en modell for adaptiv kontroll av robotikk. For kunstig intelligens er ANN en grunnleggende komponent for modellering av naturlig intelligens ved bruk av beregningsalgoritmer.<\/p>\n<p>Den st\u00f8rste fordelen med nevrale nettverk over konvensjonelle beregningsalgoritmer er deres evne til \u00e5 l\u00e6re. I ordets generelle forstand best\u00e5r l\u00e6ring i \u00e5 finne de riktige koblingskoeffisientene mellom nevroner, samt \u00e5 generalisere data og identifisere komplekse forhold mellom inngangs- og utgangssignaler. Faktisk betyr vellykket oppl\u00e6ring av et nevralt nettverk at systemet vil v\u00e6re i stand til \u00e5 identifisere riktig resultat basert p\u00e5 data som ikke er til stede i treningssettet.<\/p>\n<h2>Anvendelse av nevrale nettverk<\/h2>\n<p>Utvalget av anvendelse av nevrale nettverk er utrolig bredt og er bare begrenset av v\u00e5r fantasi. La oss liste opp noen av dem:<\/p>\n<ul>\n<li>Automatiske transportkontrollsystemer. Autopiloter.<\/li>\n<li>Internettet. Stemmeassistenter, smarte nettlesere, oversettelsesprogrammer.<\/li>\n<li>\u00d8konomi og n\u00e6ringsliv. Prognoser for valutakurser, moderne regnskapsprogrammer, handelsroboter, risikovurderingsprogrammer, styring av produksjonsmaskiner, kvalitetskontroll, etc.<\/li>\n<li>Medisin. Moderne metoder for \u00e5 diagnostisere, analysere effektiviteten av behandlingen, behandle medisinske bilder.<\/li>\n<li>Robotikk. Ruteplanlegging, tale- og gestgjenkjenning.<\/li>\n<li>Sikkerhet. Styring av videooverv\u00e5kningssystemer og alarmer.<\/li>\n<li>Dataspill og underholdning. Smarte bots, analytiske programmer for sjakk og andre spill.<\/li>\n<li>Kunst. Oppretting av malerier, b\u00f8ker og andre kulturelle gjenstander.<\/li>\n<\/ul>\n<p><a href=\"https:\/\/inform.com.de\/wp-content\/uploads\/2021\/04\/post-190136-607bea4177889.jpg\" data-rel=\"lightbox-image-bGlnaHRib3g=\" data-rl_title=\"\" data-rl_caption=\"\" title=\"\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/inform.com.de\/wp-content\/uploads\/2021\/04\/post-190136-607bea4177889.jpg\" alt=\"Med enkle ord om komplekset: hva er nevrale nettverk? Skrive et feedforward nevralt nettverk fra bunnen av.\" ><\/a><\/p>\n<h3>Dagens situasjon<\/h3>\n<p>Og uansett hvor lovende denne teknologien ville v\u00e6re, s\u00e5 langt er ANN-er fortsatt veldig langt fra menneskets hjerne og tenkning. Ikke desto mindre brukes nevrale nettverk allerede i mange omr\u00e5der av menneskelig aktivitet. S\u00e5 langt er de ikke i stand til \u00e5 ta sv\u00e6rt intellektuelle beslutninger, men de er i stand til \u00e5 erstatte en person der han tidligere var behov for. Blant de mange omr\u00e5dene innen ANN-applikasjon kan man merke seg: opprettelsen av selvl\u00e6ringssystemer for produksjonsprosesser, ubemannede kj\u00f8ret\u00f8yer, bildegjenkjenningssystemer, intelligente sikkerhetssystemer, roboter, kvalitetsoverv\u00e5kningssystemer, grensesnitt for taleinteraksjoner, analysesystemer og mye mer. Denne utbredte bruken av nevrale nettverk skyldes blant annet fremveksten av forskjellige m\u00e5ter \u00e5 akselerere l\u00e6ringen av ANN.<\/p>\n<p>I dag er markedet for nevrale nettverk stort &#8211; det er milliarder og milliarder dollar. Som praksis viser, skiller de fleste teknologiene til nevrale nettverk rundt seg lite seg fra hverandre. Imidlertid er bruken av nevrale nettverk en veldig kostbar oppgave, som i de fleste tilfeller bare kan gis av store selskaper. For utvikling, oppl\u00e6ring og testing av nevrale nettverk kreves det stor datakraft, det er \u00e5penbart at store akt\u00f8rer i IT-markedet har nok av dette. Blant de viktigste selskapene som leder utviklingen p\u00e5 dette omr\u00e5det er Googles DeepMind-divisjon, Microsoft Research-divisjon, IBM, Facebook og Baidu.<\/p>\n<p>Selvf\u00f8lgelig er alt dette bra: nevrale nettverk utvikler seg, markedet vokser, men s\u00e5 langt er ikke hovedoppgaven l\u00f8st. Menneskeheten har ikke klart \u00e5 skape en teknologi som til og med er n\u00e6r menneskets hjerne. La oss se p\u00e5 hovedforskjellene mellom den menneskelige hjerne og kunstige nevrale nettverk.<\/p>\n<h3>Hvorfor er nevrale nettverk fremdeles langt fra den menneskelige hjerne?<\/h3>\n<p>Den viktigste forskjellen, som fundamentalt endrer systemets prinsipp og effektivitet, er forskjellig signaloverf\u00f8ring i kunstige nevrale nettverk og i det biologiske nettverket av nevroner. Faktum er at i ANN overf\u00f8rer nevroner verdier som er reelle verdier, det vil si tall. I den menneskelige hjerne overf\u00f8res impulser med en fast amplitude, og disse impulsene er nesten \u00f8yeblikkelige. Derfor er det en rekke fordeler med det menneskelige nettverket av nevroner.<\/p>\n<p><a href=\"https:\/\/inform.com.de\/wp-content\/uploads\/2021\/04\/post-190136-607bea437f470.png\" data-rel=\"lightbox-image-bGlnaHRib3g=\" data-rl_title=\"\" data-rl_caption=\"\" title=\"\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/inform.com.de\/wp-content\/uploads\/2021\/04\/post-190136-607bea437f470.png\" alt=\"Med enkle ord om komplekset: hva er nevrale nettverk? Skrive et feedforward nevralt nettverk fra bunnen av.\" ><\/a><\/p>\n<p>For det f\u00f8rste er kommunikasjonslinjer i hjernen mye mer effektive og \u00f8konomiske enn i ANN-er. For det andre s\u00f8rger impulskretsen for at teknologimplementeringen er enkel: det er nok \u00e5 bruke analoge kretser i stedet for komplekse beregningsmekanismer. Til slutt er impulsnettverk beskyttet mot akustisk interferens. Effektive tall er utsatt for st\u00f8y, noe som \u00f8ker sannsynligheten for feil.<\/p>\n<h2>Utsikter for nevrale nettverk<\/h2>\n<p>Luddite-bevegelsen begynte tidlig p\u00e5 1800-tallet. Dette ordet ble brukt for \u00e5 beskrive mennesker som deltok i protester mot urbanisering. Med industrialiseringen av samfunnet, da maskinverkt\u00f8y gradvis begynte \u00e5 erstatte arbeidere, ble mange mennesker utenfor arbeidslivet og var ekstremt misforn\u00f8yde med situasjonen. Tenk deg hvilket sjokk de ville ha opplevd hvis de fikk vite at maskinene om et par hundre \u00e5r vil kunne snakke og til og med bevege seg selvstendig!<\/p>\n<p>I mellomtiden har disse tider kommet, og i dag er det ogs\u00e5 retrograder som frykter at robotikk og utvikling av teknologi generelt kan spille en grusom vits med mennesker. Tross alt, hvis maskiner allerede er i stand til \u00e5 utf\u00f8re s\u00e5 mange oppgaver i dag, vil de i fremtiden besette alle jobber, noe som gj\u00f8r folk un\u00f8dvendige. Og denne posisjonen blir bare bekreftet av vurderingene fra eksperter som n\u00e5 og da forutsier den forest\u00e5ende forsvinningen av et bestemt yrke.<\/p>\n<p>Denne posisjonen har rett til \u00e5 eksistere, men den er ikke helt korrekt, siden over tid forsvinner ikke bare gamle yrker, men ogs\u00e5 nye dukker opp. Ja, det er en st\u00f8rrelsesorden mindre gjeter og jegere enn f\u00f8r, men programmerere og markedsf\u00f8rere har dukket opp. P\u00e5 vendepunktene i historien orienterer \u00f8konomien seg selv, lukker ut un\u00f8dvendige og gir sjener\u00f8st de etterspurte.<\/p>\n<p>Den \u00f8kende innflytelsen fra kunstige nevrale nettverk er \u00e5penbar, og det er sannsynlig at de snart vil v\u00e6re bokstavelig talt overalt, men \u00e5 v\u00e6re redd for dette betyr \u00e5 avvise selve menneskets natur, som best\u00e5r i \u00f8nsket om oppdagelse og prestasjon.<\/p>\n<h2>Opprettelse av nevrale blokker<\/h2>\n<p>F\u00f8rst m\u00e5 du bestemme hva de grunnleggende komponentene i et nevralt nettverk &#8211; <strong>nevroner<\/strong> &#8211; er. Nevronen tar inndata, utf\u00f8rer visse <strong>matematiske operasjoner med den<\/strong>, og sender deretter ut resultatet. Et nevron med to innganger ser slik ut:<\/p>\n<p><a href=\"https:\/\/inform.com.de\/wp-content\/uploads\/2021\/12\/fed4726d9a0d92019fee18550c1d79a0-1.png\" data-rel=\"lightbox-image-bGlnaHRib3g=\" data-rl_title=\"\" data-rl_caption=\"\" title=\"\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/inform.com.de\/wp-content\/uploads\/2021\/12\/fed4726d9a0d92019fee18550c1d79a0-1.png\" alt=\"Med enkle ord om komplekset: hva er nevrale nettverk? Skrive et feedforward nevralt nettverk fra bunnen av.\" ><\/a><\/p>\n<p>Tre ting skjer her. F\u00f8rst multipliseres hver inngang med vekten (vist i <strong>r\u00f8dt<\/strong> i diagrammet ):<\/p>\n<p><a href=\"https:\/\/inform.com.de\/wp-content\/uploads\/2021\/04\/post-190136-607bea460c31b.jpg\" data-rel=\"lightbox-image-bGlnaHRib3g=\" data-rl_title=\"\" data-rl_caption=\"\" title=\"\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/inform.com.de\/wp-content\/uploads\/2021\/04\/post-190136-607bea460c31b.jpg\" alt=\"Med enkle ord om komplekset: hva er nevrale nettverk? Skrive et feedforward nevralt nettverk fra bunnen av.\" ><\/a><\/p>\n<p>Deretter legges alle vektede innganger sammen med forskyvningen <code>b<\/code>(vist i <strong>gr\u00f8nt<\/strong> i diagrammet ):<\/p>\n<p><a href=\"https:\/\/inform.com.de\/wp-content\/uploads\/2021\/04\/post-190136-607bea46be05a.jpg\" data-rel=\"lightbox-image-bGlnaHRib3g=\" data-rl_title=\"\" data-rl_caption=\"\" title=\"\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/inform.com.de\/wp-content\/uploads\/2021\/04\/post-190136-607bea46be05a.jpg\" alt=\"Med enkle ord om komplekset: hva er nevrale nettverk? Skrive et feedforward nevralt nettverk fra bunnen av.\" ><\/a><\/p>\n<p>Til slutt overf\u00f8res bel\u00f8pet gjennom aktiveringsfunksjonen (markert med <strong>gult<\/strong> i diagrammet ):<\/p>\n<p><a href=\"https:\/\/inform.com.de\/wp-content\/uploads\/2021\/04\/post-190136-607bea477ea32.jpg\" data-rel=\"lightbox-image-bGlnaHRib3g=\" data-rl_title=\"\" data-rl_caption=\"\" title=\"\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/inform.com.de\/wp-content\/uploads\/2021\/04\/post-190136-607bea477ea32.jpg\" alt=\"Med enkle ord om komplekset: hva er nevrale nettverk? Skrive et feedforward nevralt nettverk fra bunnen av.\" ><\/a><\/p>\n<p>Aktiveringsfunksjonen brukes til \u00e5 koble ikke-relaterte innganger til en utgang som har en enkel og forutsigbar form. Som regel tas <a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%A1%D0%B8%D0%B3%D0%BC%D0%BE%D0%B8%D0%B4%D0%B0\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">sigmoidfunksjonen<\/a> som aktiveringsfunksjonen som brukes :<\/p>\n<p><a href=\"https:\/\/inform.com.de\/wp-content\/uploads\/2021\/04\/post-190136-607bea4848293.jpg\" data-rel=\"lightbox-image-bGlnaHRib3g=\" data-rl_title=\"\" data-rl_caption=\"\" title=\"\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/inform.com.de\/wp-content\/uploads\/2021\/04\/post-190136-607bea4848293.jpg\" alt=\"Med enkle ord om komplekset: hva er nevrale nettverk? Skrive et feedforward nevralt nettverk fra bunnen av.\" ><\/a><\/p>\n<p><strong>Sigmoid-funksjonen<\/strong> sender bare ut tall i et omr\u00e5de <code>(0, 1)<\/code>. Du kan tenke p\u00e5 det som komprimering fra <code>(\u2212\u221e, +\u221e)<\/code>til <code>(0, 1)<\/code>. Store negative tall blir <code>~0<\/code>, og store positive tall blir <code>~1<\/code>.<\/p>\n<h2>Et enkelt eksempel p\u00e5 \u00e5 jobbe med nevroner i Python<\/h2>\n<p>Anta at vi har et <strong>nevron med to innganger<\/strong> som bruker en <strong>sigmoid-aktiveringsfunksjon<\/strong> og har f\u00f8lgende parametere:<\/p>\n<p><a href=\"https:\/\/inform.com.de\/wp-content\/uploads\/2021\/04\/post-190136-607bea491789f.jpg\" data-rel=\"lightbox-image-bGlnaHRib3g=\" data-rl_title=\"\" data-rl_caption=\"\" title=\"\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/inform.com.de\/wp-content\/uploads\/2021\/04\/post-190136-607bea491789f.jpg\" alt=\"Med enkle ord om komplekset: hva er nevrale nettverk? Skrive et feedforward nevralt nettverk fra bunnen av.\" ><\/a><\/p>\n<p><code>w = [0,1]<\/code>Er bare en m\u00e5te \u00e5 skrive p\u00e5 <code>w1 = 0, w2 = 1<\/code>i vektorform. La oss tildele en inngang med en verdi til nevronet <code>x = [2, 3]<\/code>. For en mer kompakt representasjon vil <a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%A1%D0%BA%D0%B0%D0%BB%D1%8F%D1%80%D0%BD%D0%BE%D0%B5_%D0%BF%D1%80%D0%BE%D0%B8%D0%B7%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">prikkproduktet<\/a> brukes .<\/p>\n<p><a href=\"https:\/\/inform.com.de\/wp-content\/uploads\/2021\/04\/post-190136-607bea49c304f.jpg\" data-rel=\"lightbox-image-bGlnaHRib3g=\" data-rl_title=\"\" data-rl_caption=\"\" title=\"\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/inform.com.de\/wp-content\/uploads\/2021\/04\/post-190136-607bea49c304f.jpg\" alt=\"Med enkle ord om komplekset: hva er nevrale nettverk? Skrive et feedforward nevralt nettverk fra bunnen av.\" ><\/a><\/p>\n<p>Gitt at inngangen var <code>x = [2, 3]<\/code>, vil utgangen v\u00e6re lik <code>0.999<\/code>. Det er alt. Denne prosessen med \u00e5 <strong>sende inngangsdata for<\/strong> \u00e5 motta utdata kalles feedforward.<\/p>\n<h2>\u00c5 bygge et nevron fra bunnen av i Python<\/h2>\n<p>La oss begynne \u00e5 implementere nevronet. Dette vil kreve bruk av NumPy. Det er et kraftig beregnings Python-bibliotek som bruker matematiske operasjoner:<\/p>\n<table>\n<tbody>\n<tr>\n<td>\n<div>\n<p><span><span>en<\/span><\/span><\/p>\n<p><span><span>2<\/span><\/span><\/p>\n<p><span><span>3<\/span><\/span><\/p>\n<p><span><span>fire<\/span><\/span><\/p>\n<p><span><span>fem<\/span><\/span><\/p>\n<p><span><span>6<\/span><\/span><\/p>\n<p><span><span>7<\/span><\/span><\/p>\n<p><span><span>\u00e5tte<\/span><\/span><\/p>\n<p><span><span>ni<\/span><\/span><\/p>\n<p><span><span>10<\/span><\/span><\/p>\n<p><span><span>elleve<\/span><\/span><\/p>\n<p><span><span>12<\/span><\/span><\/p>\n<p><span><span>1. 3<\/span><\/span><\/p>\n<p><span><span>fjorten<\/span><\/span><\/p>\n<p><span><span>femten<\/span><\/span><\/p>\n<p><span><span>seksten<\/span><\/span><\/p>\n<p><span><span>17<\/span><\/span><\/p>\n<p><span><span>atten<\/span><\/span><\/p>\n<p><span><span>nitten<\/span><\/span><\/p>\n<p><span><span>tjue<\/span><\/span><\/p>\n<p><span><span>21<\/span><\/span><\/p>\n<p><span><span>22<\/span><\/span><\/p>\n<p><span><span>23<\/span><\/span><\/p>\n<p><span><span>24<\/span><\/span><\/p>\n<p><span><span>25<\/span><\/span><\/p>\n<p><span><span>26<\/span><\/span><\/p>\n<p><span><span>27<\/span><\/span><\/p>\n<\/div>\n<\/td>\n<td>\n<div>\n<p><span><span><span>importer <\/span><\/span><\/span><span><span><span>nummen <\/span><\/span><span><span>som <\/span><\/span><span><span>np<\/span><\/span><\/span><span><\/span><span><span><\/span><\/span><span><span><\/span><\/span><span><\/span><span><span><\/span><\/span><\/p>\n<p><span><span><span>def <\/span><\/span><\/span><span><span><span>sigmoid <\/span><\/span><span><span>( <\/span><\/span><span><span>x <\/span><\/span><span><span>) <\/span><\/span><span><span>:<\/span><\/span><\/span><span><\/span><span><span><\/span><\/span><span><span><\/span><\/span><span><span><\/span><\/span><span><span><\/span><\/span><span><span><\/span><\/span><\/p>\n<p><span><\/span><span><span><span># V\u00e5r aktiveringsfunksjon: f (x) = 1 \/ (1 + e ^ (- x))<\/span><\/span><\/span><\/p>\n<p><span><\/span><span><span><span>returner <\/span><\/span><\/span><span><span><span>1 <\/span><\/span><span><span>\/ <\/span><\/span><span><span>( <\/span><\/span><span><span>1 <\/span><\/span><span><span>+ <\/span><\/span><span><span>np <\/span><\/span><span><span>. <\/span><\/span><span><span>exp <\/span><\/span><span><span>( <\/span><\/span><span><span>&#8211; <\/span><\/span><span><span>x <\/span><\/span><span><span>) <\/span><\/span><span><span>)<\/span><\/span><\/span><span><\/span><span><span><\/span><\/span><span><\/span><span><span><\/span><\/span><span><\/span><span><span><\/span><\/span><span><span><\/span><\/span><span><\/span><span><span><\/span><\/span><span><\/span><span><span><\/span><\/span><span><span><\/span><\/span><span><span><\/span><\/span><span><span><\/span><\/span><span><span><\/span><\/span><span><span><\/span><\/span><span><span><\/span><\/span><span><span><\/span><\/span><\/p>\n<p><span><span><span>klasse <\/span><\/span><\/span><span><span><span>Neuron <\/span><\/span><span><span>:<\/span><\/span><\/span><span><\/span><span><span><\/span><\/span><span><span><\/span><\/span><\/p>\n<p><span><\/span><span><span><span>def <\/span><\/span><\/span><span><span><span>__init__ <\/span><\/span><span><span>( <\/span><\/span><span><span>selv <\/span><\/span><span><span>, <\/span><\/span><span><span>vekter <\/span><\/span><span><span>, <\/span><\/span><span><span>skjevhet <\/span><\/span><span><span>) <\/span><\/span><span><span>:<\/span><\/span><\/span><span><\/span><span><span><\/span><\/span><span><span><\/span><\/span><span><span><\/span><\/span><span><span><\/span><\/span><span><\/span><span><span><\/span><\/span><span><span><\/span><\/span><span><\/span><span><span><\/span><\/span><span><span><\/span><\/span><span><span><\/span><\/span><\/p>\n<p><span><\/span><span><span><span>selv <\/span><\/span><\/span><span><span><span>. <\/span><\/span><\/span><span><span><span>vekter <\/span><\/span><\/span><span><span><span>= <\/span><\/span><span><span>vekter<\/span><\/span><\/span><span><\/span><span><span><\/span><\/span><span><\/span><span><span><\/span><\/span><\/p>\n<p><span><\/span><span><span><span>selv <\/span><\/span><\/span><span><span><span>. <\/span><\/span><\/span><span><span><span>skjevhet <\/span><\/span><\/span><span><span><span>= <\/span><\/span><span><span>skjevhet<\/span><\/span><\/span><span><\/span><span><span><\/span><\/span><span><\/span><span><span><\/span><\/span><\/p>\n<p><span><\/span><span><span><span>def <\/span><\/span><\/span><span><span><span>feedforward <\/span><\/span><span><span>( <\/span><\/span><span><span>selv <\/span><\/span><span><span>, <\/span><\/span><span><span>innganger <\/span><\/span><span><span>) <\/span><\/span><span><span>:<\/span><\/span><\/span><span><\/span><span><span><\/span><\/span><span><span><\/span><\/span><span><span><\/span><\/span><span><span><\/span><\/span><span><\/span><span><span><\/span><\/span><span><span><\/span><\/span><span><span><\/span><\/span><\/p>\n<p><span><\/span><span><span><span># Angi vektdata, legg til forskyvning<\/span><\/span><\/span><\/p>\n<p><span><\/span><span><span><span># og p\u00e5f\u00f8lgende bruk av aktiveringsfunksjonen<\/span><\/span><\/span><\/p>\n<p><span><\/span><span><span><span>totalt <\/span><\/span><\/span><span><span><span>= <\/span><\/span><span><span>np <\/span><\/span><span><span>. <\/span><\/span><span><span>dot <\/span><\/span><span><span>( <\/span><\/span><span><span>selv <\/span><\/span><span><span>. <\/span><\/span><span><span>vekter <\/span><\/span><span><span>, <\/span><\/span><span><span>innganger <\/span><\/span><span><span>) <\/span><\/span><span><span>+ <\/span><\/span><span><span>selv <\/span><\/span><span><span>. <\/span><\/span><span><span>partiskhet<\/span><\/span><\/span><span><\/span><span><span><\/span><\/span><span><\/span><span><span><\/span><\/span><span><span><\/span><\/span><span><span><\/span><\/span><span><span><\/span><\/span><span><span><\/span><\/span><span><span><\/span><\/span><span><span><\/span><\/span><span><span><\/span><\/span><span><\/span><span><span><\/span><\/span><span><span><\/span><\/span><span><\/span><span><span><\/span><\/span><span><\/span><span><span><\/span><\/span><span><span><\/span><\/span><span><span><\/span><\/span><\/p>\n<p><span><\/span><span><span><span>retur <\/span><\/span><\/span><span><span><span>sigmoid <\/span><\/span><span><span>( <\/span><\/span><span><span>totalt <\/span><\/span><span><span>)<\/span><\/span><\/span><span><\/span><span><span><\/span><\/span><span><span><\/span><\/span><span><span><\/span><\/span><span><span><\/span><\/span><\/p>\n<p><span><span><span>vekter <\/span><\/span><\/span><span><span><span>= <\/span><\/span><span><span>np <\/span><\/span><span><span>. <\/span><\/span><span><span>matrise <\/span><\/span><span><span>( <\/span><\/span><span><span>[ <\/span><\/span><span><span>0 <\/span><\/span><span><span>, <\/span><\/span><span><span>1 <\/span><\/span><span><span>] <\/span><\/span><span><span>) <\/span><\/span><span><span># w1 = 0, w2 = 1<\/span><\/span><\/span><span><\/span><span><span><\/span><\/span><span><\/span><span><span><\/span><\/span><span><span><\/span><\/span><span><span><\/span><\/span><span><span><\/span><\/span><span><span><\/span><\/span><span><span><\/span><\/span><span><span><\/span><\/span><span><\/span><span><span><\/span><\/span><span><span><\/span><\/span><span><span><\/span><\/span><span><\/span><span><span><\/span><\/span><\/p>\n<p><span><span><span>skjevhet <\/span><\/span><\/span><span><span><span>= <\/span><\/span><span><span>4 <\/span><\/span><span><span># b = 4<\/span><\/span><\/span><span><\/span><span><span><\/span><\/span><span><\/span><span><span><\/span><\/span><span><\/span><span><span><\/span><\/span><\/p>\n<p><span><span><span>n <\/span><\/span><\/span><span><span><span>= <\/span><\/span><span><span>Neuron <\/span><\/span><span><span>( <\/span><\/span><span><span>vekter <\/span><\/span><span><span>, <\/span><\/span><span><span>skjevhet <\/span><\/span><span><span>)<\/span><\/span><\/span><span><\/span><span><span><\/span><\/span><span><\/span><span><span><\/span><\/span><span><span><\/span><\/span><span><span><\/span><\/span><span><span><\/span><\/span><span><\/span><span><span><\/span><\/span><span><span><\/span><\/span><\/p>\n<p><span><span><span>x <\/span><\/span><\/span><span><span><span>= <\/span><\/span><span><span>np <\/span><\/span><span><span>. <\/span><\/span><span><span>matrise <\/span><\/span><span><span>( <\/span><\/span><span><span>[ <\/span><\/span><span><span>2 <\/span><\/span><span><span>, <\/span><\/span><span><span>3 <\/span><\/span><span><span>] <\/span><\/span><span><span>) <\/span><\/span><span><span># x1 = 2, x2 = 3<\/span><\/span><\/span><span><\/span><span><span><\/span><\/span><span><\/span><span><span><\/span><\/span><span><span><\/span><\/span><span><span><\/span><\/span><span><span><\/span><\/span><span><span><\/span><\/span><span><span><\/span><\/span><span><span><\/span><\/span><span><\/span><span><span><\/span><\/span><span><span><\/span><\/span><span><span><\/span><\/span><span><\/span><span><span><\/span><\/span><\/p>\n<p><span><span><span>print <\/span><\/span><\/span><span><span><span>( <\/span><\/span><\/span><span><span><span>n <\/span><\/span><\/span><span><span><span>. <\/span><\/span><\/span><span><span><span>feedforward <\/span><\/span><\/span><span><span><span>( <\/span><\/span><\/span><span><span><span>x <\/span><\/span><\/span><span><span><span>) <\/span><\/span><\/span><span><span><span>) <\/span><\/span><\/span><span><span><span># 0.9990889488055994<\/span><\/span><\/span><span><\/span><span><span><\/span><\/span><\/p>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Kjenner du igjen tallene? Dette er det samme eksemplet som ble diskutert tidligere. Svaret du mottok denne gangen er ogs\u00e5 likt <code>0.999<\/code>.<\/p>\n<h2>Et eksempel p\u00e5 \u00e5 samle nevroner i et nevralt nettverk<\/h2>\n<p><strong>Et nevralt nettverk<\/strong> er egentlig en gruppe <strong>sammenkoblede nevroner<\/strong>. Et enkelt nevralt nettverk ser slik ut:<\/p>\n<p><a href=\"https:\/\/inform.com.de\/wp-content\/uploads\/2021\/12\/0e2c31c441e9cdc4eb35c1c746dc5651-1.png\" data-rel=\"lightbox-image-bGlnaHRib3g=\" data-rl_title=\"\" data-rl_caption=\"\" title=\"\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/inform.com.de\/wp-content\/uploads\/2021\/12\/0e2c31c441e9cdc4eb35c1c746dc5651-1.png\" alt=\"Med enkle ord om komplekset: hva er nevrale nettverk? Skrive et feedforward nevralt nettverk fra bunnen av.\" ><\/a><\/p>\n<p>P\u00e5 det innledende laget av nettverket er det to innganger &#8211; <code>x1<\/code>og <code>x2<\/code>. Det er to n\u00f8ytroner p\u00e5 det skjulte laget &#8211; <code>h1<\/code>og <code>h2<\/code>. Det er en nevron p\u00e5 utgangslaget &#8211; <code>\u043e1<\/code>. Merk at inngangene for <code>\u043e1<\/code>er resultatene <code>h1<\/code>og <code>h2<\/code>. Slik <strong>er nevrale nettverk bygget<\/strong>.<\/p>\n<blockquote>\n<p><strong>Et skjult lag<\/strong> er et hvilket som helst lag mellom inngangslaget og utgangslaget, som er henholdsvis det f\u00f8rste og det siste laget. Det kan v\u00e6re flere skjulte lag.<\/p>\n<\/blockquote>\n<h2>Nevrale nettverksoppl\u00e6ring<\/h2>\n<p>Utgang <strong>\u0177 fra et<\/strong> enkelt to-lags nevralt nettverk:<\/p>\n<p><a href=\"https:\/\/inform.com.de\/wp-content\/uploads\/2021\/04\/post-190136-607bea4b5814e.png\" data-rel=\"lightbox-image-bGlnaHRib3g=\" data-rl_title=\"\" data-rl_caption=\"\" title=\"\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/inform.com.de\/wp-content\/uploads\/2021\/04\/post-190136-607bea4b5814e.png\" alt=\"Med enkle ord om komplekset: hva er nevrale nettverk? Skrive et feedforward nevralt nettverk fra bunnen av.\" ><\/a><\/p>\n<p>I ovenst\u00e5ende ligning er vektene W og forspenningene b de eneste variablene som p\u00e5virker utgangen \u0177.<\/p>\n<p>Naturligvis bestemmer de riktige verdiene for vekter og forspenninger n\u00f8yaktigheten av sp\u00e5dommene. Prosessen med \u00e5 finjustere vekter og forspenninger fra inndata er kjent som neuralt nettverksoppl\u00e6ring.<\/p>\n<p>Hver iterasjon av oppl\u00e6ringsprosessen best\u00e5r av f\u00f8lgende trinn<\/p>\n<ul>\n<li>beregne den forventede utgangen \u0177 kalt forplantning<\/li>\n<li>oppdatering av vekter og skjevheter kalt backpropagation<\/li>\n<\/ul>\n<p>Den sekvensielle grafen nedenfor illustrerer prosessen:<\/p>\n<p><a href=\"https:\/\/inform.com.de\/wp-content\/uploads\/2021\/04\/post-190136-607bea4c1cc09.png\" data-rel=\"lightbox-image-bGlnaHRib3g=\" data-rl_title=\"\" data-rl_caption=\"\" title=\"\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/inform.com.de\/wp-content\/uploads\/2021\/04\/post-190136-607bea4c1cc09.png\" alt=\"Med enkle ord om komplekset: hva er nevrale nettverk? Skrive et feedforward nevralt nettverk fra bunnen av.\" ><\/a><\/p>\n<h3>Direkte distribusjon<\/h3>\n<p>Som vi s\u00e5 i grafen ovenfor, er forplantning bare en enkel beregning, og for et grunnleggende 2-lags nevralt nettverk, blir utgangen fra nevralt nettverk gitt av:<\/p>\n<p><a href=\"https:\/\/inform.com.de\/wp-content\/uploads\/2021\/04\/post-190136-607bea4b5814e.png\" data-rel=\"lightbox-image-bGlnaHRib3g=\" data-rl_title=\"\" data-rl_caption=\"\" title=\"\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/inform.com.de\/wp-content\/uploads\/2021\/04\/post-190136-607bea4b5814e.png\" alt=\"Med enkle ord om komplekset: hva er nevrale nettverk? Skrive et feedforward nevralt nettverk fra bunnen av.\" ><\/a><\/p>\n<p>La oss legge til feedforward i Python-koden v\u00e5r for \u00e5 gj\u00f8re dette. Merk at for enkelhets skyld har vi antatt at forskyvningen er 0.<\/p>\n<p>Vi trenger imidlertid en m\u00e5te \u00e5 vurdere &laquo;godheten&raquo; til prognosene v\u00e5re, det vil si hvor langt prognosene v\u00e5re er). <strong>Tapsfunksjonen<\/strong> lar oss gj\u00f8re nettopp det.<\/p>\n<h3>Tap funksjon<\/h3>\n<p>Det er mange tapsfunksjoner tilgjengelig, og problemets art b\u00f8r diktere v\u00e5rt valg av tapsfunksjon. I denne artikkelen vil vi bruke <strong>summen av kvadratene til feilene<\/strong> som tapsfunksjonen.<\/p>\n<p><a href=\"https:\/\/inform.com.de\/wp-content\/uploads\/2021\/04\/post-190136-607bea4dd5677.png\" data-rel=\"lightbox-image-bGlnaHRib3g=\" data-rl_title=\"\" data-rl_caption=\"\" title=\"\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/inform.com.de\/wp-content\/uploads\/2021\/04\/post-190136-607bea4dd5677.png\" alt=\"Med enkle ord om komplekset: hva er nevrale nettverk? Skrive et feedforward nevralt nettverk fra bunnen av.\" ><\/a><\/p>\n<p>Summen av kvadrerte feil er gjennomsnittet av forskjellen mellom hver forventet verdi og den faktiske verdien.<\/p>\n<p><strong>M\u00e5let med trening er \u00e5 finne et sett med vekter og skjevheter som minimerer tapfunksjonen.<\/strong><\/p>\n<h3>Forplantning av ryggen<\/h3>\n<p>N\u00e5 som vi har m\u00e5lt prognosefeil (tap), m\u00e5 vi finne en m\u00e5te \u00e5 <strong>overf\u00f8re feilen tilbake<\/strong> og oppdatere vekter og skjevheter.<\/p>\n<p>For \u00e5 finne ut riktig mengde for \u00e5 korrigere for vekter og skjevheter, m\u00e5 vi kjenne til derivatet av tapsfunksjonen med hensyn til vekter og skjevheter.<\/p>\n<p>Husk fra analysen at <strong>avledningen av en funksjon er tangensen til funksjonens helling.<\/strong><\/p>\n<p><a href=\"https:\/\/inform.com.de\/wp-content\/uploads\/2021\/04\/post-190136-607bea4e9fbda.png\" data-rel=\"lightbox-image-bGlnaHRib3g=\" data-rl_title=\"\" data-rl_caption=\"\" title=\"\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/inform.com.de\/wp-content\/uploads\/2021\/04\/post-190136-607bea4e9fbda.png\" alt=\"Med enkle ord om komplekset: hva er nevrale nettverk? Skrive et feedforward nevralt nettverk fra bunnen av.\" ><\/a><\/p>\n<p>Hvis vi har et derivat, kan vi bare oppdatere vekter og forspenninger ved \u00e5 \u00f8ke \/ redusere dem (se diagrammet ovenfor). Dette kalles <strong>gradientnedstigning<\/strong>.<\/p>\n<p>Imidlertid kan vi ikke direkte beregne den avledede av tapsfunksjonen med hensyn til vekter og forspenninger, siden ligningen til tapsfunksjonen ikke inneholder vekter og forspenninger. Derfor trenger vi en kjederegel for \u00e5 hjelpe til i beregningen.<\/p>\n<p><a href=\"https:\/\/inform.com.de\/wp-content\/uploads\/2021\/04\/post-190136-607bea4fe692d.png\" data-rel=\"lightbox-image-bGlnaHRib3g=\" data-rl_title=\"\" data-rl_caption=\"\" title=\"\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/inform.com.de\/wp-content\/uploads\/2021\/04\/post-190136-607bea4fe692d.png\" alt=\"Med enkle ord om komplekset: hva er nevrale nettverk? Skrive et feedforward nevralt nettverk fra bunnen av.\" ><\/a><\/p>\n<p>Fuh! Det var tungvint, men det tillot oss \u00e5 f\u00e5 det vi trenger &#8211; den avledede (helling) av tapfunksjonen med hensyn til vektene. Vi kan n\u00e5 justere vektene deretter.<\/p>\n<p>La oss legge til backpropagation-funksjonen til v\u00e5r Python-kode:<\/p>\n<h2>Delderivater<\/h2>\n<p>Delderivater kan beregnes, s\u00e5 det er kjent hva som var bidraget til feilen for hver vekt. Behovet for derivater er \u00e5penbart. Se for deg et nevralt nettverk som pr\u00f8ver \u00e5 finne den optimale hastigheten for et autonomt kj\u00f8ret\u00f8y. Hvis bilen oppdager at den g\u00e5r raskere eller langsommere enn den n\u00f8dvendige hastigheten, vil nevrale nettverk endre hastigheten, akselerere eller bremse bilen. Hva akselererer \/ bremser i dette tilfellet? Hastighetsderivater.<\/p>\n<p>La oss se p\u00e5 behovet for delvis derivater ved hjelp av et eksempel.<\/p>\n<p>Anta at barna blir bedt om \u00e5 kaste en pil mot et m\u00e5l, og sikte mot sentrum. Her er resultatene:<\/p>\n<p><a href=\"https:\/\/inform.com.de\/wp-content\/uploads\/2021\/04\/post-190136-607bea51122d6.jpg\" data-rel=\"lightbox-image-bGlnaHRib3g=\" data-rl_title=\"\" data-rl_caption=\"\" title=\"\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/inform.com.de\/wp-content\/uploads\/2021\/04\/post-190136-607bea51122d6.jpg\" alt=\"Med enkle ord om komplekset: hva er nevrale nettverk? Skrive et feedforward nevralt nettverk fra bunnen av.\" ><\/a><\/p>\n<p>N\u00e5, hvis vi finner en generell feil og bare trekker den fra alle vekter, vil vi oppsummere feilene hver har gjort. La oss si at barnet traff for lavt, men vi ber alle barn strebe etter \u00e5 treffe m\u00e5let, da vil dette f\u00f8re til f\u00f8lgende bilde:<\/p>\n<p><a href=\"https:\/\/inform.com.de\/wp-content\/uploads\/2021\/04\/post-190136-607bea51cbdd8.jpg\" data-rel=\"lightbox-image-bGlnaHRib3g=\" data-rl_title=\"\" data-rl_caption=\"\" title=\"\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/inform.com.de\/wp-content\/uploads\/2021\/04\/post-190136-607bea51cbdd8.jpg\" alt=\"Med enkle ord om komplekset: hva er nevrale nettverk? Skrive et feedforward nevralt nettverk fra bunnen av.\" ><\/a><\/p>\n<p>Feilen til flere barn kan avta, men den totale feilen \u00f8ker fortsatt.<\/p>\n<p>Etter \u00e5 ha funnet delderivatene, finner vi ut feilene som tilsvarer hver vekt separat. Hvis du selektivt korrigerer vektene, kan du f\u00e5 f\u00f8lgende:<\/p>\n<p><a href=\"https:\/\/inform.com.de\/wp-content\/uploads\/2021\/04\/post-190136-607bea528fe3a.jpg\" data-rel=\"lightbox-image-bGlnaHRib3g=\" data-rl_title=\"\" data-rl_caption=\"\" title=\"\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/inform.com.de\/wp-content\/uploads\/2021\/04\/post-190136-607bea528fe3a.jpg\" alt=\"Med enkle ord om komplekset: hva er nevrale nettverk? Skrive et feedforward nevralt nettverk fra bunnen av.\" ><\/a><\/p>\n<h2>Hyperparametere<\/h2>\n<p>Et nevralt nettverk brukes til \u00e5 automatisere funksjonsvalg, men noen parametere konfigureres manuelt.<\/p>\n<h3>L\u00e6ringsgrad<\/h3>\n<p>L\u00e6ringsgrad er et veldig viktig hyperparameter. Hvis l\u00e6ringsgraden er for lav, selv etter \u00e5 ha trent nevrale nettverk i lang tid, vil det v\u00e6re langt fra optimale resultater. Resultatene vil se ut slik:<\/p>\n<p><a href=\"https:\/\/inform.com.de\/wp-content\/uploads\/2021\/04\/post-190136-607bea534e6eb.jpg\" data-rel=\"lightbox-image-bGlnaHRib3g=\" data-rl_title=\"\" data-rl_caption=\"\" title=\"\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/inform.com.de\/wp-content\/uploads\/2021\/04\/post-190136-607bea534e6eb.jpg\" alt=\"Med enkle ord om komplekset: hva er nevrale nettverk? Skrive et feedforward nevralt nettverk fra bunnen av.\" ><\/a><\/p>\n<p>P\u00e5 den annen side, hvis l\u00e6ringsgraden er for h\u00f8y, vil nettverket svare veldig raskt. Resultatet er f\u00f8lgende:<\/p>\n<p><a href=\"https:\/\/inform.com.de\/wp-content\/uploads\/2021\/04\/post-190136-607bea540f66b.jpg\" data-rel=\"lightbox-image-bGlnaHRib3g=\" data-rl_title=\"\" data-rl_caption=\"\" title=\"\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/inform.com.de\/wp-content\/uploads\/2021\/04\/post-190136-607bea540f66b.jpg\" alt=\"Med enkle ord om komplekset: hva er nevrale nettverk? Skrive et feedforward nevralt nettverk fra bunnen av.\" ><\/a><\/p>\n<h2>Dype nevrale nettverk<\/h2>\n<p>Dyp l\u00e6ring er en klasse maskinl\u00e6ringsalgoritmer som l\u00e6rer \u00e5 forst\u00e5 data dypere (mer abstrakt). Popul\u00e6re algoritmer for dyp l\u00e6ring nevrale nettverk er presentert i diagrammet nedenfor.<\/p>\n<p><a href=\"https:\/\/inform.com.de\/wp-content\/uploads\/2021\/04\/post-190136-607bea55368b9.png\" data-rel=\"lightbox-image-bGlnaHRib3g=\" data-rl_title=\"\" data-rl_caption=\"\" title=\"\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/inform.com.de\/wp-content\/uploads\/2021\/04\/post-190136-607bea55368b9.png\" alt=\"Med enkle ord om komplekset: hva er nevrale nettverk? Skrive et feedforward nevralt nettverk fra bunnen av.\" ><\/a><\/p>\n<p>Popul\u00e6re algoritmer for nevrale nettverk (<a href=\"http:\/\/www.asimovinstitute.org\/neural-network-zoo\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">http:\/\/www.asimovinstitute.org\/neural-network-zoo<\/a> )<\/p>\n<p>Mer formelt i dyp l\u00e6ring:<\/p>\n<ul>\n<li>En kaskade (r\u00f8rledning, som en sekvensielt overf\u00f8rt str\u00f8m) av en rekke behandlingslag (ikke-line\u00e6r) brukes til \u00e5 trekke ut og transformere funksjoner;<\/li>\n<li>Basert p\u00e5 studiet av funksjoner (presentasjon av informasjon) i data uten veiledet l\u00e6ring. Funksjonene p\u00e5 h\u00f8yere niv\u00e5 (som er i de siste lagene) oppn\u00e5s fra funksjonene p\u00e5 lavere niv\u00e5 (som er i lagene til de f\u00f8rste lagene);<\/li>\n<li>Utforsker lagviste visninger som tilsvarer forskjellige abstraksjonsniv\u00e5er; niv\u00e5er danner et presentasjonshierarki.<\/li>\n<\/ul>\n<h2>Tren det nevrale nettverket ved hjelp av XOR-funksjoner<\/h2>\n<p>Hvorfor er XOR-funksjonen s\u00e5 interessant? Rett og slett fordi den ikke kan oppn\u00e5s av en nevron: 0 ^ 0 = 0, 0 ^ 1 = 1, 1 ^ 0 = 1, 1 ^ 1 = 0. Den oppn\u00e5s imidlertid enkelt ved \u00e5 \u00f8ke antall nevroner. Vi vil pr\u00f8ve \u00e5 trene et nettverk med 3 nevroner i det skjulte laget og 1 utgang (siden vi bare har en utgang). For \u00e5 gj\u00f8re dette m\u00e5 vi lage en rekke X- og Y-vektorer med treningsdata og selve nevrale nettverk:<\/p>\n<pre><code>\/\/ \u043c\u0430\u0441\u0441\u0438\u0432 \u0432\u0445\u043e\u0434\u043d\u044b\u0445 \u043e\u0431\u0443\u0447\u0430\u044e\u0449\u0438\u0445 \u0432\u0435\u043a\u0442\u043e\u0440\u043e\u0432 Vector[] X = { new Vector(0, 0), new Vector(0, 1), new Vector(1, 0), new Vector(1, 1) }; \/\/ \u043c\u0430\u0441\u0441\u0438\u0432 \u0432\u044b\u0445\u043e\u0434\u043d\u044b\u0445 \u043e\u0431\u0443\u0447\u0430\u044e\u0449\u0438\u0445 \u0432\u0435\u043a\u0442\u043e\u0440\u043e\u0432 Vector[] Y = { new Vector(0.0), \/\/ 0 ^ 0 = 0 new Vector(1.0), \/\/ 0 ^ 1 = 1 new Vector(1.0), \/\/ 1 ^ 0 = 1 new Vector(0.0) \/\/ 1 ^ 1 = 0 }; Network network = new Network(new int[]{2, 3, 1}); \/\/ \u0441\u043e\u0437\u0434\u0430\u0451\u043c \u0441\u0435\u0442\u044c \u0441 \u0434\u0432\u0443\u043c\u044f \u0432\u0445\u043e\u0434\u0430\u043c\u0438, \u0442\u0440\u0435\u043c\u044f \u043d\u0435\u0439\u0440\u043e\u043d\u0430\u043c\u0438 \u0432 \u0441\u043a\u0440\u044b\u0442\u043e\u043c \u0441\u043b\u043e\u0435 \u0438 \u043e\u0434\u043d\u0438\u043c \u0432\u044b\u0445\u043e\u0434\u043e\u043c <\/code><\/pre>\n<p>Deretter begynner vi \u00e5 trene med f\u00f8lgende parametere: l\u00e6ringsrate &#8211; 0,5, antall epoker &#8211; 100000, feilverdi &#8211; 1e-7:<\/p>\n<pre><code>network.Train(X, Y, 0.5, 1e-7, 100000); \/\/ \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0435 \u0441\u0435\u0442\u0438 <\/code><\/pre>\n<p>Etter trening, la oss se p\u00e5 resultatene ved \u00e5 utf\u00f8re et direkte pass for alle elementene:<\/p>\n<pre><code>for (int i = 0; i <\/code><\/pre>\n<div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Opptakskilde:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/lastici.ru\" class=\"external external_icon\">lastici.ru<\/a><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Vi snakker om nevrale nettverk: enkel presentasjon av kompleks informasjon slik at selv et barn kan forst\u00e5. Vi studerer grunnlaget og dykker ned i temaet fra bunnen av.<\/p>\n","protected":false},"author":1,"featured_media":413743,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[432,259,323,333,289,168,366],"tags":[],"class_list":["post-347723","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-datamaskin","category-diverse-2","category-for-kvinner","category-for-menn","category-teknologier","category-undersokelser","category-virksomhet"],"_links":{"self":[{"href":"https:\/\/inform.com.de\/no\/wp-json\/wp\/v2\/posts\/347723","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/inform.com.de\/no\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/inform.com.de\/no\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/inform.com.de\/no\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/inform.com.de\/no\/wp-json\/wp\/v2\/comments?post=347723"}],"version-history":[{"count":0,"href":"https:\/\/inform.com.de\/no\/wp-json\/wp\/v2\/posts\/347723\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/inform.com.de\/no\/wp-json\/wp\/v2\/media\/413743"}],"wp:attachment":[{"href":"https:\/\/inform.com.de\/no\/wp-json\/wp\/v2\/media?parent=347723"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/inform.com.de\/no\/wp-json\/wp\/v2\/categories?post=347723"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/inform.com.de\/no\/wp-json\/wp\/v2\/tags?post=347723"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}