Gabim i algoritmit të përhapjes së pasme habr. Metoda e përhapjes së pasme: matematikë, shembuj, kod

Algoritmi prapashumëzimi gabimet është një nga metodat për trajnimin e rrjeteve nervore me shumë shtresa, të quajtura gjithashtu perceptrone shumështresore. Perceptronet me shumë shtresa përdoren me sukses për të zgjidhur shumë probleme komplekse.

Trajnimi me algoritmin e përhapjes së pasme përfshin dy kalime nëpër të gjitha shtresat e rrjetit: përpara dhe prapa. Në kalimin përpara, vektori i hyrjes futet në shtresën hyrëse të rrjetit nervor, dhe më pas përhapet përmes rrjetit nga shtresa në shtresë. Si rezultat, gjenerohet një grup sinjalesh dalëse, që është përgjigja aktuale e rrjetit ndaj një imazhi të dhënë hyrës. Gjatë kalimit përpara, të gjitha peshat sinaptike të rrjetit janë fikse. Gjatë kalimit prapa, të gjitha peshat sinaptike rregullohen sipas një rregulli të korrigjimit të gabimit, domethënë: dalja aktuale e rrjetit zbritet nga dalja e dëshiruar, duke rezultuar në një sinjal gabimi. Ky sinjal më pas përhapet në të gjithë rrjetin në drejtim të kundërt me drejtimin e lidhjeve sinaptike. Prandaj emri - algoritmi i përhapjes së pasme. Peshat sinaptike rregullohen për të sjellë daljen e rrjetit sa më afër që të jetë e mundur me atë të dëshiruar.

Le të shqyrtojmë funksionimin e algoritmit në më shumë detaje. Le të themi se ju duhet të stërvitni sa vijon rrjeti nervor, duke përdorur algoritmin e përhapjes së pasme:

Simbolet e mëposhtme janë përdorur në figurën e mëposhtme:

Si një funksion aktivizimi në perceptronet me shumë shtresa, si rregull, përdoret një funksion aktivizimi sigmoid, veçanërisht ai logjistik:

ku është parametri i pjerrësisë së funksionit sigmoidal. Duke ndryshuar këtë parametër, mund të ndërtoni funksione me pjerrësi të ndryshme. Le të bëjmë një rezervë që për të gjitha argumentet e mëvonshme do të përdorim pikërisht funksionin e aktivizimit logjistik, i përfaqësuar vetëm nga formula e mësipërme.

Sigmoidi ngushton diapazonin e variacionit në mënyrë që vlera të jetë midis zeros dhe një. Rrjetet neurale me shumë shtresa kanë fuqi përfaqësuese më të madhe se rrjetet nervore me një shtresë vetëm në prani të jolinearitetit. Funksioni i kompresimit siguron jolinearitetin e kërkuar. Në realitet ka shumë funksione që mund të përdoren. Algoritmi i përhapjes së pasme kërkon vetëm që funksioni të jetë i diferencueshëm kudo. Sigmoid e plotëson këtë kërkesë. Ka përfitimin e shtuar të kontrollit automatik të fitimit. Për sinjale të dobëta (dmth kur afër zeros) kurba hyrje-dalje ka një pjerrësi të fortë, duke dhënë një fitim të madh. Ndërsa madhësia e sinjalit bëhet më e madhe, fitimi bie. Në këtë mënyrë, sinjalet e mëdha pranohen nga rrjeti pa ngopje, dhe sinjale të vogla kalojnë nëpër rrjet pa dobësim të tepërt.

Qëllimi i trajnimit në rrjet Algoritmi i përhapjes së pasme është një rregullim i peshave të tij në mënyrë që aplikimi i një grupi të caktuar inputesh të çojë në grupin e kërkuar të outputeve. Për shkurtësi, këto grupe hyrjesh dhe daljesh do të quhen vektorë. Gjatë trajnimit, supozohet se për çdo vektor hyrës ka një vektor objektiv të çiftuar me të, i cili specifikon daljen e kërkuar. Së bashku ata quhen një çift stërvitor. Rrjeti është trajnuar në shumë çifte.

Tjetër:

  1. Inicializoni peshat sinaptike me vlera të vogla të rastësishme.
  2. Zgjidhni çiftin e ardhshëm të trajnimit nga grupi i trajnimit; dorëzoni vektorin e hyrjes në hyrjen e rrjetit.
  3. Llogaritni daljen e rrjetit.
  4. Llogaritni diferencën midis daljes së rrjetit dhe daljes së kërkuar (vektori i synuar i çiftit të trajnimit).
  5. Rregulloni peshat e rrjetit për të minimizuar gabimin (siç shihni më poshtë).
  6. Përsëritni hapat 2 deri në 5 për çdo vektor të grupit të trajnimit derisa gabimi në të gjithë grupin të arrijë një nivel të pranueshëm.

Veprimet e kryera nga hapat 2 dhe 3 janë të ngjashme me ato të kryera kur rrjeti është tashmë i trajnuar, d.m.th. jepet një vektor hyrës dhe llogaritet dalja që rezulton. Llogaritjet kryhen shtresë pas shtrese. Në Fig. 1, fillimisht llogariten daljet e neuroneve të shtresës (shtresa është hyrja, që do të thotë se nuk bëhen llogaritje në të), më pas ato përdoren si hyrje të shtresës, llogariten daljet e neuroneve të shtresës. , të cilat formojnë vektorin e daljes së rrjetit. Hapat 2 dhe 3 formojnë një të ashtuquajtur "kalim përpara" ndërsa sinjali përhapet nëpër rrjet nga hyrja në dalje.

Hapat 4 dhe 5 përbëjnë një "backpass", ku sinjali i llogaritur i gabimit përhapet përsëri nëpër rrjet dhe përdoret për të rregulluar peshat.

Le të hedhim një vështrim më të afërt në hapin 5 - rregullimi i peshave të rrjetit. Dy raste të përshkruara më poshtë duhet të theksohen këtu.

Rasti 1. Rregullimi i peshave sinaptike të shtresës dalëse

Për shembull, për modelin e rrjetit nervor në Fig. 1, këto do të jenë pesha me emërtimet e mëposhtme: dhe . Le të vendosim që indeksi do të tregojë neuronin nga i cili del pesha sinaptike dhe neuronin në të cilin hyn:

Le të prezantojmë vlerën , e cila është e barabartë me diferencën midis rezultateve të kërkuara dhe atyre aktuale, shumëzuar me derivatin e funksionit të aktivizimit logjistik (shih më lart për formulën e funksionit të aktivizimit logjistik):

Atëherë, peshat e shtresës së daljes pas korrigjimit do të jenë të barabarta me:

