Si të konfiguroni telefonat inteligjentë dhe PC. Portali informativ
  • në shtëpi
  • Windows 7, XP
  • Rrjetet nervore funksionojnë. Me fjalë të thjeshta për kompleksin: çfarë janë rrjetet nervore

Rrjetet nervore funksionojnë. Me fjalë të thjeshta për kompleksin: çfarë janë rrjetet nervore

Inteligjenca artificiale, rrjetet nervore, mësimi i makinerive - çfarë nënkuptojnë në të vërtetë të gjitha këto koncepte të njohura? Për pjesën më të madhe të njerëzve të pa iniciuar, që jam unë vetë, gjithmonë dukeshin si diçka fantastike, por në fakt thelbi i tyre qëndron në sipërfaqe. Prej kohësh kisha një ide për të shkruar në gjuhë të thjeshtë për rrjetet nervore artificiale. Mësoni vetë dhe tregoni të tjerëve se çfarë është kjo teknologji, si funksionon, merrni parasysh historinë dhe perspektivat e saj. Në këtë artikull, u përpoqa të mos hyja në xhungël, por thjesht dhe në mënyrë popullore të tregoja për këtë drejtim premtues në botën e teknologjive të larta.

Inteligjenca artificiale, rrjetet nervore, mësimi i makinerive - çfarë nënkuptojnë në të vërtetë të gjitha këto koncepte të njohura? Për shumicën e njerëzve të pa iniciuar, siç jam unë vetë, ata gjithmonë dukeshin si diçka fantastike, por në fakt, thelbi i tyre qëndron në sipërfaqe. Prej kohësh kisha një ide për të shkruar në gjuhë të thjeshtë për rrjetet nervore artificiale. Mësoni vetë dhe tregoni të tjerëve se çfarë është kjo teknologji, si funksionon, merrni parasysh historinë dhe perspektivat e saj. Në këtë artikull, u përpoqa të mos hyja në xhungël, por thjesht dhe në mënyrë popullore të tregoja për këtë drejtim premtues në botën e teknologjive të larta.

Pak histori

Për herë të parë, koncepti i rrjeteve nervore artificiale (ANN) lindi kur u përpoq të simulonte proceset e trurit. Zbulimi i parë i madh në këtë fushë mund të konsiderohet krijimi i modelit të rrjetit nervor McCulloch-Pitts në 1943. Shkencëtarët fillimisht zhvilluan një model të një neuroni artificial. Ata propozuan gjithashtu ndërtimin e një rrjeti të këtyre elementeve për të kryer operacione logjike. Por më e rëndësishmja, shkencëtarët kanë vërtetuar se një rrjet i tillë është i aftë për të mësuar.

Hapi tjetër i rëndësishëm ishte zhvillimi nga Donald Hebb i algoritmit të parë për llogaritjen e ANN në 1949, i cili u bë themelor për disa dekadat e ardhshme. Në vitin 1958, Frank Rosenblatt zhvilloi parceptronin, një sistem që imiton proceset e trurit. Në një kohë, teknologjia nuk kishte analoge dhe është ende thelbësore në rrjetet nervore. Në vitin 1986, praktikisht njëkohësisht, pavarësisht nga njëri-tjetri, shkencëtarët amerikanë dhe sovjetikë përmirësuan ndjeshëm metodën themelore të mësimit të perceptronit me shumë shtresa. Në vitin 2007, rrjetet nervore pësuan një rilindje. Shkencëtari britanik i kompjuterave, Jeffrey Hinton, ishte pionier i një algoritmi të të mësuarit të thellë për rrjetet nervore me shumë shtresa, i cili tani, për shembull, përdoret për të operuar makina vetë-drejtuese.

Shkurtimisht për gjënë kryesore

Në kuptimin e përgjithshëm të fjalës, rrjetet nervore janë modele matematikore që funksionojnë në parimin e rrjeteve të qelizave nervore në një organizëm të kafshëve. ANN-të mund të zbatohen si në zgjidhjet e programueshme ashtu edhe në ato harduerike. Për lehtësinë e perceptimit, një neuron mund të imagjinohet si një qelizë e caktuar, e cila ka shumë vrima hyrëse dhe një vrimë dalëse. Sa shumë sinjale hyrëse formohen në ato dalëse përcakton algoritmin e llogaritjes. Vlerat efektive i jepen çdo hyrjeje të një neuroni, të cilat më pas përhapen përgjatë lidhjeve ndërneuronale (përmbledhje). Sinapset kanë një parametër - peshë, për shkak të së cilës informacioni i hyrjes ndryshon kur lëviz nga një neuron në tjetrin. Mënyra më e lehtë për të imagjinuar se si funksionojnë rrjetet nervore mund të përfaqësohet nga shembulli i përzierjes së ngjyrave. Neuronet blu, jeshile dhe të kuqe kanë pesha të ndryshme. Informacioni i atij neuroni, pesha e të cilit do të jetë më dominuese në neuronin e ardhshëm.

Vetë rrjeti nervor është një sistem i shumë neuroneve (përpunuesve) të tillë. Individualisht, këta procesorë janë mjaft të thjeshtë (shumë më i thjeshtë se një procesor kompjuteri personal), por kur lidhen në një sistem të madh, neuronet janë të afta të kryejnë detyra shumë komplekse.

Në varësi të zonës së aplikimit, një rrjet nervor mund të interpretohet në mënyra të ndryshme. Për shembull, nga pikëpamja e mësimit të makinerisë, një ANN është një metodë e njohjes së modelit. Nga pikëpamja matematikore, ky është një problem me shumë parametra. Nga pikëpamja e kibernetikës, është një model i kontrollit adaptiv të robotikës. Për inteligjencën artificiale, ANN është një komponent themelor për modelimin e inteligjencës natyrore duke përdorur algoritme llogaritëse.

Avantazhi kryesor i rrjeteve nervore ndaj algoritmeve konvencionale të llogaritjes është aftësia e tyre për të mësuar. Në kuptimin e përgjithshëm të fjalës, të mësuarit konsiston në gjetjen e koeficientëve të saktë të bashkimit midis neuroneve, si dhe në përgjithësimin e të dhënave dhe identifikimin e varësive komplekse midis sinjaleve hyrëse dhe dalëse. Në fakt, trajnimi i suksesshëm i një rrjeti nervor do të thotë që sistemi do të jetë në gjendje të identifikojë rezultatin e saktë bazuar në të dhënat që nuk janë të pranishme në grupin e trajnimit.

Situata e sotme

Dhe pa marrë parasysh se sa premtuese do të ishte kjo teknologji, deri tani ANN-të janë ende shumë larg aftësive të trurit dhe të menduarit njerëzor. Megjithatë, rrjetet nervore tashmë po përdoren në shumë fusha të veprimtarisë njerëzore. Deri më tani, ata nuk janë në gjendje të marrin vendime shumë intelektuale, por janë në gjendje të zëvendësojnë një person aty ku kishte nevojë më parë. Ndër fushat e shumta të aplikimit ANN, mund të vërehet: krijimi i sistemeve të vetë-mësimit të proceseve të prodhimit, automjeteve pa pilot, sistemeve të njohjes së imazhit, sistemeve inteligjente të sigurisë, robotikës, sistemeve të monitorimit të cilësisë, ndërfaqeve të ndërveprimit zanor, sistemeve analitike dhe shumë më tepër. Një përdorim i tillë i përhapur i rrjeteve nervore është, ndër të tjera, për shkak të shfaqjes së mënyrave të ndryshme për të përshpejtuar mësimin e ANN.

Sot tregu për rrjetet nervore është i madh - është miliarda e miliarda dollarë. Siç tregon praktika, shumica e teknologjive të rrjeteve nervore në mbarë botën ndryshojnë pak nga njëra-tjetra. Megjithatë, përdorimi i rrjeteve nervore është një ushtrim shumë i kushtueshëm, i cili në shumicën e rasteve mund të përballohet vetëm nga kompanitë e mëdha. Për zhvillimin, trajnimin dhe testimin e rrjeteve nervore, kërkohet fuqi e madhe llogaritëse, është e qartë se lojtarët e mëdhenj në tregun e IT-së kanë mjaft nga kjo. Ndër kompanitë kryesore që udhëheqin zhvillimin në këtë fushë janë Google DeepMind, Microsoft Research, IBM, Facebook dhe Baidu.

Sigurisht, e gjithë kjo është e mirë: rrjetet nervore po zhvillohen, tregu po rritet, por deri më tani detyra kryesore nuk është zgjidhur. Njerëzimi ka dështuar të krijojë një teknologji që është edhe afër në aftësi me trurin e njeriut. Le të hedhim një vështrim në ndryshimet kryesore midis trurit të njeriut dhe rrjeteve nervore artificiale.

Pse rrjetet nervore janë ende larg trurit të njeriut?

Dallimi më i rëndësishëm që ndryshon rrënjësisht parimin dhe efikasitetin e sistemit është transmetimi i ndryshëm i sinjalit në rrjetet nervore artificiale dhe në rrjetin biologjik të neuroneve. Fakti është se në ANN, neuronet transmetojnë vlera që janë vlera reale, domethënë numra. Në trurin e njeriut transmetohen impulse me amplitudë fikse dhe këto impulse janë pothuajse të menjëhershme. Prandaj, ka një sërë avantazhesh për rrjetin njerëzor të neuroneve.

Së pari, linjat e komunikimit në tru janë shumë më efikase dhe ekonomike sesa në ANN. Së dyti, qarku i impulsit siguron thjeshtësinë e zbatimit të teknologjisë: mjafton të përdoren qarqe analoge në vend të mekanizmave komplekse llogaritëse. Në fund të fundit, rrjetet e impulsit mbrohen nga ndërhyrja akustike. Numrat e vlefshëm janë të prirur ndaj zhurmës, gjë që rrit gjasat e gabimeve.

Rezultati

Sigurisht, në dekadën e fundit, ka pasur një bum të vërtetë në zhvillimin e rrjeteve nervore. Kjo është kryesisht për shkak të faktit se procesi mësimor i ANN është bërë shumë më i shpejtë dhe më i lehtë. Gjithashtu, filluan të zhvillohen në mënyrë aktive të ashtuquajturat rrjete nervore "të para-trajnuara", të cilat mund të përshpejtojnë ndjeshëm procesin e zbatimit të teknologjisë. Dhe nëse është shumë herët të thuhet nëse një ditë rrjetet nervore do të jenë në gjendje të riprodhojnë plotësisht aftësitë e trurit të njeriut, gjasat që në dekadën e ardhshme ANN-të të jenë në gjendje të zëvendësojnë njerëzit në një të katërtën e profesioneve ekzistuese po bëhen gjithnjë e më shumë. si e vërteta.

Për ata që duan të dinë më shumë

  • Lufta e madhe nervore: Çfarë po bën vërtet Google
  • Si kompjuterët njohës mund të ndryshojnë të ardhmen tonë
Algoritmet, Mësimi i Makinerisë