Këtu është një shembull i llogaritjeve për peshën sinaptike:

Rasti 2. Rregullimi i peshave sinaptike të shtresës së fshehur

Për modelin e rrjetit nervor në Fig. 1, këto do të jenë peshat që korrespondojnë me shtresat dhe . Le të vendosim që indeksi do të tregojë neuronin nga i cili del pesha sinaptike dhe neuronin në të cilin hyn (vini re pamjen e një ndryshoreje të re).

Delta është një rregull që përdoret kur trajnohet një perceptron, duke përdorur vlerën e gabimit të shtresës së daljes. Nëse rrjeti ka dy ose më shumë shtresa, atëherë për shtresat e ndërmjetme nuk ka vlerë të qartë gabimi dhe rregulli delta nuk mund të përdoret.

Ideja kryesore pas përhapjes së pasme është se si të merret një vlerësim gabimi për neuronet e shtresës së fshehur. Vini re se i famshëm gabimet e bëra nga neuronet në shtresën e daljes lindin për shkak të i panjohur gabimet e neuroneve të shtresës së fshehur. Sa më e madhe të jetë vlera e lidhjes sinaptike midis neuronit të shtresës së fshehur dhe neuronit dalës, aq gabim më i fortë i pari ndikon në gabimin e të dytit. Rrjedhimisht, vlerësimi i gabimit të elementeve të shtresave të fshehura mund të merret si një shumë e ponderuar e gabimeve të shtresave pasuese.

Algoritmi i përhapjes së pasme (BEP), i cili është një përgjithësim i rregullit delta, ju lejon të trajnoni një PR ANN me çdo numër shtresash. Mund të thuhet se AORO në fakt përdor një shumëllojshmëri zbritje gradient, duke riorganizuar peshat në drejtim të gabimit minimal.

Kur përdorni AOR supozohet se funksioni sigmoid përdoret si funksion aktivizimi. Ky funksion kursen përpjekjet llogaritëse sepse ka një derivat të thjeshtë:

Funksioni sigmoid kufizon sinjalet e forta në 1 dhe përforcon sinjalet e dobëta.

Kuptimi i algoritmit të përhapjes së pasme është që gjatë trajnimit, rrjetit fillimisht i paraqitet një imazh për të cilin llogaritet gabimi në dalje. Ky gabim më pas përhapet përmes rrjetit në drejtim të kundërt, duke ndryshuar peshat e lidhjeve interneurone.

Algoritmi përfshin të njëjtën sekuencë veprimesh si kur stërvitni një perceptron. Së pari, merren peshat e lidhjeve interneurone vlerat e rastësishme, atëherë kryhen hapat e mëposhtëm:

1) Përzgjidhet një çift trajnimi ( X , Z*), X furnizuar në hyrje;

2) Është llogaritur prodhimi i rrjetit Z = F(Y);

3) Është llogaritur gabimi i daljes E;

4) Peshat e rrjetit janë rregulluar për të minimizuar gabimet;

Hapat 1 dhe 2 janë përhapja përpara përmes rrjetit, dhe 3 dhe 4 janë përhapje e kundërt.

Para trajnimit, është e nevojshme të ndahen çiftet ekzistuese hyrje-dalje në dy pjesë: trajnim dhe testim.

Çiftet e testimit përdoren për të kontrolluar cilësinë e trajnimit - rrjeti nervor është i trajnuar mirë nëse prodhon një dalje afër testit për hyrjen e specifikuar nga çifti testues.

Gjatë trajnimit, është e mundur që rrjeti nervor të tregojë rezultate të mira për të dhënat e trajnimit, por rezultate të dobëta për të dhënat e testimit. Mund të ketë dy arsye:

1. Të dhënat e testit janë shumë të ndryshme nga të dhënat e trajnimit, d.m.th. çiftet e trajnimit nuk mbuluan të gjitha fushat e hapësirës hyrëse.


2. Ka lindur fenomeni i "rikualifikimit" ( mbipërshtatje), kur sjellja e rrjetit nervor rezulton të jetë më komplekse sesa problemi që zgjidhet.

Rasti i fundit për problemin e përafrimit të një funksioni me pika është ilustruar në Fig. 3.3, ku rrathët e bardhë përfaqësojnë të dhënat e testit dhe rrathët e errët përfaqësojnë të dhënat e trajnimit.

Në rrjetet nervore me shumë shtresa, vlerat optimale të daljes së neuroneve të të gjitha shtresave, përveç asaj të fundit, janë, si rregull, të panjohura një perceptron me tre ose më shumë shtresa, duke u udhëhequr vetëm nga vlerat e gabimit në daljet e rrjetit

Një nga opsionet për zgjidhjen e këtij problemi është zhvillimi i grupeve të sinjaleve dalëse që korrespondojnë me sinjalet hyrëse për secilën shtresë të rrjetit nervor, i cili, natyrisht, është një operacion shumë intensiv i punës dhe nuk është gjithmonë i realizueshëm për të rregulluar në mënyrë dinamike koeficientët e peshimit të sinapseve, gjatë të cilave, si rregull, shumica lidhje të dobëta dhe ndryshojnë me një sasi të vogël në një drejtim ose në një tjetër, dhe ruhen vetëm ato ndryshime që rezultuan në një ulje të gabimit në daljen e të gjithë rrjetit. këtë metodë, pavarësisht

thjeshtësia e dukshme, kërkon llogaritje të rënda rutinore Dhe së fundi, opsioni i tretë, më i pranueshëm është përhapja e sinjaleve të gabimit nga daljet e rrjetit nervor në hyrjet e tij, në drejtim të kundërt me përhapjen e drejtpërdrejtë të sinjaleve në funksionimin normal algoritmi quhet procedura e përhapjes së pasme (gabim shumim prapa) Është ai që diskutohet më poshtë

Algoritmi i përhapjes së pasme është një algoritëm i përsëritur i të mësuarit me gradient që përdoret për të minimizuar devijimi standard rrymë nga daljet e kërkuara të rrjeteve neurale shumështresore me lidhje serike

Sipas metodës katrorët më të vegjël, funksioni i gabimit objektiv të rrjetit nervor që duhet minimizuar është vlera

ku është gjendja reale e daljes së neuronit në shtresën dalëse të rrjetit nervor kur një imazh ushqehet në hyrjet e tij, gjendja e kërkuar e daljes së këtij neuroni

Përmbledhja kryhet mbi të gjitha neuronet e shtresës së daljes dhe mbi të gjitha imazhet e përpunuara nga rrjeti Minimizimi duke përdorur metodën e zbritjes së gradientit siguron rregullimin e koeficientëve të peshës si më poshtë

ku është koeficienti i peshës së lidhjes sinaptike që lidh një neuron të shtresës me një neuron të shtresës - koeficienti i shkallës së të mësuarit,

Në përputhje me rregullën e diferencimit të funksioneve komplekse

ku është shuma e ponderuar e sinjaleve hyrëse të neuronit dhe argumenti i funksionit të aktivizimit Meqenëse derivati ​​i funksionit të aktivizimit duhet të përcaktohet në të gjithë boshtin e abshisave, funksioni i kërcimit njësi dhe funksionet e tjera të aktivizimit me inhomogjenitete nuk janë të përshtatshme. rrjetet nervore në shqyrtim Ata përdorin sa vijon funksionet e lëmuara, Si tangjente hiperbolike ose një sigmoid klasik me një eksponencial (shih tabelën 1 1) Për shembull, në rastin e një tangjente hiperbolike

Shumëzuesi i tretë është i barabartë me daljen e neuronit të shtresës së mëparshme

Sa i përket faktorit të parë në (1.11), ai lehtë mund të zgjerohet si më poshtë:

Këtu përmbledhja kryhet midis neuroneve të shtresës duke futur një ndryshore të re:

marrim një formulë rekursive për llogaritjen e vlerave të një shtrese nga vlerat e një shtrese më të vjetër

Për shtresën e daljes:

Tani mund të shkruajmë (1.10) në formë të zgjeruar:

Ndonjëherë për t'i dhënë procesit të korrigjimit të peshës disa inerci, duke zbutur kërcimet e mprehta kur lëvizni përgjatë sipërfaqes funksion objektiv, (1.17) plotësohet nga vlera e ndryshimit të peshës në përsëritjen e mëparshme.

ku është koeficienti i inercisë; numri aktual i përsëritjes.

Kështu, algoritmi i plotë për trajnimin e një rrjeti nervor duke përdorur procedurën e përhapjes së pasme është ndërtuar si më poshtë.

HAPI 1. Aplikoni një nga imazhet e mundshme në hyrjet e rrjetit dhe, në mënyrën e funksionimit normal të rrjetit nervor, kur sinjalet përhapen nga hyrjet në dalje, llogaritni vlerat e këtyre të fundit. Le t'ju kujtojmë se:

ku është numri i neuroneve në shtresë, duke marrë parasysh një neuron me një gjendje dalëse konstante që përcakton paragjykimin; hyrja e neuronit në shtresë

ku është sigmoidi,

ku është komponenti vektorial i figurës hyrëse.

HAPI 4. Rregulloni të gjitha peshat në rrjetin nervor:

HAPI 5. Nëse gabimi i rrjetit është i rëndësishëm, shkoni te hapi 1. Përndryshe, përfundoni.

Rrjetet në hapin 1 në mënyrë alternative renditje e rastësishme Të gjitha imazhet stërvitore janë paraqitur në mënyrë që rrjeti, në mënyrë figurative, të mos harrojë disa ndërsa të tjerat i memorizon.

Nga shprehja (1.17) rezulton se kur vlera e daljes tenton në zero, efikasiteti i të mësuarit zvogëlohet ndjeshëm. Me vektorët e hyrjes binare, mesatarisht gjysma e peshave nuk do të rregullohen, pra rajoni vlerat e mundshmeËshtë e dëshirueshme që të zhvendosen daljet e neuronit brenda kufijve, gjë që arrihet me modifikime të thjeshta të funksioneve logjistike. Për shembull, një sigmoid me një eksponencial transformohet në:

Le të shqyrtojmë çështjen e kapacitetit të një rrjeti nervor, d.m.th., numrin e imazheve të paraqitura në hyrjet e tij që ai mund të mësojë të njohë. Për rrjetet me më shumë se dy shtresa, kjo pyetje mbetet e hapur. Për rrjetet me dy shtresa, kapaciteti përcaktues i rrjetit vlerësohet si më poshtë:

ku është numri i peshave të rregullueshme, është numri i neuroneve në shtresën dalëse.

Kjo shprehje është marrë duke marrë parasysh disa kufizime. Së pari, numri i hyrjeve dhe neuroneve në shtresën e fshehur duhet të plotësojë pabarazinë Së dyti, megjithatë, vlerësimi i mësipërm është bërë për rrjetet me funksione të aktivizimit të pragut të neuroneve, dhe kapacitetin e rrjeteve me funksione të qetë aktivizimi, për shembull (1.23) zakonisht është më i madh. Për më tepër, termi deterministik do të thotë që vlerësimi i kapacitetit që rezulton është i përshtatshëm për të gjitha modelet e hyrjes që mund të përfaqësohen nga inputet. Në realitet, shpërndarja e modeleve të hyrjes tenton të ketë njëfarë rregullsie, e cila lejon rrjetin nervor të përgjithësohet dhe kështu të rrisë kapacitetin e tij aktual. Që nga shpërndarja e imazheve, në rast i përgjithshëm, nuk dihet paraprakisht, për kapacitetin real mund të flasim vetëm paraprakisht, por zakonisht është dyfishi i kapacitetit përcaktues.

Çështja e kapacitetit të një rrjeti nervor është e lidhur ngushtë me çështjen e fuqisë së kërkuar të shtresës dalëse të rrjetit që kryen klasifikimin përfundimtar të imazheve. Për shembull, për të ndarë një grup imazhesh hyrëse në dy klasa, mjafton një neuron dalës. Në këtë rast, çdo nivel logjik do të caktojë një klasë të veçantë. Në dy neurone dalëse me një funksion aktivizimi të pragut, mund të kodohen katër klasa. Për të rritur besueshmërinë e klasifikimit, është e dëshirueshme të futet teprica duke i caktuar çdo klase një neuron në shtresën e daljes ose, akoma më mirë, disa, secila prej të cilave është trajnuar për të përcaktuar nëse një imazh i përket një klase me shkallën e vet të besimi, për shembull: i lartë, i mesëm dhe i ulët. Rrjete të tilla nervore bëjnë të mundur klasifikimin e imazheve hyrëse të kombinuara në grupe të paqarta (të paqarta ose të kryqëzuara). Kjo pronë i afron rrjetet e tilla kushte reale funksionimin e rrjeteve nervore biologjike.

Rrjeti nervor në fjalë ka disa " fyte të ngushta" Së pari, në proces ka pozitive të mëdha ose vlerat negative peshat mund të zhvendosin pikën e funksionimit në sigmoidet e neuroneve në rajonin e ngopjes. Vlerat e vogla të derivatit të funksionit logjistik do të çojnë, në përputhje me (1.15) dhe (1.16), në ndalimin e të mësuarit, gjë që paralizon rrjetin. Së dyti, përdorimi i metodës së zbritjes së gradientit nuk garanton gjetjen e minimumit global të funksionit objektiv. Kjo lidhet ngushtë me çështjen e zgjedhjes së shkallës së të mësuarit. Rritja e peshës dhe, për rrjedhojë, shkalla e të mësuarit për të gjetur ekstremin duhet të jetë pafundësisht e vogël, por në këtë rast të mësuarit do të jetë