Mirë se vini në pjesën e dytë të tutorialit të rrjetit nervor. Thjesht dua të kërkoj falje për të gjithë ata që e kanë pritur pjesën e dytë shumë më herët. Për disa arsye, më duhej ta shtyja ta shkruaja. Në fakt, nuk e prisja që artikulli i parë të kishte një kërkesë të tillë dhe që kaq shumë njerëz të interesoheshin për këtë temë. Duke marrë parasysh komentet tuaja, do të përpiqem t'ju jap sa më shumë informacion dhe në të njëjtën kohë të ruaj mënyrën e paraqitjes sa më të qartë. Në këtë artikull, unë do të flas për mënyrat për të trajnuar / trajnuar rrjetet nervore (në veçanti, metodën e përhapjes së pasme) dhe nëse, për ndonjë arsye, nuk e keni lexuar pjesën e parë, ju rekomandoj fuqimisht të filloni me të. Në procesin e shkrimit të këtij artikulli, doja të flisja edhe për llojet e tjera të rrjeteve nervore dhe metodat e trajnimit, megjithatë, duke filluar të shkruaj për to, kuptova se kjo do të shkonte kundër metodës sime të prezantimit. Unë e kuptoj që ju jeni të etur për të marrë sa më shumë informacion, por këto tema janë shumë të gjera dhe kërkojnë analiza të hollësishme dhe detyra ime kryesore nuk është të shkruaj një artikull tjetër me një shpjegim sipërfaqësor, por t'ju përcjell çdo aspekt të temës. të ngritura dhe ta bëjnë artikullin sa më të lehtë.zhvillimi. Unë nxitoj të mërzit ata që duan të "kodojnë", pasi ende nuk do të përdor gjuhën e programimit dhe do të shpjegoj gjithçka në gishta. Mjaft nga hyrja, le të vazhdojmë tani studimin tonë të rrjeteve nervore.

Çfarë është një neuron zhvendosje?


Para se të fillojmë temën tonë kryesore, duhet të prezantojmë konceptin e një lloji tjetër neuroni - neuroni i zhvendosjes. Neuroni i paragjykimit ose neuroni i paragjykimit është lloji i tretë i neuronit i përdorur në shumicën e rrjeteve nervore. E veçanta e këtij lloji neuroni është se hyrja dhe dalja e tij janë gjithmonë të barabarta me 1 dhe nuk kanë asnjëherë sinapse hyrëse. Neuronet e zhvendosjes ose mund të jenë të pranishëm në rrjetin nervor një nga një në një shtresë, ose të mungojnë plotësisht, 50/50 nuk mund të jenë (peshat dhe neuronet që nuk mund të vendosen tregohen me të kuqe në diagram). Lidhjet për neuronet e zhvendosjes janë të njëjta si për neuronet e zakonshme - me të gjithë neuronet e nivelit tjetër, përveç që nuk mund të ketë sinapse midis dy neuroneve të paragjykimit. Prandaj, ato mund të vendosen në shtresën hyrëse dhe të gjitha shtresat e fshehura, por jo në shtresën dalëse, pasi thjesht nuk kanë asgjë për të krijuar lidhje.

Për çfarë shërben një neuron paragjykim?



Neuroni i zhvendosjes është i nevojshëm në mënyrë që të jetë në gjendje të marrë një rezultat dalës duke zhvendosur grafikun e funksionit të aktivizimit djathtas ose majtas. Nëse kjo tingëllon konfuze, le të shohim një shembull të thjeshtë ku ka një neuron hyrës dhe një neuron dalës. Pastaj mund të vërtetohet se dalja O2 do të jetë e barabartë me hyrjen H1 të shumëzuar me peshën e saj dhe do të kalojë përmes funksionit të aktivizimit (formula në foton në të majtë). Në rastin tonë të veçantë, ne do të përdorim një sigmoid.

Nga kursi i matematikës shkollore, ne e dimë se nëse marrim funksionin y = ax + b dhe ndryshojmë vlerat e tij "a", atëherë pjerrësia e funksionit do të ndryshojë (ngjyrat e vijave në grafikun në të majtë) , dhe nëse ndryshojmë "b", atëherë do ta zhvendosim funksionin djathtas ose majtas (ngjyrat e vijave në grafikun në të djathtë). Pra, "a" është pesha e H1, dhe "b" është pesha e neuronit të paragjykimit B1. Ky është një shembull i përafërt, por kështu funksionon (nëse shikoni funksionin e aktivizimit në të djathtë në imazh, do të vini re një ngjashmëri shumë të fortë midis formulave). Kjo do të thotë, kur, gjatë stërvitjes, ne rregullojmë peshat e neuroneve të fshehura dhe të daljes, ne ndryshojmë pjerrësinë e funksionit të aktivizimit. Sidoqoftë, rregullimi i peshës së neuroneve të paragjykimit mund të na japë mundësinë për të zhvendosur funksionin e aktivizimit përgjatë boshtit X dhe për të kapur zona të reja. Me fjalë të tjera, nëse pika përgjegjëse për zgjidhjen tuaj gjendet, siç tregohet në grafikun në të majtë, atëherë rrjeti juaj nervor nuk do të jetë kurrë në gjendje ta zgjidhë problemin pa përdorur neuronet e paragjykimit. Prandaj, rrallë gjeni rrjete nervore pa neurone paragjykimesh.

Gjithashtu, neuronet e paragjykimit ndihmojnë në rastin kur të gjithë neuronet hyrëse marrin 0 si hyrje dhe pavarësisht peshës që kanë, ata do të transferojnë gjithçka në shtresën tjetër 0, por jo në rastin e pranisë së një neuroni të paragjykimit. Prania ose mungesa e neuroneve të paragjykimit është një hiperparametër (më shumë për këtë më vonë). Me pak fjalë, ju vetë duhet të vendosni nëse keni nevojë të përdorni neuronet e paragjykimit ose jo duke drejtuar rrjetin nervor me dhe pa përzier neurone dhe duke krahasuar rezultatet.

E RËNDËSISHME kini parasysh se ndonjëherë në diagrame ato nuk tregojnë neurone të paragjykimit, por thjesht marrin parasysh peshat e tyre kur llogaritni vlerën e hyrjes, për shembull:

Hyrja = H1 * w1 + H2 * w2 + b3
b3 = paragjykim * w3

Meqenëse prodhimi i tij është gjithmonë 1, thjesht mund të imagjinojmë se kemi një sinapsë shtesë me një peshë dhe ta shtojmë këtë peshë në shumë pa përmendur vetë neuronin.

Si ta detyroni Asamblenë Kombëtare të japë përgjigje të sakta?

Përgjigja është e thjeshtë - ju duhet ta stërvitni atë. Megjithatë, sado e thjeshtë të jetë përgjigja, zbatimi i saj në aspektin e thjeshtësisë lë shumë për të dëshiruar. Ekzistojnë disa metoda për mësimin e rrjeteve nervore dhe unë do të veçoj 3, për mendimin tim, më interesantet:
  • Metoda e përhapjes së pasme
  • Përhapja elastike (Rprop)
  • Algoritmi Gjenetik
Rprop dhe GA do të diskutohen në artikuj të tjerë, por tani do të hedhim një vështrim në bazat themelore - metodën e përhapjes së pasme, e cila përdor algoritmin e zbritjes së gradientit.

Çfarë është zbritja e gradientit?

Kjo është një mënyrë për të gjetur minimumin ose maksimumin lokal të një funksioni duke lëvizur përgjatë gradientit. Pasi të kuptoni thelbin e zbritjes së gradientit, nuk duhet të keni pyetje gjatë përdorimit të metodës së përhapjes së pasme. Së pari, le të kuptojmë se çfarë është një gradient dhe ku është i pranishëm në rrjetin tonë nervor. Le të ndërtojmë një grafik ku boshti x do të jetë vlerat e peshës së neuronit (w) dhe boshti y do të jetë gabimi që korrespondon me këtë peshë (e).


Duke parë këtë grafik, do të kuptojmë se grafiku i funksionit f (w) është varësia e gabimit nga pesha e zgjedhur. Në këtë grafik, ne jemi të interesuar për minimumin global - pika (w2, e2) ose, me fjalë të tjera, vendi ku grafiku i afrohet më shumë boshtit x. Kjo pikë do të thotë që duke zgjedhur peshën w2 do të marrim gabimin më të vogël - e2 dhe, si pasojë, rezultatin më të mirë të mundshëm. Metoda e zbritjes së gradientit do të na ndihmojë të gjejmë këtë pikë (gradienti tregohet me të verdhë në grafik). Prandaj, çdo peshë në rrjetin nervor do të ketë grafikun dhe gradientin e vet, dhe secila duhet të gjejë një minimum global.

Pra, çfarë është ky gradient? Një gradient është një vektor që përcakton pjerrësinë e një pjerrësie dhe tregon drejtimin e saj në lidhje me ndonjë nga pikat në sipërfaqe ose grafik. Për të gjetur gradientin, duhet të merrni derivatin e grafikut në një pikë të caktuar (siç tregohet në grafik). Duke lëvizur në drejtim të këtij gradienti, ne do të rrëshqasim pa probleme në ultësira. Tani, imagjinoni se gabimi është një skiator dhe grafiku i funksionit është një mal. Prandaj, nëse gabimi është 100%, atëherë skiatori është në majë të malit, dhe nëse gabimi është 0%, atëherë në ultësirë. Ashtu si të gjithë skiatorët, insekti tenton të zbresë sa më shpejt që të jetë e mundur dhe të ulë vlerën e tij. Në fund, duhet të marrim rezultatin e mëposhtëm:


Imagjinoni që një skiator po hidhet me helikopter në një mal. Sa e lartë ose e ulët varet nga rasti (ngjashëm me mënyrën se si në një rrjet nervor, gjatë inicializimit, peshat caktohen rastësisht). Le të themi se gabimi është 90% dhe kjo është pika jonë e fillimit. Tani skiatori duhet të zbresë duke përdorur një gradient. Rrugës poshtë, në çdo pikë do të llogarisim një gradient që do të na tregojë drejtimin e zbritjes dhe, kur pjerrësia të ndryshojë, do ta rregullojmë atë. Nëse pjerrësia është e drejtë, atëherë pas numrit të n-të të veprimeve të tilla do të arrijmë në ultësirë. Por në shumicën e rasteve pjerrësia (grafiku i funksionit) do të jetë me onde dhe skiatori ynë do të përballet me një problem shumë serioz - një minimum lokal. Unë mendoj se të gjithë e dinë se cili është minimumi lokal dhe global i një funksioni, këtu është një shembull për të rifreskuar kujtesën tuaj. Hyrja në një minimum lokal është e mbushur me faktin se skiatori ynë do të mbetet përgjithmonë në këtë ultësirë ​​dhe nuk do të rrëshqasë kurrë poshtë malit, prandaj, ne kurrë nuk do të jemi në gjendje të marrim përgjigjen e saktë. Por ne mund ta shmangim këtë duke e pajisur skiatorin tonë me një jetpack të quajtur momentum. Këtu është një ilustrim i shpejtë i momentit:

Siç ndoshta e keni marrë me mend tashmë, ky çanta do t'i japë skiatorit përshpejtimin e nevojshëm për të kapërcyer kodrën që na mban në një minimum lokal, por ka një POR. Le të imagjinojmë se kemi vendosur një vlerë të caktuar për parametrin e momentit dhe mund të kapërcejmë lehtësisht të gjitha minimumet lokale dhe të arrijmë në minimumin global. Meqenëse thjesht nuk mund ta fikim jetpack-in, mund të kalojmë minimumin global nëse ka ende ultësira pranë tij. Në rastin e fundit, kjo nuk është aq e rëndësishme, pasi herët a vonë ne do të kthehemi përsëri në minimumin global, por ia vlen të kujtojmë se sa më i madh të jetë momenti, aq më i madh është lëkundje me të cilën skiatori do të hipë në ultësira. Së bashku me momentin, metoda e përhapjes së pasme përdor gjithashtu një parametër të tillë si shpejtësia e të mësuarit. Siç do të mendojnë shumë, sa më i lartë të jetë shkalla e të mësuarit, aq më shpejt do të trajnojmë rrjetin nervor. Nr. Shkalla e të mësuarit, si momenti, është një hiperparametër - një vlerë që zgjidhet përmes provës dhe gabimit. Shpejtësia e të mësuarit mund të lidhet drejtpërdrejt me shpejtësinë e skiatorit dhe është e sigurt të thuhet se do të vazhdoni më qetë. Sidoqoftë, ka edhe disa aspekte këtu, pasi nëse nuk i japim fare shpejtësi skiatorit, atëherë ai nuk do të shkojë askund, dhe nëse japim një shpejtësi të ulët, atëherë koha e udhëtimit mund të zgjatet për një kohë shumë të gjatë. periudhë kohore. Çfarë ndodh atëherë nëse japim shumë shpejtësi?


Siç mund ta shihni, asgjë e mirë. Skiatori do të fillojë të rrëshqasë në rrugën e gabuar dhe ndoshta edhe në drejtimin tjetër, gjë që, siç e kuptoni, vetëm sa do të na largojë nga gjetja e përgjigjes së duhur. Prandaj, në të gjithë këta parametra është e nevojshme të gjendet një mesatare e artë në mënyrë që të shmanget moskonvergjenca e NN (më shumë për këtë më vonë).

Çfarë është një metodë e përhapjes së pasme (MPA)?

Pra, kemi ardhur në pikën ku mund të diskutojmë se si të sigurohemi që rrjeti juaj nervor mund të mësojë saktë dhe të japë vendimet e duhura. MOP është dhënë shumë mirë në këtë GIF:


Tani le të hedhim një vështrim më të afërt në secilën fazë. Nëse ju kujtohet se në artikullin e mëparshëm kemi konsideruar rezultatin e Asamblesë Kombëtare. Në një mënyrë tjetër, kjo quhet kalim përpara, domethënë, ne transmetojmë në mënyrë sekuenciale informacionin nga neuronet hyrëse në neuronet dalëse. Pas kësaj, ne llogarisim gabimin dhe në bazë të tij bëjmë një postback, i cili konsiston në ndryshimin sekuencial të peshave të rrjetit nervor, duke filluar me peshat e neuronit dalës. Peshat do të ndryshojnë në drejtimin që na jep rezultatin më të mirë. Në llogaritjet e mia, unë do të përdor metodën e gjetjes së deltës, pasi kjo është mënyra më e thjeshtë dhe më e kuptueshme. Do të përdor gjithashtu metodën stokastike për përditësimin e peshave (më shumë për këtë më vonë).

Tani le të vazhdojmë aty ku i lamë llogaritjet në artikullin e mëparshëm.

Këto detyra nga artikulli i mëparshëm


Të dhënat: I1 = 1, I2 = 0, w1 = 0,45, w2 = 0,78, w3 = -0,12, w4 = 0,13, w5 = 1,5, w6 = -2,3.

Hyrja H1 = 1 * 0,45 + 0 * -0,12 = 0,45
Prodhimi H1 = sigmoid (0,45) = 0,61

Hyrja H2 = 1 * 0,78 + 0 * 0,13 = 0,78
Prodhimi H2 = sigmoid (0,78) = 0,69

Hyrja O1 = 0,61 * 1,5 + 0,69 * -2,3 = -0,672
O1 dalje = sigmoid (-0,672) = 0,33

O1ideal = 1 (0xor1 = 1)

Gabim = ((1-0,33) ^ 2) /1=0,45

Rezultati është 0.33, gabimi është 45%.


Meqenëse tashmë kemi llogaritur rezultatin e NN dhe gabimin e tij, ne mund të kalojmë menjëherë në MPA. Siç e përmenda më herët, algoritmi gjithmonë fillon me neuronin e daljes. Në atë rast, le të llogarisim vlerën për të? (delta) sipas formulës 1.

Meqenëse neuroni i daljes nuk ka sinapse dalëse, ne do të përdorim formulën e parë (? Output), prandaj, për neuronet e fshehura, tashmë do të marrim formulën e dytë (? Fshehur). Gjithçka është mjaft e thjeshtë këtu: ne llogarisim ndryshimin midis rezultatit të dëshiruar dhe rezultatit të marrë dhe shumëzojmë me derivatin e funksionit të aktivizimit nga vlera hyrëse e neuronit të dhënë. Para fillimit të llogaritjeve, dua të tërheq vëmendjen tuaj te derivati. Së pari, siç ndoshta tashmë u bë e qartë, vetëm ato funksione aktivizimi që mund të diferencohen duhet të përdoren me MOP. Së dyti, për të mos bërë llogaritje të panevojshme, formula e derivatit mund të zëvendësohet me një formulë më miqësore dhe më të thjeshtë të formës:


Kështu, llogaritjet tona për pikën O1 do të duken kështu.

Zgjidhje

O1 dalje = 0,33
O1 ideal = 1
Gabim = 0.45

O1 = (1 - 0,33) * ((1 - 0,33) * 0,33) = 0,148


Kjo plotëson llogaritjet për neuronin O1. Mos harroni se pas llogaritjes së deltës së një neuroni, ne duhet të përditësojmë menjëherë peshat e të gjitha sinapseve dalëse të këtij neuroni. Meqenëse ato mungojnë në rastin e O1, ne shkojmë te neuronet e nivelit latent dhe bëjmë të njëjtën gjë, përveç që tani kemi formulën e dytë për llogaritjen e deltës dhe thelbi i saj është të shumëzojmë derivatin e funksionit të aktivizimit nga hyrja. vlera nga shuma e produkteve të të gjitha peshave dalëse dhe delta e neuronit me të cilin lidhet kjo sinapsë. Por pse formulat janë të ndryshme? Çështja është se e gjithë qëllimi i MOR është të përhapë gabimin e neuroneve dalëse në të gjitha peshat e rrjetit nervor. Gabimi mund të llogaritet vetëm në nivelin e daljes, siç kemi bërë tashmë, kemi llogaritur edhe deltën në të cilën tashmë ekziston ky gabim. Rrjedhimisht, tani në vend të një gabimi, ne do të përdorim një delta që do të transmetohet nga neuroni në neuron. Në atë rast, le të gjejmë deltën për H1:

Zgjidhje

Prodhimi H1 = 0,61
w5 = 1,5
O1 = 0,148

H1 = ((1 - 0,61) * 0,61) * (1,5 * 0,148) = 0,053


Tani duhet të gjejmë gradientin për çdo sinapsë dalëse. Këtu, ata zakonisht futin një fraksion 3-katësh me një mori derivatesh dhe ferr tjetër matematikor, por kjo është bukuria e përdorimit të metodës së numërimit delta, sepse në fund të fundit formula juaj për gjetjen e gradientit do të duket si kjo:

Këtu pika A është pika në fillim të sinapsit dhe pika B është në fund të sinapsit. Kështu, ne mund të llogarisim gradientin w5 si më poshtë:

Zgjidhje

Prodhimi H1 = 0,61
O1 = 0,148

GRADw5 = 0,61 * 0,148 = 0,09


Tani kemi të gjitha të dhënat e nevojshme për të përditësuar peshën w5 dhe këtë do ta bëjmë falë funksionit MOP, i cili llogarit sasinë me të cilën duhet të ndryshohet një ose një tjetër peshë dhe duket kështu:


Unë rekomandoj fuqimisht që të mos e injoroni pjesën e dytë të shprehjes dhe të përdorni momentin pasi kjo do t'ju lejojë të shmangni problemet me minimumin lokal.

Këtu shohim 2 konstante për të cilat kemi folur tashmë kur kemi marrë parasysh algoritmin e zbritjes së gradientit: E (epsilon) - shkalla e të mësuarit,? (alfa) - moment. Duke e përkthyer formulën në fjalë, marrim: ndryshimi në peshën e sinapsit është i barabartë me koeficientin e shkallës së mësimit të shumëzuar me gradientin e kësaj peshe, shtoni momentin e shumëzuar me ndryshimin e mëparshëm në këtë peshë (në përsëritjen e parë është e barabartë me 0). Në këtë rast, le të llogarisim ndryshimin në peshën w5 dhe të përditësojmë vlerën e tij duke i shtuar?

Zgjidhje

E = 0.7
? = 0.3
w5 = 1,5
GRADw5 = 0,09
w5 (i-1) = 0

W5 = 0,7 * 0,09 + 0 * 0,3 = 0,063
w5 = w5 + w5 = 1,563


Kështu, pas aplikimit të algoritmit, pesha jonë u rrit me 0.063. Tani ju sugjeroj të bëni të njëjtën gjë për H2.

Zgjidhje

Prodhimi H2 = 0,69
w6 = -2,3
O1 = 0,148
E = 0.7
? = 0.3
w6 (i-1) = 0

H2 = ((1 - 0,69) * 0,69) * (-2,3 * 0,148) = -0,07

GRADw6 = 0,69 * 0,148 = 0,1

W6 = 0,7 * 0,1 + 0 * 0,3 = 0,07

W6 = w6 + W6 = -2.2


Dhe sigurisht, mos harroni për I1 dhe I2, sepse ato gjithashtu kanë sinapse të peshës të cilat ne gjithashtu duhet t'i përditësojmë. Sidoqoftë, mbani mend se nuk kemi nevojë të gjejmë delta për neuronet hyrëse, pasi ato nuk kanë sinapse hyrëse.

Zgjidhje

w1 = 0,45, w1 (i-1) = 0
w2 = 0,78, w2 (i-1) = 0
w3 = -0,12, w3 (i-1) = 0
w4 = 0,13, w4 (i-1) = 0
H1 = 0,053
H2 = -0,07
E = 0.7
? = 0.3

GRADw1 = 1 * 0,053 = 0,053
GRADw2 = 1 * -0.07 = -0.07
GRADw3 = 0 * 0,053 = 0
GRADw4 = 0 * -0,07 = 0

W1 = 0,7 * 0,053 + 0 * 0,3 = 0,04
? w2 = 0,7 * -0,07 + 0 * 0,3 = -0,05
w3 = 0,7 * 0 + 0 * 0,3 = 0
w4 = 0,7 * 0 + 0 * 0,3 = 0

W1 = w1 + W1 = 0,5
w2 = w2 + w2 = 0,73
w3 = w3 + w3 = -0,12
w4 = w4 + w4 = 0,13


Tani le të sigurohemi që kemi bërë gjithçka në mënyrë korrekte dhe përsëri të llogarisim daljen e rrjetit nervor vetëm me peshat e përditësuara.

Zgjidhje

I1 = 1
I2 = 0
w1 = 0,5
w2 = 0,73
w3 = -0,12
w4 = 0,13
w5 = 1,563
w6 = -2,2

Hyrja H1 = 1 * 0,5 + 0 * -0,12 = 0,5
Prodhimi H1 = sigmoid (0,5) = 0,62

Hyrja H2 = 1 * 0,73 + 0 * 0,124 = 0,73
Prodhimi H2 = sigmoid (0,73) = 0,675

Hyrja O1 = 0,62 * 1,563 + 0,675 * -2,2 = -0,51
O1 dalje = sigmoid (-0,51) = 0,37

O1ideal = 1 (0xor1 = 1)

Gabim = ((1-0,37) ^ 2) /1=0,39

Rezultati është 0.37, gabimi është 39%.