duke ndodhur në mënyrë të papranueshme ngadalë. Nga ana tjetër, rregullimet shumë të mëdha të peshave mund të çojnë në paqëndrueshmëri të përhershme në procesin e të mësuarit. Prandaj, një numër më i vogël se 1 (për shembull, 0.1) zakonisht zgjidhet si koeficienti i shkallës së të mësuarit 1], i cili gradualisht zvogëlohet gjatë procesit mësimor. Përveç kësaj, për të përjashtuar goditjet aksidentale të rrjetit në minimumin lokal, ndonjëherë, pas stabilizimit të vlerave të koeficientëve të peshimit, 7 rritet ndjeshëm për një kohë të shkurtër në mënyrë që të fillojë zbritja gradient nga pikë e re. Nëse përsëritja e kësaj procedure disa herë e sjell rrjetin në të njëjtën gjendje, mund të supozojmë se është gjetur një minimum global.

Ekziston një metodë tjetër për eliminimin e minimumeve lokale dhe paralizës së rrjetit, e cila është përdorimi i rrjeteve nervore stokastike.

Le të japim sa më sipër një interpretim gjeometrik.

Në algoritmin e përhapjes së pasme, llogaritet vektori i gradientit të sipërfaqes së gabimit. Ky vektor tregon drejtimin e zbritjes më të shkurtër përgjatë sipërfaqes nga pika aktuale, lëvizja përgjatë së cilës çon në një ulje të gabimit. Një sekuencë hapash në rënie do të çojë në një minimum të një lloji ose një tjetër. Vështirësia këtu është çështja e zgjedhjes së gjatësisë së hapave.

madhësi të madhe hapi, konvergjenca do të jetë më e shpejtë, por ekziston rreziku i kërcimit mbi zgjidhjen ose në rast formë komplekse sipërfaqet e gabimit për të shkuar në drejtimin e gabuar, për shembull, duke lëvizur përgjatë një përroske të ngushtë me shpate të pjerrëta, duke kërcyer nga njëra anë në tjetrën. Përkundrazi, kur hap i vogël dhe ecja në drejtimin e duhur do të kërkojë shumë përsëritje. Në praktikë, madhësia e hapit merret në proporcion me pjerrësinë e pjerrësisë, në mënyrë që algoritmi të ngadalësohet afër minimumit. Zgjedhja e duhur Shpejtësia e të mësuarit varet nga detyrë specifike dhe zakonisht bëhet në mënyrë eksperimentale. Kjo konstante mund të varet gjithashtu nga koha, duke u zvogëluar ndërsa algoritmi përparon.

Në mënyrë tipike ky algoritëm modifikohet për të përfshirë një term të momentit (ose inercisë). Kjo promovon përparimin në një drejtim fiks, kështu që nëse janë ndërmarrë disa hapa në të njëjtin drejtim, algoritmi rrit shpejtësinë, gjë që ndonjëherë ju lejon të shmangni një minimum lokal, si dhe të kaloni më shpejt nëpër zona të sheshta.

Në çdo hap të algoritmit, të gjithë shembujt e trajnimit futen në hyrjen e rrjetit nga ana tjetër, vlerat reale të daljes së rrjetit krahasohen me vlerat e kërkuara dhe llogaritet gabimi. Vlera e gabimit si dhe gradienti i sipërfaqes së gabimit

përdoret për të rregulluar shkallët, pas së cilës të gjitha veprimet përsëriten. Procesi i të mësuarit ndalon ose kur ka kaluar një numër i caktuar epokash, ose kur gabimi arrin një nivel të caktuar të vogël, ose kur gabimi ndalon së ulet.

Le të shqyrtojmë më në detaje problemet e përgjithësimit dhe rikualifikimit të një rrjeti nervor. Përgjithësimi është aftësia e një rrjeti nervor për të bërë një parashikim të saktë mbi të dhënat që nuk i përkasin grupit fillestar të trajnimit. Mbi përshtatja është një mbipërshtatje që ndodh kur algoritmi i trajnimit zgjat shumë dhe rrjeti është shumë kompleks për detyrën ose sasinë e të dhënave të disponueshme.

Le të demonstrojmë problemet e përgjithësimit dhe rikualifikimit duke përdorur shembullin e përafrimit të një varësie të caktuar jo nga një rrjet nervor, por me anë të polinomeve, dhe thelbi i fenomenit do të jetë absolutisht i njëjtë.

Grafikët polinom mund të kenë formë të ndryshme, dhe sa më i lartë të jetë shkalla dhe numri i termave, aq më komplekse mund të jetë kjo formë. Për të dhënat fillestare, ju mund të zgjidhni një kurbë polinomiale (model) dhe kështu të merrni një shpjegim të varësisë ekzistuese. Të dhënat mund të jenë të zhurmshme, kështu që modeli më i mirë nuk mund të supozohet se kalon saktësisht nëpër të gjitha pikat e disponueshme. Një polinom i rendit të ulët mund të shpjegojë më mirë varësinë ekzistuese, megjithatë, ai nuk është një mjet mjaft fleksibël për përafrimin e të dhënave, ndërsa një polinom rendit të lartë mund të jetë shumë fleksibël, por do të ndjekë saktësisht të dhënat, duke marrë një formë të ndërlikuar që nuk ka asnjë lidhje me marrëdhënien reale.

Rrjetet nervore përballen me të njëjtat vështirësi. Rrjetet me një numër i madh peshat janë modeluar mbi funksionet komplekse dhe për këtë arsye janë të prirur për mbistërvitje. Rrjetet me një numër të vogël peshash mund të mos jenë mjaft fleksibël për të modeluar varësitë ekzistuese. Për shembull, një rrjet pa shtresa të fshehura modelon vetëm një funksion të zakonshëm linear.

Si të zgjidhni shkallë e saktë kompleksiteti i rrjetit? Pothuajse gjithmonë një rrjet më kompleks prodhon një gabim më të vogël, por kjo mund të mos tregojë cilësi të mirë model, por në lidhje me rikualifikimin e rrjetit.

Zgjidhja është përdorimi i vlerësimit të kryqëzuar të standardeve. Për këtë qëllim, rezervohet një pjesë e kampionit të trajnimit, i cili përdoret jo për trajnimin e rrjetit duke përdorur algoritmin e prapapërhapjes, por për monitorimin e pavarur të rezultatit gjatë algoritmit. Në fillim të punës, ndodhi një gabim rrjeti në trajnim dhe

grupet e kontrollit do të jenë të njëjta. Ndërsa rrjeti trajnohet, gabimi i trajnimit zvogëlohet, si dhe gabimi në grupin e kontrollit. Nëse gabimi i kontrollit ndalon së zvogëluari ose madje fillon të rritet, kjo tregon se rrjeti ka filluar të përafrojë të dhënat shumë nga afër (të mbitrajnuar) dhe trajnimi duhet të ndërpritet. Nëse kjo ndodh, atëherë numri i elementeve dhe/ose shtresave të fshehura duhet të reduktohet, sepse rrjeti është shumë i fuqishëm për këtë detyrë. Nëse të dy gabimet (trajnimi dhe verifikimi i kryqëzuar) nuk arrijnë një nivel mjaft të vogël, atëherë rikualifikimi natyrshëm nuk ndodhi, dhe rrjeti, përkundrazi, nuk është mjaft i fuqishëm për të modeluar varësinë ekzistuese.

Problemet e përshkruara çojnë në faktin se kur punë praktike Me rrjetet nervore, ju duhet të eksperimentoni me një numër të madh rrjetesh të ndryshme, ndonjëherë duke trajnuar secilën prej tyre disa herë dhe duke krahasuar rezultatet. Treguesi kryesor i cilësisë së rezultatit është gabimi i kontrollit. Në të njëjtën kohë, në përputhje me parimin e sistemit të gjerë, të dy rrjeteve me gabime kontrolli afërsisht të barabarta, ka kuptim të zgjidhni atë që është më i thjeshtë.

Nevoja për eksperimente të përsëritura çon në faktin se grupi i kontrollit fillon të luajë një rol kyç në zgjedhjen e një modeli dhe bëhet pjesë e procesit të të mësuarit. Kjo e dobëson rolin e saj si kriter i pavarur cilësinë e modelit. Në numër i madh ka eksperimente probabilitet të lartë zgjidhni një rrjet të mirë që jep rezultat i mirë në grupin e kontrollit. Megjithatë, për t'i dhënë modelit përfundimtar besueshmërinë e duhur, ata shpesh (kur volumi i shembujve të trajnimit e lejon këtë) bëjnë si më poshtë: rezervojnë një grup shembujsh testues. Modeli përfundimtar testohet mbi të dhënat nga ky grup për të siguruar që rezultatet e arritura në trajnimin dhe grupet e testeve të shembujve janë reale dhe jo artefakte të procesit mësimor. Natyrisht, për të luajtur mirë rolin e tij, grupi i testit duhet të përdoret vetëm një herë: nëse ripërdoret për të rregulluar procesin e të mësuarit, ai efektivisht do të kthehet në një grup kontrolli.

Për të përshpejtuar procesin e trajnimit të rrjetit, janë propozuar modifikime të shumta të algoritmit të përhapjes së pasme, në lidhje me përdorimin e funksione të ndryshme gabimet, procedurat për përcaktimin e drejtimit dhe madhësive të hapave.

1) Funksionet e gabimit:

Funksionon gabimi integral në të gjithë grupin e shembujve të trajnimit;

Funksionet e gabimit të fuqive të plota dhe të pjesshme

2) Procedurat për përcaktimin e madhësisë së hapit në çdo përsëritje

Dikotomia;

Marrëdhëniet inerciale (shih më lart);

3) Procedurat për përcaktimin e drejtimit të hapit.

Përdorimi i një matrice të derivateve të rendit të dytë (metoda e Njutonit);

Përdorimi i udhëzimeve në disa hapa (metoda partiane).

Qëllimi i trajnimit të një rrjeti është të rregullojë peshat e tij në mënyrë që aplikimi i një grupi të caktuar inputesh të çojë në grupin e kërkuar të outputeve. Për shkurtësi, këto grupe hyrjesh dhe daljesh do të quhen vektorë. Gjatë trajnimit, supozohet se për çdo vektor hyrës ka një vektor objektiv të çiftuar me të, i cili specifikon daljen e kërkuar. Së bashku ata quhen një çift stërvitor. Në mënyrë tipike, rrjeti trajnohet në shumë çifte.

Para fillimit të stërvitjes, të gjitha peshave duhet t'u caktohen vlera të vogla fillestare, të zgjedhura në mënyrë të rastësishme. Kjo siguron që rrjeti të mos ngopet me pesha të mëdha dhe parandalon një sërë rastesh të tjera patologjike. Për shembull, nëse të gjitha peshat jepen njësoj vlerat fillestare, dhe funksionimi i kërkuar kërkon vlera të pabarabarta, atëherë rrjeti nuk do të jetë në gjendje të mësojë.

Trajnimi i një rrjeti të përhapjes së pasme kërkon

kryeni operacionet e mëposhtme:

1. Zgjidhni çiftin e ardhshëm të trajnimit nga grupi i trajnimit, dorëzoni vektorin e hyrjes në hyrjen e rrjetit.

2. Llogaritni daljen e rrjetit.

3. Llogaritni diferencën midis daljes së rrjetit dhe daljes së kërkuar (vektori i synuar i çiftit të trajnimit)

4. Rregulloni peshat e rrjetit në mënyrë që të minimizoni gabimin.

5. Përsëritni hapat 1 deri në 4 për çdo vektor të grupit të trajnimit derisa gabimi në të gjithë grupin të arrijë një nivel të pranueshëm.

Veprimet e kryera nga hapat 1 dhe 2 janë të ngjashme me ato të kryera kur rrjeti është tashmë i trajnuar, d.m.th. jepet një vektor hyrës dhe llogaritet dalja që rezulton. Llogaritjet kryhen shtresë pas shtrese. Në figurën 3, fillimisht llogariten daljet e neuroneve të shtresës j, pastaj përdoren si hyrje të shtresës k, llogariten daljet e neuroneve të shtresës k, të cilat formojnë vektorin dalës të rrjetit.

Në hapin 3, secila prej daljeve të rrjetit, të cilat janë etiketuar OUT në Fig. 3, zbritet nga komponenti përkatës i vektorit të synuar për të marrë gabimin. Ky gabim përdoret në hapin 4 për të rregulluar peshat e rrjetit, me shenjën dhe madhësinë e ndryshimeve në peshat e përcaktuara nga algoritmi i të mësuarit (shih më poshtë).

Pas përsëritjeve të mjaftueshme të këtyre katër hapave, diferenca midis rezultateve aktuale dhe rezultateve të synuara duhet të ulet në një vlerë të pranueshme dhe rrjeti thuhet se ka mësuar. Tani rrjeti përdoret për njohje dhe peshat nuk ndryshojnë.