Siç mund ta shohim pas një përsëritjeje të MPA-së, ne arritëm ta zvogëlojmë gabimin me 0.04 (6%). Tani ju duhet ta përsërisni këtë pa pushim derisa gabimi juaj të jetë mjaft i vogël.

Çfarë tjetër duhet të dini për procesin e të mësuarit?

Një rrjet nervor mund të mësohet me ose pa një mësues (të mësuarit e mbikëqyrur, pa mbikëqyrje).

Mësimi i mbikëqyrur- Ky është lloji i trajnimit i natyrshëm në probleme të tilla si regresioni dhe klasifikimi (e kemi përdorur në shembullin e mësipërm). Me fjalë të tjera, këtu ju veproni si mësues dhe NS si student. Ju jepni të dhënat hyrëse dhe rezultatin e dëshiruar, domethënë, studenti, duke parë të dhënat hyrëse, do të kuptojë se ai duhet të përpiqet për rezultatin që i keni dhënë.

Të mësuarit pa mësues- ky lloj trajnimi nuk është aq i zakonshëm. Këtu nuk ka mësues, kështu që rrjeti nuk merr rezultatin e dëshiruar, ose numri i tyre është shumë i vogël. Në thelb, ky lloj trajnimi është i natyrshëm në rrjetet nervore në të cilat detyra është të grupohen të dhënat sipas parametrave të caktuar. Le të themi se ju dorëzoni 10,000 artikuj në Habré dhe pasi t'i analizoni të gjithë këta nene, Asambleja Kombëtare do të jetë në gjendje t'i kategorizojë ato bazuar, për shembull, në fjalët që ndodhin shpesh. Artikuj që përmendin gjuhët e programimit, programimin dhe ku fjalë si Photoshop, dizajn.

Ekziston edhe një metodë kaq interesante si të mësuarit përforcues(të mësuarit përforcues). Kjo metodë meriton një artikull të veçantë, por unë do të përpiqem të përshkruaj shkurtimisht thelbin e saj. Kjo metodë është e zbatueshme kur ne mundemi, bazuar në rezultatet e marra nga Asambleja Kombëtare, t'i japim një vlerësim. Për shembull, ne duam ta mësojmë Asamblenë Kombëtare të luajë PAC-MAN, atëherë sa herë që Asambleja Kombëtare do të fitojë shumë pikë, ne do ta inkurajojmë atë. Me fjalë të tjera, ne i japim të drejtën SK-së të gjejë çdo mënyrë për të arritur qëllimin, për aq kohë sa jep një rezultat të mirë. Në këtë mënyrë, rrjeti do të fillojë të kuptojë se çfarë duan të arrijnë prej tij dhe përpiqet të gjejë mënyrën më të mirë për të arritur këtë qëllim pa sigurimin e vazhdueshëm të të dhënave nga "mësuesi".

Gjithashtu, trajnimi mund të kryhet duke përdorur tre metoda: metodë stokastike, metodë grumbull dhe metodë mini-batch. Ka kaq shumë artikuj dhe studime atje se cila metodë është më e mira, dhe askush nuk mund të dalë me një përgjigje të përgjithshme. Unë jam mbështetës i metodës stokastike, por nuk e mohoj faktin që secila metodë ka të mirat dhe të këqijat e veta.

Shkurtimisht për secilën metodë:

Stokastike(nganjëherë quhet edhe në internet) metoda funksionon sipas parimit të mëposhtëm - u gjet? w, përditësoni menjëherë peshën përkatëse.

Metoda e grupit funksionon ndryshe. Ne përmbledhim W të të gjitha peshave në përsëritjen aktuale dhe vetëm atëherë përditësojmë të gjitha peshat duke përdorur këtë shumë. Një nga avantazhet më të rëndësishme të kësaj qasjeje është kursimi i konsiderueshëm në kohën e llogaritjes, ndërkohë që saktësia mund të ndikohet rëndë në këtë rast.

Metoda mini grumbullështë mesatarja e artë dhe përpiqet të kombinojë avantazhet e të dyja metodave. Këtu parimi është si vijon: ne shpërndajmë lirisht peshat midis grupeve dhe ndryshojmë peshën e tyre me shumën W të të gjitha peshave në një ose një grup tjetër.

Çfarë janë hiperparametrat?

Hiperparametrat janë vlera që duhet të zgjidhen manualisht dhe shpesh me provë dhe gabim. Ndër këto vlera janë:
  • Momenti dhe shpejtësia e të mësuarit
  • Numri i shtresave të fshehura
  • Numri i neuroneve në secilën shtresë
  • Prania ose mungesa e neuroneve të zhvendosjes
Në llojet e tjera të rrjeteve nervore ka hiperparametra shtesë, por ne nuk do të flasim për to. Zgjedhja e hiperparametrave të duhur është shumë e rëndësishme dhe do të ndikojë drejtpërdrejt në konvergjencën e rrjetit tuaj nervor. Të kuptuarit nëse duhet të përdoren neuronet e paragjykimit apo jo është mjaft e lehtë. Numri i shtresave dhe neuroneve të fshehura në to mund të llogaritet me forcë brutale bazuar në një rregull të thjeshtë - sa më shumë neurone, aq më i saktë është rezultati dhe në mënyrë eksponenciale më shumë kohë do të shpenzoni për stërvitjen e tij. Sidoqoftë, ia vlen të kujtojmë se nuk duhet të krijoni një rrjet nervor me 1000 neurone për të zgjidhur probleme të thjeshta. Por me zgjedhjen e momentit dhe shpejtësinë e të mësuarit, gjithçka është pak më e ndërlikuar. Këta hiperparametra do të ndryshojnë, në varësi të detyrës dhe arkitekturës së rrjetit nervor. Për shembull, për zgjidhjen XOR, shkalla e të mësuarit mund të jetë në intervalin 0.3 - 0.7, por në një rrjet nervor që analizon dhe parashikon çmimin e aksioneve, një normë mësimi më e lartë se 0.00001 çon në konvergjencë të dobët të rrjetit nervor. Ju nuk duhet të përqendroheni në hiperparametrat tani dhe të përpiqeni të kuptoni plotësisht se si t'i zgjidhni ato. Kjo do të vijë me përvojë, por tani për tani ju këshilloj që thjesht të eksperimentoni dhe të kërkoni shembuj të zgjidhjes së një problemi të veçantë në rrjet.

Çfarë është konvergjenca?



Konvergjenca tregon nëse arkitektura e rrjetit nervor është e saktë dhe nëse hiperparametrat janë zgjedhur saktë në përputhje me detyrën në fjalë. Le të themi se programi ynë nxjerr një gabim NS në çdo përsëritje në regjistër. Nëse gabimi zvogëlohet me çdo përsëritje, atëherë ne jemi në rrugën e duhur dhe rrjeti ynë nervor po konvergon. Nëse gabimi kërcen lart e poshtë ose ngrin në një nivel të caktuar, atëherë NN nuk konvergon. Në 99% të rasteve, kjo zgjidhet duke ndryshuar hiperparametrat. 1% e mbetur do të thotë se keni një gabim në arkitekturën e rrjetit nervor. Ndodh gjithashtu që konvergjenca të ndikohet nga rikualifikimi i rrjetit nervor.

Çfarë është rikualifikimi?

Mbi përshtatja, siç sugjeron emri, është gjendja e një rrjeti nervor kur ai është i mbingopur me të dhëna. Ky problem lind nëse kërkon shumë kohë për të trajnuar rrjetin në të njëjtat të dhëna. Me fjalë të tjera, rrjeti do të fillojë të mos mësojë nga të dhënat, por t'i memorizojë dhe "mbushë" ato. Prandaj, kur tashmë dorëzoni të dhëna të reja në hyrjen e këtij rrjeti nervor, zhurma mund të shfaqet në të dhënat e marra, gjë që do të ndikojë në saktësinë e rezultatit. Për shembull, nëse i tregojmë NA foto të ndryshme të mollëve (vetëm ato të kuqe) dhe themi se kjo është një mollë. Pastaj, kur NS shikon një mollë të verdhë ose jeshile, nuk do të jetë në gjendje të përcaktojë se ajo është një mollë, pasi ajo kujtoi se të gjitha mollët duhet të jenë të kuqe. Anasjelltas, kur NS sheh diçka të kuqe dhe formën e një molle, si pjeshkë, do të thotë se është një mollë. Kjo është zhurmë. Në grafik, zhurma do të duket kështu.


Mund të shihet se grafiku i funksionit luhatet shumë nga pika në pikë, të cilat janë prodhimi (rezultati) i rrjetit tonë nervor. Idealisht, ky grafik duhet të jetë më pak i valëzuar dhe më pak i drejtë. Për të shmangur mbipërshtatjen, nuk duhet të stërvitni NN për një kohë të gjatë në të njëjtat të dhëna ose shumë të ngjashme. Gjithashtu, mbipërshtatja mund të shkaktohet nga një numër i madh parametrash që ju i jepni hyrjes së rrjetit nervor ose nga një arkitekturë shumë komplekse. Kështu, kur vëreni gabime (zhurmë) në dalje pas fazës së trajnimit, atëherë duhet të përdorni një nga metodat e rregullimit, por në shumicën e rasteve kjo nuk do të jetë e nevojshme.

konkluzioni

Shpresoj se ky artikull ishte në gjendje të sqaronte pikat kyçe të një teme kaq të vështirë si Rrjetet Neurale. Sidoqoftë, besoj se sado artikuj të lexoni, është e pamundur të zotëroni një temë kaq komplekse pa praktikë. Prandaj, nëse jeni vetëm në fillim të udhëtimit dhe dëshironi të studioni këtë industri premtuese dhe në zhvillim, atëherë ju këshilloj të filloni të praktikoni duke shkruar rrjetin tuaj nervor dhe vetëm pas kësaj të përdorni korniza dhe biblioteka të ndryshme. Gjithashtu, nëse jeni të interesuar për metodën time të paraqitjes së informacionit dhe dëshironi që unë të shkruaj artikuj mbi tema të tjera që lidhen me Mësimin e Makinerisë, atëherë votoni në sondazhin më poshtë për temën që ju intereson. Shihemi në artikujt e ardhshëm :)

Prandaj, rrjeti nervor merr dy numra si hyrje dhe duhet të japë një numër tjetër në dalje - përgjigjen. Tani për vetë rrjetet nervore.

Çfarë është një rrjet nervor?


Një rrjet nervor është një sekuencë e neuroneve të lidhura nga sinapset. Struktura e rrjetit nervor erdhi në botën e programimit direkt nga biologjia. Falë kësaj strukture, makina fiton aftësinë për të analizuar dhe madje memorizuar informacione të ndryshme. Rrjetet nervore janë gjithashtu në gjendje jo vetëm të analizojnë informacionin në hyrje, por edhe ta riprodhojnë atë nga kujtesa e tyre. Për të interesuarit, sigurohuni që të shikoni 2 video nga TED Talks: Video 1 , Video 2). Me fjalë të tjera, një rrjet nervor është një interpretim makinerie i trurit të njeriut, i cili përmban miliona neurone që transmetojnë informacion në formën e impulseve elektrike.

Çfarë janë rrjetet nervore?

Tani për tani, ne do të shqyrtojmë shembuj për llojin më themelor të rrjeteve nervore - ky është një rrjet i informacionit përpara (në tekstin e mëtejmë FNS). Gjithashtu në artikujt vijues do të prezantoj më shumë koncepte dhe do t'ju tregoj për rrjetet nervore të përsëritura. DSS, siç nënkupton edhe emri, është një rrjet me një lidhje serike të shtresave nervore, në të cilën informacioni shkon gjithmonë vetëm në një drejtim.

Për çfarë shërbejnë rrjetet nervore?

Rrjetet nervore përdoren për të zgjidhur probleme komplekse që kërkojnë llogaritje analitike të ngjashme me ato të trurit të njeriut. Përdorimet më të zakonshme të rrjeteve nervore janë:

Klasifikimi- shpërndarja e të dhënave sipas parametrave. Për shembull, një grup njerëzish jepet në hyrje dhe është e nevojshme të vendoset se cili prej tyre të japë një hua dhe kush jo. Kjo punë mund të bëhet nga një rrjet nervor që analizon informacione të tilla si mosha, aftësia paguese, historia e kredisë, etj.

Parashikim- aftësia për të parashikuar hapin tjetër. Për shembull, rritja ose rënia e një aksioni bazuar në situatën në tregun e aksioneve.

Njohja- aktualisht, përdorimi më i përhapur i rrjeteve nervore. Përdoret në Google kur kërkoni një foto ose në kamerat e telefonit kur zbulon pozicionin e fytyrës tuaj dhe e bën atë të dallohet dhe shumë më tepër.

Tani, për të kuptuar se si funksionojnë rrjetet nervore, le të hedhim një vështrim në përbërësit e tyre dhe parametrat e tyre.

Çfarë është një neuron?

Një neuron është një njësi llogaritëse që merr informacion, kryen llogaritje të thjeshta mbi të dhe e transmeton atë më tej. Ato ndahen në tre lloje kryesore: hyrje (blu), e fshehur (e kuqe) dhe dalje (e gjelbër). Ekziston gjithashtu një neuron paragjykim dhe një neuron konteksti, për të cilin do të flasim në artikullin vijues. Në rastin kur një rrjet nervor përbëhet nga një numër i madh neuronesh, futet termi shtresë. Prandaj, ekziston një shtresë hyrëse që merr informacion, n shtresa të fshehura (zakonisht jo më shumë se 3) që e përpunojnë atë dhe një shtresë dalëse që nxjerr rezultatin. Secili prej neuroneve ka 2 parametra kryesorë: të dhënat hyrëse dhe të dhënat dalëse. Në rastin e një neuroni hyrës: hyrje = dalje. Në pjesën tjetër, informacioni total i të gjithë neuroneve nga shtresa e mëparshme futet në fushën e hyrjes, pas së cilës normalizohet duke përdorur funksionin e aktivizimit (për momentin, thjesht përfaqësojeni f (x)) dhe futet në fushën e daljes.


E rëndësishme për t'u mbajtur mend që neuronet veprojnë me numra në intervalin ose [-1,1]. Por çfarë, ju pyesni, atëherë për të trajtuar numrat që dalin jashtë këtij diapazoni? Në këtë fazë, përgjigjja më e thjeshtë është pjesëtimi i 1 me atë numër. Ky proces quhet normalizim dhe përdoret shumë shpesh në rrjetet nervore. Më shumë për këtë më vonë.

Çfarë është një sinapse?


Një sinapsë është një lidhje midis dy neuroneve. Sinapset kanë 1 parametër - peshë. Falë tij, informacioni hyrës ndryshon kur transmetohet nga një neuron në tjetrin. Le të themi se janë 3 neurone që transmetojnë informacion tek tjetri. Pastaj kemi 3 pesha që korrespondojnë me secilin prej këtyre neuroneve. Për neuronin me peshë më të madhe, ai informacion do të jetë dominues në neuronin tjetër (për shembull, përzierja e ngjyrave). Në fakt, grupi i peshave të një rrjeti nervor ose një matricë peshash është një lloj truri i të gjithë sistemit. Është falë këtyre peshave që informacioni hyrës përpunohet dhe shndërrohet në rezultat.

E rëndësishme për t'u mbajtur mend që gjatë inicializimit të rrjetit nervor, peshat caktohen rastësisht.

Si funksionon një rrjet nervor?


Në këtë shembull, është paraqitur një pjesë e një rrjeti nervor, ku shkronjat I tregojnë neuronet hyrëse, shkronja H tregon neuronin e fshehur dhe shkronja w tregon peshat. Nga formula mund të shihet se informacioni hyrës është shuma e të gjitha të dhënave hyrëse të shumëzuar me peshat përkatëse. Pastaj japim hyrjen 1 dhe 0. Le të lemë w1 = 0,4 dhe w2 = 0,7 Të dhënat hyrëse të neuronit H1 do të jenë si më poshtë: 1 * 0,4 + 0 * 0,7 = 0,4. Tani që kemi hyrjen, mund ta marrim daljen duke e futur hyrjen në funksionin e aktivizimit (më shumë për këtë më vonë). Tani që kemi rezultatin, ne e kalojmë atë. Dhe kështu, ne përsërisim për të gjitha shtresat derisa të arrijmë te neuroni i daljes. Duke filluar për herë të parë një rrjet të tillë, do të shohim që përgjigja nuk është aspak e saktë, sepse rrjeti nuk është i trajnuar. Ne do ta stërvitim atë për të përmirësuar rezultatet e saj. Por përpara se të mësojmë se si ta bëjmë këtë, le të prezantojmë disa terma dhe veti të një rrjeti nervor.

Funksioni i aktivizimit

Një funksion aktivizimi është një mënyrë për të normalizuar të dhënat hyrëse (kemi folur për këtë më herët). Kjo do të thotë, nëse keni një numër të madh në hyrje, pasi e keni kaluar atë përmes funksionit të aktivizimit, do të merrni një dalje në diapazonin që ju nevojitet. Ka shumë funksione aktivizimi, kështu që ne do të shqyrtojmë më themeloret: Linear, Sigmoid (Logjistik) dhe Tangjent Hiperbolik. Dallimi i tyre kryesor është diapazoni i vlerave.

Funksioni linear


Ky funksion pothuajse nuk përdoret kurrë, përveç rasteve kur duhet të testoni një rrjet nervor ose të transferoni një vlerë pa transformime.

Sigmoid


Ky është funksioni më i zakonshëm i aktivizimit dhe diapazoni i tij i vlerave. Është mbi të që tregohen shumica e shembujve në ueb, ndonjëherë quhet edhe funksioni logjistik. Prandaj, nëse në rastin tuaj ka vlera negative (për shembull, stoqet mund të shkojnë jo vetëm lart, por edhe poshtë), atëherë do t'ju duhet një funksion që kap edhe vlera negative.

Tangjente hiperbolike


Ka kuptim të përdorni tangjentën hiperbolike vetëm kur vlerat tuaja mund të jenë negative dhe pozitive, pasi diapazoni i funksionit është [-1,1]. Është e papërshtatshme ta përdorni këtë funksion vetëm me vlera pozitive, pasi do të përkeqësojë ndjeshëm rezultatet e rrjetit tuaj nervor.

Set trajnimi

Një grup trajnimi është një sekuencë e të dhënave mbi të cilat funksionon një rrjet nervor. Në rastin tonë, të jashtëzakonshme ose (xor) kemi vetëm 4 rezultate të ndryshme, domethënë do të kemi 4 grupe trajnimi: 0xor0 = 0, 0xor1 = 1, 1xor0 = 1.1xor1 = 0.

Përsëritja

Ky është një lloj numëruesi që rritet sa herë që rrjeti nervor kalon nëpër një grup trajnimi. Me fjalë të tjera, ky është numri total i grupeve të trajnimit të përshkuar nga rrjeti nervor.

Epoka

Kur inicializon rrjetin nervor, kjo vlerë vendoset në 0 dhe ka një tavan të vendosur manualisht. Sa më e madhe të jetë epoka, aq më mirë trajnohet rrjeti dhe, në përputhje me rrethanat, rezultati i tij. Epoka rritet sa herë që kalojmë të gjithë grupin e grupeve të trajnimit, në rastin tonë, 4 grupe ose 4 përsëritje.


E rëndësishme mos e ngatërroni përsëritjen me epokën dhe kuptoni sekuencën e rritjes së tyre. Së pari n
sapo rritet përsëritja, dhe pastaj epoka dhe jo anasjelltas. Me fjalë të tjera, ju nuk mund të trajnoni fillimisht një rrjet nervor vetëm në një grup, pastaj në një tjetër, etj. Ju duhet të stërvitni çdo grup një herë në epokë. Në këtë mënyrë, ju mund të shmangni gabimet në llogaritjet.

Gabim

Gabimi është një përqindje që përfaqëson mospërputhjen midis përgjigjeve të pritura dhe të marra. Gabimi formohet çdo epokë dhe duhet të bjerë. Nëse kjo nuk ndodh, atëherë ju jeni duke bërë diçka të gabuar. Gabimi mund të llogaritet në mënyra të ndryshme, por ne do të shqyrtojmë vetëm tre mënyra kryesore: Gabimi mesatar në katror (më tej MSE), Root MSE dhe Arctan. Nuk ka asnjë kufizim në përdorim si në funksionin e aktivizimit, dhe ju jeni të lirë të zgjidhni cilëndo metodë që ju jep rezultatet më të mira. Duhet vetëm të merret parasysh se çdo metodë numëron gabimet në mënyra të ndryshme. Në Arctan, gabimi, pothuajse gjithmonë, do të jetë më i madh, pasi funksionon sipas parimit: sa më i madh ndryshimi, aq më i madh është gabimi. Root MSE do të ketë gabimin më të vogël, prandaj më shpesh përdoret MSE, e cila mban një ekuilibër në llogaritjen e gabimit.


Root MSE



Parimi i llogaritjes së gabimit është i njëjtë në të gjitha rastet. Për çdo grup, ne numërojmë gabimin, duke e zbritur atë nga përgjigja ideale. Më tej, ose e vendosim në katror, ​​ose llogarisim tangjentën katrore nga kjo ndryshim, pas së cilës e ndajmë numrin që rezulton me numrin e grupeve.

Detyrë

Tani, për të testuar veten, llogaritni rezultatin e një rrjeti nervor të caktuar duke përdorur një sigmoid dhe gabimin e tij duke përdorur MSE.

Të dhënat: I1 = 1, I2 = 0, w1 = 0,45, w2 = 0,78, w3 = -0,12, w4 = 0,13, w5 = 1,5, w6 = -2,3.

Rrjetet nervore

Diagrami i një rrjeti të thjeshtë nervor. Shënuar jeshile hyrje elementet, në të verdhë - ditë pushimi element

Rrjetet nervore artificiale(ANN) - modelet matematikore, si dhe zbatimet e tyre softuerike ose harduerike, të ndërtuara mbi parimin e organizimit dhe funksionimit të rrjeteve nervore biologjike - rrjetet e qelizave nervore të një organizmi të gjallë. Ky koncept u ngrit kur studiohen proceset që ndodhin në tru gjatë të menduarit dhe kur përpiqesh të modelosh këto procese. Modeli i parë i tillë i trurit ishte perceptroni. Më pas, këto modele filluan të përdoren për qëllime praktike, zakonisht në problemet e parashikimit.