Hapat 1 dhe 2 mund të shihen si një "kalim përpara" ndërsa sinjali përhapet nëpër rrjet nga hyrja në dalje. Hapat 3, 4 përbëjnë një "backpass", këtu sinjali i llogaritur i gabimit përhapet përsëri nëpër rrjet dhe përdoret për të rregulluar peshat. Këto dy kalime tani do të detajohen dhe shprehen në një formë më matematikore.

Kalimi përpara. Hapat 1 dhe 2 mund të shprehen në forma vektoriale si më poshtë: jepet vektori i hyrjes X dhe dalja është një vektor Y. Çifti vektor input-objektiv X Dhe Tështë marrë nga grupi i trajnimit. Llogaritjet kryhen në vektor X për të marrë vektorin e daljes Y.

Siç e kemi parë, llogaritja në rrjetet me shumë shtresa kryhet shtresë pas shtrese, duke filluar me shtresën më afër hyrjes. Vlera NET e çdo neuroni në shtresën e parë llogaritet si një shumë e ponderuar e hyrjeve të neuronit. Funksioni i aktivizimit F më pas "ngjesh" NET dhe prodhon një vlerë OUT për çdo neuron në atë shtresë. Kur merret grupi i daljes së një shtrese, ai bëhet grupi hyrës për shtresën tjetër. Procesi përsëritet shtresë pas shtrese derisa të merret grupi përfundimtar i daljeve të rrjetit.

Ky proces mund të shprehet në një formë të kondensuar duke përdorur shënimin vektorial. Peshat midis neuroneve mund të mendohen si një matricë W. Për shembull, pesha nga neuroni 8 në shtresën 2 në neuronin 5 në shtresën 3 shënohet me 8.5. Pastaj vektori NET i shtresës N mund të shprehet jo si një shumë produktesh, por si një produkt X Dhe W. Në shënimin vektorial N= XW. Duke aplikuar në drejtim të komponentëve funksionin F në një vektor NET N fitohet vektori i daljes RRETH. Kështu, për një shtresë të caktuar, procesi llogaritës përshkruhet nga shprehja e mëposhtme:

O=F( XW) (3)

Vektori i daljes së një shtrese është vektori hyrës për tjetrën.

Kalim i kundërt. Rregullimi i peshave të shtresës së daljes. Meqenëse një vlerë e synuar është specifikuar për çdo neuron në shtresën e daljes, rregullimi i peshave kryhet lehtësisht duke përdorur një rregull të modifikuar delta. Shtresat e brendshme quhen "shtresa të fshehura" dhe rezultatet e tyre nuk kanë vlera të synuara për t'u krahasuar. Prandaj, mësimi bëhet më i vështirë.

Trajnimi i shtresës së fundit Fig. 2.4

Në Fig. Figura 2.4 tregon procesin e të mësuarit për një peshë nga neuroni p.

në shtresën e fshehur j te neuroni q në shtresën dalëse k. Dalja e neuronit të shtresës k, e zbritur nga vlera e synuar (Target), jep sinjalin e gabimit. Kjo shumëzohet me derivatin e funksionit të tkurrjes të llogaritur për atë neuron të shtresës 6, duke dhënë kështu vlerën d.

d = OUT (1 - JASHTË) (Synimi - JASHTË). (2.4)

Pastaj d shumëzohet me vlerën OUT të neuronit j, nga i cili vjen pesha në fjalë. Ky produkt nga ana e tij shumëzohet me një faktor të shkallës së të mësuarit h (zakonisht midis 0.01 dhe 1.0) dhe rezultati i shtohet peshës. E njëjta procedurë kryhet për çdo peshë nga neuroni në shtresën e fshehur deri te neuroni në shtresën dalëse.

Ekuacionet e mëposhtme ilustrojnë këtë llogaritje:

Dw pq, k = hd q, k OUT p, j (2.5)

ku w pq, k (n) është vlera e peshës nga neuroni h në shtresën e fshehur në neuronin q në shtresën dalëse në hapin n (para korrigjimit), vini re se indeksi k i referohet shtresës në të cilën përfundon kjo peshë d.m.th., sipas konventës së miratuar në këtë libër, me të cilën është bashkuar; w pq, k (n+1) - vlera e peshës në hapin n+1 (pas korrigjimit), vlera d q, k - d për neuronin në shtresën dalëse k, OUT p, j - vlera OUT për neuronin p në shtresa e fshehur j.

Rregullimi i peshave të shtresave të fshehura. Konsideroni një neuron të vetëm në shtresën e fshehur që i paraprin shtresës dalëse. Ndërsa kalon përpara, ky neuron transmeton sinjalin e tij të daljes tek neuronet në shtresën e daljes përmes peshave që i lidhin ato. Gjatë stërvitjes, këto pesha funksionojnë në rend të kundërt, duke kaluar vlerën e d nga shtresa e daljes përsëri në shtresën e fshehur. Secila prej këtyre peshave shumëzohet me vlerën d të neuronit me të cilin është i lidhur në shtresën dalëse. Vlera d e kërkuar për një neuron të shtresës së fshehur merret duke mbledhur të gjitha produktet e tilla dhe duke shumëzuar me derivatin e funksionit të kompresimit:

(Shih Fig.5) Pasi të merret vlera e d, peshat që ushqejnë shtresën e parë të fshehur mund të rregullohen duke përdorur ekuacionet (5) dhe (6), ku indekset modifikohen sipas shtresës.

Trajnimi i shtresës së brendshme Fig. 2.5

Për çdo neuron në një shtresë të caktuar të fshehur, d duhet të llogaritet dhe të gjitha peshat e lidhura me këtë shtresë duhet të rregullohen. Ky proces përsëritet shtresë pas shtrese drejt hyrjes derisa të gjitha peshat të jenë rregulluar.

Duke përdorur shënimin e vektorit, operacioni i përhapjes së gabimit mund të shkruhet shumë më kompakt. Le të shënojmë grupin e vlerave d të shtresës dalëse si D k dhe grupin e peshave të shtresës dalëse si grup W k. Për të marrë Dj, vektorin d të shtresës së daljes, mjaftojnë dy operacionet e mëposhtme:

1. Shumëzoni vektorin d të shtresës dalëse D k me matricën e peshës së transpozuar W k që lidh shtresën e fshehur me shtresën dalëse.

2. Shumëzoni çdo komponent të produktit që rezulton me derivatin e funksionit të kompresimit të neuronit përkatës në shtresën e fshehur.

Në shënimin simbolik:

,

ku operatori $ tregon produktin sipas komponentëve të vektorëve. O j është vektori dalës i shtresës j dhe I është një vektor të gjithë përbërësit e të cilit janë të barabartë me 1.