Rrjetet nervore nuk janë të programuara në kuptimin e zakonshëm të fjalës, ato janë të trajnuar... Të mësuarit është një nga avantazhet kryesore të rrjeteve nervore ndaj algoritmeve tradicionale. Teknikisht, trajnimi konsiston në gjetjen e koeficientëve të lidhjeve midis neuroneve. Gjatë trajnimit, rrjeti nervor është në gjendje të identifikojë varësi komplekse midis të dhënave hyrëse dhe daljes, si dhe të kryejë përgjithësimin. Kjo do të thotë që, në rast të trajnimit të suksesshëm, rrjeti do të jetë në gjendje të kthejë rezultatin e saktë bazuar në të dhënat që mungonin në grupin e trajnimit.

Kronologjia

Aplikacione të njohura

Grumbullimi

Clustering kuptohet si ndarje e grupit të sinjaleve hyrëse në klasa, ndërsa as numri dhe as karakteristikat e klasave nuk dihen paraprakisht. Pas trajnimit, një rrjet i tillë është në gjendje të përcaktojë se cilës klasë i përket sinjali i hyrjes. Rrjeti gjithashtu mund të sinjalizojë që sinjali i hyrjes nuk i përket asnjërës prej klasave të zgjedhura - kjo është një shenjë e të dhënave të reja që mungojnë në mostrën e trajnimit. Kështu, një rrjet i ngjashëm mund të identifikojë klasa të reja sinjalesh të panjohura më parë... Korrespondenca midis klasave të alokuara nga rrjeti dhe klasave ekzistuese në domen vendoset nga një person. Grumbullimi kryhet, për shembull, nga rrjetet nervore Kohonen.

Përzgjedhja eksperimentale e karakteristikave të rrjetit

Pas zgjedhjes së strukturës së përgjithshme, duhet të zgjidhni eksperimentalisht parametrat e rrjetit. Për rrjete si një perceptron, ky do të jetë numri i shtresave, numri i blloqeve në shtresat e fshehura (për rrjetet Word), prania ose mungesa e lidhjeve anashkaluese, funksionet e transferimit të neuroneve. Kur zgjidhni numrin e shtresave dhe neuroneve në to, duhet të vazhdohet nga fakti se aftësia e rrjetit për të përgjithësuar është sa më e lartë, aq më i madh është numri total i lidhjeve ndërmjet neuroneve... Nga ana tjetër, numri i lidhjeve kufizohet nga lart me numrin e regjistrimeve në të dhënat e trajnimit.

Përzgjedhja eksperimentale e parametrave të trajnimit

Pas zgjedhjes së një topologjie specifike, është e nevojshme të zgjidhni parametrat për trajnimin e rrjetit nervor. Kjo fazë është veçanërisht e rëndësishme për rrjetet e mbikëqyrura. Zgjedhja e saktë e parametrave varet jo vetëm nga sa shpejt përgjigjet e rrjetit do të konvergojnë me përgjigjet e sakta. Për shembull, zgjedhja e një niveli të ulët të të mësuarit do të rrisë kohën e konvergjencës, por ndonjëherë shmang paralizën e rrjetit. Një rritje në momentin e të mësuarit mund të çojë në një rritje dhe një ulje të kohës së konvergjencës, në varësi të formës së sipërfaqes së gabimit. Bazuar në një ndikim kaq kontradiktor të parametrave, mund të konkludojmë se vlerat e tyre duhet të zgjidhen eksperimentalisht, të udhëhequr nga kriteri i përfundimit të trajnimit (për shembull, minimizimi i gabimit ose kufizimi i kohës së trajnimit).

Trajnimi aktual i rrjetit

Gjatë trajnimit, rrjeti skanon mostrën e trajnimit në një rend të caktuar. Rendi i skanimit mund të jetë i njëpasnjëshëm, i rastësishëm, etj. Disa rrjete të pambikëqyrura, për shembull, rrjetet Hopfield, skanojnë mostrën vetëm një herë. Të tjera, të tilla si rrjetet Kohonen dhe rrjetet e mbikëqyrura, skanojnë kampionin disa herë, me një kalim të plotë përmes kampionit të quajtur epoka e të mësuarit... Kur jepni mësim me një mësues, grupi i të dhënave fillestare ndahet në dy pjesë - vetë kampioni i trajnimit dhe të dhënat e testit; parimi i ndarjes mund të jetë arbitrar. Të dhënat e trajnimit futen në rrjet për trajnim dhe të dhënat e vlefshmërisë përdoren për të llogaritur gabimin e rrjetit (të dhënat e verifikimit nuk përdoren kurrë për të trajnuar rrjetin). Kështu, nëse gabimi në të dhënat e testit zvogëlohet, atëherë rrjeti përgjithësohet. Nëse gabimi në të dhënat e trajnimit vazhdon të ulet, dhe gabimi në të dhënat e testit rritet, atëherë rrjeti ka ndaluar së përgjithësuari dhe thjesht "kujton" të dhënat e trajnimit. Ky fenomen quhet mbipërshtatje ose mbipërshtatje e rrjetit. Në raste të tilla, trajnimi zakonisht ndërpritet. Gjatë procesit të mësimit, mund të shfaqen probleme të tjera, të tilla si paraliza ose rrjeti që godet një minimum lokal të sipërfaqes së gabimit. Është e pamundur të parashikohet paraprakisht manifestimi i një problemi të veçantë, si dhe të jepen rekomandime të qarta për zgjidhjen e tyre.

Kontrollimi i përshtatshmërisë së trajnimit

Edhe në rastin e të mësuarit të suksesshëm, në shikim të parë, rrjeti nuk mëson gjithmonë saktësisht se çfarë dëshironte krijuesi prej tij. Dihet një rast kur rrjeti ishte trajnuar për të njohur imazhet e tankeve nga fotografitë, por më vonë doli që të gjitha tanket ishin fotografuar në të njëjtin sfond. Si rezultat, rrjeti "mësoi" të njohë këtë lloj terreni, në vend që të "mësojë" të njohë tanket. Kështu, rrjeti "kupton" jo atë që kërkohet prej tij, por atë që është më e lehtë për t'u përgjithësuar.

Klasifikimi sipas llojit të informacionit hyrës

  • Rrjetet nervore analoge (përdor informacion në formën e numrave realë);
  • Rrjetet neurale binare (operojnë me informacionin e paraqitur në formë binare).

Klasifikimi sipas natyrës së të mësuarit

  • Mësimi i mbikëqyrur - hapësira dalëse e zgjidhjeve të rrjeteve nervore është e njohur;
  • Mësimi i pambikëqyrur - një rrjet nervor formon hapësirën dalëse të zgjidhjeve bazuar vetëm në hyrje. Rrjete të tilla quhen vetë-organizuese;
  • Mësimi përforcues është një sistem për caktimin e dënimeve dhe shpërblimeve nga mjedisi.

Klasifikimi sipas natyrës së akordimit të sinapsit

Klasifikimi i kohës së transmetimit të sinjalit

Në një numër rrjetesh nervore, funksioni aktivizues mund të varet jo vetëm nga koeficientët e peshimit të lidhjeve w ij, por edhe në kohën e transmetimit të një impulsi (sinjali) nëpërmjet kanaleve të komunikimit τ ij... Prandaj, në përgjithësi, funksioni i komunikimit aktivizues (transmetues). c ij nga elementi u i te elementi u j duket si:. Pastaj rrjet sinkron ijçdo lidhje është e barabartë ose me zero ose një konstante τ fikse. Asinkronështë një rrjet për të cilin koha e transmetimit τ ij për çdo lidhje ndërmjet elementeve u i dhe u j e vet, por edhe konstante.

Klasifikimi sipas natyrës së lidhjeve

Rrjetet feedforward

Të gjitha lidhjet drejtohen rreptësisht nga neuronet hyrëse te neuronet dalëse. Shembuj të rrjeteve të tilla janë perceptroni i Rosenblatt, perceptron shumështresor, rrjetet Word.

Rrjetet nervore të përsëritura

Sinjali nga neuronet dalëse ose neuronet e shtresës së fshehur transmetohet pjesërisht në hyrjet e neuroneve të shtresës hyrëse (feedback). Rrjeti i përsëritur Rrjeti Hopfield "filtron" të dhënat hyrëse, duke u kthyer në një gjendje të qëndrueshme dhe, në këtë mënyrë, lejon zgjidhjen e problemeve të ngjeshjes së të dhënave dhe ndërtimin e memories shoqëruese. Rrjetet me dy drejtime janë një rast i veçantë i rrjeteve të përsëritura. Në rrjete të tilla, ka lidhje midis shtresave si në drejtim nga shtresa hyrëse në shtresën dalëse, ashtu edhe në drejtim të kundërt. Shembulli klasik është Rrjeti Neural i Kosko.

Funksionet e bazës radiale

Rrjetet nervore artificiale që përdorin rrjete me bazë radiale si funksione aktivizimi (rrjete të tilla shkurtohen si rrjete RBF). Pamje e përgjithshme e funksionit të bazës radiale:

, Për shembull,

ku xështë vektori i sinjaleve hyrëse të neuroneve, σ është gjerësia e dritares së funksionit, φ ( y) është një funksion në rënie (më shpesh i barabartë me zero jashtë një segmenti të caktuar).

Rrjeti radial-bazë karakterizohet nga tre karakteristika:

1. E vetmja shtresë e fshehur

2. Vetëm neuronet e shtresës së fshehur kanë funksion aktivizimi jolinear

3. Peshat sinaptike të lidhjeve të shtresave hyrëse dhe të fshehura janë të barabarta me një

Rreth procedurës së trajnimit - shihni literaturën

Kartat e vetëorganizimit

Rrjete të tilla përfaqësojnë një rrjet nervor konkurrues me mësim të pambikëqyrur, duke kryer detyrën e vizualizimit dhe grupimit. Është një metodë e projektimit të një hapësire shumëdimensionale në një hapësirë ​​me dimension më të ulët (më shpesh dydimensionale), përdoret gjithashtu për zgjidhjen e problemeve të modelimit, parashikimit, etj. Është një nga versionet e rrjeteve nervore të Kohonen. Hartat vetë-organizuese të Kohonen përdoren kryesisht për vizualizimin dhe analizën fillestare ("eksploruese") të të dhënave.

Sinjali në rrjetin Kohonen shkon në të gjithë neuronet menjëherë, peshat e sinapseve përkatëse interpretohen si koordinata të pozicionit të nyjës, dhe sinjali i daljes formohet sipas parimit "fituesi merr gjithçka" - domethënë neuroni. më afër (në kuptimin e peshave të sinapsit) me sinjalin hyrës ka një objekt sinjali dalës jozero. Në procesin e trajnimit, peshat e sinapseve rregullohen në atë mënyrë që nyjet e rrjetës të "vendosen" në vendet e kondensimeve lokale të të dhënave, domethënë ato përshkruajnë strukturën e grupimit të resë së të dhënave, nga ana tjetër, lidhjet ndërmjet neuroneve korrespondojnë me marrëdhëniet e fqinjësisë midis grupimeve përkatëse në hapësirën e veçorive.

Është e përshtatshme të konsiderohen harta të tilla si rrjete dydimensionale të nyjeve të vendosura në hapësirën shumëdimensionale. Fillimisht, një hartë vetëorganizuese është një rrjet nyjesh, të lidhura me lidhje. Kohonen konsideroi dy opsione për lidhjen e nyjeve - në një rrjet drejtkëndor dhe gjashtëkëndor - ndryshimi është se në një rrjet drejtkëndor, secila nyje është e lidhur me 4 nyje fqinje, dhe në një rrjet gjashtëkëndor - me 6 nyjet më të afërta. Për dy rrjete të tilla, procesi i ndërtimit të rrjetit Kohonen ndryshon vetëm në vendin ku zhvendosen fqinjët më të afërt me nyjen e dhënë.

Folezimi fillestar i rrjetës në hapësirën e të dhënave është arbitrar. Paketa e autorit SOM_PAK ofron opsione për një rregullim fillestar të rastësishëm të nyjeve në hapësirë ​​dhe një opsion për një rregullim të nyjeve në një plan. Pas kësaj, nyjet fillojnë të lëvizin në hapësirë ​​sipas algoritmit të mëposhtëm:

  1. Pika e të dhënave zgjidhet rastësisht x .
  2. Më e afërta me x nyja e kartës (BMU - Njësia më e mirë e përputhjes).
  3. Kjo nyje zhvendoset një hap të caktuar drejt x. Megjithatë, ai nuk lëviz vetëm, por mbart një numër të caktuar të nyjeve më të afërta nga një lagje e caktuar në hartë. Nga të gjitha nyjet lëvizëse, nyja qendrore - ajo më afër pikës së të dhënave - është më e zhvendosur, dhe pjesa tjetër përjeton zhvendosje më të vogla, sa më larg që janë nga BMU. Ekzistojnë dy faza në akordimin e hartës - faza e renditjes dhe faza e rregullimit të imët. Në fazën e parë, zgjidhen vlera të mëdha të lagjes dhe lëvizja e nyjeve është e një natyre kolektive - si rezultat, harta "drejtohet" dhe pasqyron përafërsisht strukturën e të dhënave; në fazën e akordimit të imët, rrezja e lagjes është 1-2 dhe pozicionet individuale të nyjeve janë rregulluar. Për më tepër, vlera e zhvendosjes zvogëlohet në mënyrë uniforme me kalimin e kohës, domethënë është e madhe në fillim të secilës prej fazave të trajnimit dhe afër zeros në fund.
  4. Algoritmi përsërit një numër të caktuar epokash (është e qartë se numri i hapave mund të ndryshojë shumë në varësi të detyrës).

Llojet e njohura të rrjetit

  • Rrjeti Hamming;
  • Neokognitron;
  • Rrjeti nervor kaotik;
  • Counter Spread Network;
  • Rrjeti i funksioneve me bazë radiale (rrjeti RBF);
  • Rrjeti i Regresionit të Përgjithësuar;
  • Rrjeti probabilistik;
  • Rrjeti nervor siamez;
  • Rrjetet e rezonancës adaptive.

Dallimet nga makinat me arkitekturë von Neumann

Një periudhë e gjatë evolucioni i ka dhënë trurit të njeriut shumë cilësi që mungojnë në makinat me arkitekturë von Neumann:

  • Konkurrenca masive;
  • Prezantimi i shpërndarë i informacionit dhe llogaritjeve;
  • Aftësia për të mësuar dhe përgjithësuar;
  • Përshtatshmëria;
  • Vetia e përpunimit të informacionit kontekstual;
  • Toleranca ndaj gabimeve;
  • Konsumi i ulët i energjisë.

Rrjetet nervore - përafrues universal

Rrjetet nervore janë pajisje universale të përafrimit dhe mund të simulojnë çdo automat të vazhdueshëm me çdo saktësi. Vërtetohet një teoremë e përafrimit e përgjithësuar: duke përdorur operacione lineare dhe një lidhje kaskade, mund të merret një pajisje nga një element arbitrar jolinear që llogarit çdo funksion të vazhdueshëm me çdo saktësi të paracaktuar. Kjo do të thotë se karakteristika jolineare e një neuroni mund të jetë arbitrare: nga sigmoidale në një paketë valore arbitrare ose valë, sinus ose polinom. Kompleksiteti i një rrjeti të caktuar mund të varet nga zgjedhja e një funksioni jolinear, por me çdo jolinearitet, rrjeti mbetet një përafrues universal dhe, me zgjedhjen e duhur të strukturës, mund të përafrojë funksionimin e çdo automati të vazhdueshëm me aq saktësi sa dëshiron.

Shembuj aplikimi

Parashikimi i serive kohore financiare

Të dhënat hyrëse - çmimi i aksioneve për vitin. Detyra është të përcaktohet kursi i së nesërmes. Po kryhet transformimi i mëposhtëm - është rreshtuar kursi për sot, dje, për pardje, për pardje. Rreshti tjetër zhvendoset sipas datës me një ditë, e kështu me radhë. Në grupin që rezulton, trajnohet një rrjet me 3 hyrje dhe një dalje - domethënë një dalje: norma për një datë, hyrje: norma për një datë minus 1 ditë, minus 2 ditë, minus 3 ditë. Për rrjetin e trajnuar, ne dorëzojmë kursin për sot, dje, pardje dhe marrim një përgjigje për nesër. Është e lehtë të shihet se në këtë rast rrjeti thjesht do të shfaqë varësinë e një parametri nga tre parametrat e mëparshëm. Nëse është e dëshirueshme të merret parasysh një parametër tjetër (për shembull, indeksi i përgjithshëm për industrinë), atëherë ai duhet të shtohet si hyrje (dhe të përfshihet në shembuj), rrjeti duhet të rikualifikohet dhe të merren rezultate të reja. Për një trajnim sa më të saktë, vlen të përdoret metoda ORO, pasi është më e parashikueshme dhe më e thjeshta për t'u zbatuar.

Psikodiagnostika

Një seri punimesh nga M. G. Dorrer et al. i kushtohet studimit të çështjes së mundësisë së zhvillimit të intuitës psikologjike në sistemet eksperte të rrjeteve nervore. Rezultatet e marra ofrojnë një qasje për zbulimin e mekanizmit të intuitës së rrjeteve nervore, i cili manifestohet kur ato zgjidhin detyra psikodiagnostike. Krijuar jo standarde për teknikat kompjuterike intuitive qasja ndaj psikodiagnostikës, e cila konsiston në përjashtimin e ndërtimit realitetin e përshkruar... Kjo ju lejon të shkurtoni dhe thjeshtoni punën në teknikat psikodiagnostike.

Kimioinformatika

Rrjetet nervore përdoren gjerësisht në kërkimet kimike dhe biokimike. Aktualisht, rrjetet nervore janë një nga metodat më të përhapura të kemoinformatikës për gjetjen e marrëdhënieve sasiore strukturë-veti, për shkak të së cilës ato përdoren në mënyrë aktive si për parashikimin e vetive fiziko-kimike ashtu edhe për aktivitetin biologjik të kimikateve. komponimet, dhe për dizajnin e drejtimit të përbërjeve kimike dhe materialeve me veti të paracaktuara, duke përfshirë zhvillimin e barnave të reja.

Shënime (redakto)

  1. McCulloch W.S., Pitts W., Llogaritja logjike e ideve që lidhen me veprimtarinë nervore // Në koleksionin: "Automata" ed. C.E. Shannon dhe J. McCarthy. - M .: Shtëpia botuese e të huajve. lit., 1956 .-- f. 363-384. (Përkthimi i një artikulli në anglisht të vitit 1943)
  2. Njohja e modelit dhe kontrolli adaptiv. BERNARD WIDROU
  3. Widrow B., Stearns S., Përpunimi Adaptive i Sinjalit. - M .: Radio dhe komunikim, 1989 .-- 440 f.
  4. Werbos P. J., Përtej regresionit: Mjete të reja për parashikim dhe analizë në shkencat e sjelljes. Ph.D. tezë, Universiteti i Harvardit, Kembrixh, MA, 1974.
  5. Galushkin A.I. Sinteza e sistemeve të njohjes së modeleve me shumë shtresa. - M .: "Energjia", 1974.
  6. Rumelhart D.E., Hinton G.E., Williams R.J., Mësimi i paraqitjeve të brendshme me anë të përhapjes së gabimeve. Në: Përpunimi i Shpërndarë Paralel, vëll. 1, fq. 318-362. Kembrixh, MA, MIT Press. 1986.
  7. Bartsev S.I., Okhonin V.A. Rrjetet adaptive të përpunimit të informacionit. Krasnoyarsk: Instituti i Fizikës, Dega Siberiane e Akademisë së Shkencave të BRSS, 1986. Preprint N 59B. - 20 f.
  8. BaseGroup Labs - Zbatimi praktik i rrjeteve nervore në problemet e klasifikimit
  9. Ky lloj kodimi nganjëherë referohet si një kod "1 nga N".
  10. Sistemet e hapura - një hyrje në rrjetet nervore
  11. Mirkes E. M., Rrjetet neurale logjikisht transparente dhe prodhimi i njohurive eksplicite nga të dhënat, Në librin: Neuroinformatikë / A. N. Gorban, V. L. Dunin-Barkovsky, A. N. Kirdin dhe të tjerët - Novosibirsk: Shkencë. Siberian Enterprise RAS, 1998 .-- 296 me ISBN 5020314102
  12. Përmendeni këtë histori në revistën Popular Mechanics
  13. http://www.intuit.ru/department/expert/neuro/10/ INTUIT.ru - Rrjetet e përsëritura si pajisje ruajtëse shoqëruese]
  14. Kohonen, T. (1989/1997/2001), Hartat Vetë-Organizuese, Berlin - Nju Jork: Springer-Verlag. Botimi i parë 1989, botimi i dytë 1997, botimi i tretë i zgjeruar 2001, ISBN 0-387-51387-6, ISBN 3-540-67921-9
  15. A. Yu. Zinoviev Vizualizimi i të dhënave shumëdimensionale. - Krasnoyarsk: Ed. Universiteti Teknik Shtetëror Krasnoyarsk, 2000. - 180 f.
  16. Gorban A. N., Teorema e përafrimit të përgjithësuar dhe aftësitë llogaritëse të rrjeteve nervore, Siberian Journal of Computational Mathematics, 1998. Vol. 1, Nr. 1. F. 12-24.
  17. Gorban A.N., Rossiyev D.A., Dorrer M.G., MultiNeuron - Simulator i Rrjeteve Neurale për Aplikime Mjekësore, Fiziologjike dhe Psikologjike, Wcnn'95, Uashington, DC: Kongresi Botëror për Rrjetet Neurale 1995 Takimi vjetor i Shoqërisë Ndërkombëtare të Rrjetit Neural: Hotel Renaissance, Uashington, DC, SHBA, 17-21 korrik, 1995.
  18. Dorrer M.G., Intuita psikologjike e rrjeteve nervore artificiale, Diss. ... 1998. Kopje të tjera në internet:,
  19. Baskin I.I., Palyulin V.A., Zefirov N.S., Aplikimi i rrjeteve nervore artificiale në kërkimet kimike dhe biokimike, Vestn. Moska Un-Ta. Ser. 2. Kimia. 1999. Vëllimi 40. nr 5.
  20. Galberstam N.M., Baskin I.I., Palyulin V.A., Zefirov N.S. Rrjetet nervore si një metodë për gjetjen e strukturës së varësive - veti e përbërjeve organike // Përparimet në kimi... - 2003. - T. 72. - Nr. 7. - S. 706-727.
  21. Baskin I.I., Palyulin V.A., Zefirov N.S. Perceptronet me shumë shtresa në studimin e marrëdhënieve strukturë-veti për përbërjet organike // Gazeta Kimike Ruse (Revista e Shoqërisë Kimike Ruse me emrin D.I. Mendeleev)... - 2006. - T. 50. - S. 86-96.