Paraliza e rrjetit. Gjatë procesit të trajnimit në rrjet, vlerat e peshës mund të bëhen shumë të mëdha si rezultat i korrigjimit. Kjo mund të rezultojë që të gjithë ose shumica e neuroneve të funksionojnë shumë vlera të mëdha OUT, në rajonin ku derivati ​​i funksionit të kompresimit është shumë i vogël. Meqenëse gabimi i dërguar gjatë procesit mësimor është proporcional me këtë derivat, procesi i të mësuarit praktikisht mund të ngrijë. Nga pikëpamja teorike, ky problem është kuptuar keq. Kjo zakonisht shmanget duke zvogëluar madhësinë e hapit n, por kjo rrit kohën e trajnimit. Heuristika të ndryshme janë përdorur për të parandaluar ose rikuperuar nga paraliza, por tani për tani ato mund të konsiderohen vetëm eksperimentale.

Minimumet lokale. Përhapja prapa përdor një variacion të zbritjes së gradientit, d.m.th. lëviz poshtë sipërfaqes së gabimit, duke rregulluar vazhdimisht peshat drejt minimumit. Sipërfaqja e gabimit të një rrjeti kompleks është shumë e thyer dhe përbëhet nga kodra, lugina, palosje dhe lugina në hapësirë ​​me dimensione të larta. Rrjeti mund të hyjë minimale lokale(lugina e cekët) kur ka një të ulët shumë më të thellë afër. Në një pikë minimale lokale, të gjitha drejtimet tregojnë lart dhe rrjeti nuk mund të shpëtojë prej tij. Metodat statistikore të të mësuarit mund të ndihmojnë në shmangien e këtij kurthi, por ato janë të ngadalta. Propozohet një metodë që kombinon metodat statistikore të makinës Kasha me zbritjen e gradientit të përhapjes së pasme dhe çon në një sistem që gjen minimumin global duke ruajtur shpejtësi të lartë prapashumëzimi. Kjo diskutohet në kapitullin. 5.

Madhësia e hapit. Një ekzaminim i kujdesshëm i provës së konvergjencës tregon se korrigjimet e peshës supozohen të jenë pafundësisht të vogla. Është e qartë se kjo nuk është e realizueshme në praktikë, pasi çon në një kurbë mësimi të pafund. Madhësia e hapit duhet të merret si e kufizuar dhe në këtë çështje duhet të mbështetet vetëm në përvojën. Nëse madhësia e hapit është shumë e vogël, atëherë konvergjenca është shumë e ngadaltë, por nëse është shumë e madhe, atëherë mund të ndodhë paralizë ose paqëndrueshmëri e vazhdueshme.

Paqëndrueshmëri e përkohshme. Nëse rrjeti mëson të njohë shkronjat, atëherë nuk ka kuptim të mësosh B nëse A harrohet. Në provën e konvergjencës, ky kusht plotësohet, por kërkohet gjithashtu që rrjeti të paraqitet me të gjithë vektorët e grupit të stërvitjes përpara se të rregullohen peshat. Ndryshimet e nevojshme në pesha duhet të llogariten në të gjithë grupin, dhe kjo kërkon memorie shtesë; Pas një numri ciklesh të tilla trajnimi, peshat do të konvergojnë në një gabim minimal. Kjo metodë mund të jetë e padobishme nëse rrjeti është në një mjedis të jashtëm që ndryshon vazhdimisht, në mënyrë që i njëjti vektor të mos përsëritet për herë të dytë. Në këtë rast, procesi i të mësuarit mund të mos konvergojë kurrë, duke u endur pa qëllim ose duke u lëkundur në mënyrë të egër. Në këtë kuptim, përhapja e pasme është ndryshe nga sistemet biologjike.

Në mënyrë rigoroze, metoda e përhapjes së pasme është një metodë për llogaritjen e shpejtë të një gradienti, bazuar në veçoritë e funksionit të rillogaritjes së rrjetit që zvogëlojnë kompleksitetin llogaritës të llogaritjes së gradientit. Metoda përdor gabimin në daljen e rrjetit për të llogaritur derivatet e pjesshme në lidhje me peshat e shtresës së fundit të lidhjeve të trajnuara, pastaj, duke përdorur peshat e shtresës së fundit dhe gabimin e rrjetit, gabimi në daljen e shtresës së parafundit është përcaktohet dhe procesi përsëritet.

Përshkrimi i algoritmit

Përhapja e pasme zbatohet për rrjetet me shumë shtresa, neuronet e të cilave kanë një jolinearitet me një derivat të vazhdueshëm, si ky:

Jolineariteti i këtij lloji është i përshtatshëm për shkak të thjeshtësisë së llogaritjes së derivatit:

Për të trajnuar rrjetin, përdoren P çiftet e vektorëve të sinjalit: vektori hyrës I dhe vektori që duhet të merret në daljen e rrjetit D. Rrjeti, në rast i thjeshtë, përbëhet nga shtresa N, dhe çdo neuron i shtresës pasuese është i lidhur me të gjithë neuronet e shtresës së mëparshme me lidhje, me pesha w [n].

Me përhapjen e drejtpërdrejtë, për secilën shtresë llogariten (dhe ruhen) sinjali total në daljen e shtresës (S [n]) dhe sinjali në daljen e neuronit. Kështu, sinjali në hyrjen e neuronit i-të të shtresës së n-të:

Këtu w (i,j) janë peshat e lidhjeve të shtresës së n-të. Sinjali i daljes së neuronit llogaritet duke aplikuar jolinearitetin e neuronit në sinjalin total.

Sinjali i shtresës së daljes x[N] konsiderohet të jetë sinjali dalës i rrjetit O.

Në bazë të sinjalit dalës të rrjetit O dhe sinjalit D, i cili duhet të merret në daljen e rrjetit për një hyrje të caktuar, llogaritet gabimi i rrjetit. Në mënyrë tipike, përdoret katrori mesatar i devijimit mbi të gjithë vektorët e grupit të trajnimit:

Për të trajnuar rrjetin, përdoret gradienti i funksionit të gabimit mbi peshat e rrjetit. Algoritmi i përhapjes së pasme përfshin llogaritjen e gradientit të funksionit të gabimit duke "përhapur prapa sinjalin" e gabimit. Pastaj derivati ​​i pjesshëm i gabimit në lidhje me peshat e lidhjes llogaritet duke përdorur formulën:

Këtu d është mbetja e rrjetit, e cila për shtresën e daljes llogaritet duke përdorur funksionin e gabimit:

Dhe për shtresat e fshehura - sipas mospërputhjes së shtresës së mëparshme:

Për rastin e jolinearitetit sigmoid dhe devijimit mesatar katror si funksion i gabimit:

Trajnimi aktual i rrjetit konsiston në gjetjen e vlerave të tilla të peshës që minimizojnë gabimin në daljet e rrjetit. Ka shumë metoda të bazuara në gradient ose të bazuara në gradient në dispozicion për të zgjidhur këtë problem. Në rastin më të thjeshtë, rrjeti trajnohet duke përdorur rritje të vogla të peshave të lidhjes në drejtim të kundërt me vektorin e gradientit:

Kjo metodë e të mësuarit quhet "optimizimi i zbritjes së gradientit" dhe, në rastin e rrjeteve nervore, shpesh konsiderohet pjesë e metodës së përhapjes së pasme.

Zbatimi i algoritmit të paspërhapjes së gabimit duke përdorur shembullin e përafrimit të funksionit

Detyrë: Le të ketë një tabelë të vlerave të argumentit ( x i ) dhe vlerat përkatëse të funksionit ( f(x i )) ( kjo tabelë mund të ketë dalë gjatë llogaritjeve të disa analizave funksioni i dhënë kur kryeni një eksperiment për të identifikuar varësinë e rrymës nga rezistenca në rrjeti elektrik, kur identifikohet një lidhje ndërmjet aktiviteti diellor dhe numri i vizitave në qendrën e kardiologjisë, ndërmjet shumës së subvencioneve për fermerët dhe vëllimit të prodhimit bujqësor, etj.).

Në mjedisin Matlab, është e nevojshme të ndërtohet dhe të trajnohet një rrjet nervor për të përafruar një funksion të specifikuar në tabelë, i=1, 20. Zhvilloni një program që zbaton algoritmin e përafrimit të rrjetit nervor dhe shfaq rezultatet e përafrimit në formën e grafikëve.

Përafrimi konsiston në faktin se, duke përdorur informacionin e disponueshëm për f (x), ne mund të marrim parasysh funksionin e përafërt z (x) i cili është afër në njëfarë kuptimi me f (x), duke na lejuar të kryejmë veprimet përkatëse mbi të dhe të marrim një vlerësim i gabimit të një zëvendësimi të tillë.

Përafrimi zakonisht nënkupton një përshkrim të disa varësive, ndonjëherë jo të specifikuara në mënyrë eksplicite, ose një grupi të dhënash që e përfaqësojnë atë duke përdorur një varësi tjetër, zakonisht më të thjeshtë ose më uniforme. Shpesh të dhënat janë në formën e pikave individuale të ankorimit, koordinatat e të cilave specifikohen nga tabela e të dhënave. Rezultati i përafrimit mund të mos kalojë nëpër pikat e nyjeve. Në të kundërt, detyra e interpolimit është gjetja e të dhënave në afërsi të pikave të nyjës. Për këtë qëllim përdoren funksione të përshtatshme, vlerat e të cilave në pikat nodale përkojnë me koordinatat e këtyre pikave.

Detyrë. Në mjedisin Matlab, është e nevojshme të ndërtohet dhe të trajnohet një rrjet nervor për të përafruar një funksion të specifikuar nga tabela (shih Figurën 5).

Figura 5. Tabela e vlerave të funksionit Në mjedisin matematikor Matlab, në dritaren komanduese, shkruajmë kodin për programin për krijimin dhe trajnimin e një rrjeti nervor.

Për ta zgjidhur këtë, ne do të përdorim funksionin newff (.) - duke krijuar një rrjet nervor shumështresor "klasik" me trajnim duke përdorur metodën e përhapjes së pasme, d.m.th. peshat e sinapsit ndryshojnë duke marrë parasysh funksionin e gabimit, ndryshimi midis përgjigjeve reale dhe të sakta të rrjetit nervor, i përcaktuar në shtresën e daljes, përhapet në drejtim të kundërt - drejt rrjedhës së sinjalit. Rrjeti do të ketë dy shtresa të fshehura. Shtresa e parë ka 5 neurone, e dyta - 1. Funksioni i aktivizimit të shtresës së parë është "tansig" (funksioni sigmoid, kthen vektorët e daljes me vlera në intervalin nga - 1 në 1), e dyta - "purelin" ( funksion linear aktivizimi, i kthen të pandryshuar vektorët e daljes). Do të ketë 100 epoka stërvitore. Funksioni i trajnimit "trainlm" - një funksion që trajnon rrjetin (përdoret si parazgjedhje sepse ofron më shumë mësim i shpejtë, por kërkon shumë memorie).

Kodi i programit:

P = zero (1, 20);

për i = 1: 20% krijimi i grupit P (i) = i*0.1; %hyrje (argument) fundi T= ; %input (vlera e funksionit) net = newff ([-1 2.09], ,("tansig" "purelin")); %krijimi i një rrjeti të rrjetit nervor. trainParam. epoka = 100; %cakto numrin e epokave të trajnimit net=train (net,P,T); %trajnimi i rrjetit y = sim(net,P); %figura e sondazhit të rrjetit të trajnuar (1);

komplot (P,T,P,y,o"), rrjetë; %vizatimi i një grafiku të të dhënave burimore dhe funksionit të gjeneruar nga rrjeti nervor.

Rezultati i rrjetit nervor.

Rezultati i trajnimit (shih Fig. 2): grafiku tregon kohën e trajnimit të rrjetit nervor dhe gabimin e trajnimit. Në këtë shembull, rrjeti nervor kaloi nëpër të 100 epokat, duke mësuar gradualisht dhe duke reduktuar gabimet, duke arritur në 10 -2.35 (0.00455531).

Figura 2. Rezultati i trajnimit të rrjetit nervor

Grafiku i të dhënave origjinale dhe funksioni i gjeneruar nga rrjeti nervor (shih Fig. 3): rrathët tregojnë të dhënat origjinale dhe rreshti tregon funksionin e gjeneruar nga rrjeti nervor. Më pas, duke përdorur pikat e marra, mund të ndërtoni një regresion dhe të merrni një ekuacion të përafërt (shih Figurën 8). Ne përdorëm regresionin kub sepse grafiku i tij më saktë kalon nëpër pikat e marra. Ekuacioni që rezulton duket si:

y=0,049x 3 +0,88x 2 -0,006x+2,1.

Kështu, ne shohim se duke përdorur një rrjet nervor, ju mund të gjeni shpejt një funksion, duke ditur vetëm koordinatat e pikave nëpër të cilat ai kalon.

Figura 3. Grafiku i të dhënave origjinale dhe funksioni i gjeneruar nga rrjeti nervor


Figura 4. Grafiku i funksionit të përafrimit



Ju pëlqeu artikulli? Ndani me miqtë tuaj!