Lidhjet

  • Rrjeti nervor artificial për PHP 5.x - Projekt serioz për zhvillimin e rrjeteve nervore në gjuhën e programimit PHP 5.X
  • Forumi mbi Rrjetet Neurale dhe Algoritmet Gjenetike
  • Mirkes E. M., Neuroinformatikë: Libër mësuesi. një manual për studentët me programe për punë laboratorike.
  • Shembuj hap pas hapi të zbatimit të llojeve më të famshme të rrjeteve neurale në MATLAB, Neural Network Toolbox
  • Një përzgjedhje e materialeve në rrjetet nervore dhe analiza parashikuese
  • aplikimi kundërshtar i rrjeteve nervore në parashikimin e çmimeve të aksioneve
Prandaj, rrjeti nervor merr dy numra si hyrje dhe duhet të japë një numër tjetër në dalje - përgjigjen. Tani për vetë rrjetet nervore.

Çfarë është një rrjet nervor?


Një rrjet nervor është një sekuencë e neuroneve të lidhura nga sinapset. Struktura e rrjetit nervor erdhi në botën e programimit direkt nga biologjia. Falë kësaj strukture, makina fiton aftësinë për të analizuar dhe madje memorizuar informacione të ndryshme. Rrjetet nervore janë gjithashtu në gjendje jo vetëm të analizojnë informacionin në hyrje, por edhe ta riprodhojnë atë nga kujtesa e tyre. Për të interesuarit, sigurohuni që të shikoni 2 video nga TED Talks: Video 1 , Video 2). Me fjalë të tjera, një rrjet nervor është një interpretim makinerie i trurit të njeriut, i cili përmban miliona neurone që transmetojnë informacion në formën e impulseve elektrike.

Çfarë janë rrjetet nervore?

Tani për tani, ne do të shqyrtojmë shembuj për llojin më themelor të rrjeteve nervore - ky është një rrjet i informacionit përpara (në tekstin e mëtejmë FNS). Gjithashtu në artikujt vijues do të prezantoj më shumë koncepte dhe do t'ju tregoj për rrjetet nervore të përsëritura. DSS, siç nënkupton edhe emri, është një rrjet me një lidhje serike të shtresave nervore, në të cilën informacioni shkon gjithmonë vetëm në një drejtim.

Për çfarë shërbejnë rrjetet nervore?

Rrjetet nervore përdoren për të zgjidhur probleme komplekse që kërkojnë llogaritje analitike të ngjashme me ato të trurit të njeriut. Përdorimet më të zakonshme të rrjeteve nervore janë:

Klasifikimi- shpërndarja e të dhënave sipas parametrave. Për shembull, një grup njerëzish jepet në hyrje dhe është e nevojshme të vendoset se cili prej tyre të japë një hua dhe kush jo. Kjo punë mund të bëhet nga një rrjet nervor që analizon informacione të tilla si mosha, aftësia paguese, historia e kredisë, etj.

Parashikim- aftësia për të parashikuar hapin tjetër. Për shembull, rritja ose rënia e një aksioni bazuar në situatën në tregun e aksioneve.

Njohja- aktualisht, përdorimi më i përhapur i rrjeteve nervore. Përdoret në Google kur kërkoni një foto ose në kamerat e telefonit kur zbulon pozicionin e fytyrës tuaj dhe e bën atë të dallohet dhe shumë më tepër.

Tani, për të kuptuar se si funksionojnë rrjetet nervore, le të hedhim një vështrim në përbërësit e tyre dhe parametrat e tyre.

Çfarë është një neuron?


Një neuron është një njësi llogaritëse që merr informacion, kryen llogaritje të thjeshta mbi të dhe e transmeton atë më tej. Ato ndahen në tre lloje kryesore: hyrje (blu), e fshehur (e kuqe) dhe dalje (e gjelbër). Ekziston gjithashtu një neuron paragjykim dhe një neuron konteksti, për të cilin do të flasim në artikullin vijues. Në rastin kur një rrjet nervor përbëhet nga një numër i madh neuronesh, futet termi shtresë. Prandaj, ekziston një shtresë hyrëse që merr informacion, n shtresa të fshehura (zakonisht jo më shumë se 3) që e përpunojnë atë dhe një shtresë dalëse që nxjerr rezultatin. Secili prej neuroneve ka 2 parametra kryesorë: të dhënat hyrëse dhe të dhënat dalëse. Në rastin e një neuroni hyrës: hyrje = dalje. Në pjesën tjetër, informacioni total i të gjithë neuroneve nga shtresa e mëparshme futet në fushën e hyrjes, pas së cilës normalizohet duke përdorur funksionin e aktivizimit (për momentin, thjesht përfaqësojeni f (x)) dhe futet në fushën e daljes.


E rëndësishme për t'u mbajtur mend që neuronet veprojnë me numra në intervalin ose [-1,1]. Por çfarë, ju pyesni, atëherë për të trajtuar numrat që dalin jashtë këtij diapazoni? Në këtë fazë, përgjigjja më e thjeshtë është pjesëtimi i 1 me atë numër. Ky proces quhet normalizim dhe përdoret shumë shpesh në rrjetet nervore. Më shumë për këtë më vonë.

Çfarë është një sinapse?


Një sinapsë është një lidhje midis dy neuroneve. Sinapset kanë 1 parametër - peshë. Falë tij, informacioni hyrës ndryshon kur transmetohet nga një neuron në tjetrin. Le të themi se janë 3 neurone që transmetojnë informacion tek tjetri. Pastaj kemi 3 pesha që korrespondojnë me secilin prej këtyre neuroneve. Për neuronin me peshë më të madhe, ai informacion do të jetë dominues në neuronin tjetër (për shembull, përzierja e ngjyrave). Në fakt, grupi i peshave të një rrjeti nervor ose një matricë peshash është një lloj truri i të gjithë sistemit. Është falë këtyre peshave që informacioni hyrës përpunohet dhe shndërrohet në rezultat.

E rëndësishme për t'u mbajtur mend që gjatë inicializimit të rrjetit nervor, peshat caktohen rastësisht.

Si funksionon një rrjet nervor?


Në këtë shembull, është paraqitur një pjesë e një rrjeti nervor, ku shkronjat I tregojnë neuronet hyrëse, shkronja H tregon neuronin e fshehur dhe shkronja w tregon peshat. Nga formula mund të shihet se informacioni hyrës është shuma e të gjitha të dhënave hyrëse të shumëzuar me peshat përkatëse. Pastaj japim hyrjen 1 dhe 0. Le të lemë w1 = 0,4 dhe w2 = 0,7 Të dhënat hyrëse të neuronit H1 do të jenë si më poshtë: 1 * 0,4 + 0 * 0,7 = 0,4. Tani që kemi hyrjen, mund ta marrim daljen duke e futur hyrjen në funksionin e aktivizimit (më shumë për këtë më vonë). Tani që kemi rezultatin, ne e kalojmë atë. Dhe kështu, ne përsërisim për të gjitha shtresat derisa të arrijmë te neuroni i daljes. Duke filluar për herë të parë një rrjet të tillë, do të shohim që përgjigja nuk është aspak e saktë, sepse rrjeti nuk është i trajnuar. Ne do ta stërvitim atë për të përmirësuar rezultatet e saj. Por përpara se të mësojmë se si ta bëjmë këtë, le të prezantojmë disa terma dhe veti të një rrjeti nervor.

Funksioni i aktivizimit

Një funksion aktivizimi është një mënyrë për të normalizuar të dhënat hyrëse (kemi folur për këtë më herët). Kjo do të thotë, nëse keni një numër të madh në hyrje, pasi e keni kaluar atë përmes funksionit të aktivizimit, do të merrni një dalje në diapazonin që ju nevojitet. Ka shumë funksione aktivizimi, kështu që ne do të shqyrtojmë më themeloret: Linear, Sigmoid (Logjistik) dhe Tangjent Hiperbolik. Dallimi i tyre kryesor është diapazoni i vlerave.

Funksioni linear


Ky funksion pothuajse nuk përdoret kurrë, përveç rasteve kur duhet të testoni një rrjet nervor ose të transferoni një vlerë pa transformime.

Sigmoid


Ky është funksioni më i zakonshëm i aktivizimit dhe diapazoni i tij i vlerave. Është mbi të që tregohen shumica e shembujve në ueb, ndonjëherë quhet edhe funksioni logjistik. Prandaj, nëse në rastin tuaj ka vlera negative (për shembull, stoqet mund të shkojnë jo vetëm lart, por edhe poshtë), atëherë do t'ju duhet një funksion që kap edhe vlera negative.

Tangjente hiperbolike


Ka kuptim të përdorni tangjentën hiperbolike vetëm kur vlerat tuaja mund të jenë negative dhe pozitive, pasi diapazoni i funksionit është [-1,1]. Është e papërshtatshme ta përdorni këtë funksion vetëm me vlera pozitive, pasi do të përkeqësojë ndjeshëm rezultatet e rrjetit tuaj nervor.

Set trajnimi

Një grup trajnimi është një sekuencë e të dhënave mbi të cilat funksionon një rrjet nervor. Në rastin tonë, ekskluzive ose (xor) kemi vetëm 4 rezultate të ndryshme, domethënë do të kemi 4 grupe trajnimi: 0xor0 = 0, 0xor1 = 1, 1xor0 = 1.1xor1 = 0.

Përsëritja

Ky është një lloj numëruesi që rritet sa herë që rrjeti nervor kalon nëpër një grup trajnimi. Me fjalë të tjera, ky është numri total i grupeve të trajnimit të përshkuar nga rrjeti nervor.

Epoka

Kur inicializon rrjetin nervor, kjo vlerë vendoset në 0 dhe ka një tavan të vendosur manualisht. Sa më e madhe të jetë epoka, aq më mirë trajnohet rrjeti dhe, në përputhje me rrethanat, rezultati i tij. Epoka rritet sa herë që kalojmë të gjithë grupin e grupeve të trajnimit, në rastin tonë, 4 grupe ose 4 përsëritje.


E rëndësishme mos e ngatërroni përsëritjen me epokën dhe kuptoni sekuencën e rritjes së tyre. Së pari n
sapo rritet përsëritja, dhe pastaj epoka dhe jo anasjelltas. Me fjalë të tjera, ju nuk mund të trajnoni fillimisht një rrjet nervor vetëm në një grup, pastaj në një tjetër, etj. Ju duhet të stërvitni çdo grup një herë në epokë. Në këtë mënyrë, ju mund të shmangni gabimet në llogaritjet.

Gabim

Gabimi është një përqindje që përfaqëson mospërputhjen midis përgjigjeve të pritura dhe të marra. Gabimi formohet çdo epokë dhe duhet të bjerë. Nëse kjo nuk ndodh, atëherë ju jeni duke bërë diçka të gabuar. Gabimi mund të llogaritet në mënyra të ndryshme, por ne do të shqyrtojmë vetëm tre mënyra kryesore: Gabimi mesatar në katror (më tej MSE), Root MSE dhe Arctan. Nuk ka asnjë kufizim në përdorim si në funksionin e aktivizimit, dhe ju jeni të lirë të zgjidhni cilëndo metodë që ju jep rezultatet më të mira. Duhet vetëm të merret parasysh se çdo metodë numëron gabimet në mënyra të ndryshme. Në Arctan, gabimi, pothuajse gjithmonë, do të jetë më i madh, pasi funksionon sipas parimit: sa më i madh ndryshimi, aq më i madh është gabimi. Root MSE do të ketë gabimin më të vogël, prandaj më shpesh përdoret MSE, e cila mban një ekuilibër në llogaritjen e gabimit.

Artikujt kryesorë të lidhur