Սկիզբ » Ուսումնական նյութեր » Ծրագրավորում » Ծրագրավորման լեզուներ » Python » Նեյրոնային ցանցերի ուսուցումը backpropagation ալգորիթմի միջոցով։ Մաս 1, ընդհանուր դրույթներ։

Նեյրոնային ցանցերի ուսուցումը backpropagation ալգորիթմի միջոցով։ Մաս 1, ընդհանուր դրույթներ։

| Ապրիլ 25, 2016 | Մեկնաբանված չէ |

Արհեստական նեյրոնային ցանցերի աշխատանքը հիմնված է կենսաբանական նեյրոնի մաթեմատիկական մոդելի վրա։

 

synps

Նկար 1․ Կենսաբանական նեյրոնի կառուցվածքը։

 

Բացի այլ բաղկացուցիչներից՝  նեյրոնն ունի նաև սինափսներ (synapse) և աքսոններ (axon)։ Սինափսը հանդիսանում է մուտք, իսկ աքսոնը ելք, ընդ որում ամեն նախորդ նեյրոնի աքսոնը միանում է հաջորդի սինափսին (նկար 1)։

Նեյրոնի մաթեմատիկական մոդելը սխեմատիկորեն կարելի է պատկերել հետևյալ կերպ․

 

neuron_model                                                                                                                          Նկար 2. Արհեստական նեյրոնի կառուցվածքը։

 

Արհեստական նեյրոնը նույնպես ունի մուտքեր (X1, X2 … Xn) և ելք (output): Բացի դրանից, ամեն Xi մուտք ունի իր կշռային գործակիցը Wi․ որքան մեծ է կշռային գործակիցը, այնքան մեծ է այդ մուտքի ազդեցության չափը նեյրոնի ներքին վիճակի վրա։ Յուրաքանչյուր նեյրոնն բնութագրվում է նաև ներքին վիճակով (S) և ակտիվացման ֆունկցիայով σ(S) ։ Ներքին վիճակը հանդիսանում է մուտքերի կշռված գումարը և տրվում է հետևյալ արտահայտությամբ․

sum

 

 

որտեղ

Wij ֊ նախորդ i-րդ ու ընթացիկ j -րդ նեյրոնների կապուղու կշռային գործակիցն է,

Xi֊ նախորդ նեյրոնի ելքն է , որը հանդիսանում է տվյալ j֊րդ նեյրոնի մուտք։

Նեյրոնի ելքային ազդանշանը ֆունկցիա է, որը կախված դրա ներքին վիճակից Y = σ(S): Կան տարբեր ակտիվացման ֆունկցիաներ, որոնցից առավել հաճախ օգտագործվում է sigmoid֊ը ( տես նկ. 3)։

 

sigmoid                                                                                                                           Նկար 3. sigmod ֆունկցիայի գրաֆիկը։

 

sigmod-ը հարմար է կիրառել, քանի որ դրա ածանցյալը արտահայտվում է հենց իր միջոցով, այսինքն

sigmապա  deriv_sigma

Այստեղ  ակտիվացման ֆունկցիայի ածանցելի լինելը շատ կարևոր պայման է հանդիսանում backpropagation ալգորիթմի իրականացման համար, քանի որ այնտեղ օգտագործվում է gradient descent մեթոդը, լոկալ մինիմումների որոշման նպատակով, որն անհրաժեշտ է ալգորիթմի յուրաքանչյուր իտերացիայում կշռային գործակիցների կարգաբերման համար։ gradient descent մեթոդի էությունը կայանում է կշռային գործակիցների արժեքի այպիսի փոփոխման մեջ, որի  դեպքում մուտքային սխալը կլինի մինիմալը։ Դրա համար կշռային գործակիցների արժեքները պետք է փոփոխել ելքային սխալի գրադիենտի հակառակ ուղղությամբ, իսկ ինչու հակառակ, քանի որ գրադիենտը դա վեկտոր է, որը ցույց է տալիս ֆունկցիայի ամենաարագ աճման ուղությունը, հետևաբար սխալի փոքրացման համար մենք պետք է շարժվենք գրադիենտի հակառակ ուղղությամբ, այսինքն լոկալ մինիմումի ուղղությամբ, իսկ ինչու լոկալ քանի որ տվյալ իտերացիայում մեզ դեռ պարզ չէ, թե դեռ որքան կարող ենք նվազեցնել սխալի չափը, հետևաբար մենք կարող ենք գտնել միայն լոկալ մինիմումը։

grad                                                          Նկար 4. Պատկերված է E(w) սխալի նվազման ուղղությունը կախված w0 և w1 գործակիցների արժեքներից։

 

Նկար 4֊ում պատկերված է ելքային սխալի կախվածությունը w0 և w1 գործակիցներից։ Յուրաքանչյուր իտերացիայում w0, w1 արժեքները փոխվում են այնպես որ E(w) սխալի լինի մինիմալ տվյալ իտերացիայի համար, իհարկե դա չի նշանակում որ այն ընդհանրապես կլինի նվազագույնը։

 

 

local_min

Նկար 5․ Պտկերված է լոկալ և գլոբալ մինիմումների տարբերությունը։

Ինչպես երևում է նկար 5 ֊ից, եթե տվյալ իտերացիայում E(w) սխալը տվյալ կշռային գործակիցների պայմաններում մինիմալ է, ապա դա չի նշանակում է, որ այն ունի նվազագույն արժեքը ընդհանրապես։

Լինում են միաշերտ և բազմաշերտ նեյրոնային ցանցեր։

single_layer                                                                                                                                Նկար 6․ միաշերտ նեյրոնային ցանց։

 

Միաշերտ նեյրոնային ցանցերում մուտքերը անմիջապես կապված են ելքերի հետ։ Այս տիպի ցանցերը նախատեսված են գծային դասակարգում կատարելում համար։ Օրինակ այն հաջողությամբ կարող է կատարել AND բուլյան գործողությունը (նկար 5)։

and                                                                                                               Նկար 7. Միաշերտ ցանցը կատարում է AND գործողությունը։

Այստեղ հոծ գծով առանձնացված է հարթության այն հատվածը, որտեղ  AND գործողության արդյունքը 0 ֊է, այն հատվածից, որտեղ դրա արդյունքը մեկ է։

Սակայն միաշերտ ցանցը չի կարող իրականացնել օրինակ XOR օպերացիան, քանի որ այդ դեպքում  մեկ գծով չէս կարող տարանջատել 1֊երի և 0֊ների կիսահարթությունները, ինչպես դա կարելի էր անել AND և OR գործողությունների դեպքում։

xor

Նկար 8․ Բազմաշերտ ցանցը կատարում է XOR գործողությունը։

Բազմաշերտ նեյրոնային ցանցերում, բացի մուքտային ու ելքային շերտերից առկա է նաև միջանկյալ շերտ (hidden layer): Միջանկյալ շերտի առկայությունը լուծվող խնդրի մոդելում ներմուծում է ոչ գծային կախվածություններ և թույլ է տալիս ապրոկսիմացնել ցանկացած ֆունկցիոնալ կախվածություն։ Եթե միաշերտ ցանցերը  հաջողությամբ կարողանում են լուծել գծային դասակարգման որոշ խնդիրներ, համեմատելով մուտքային արժեքները շեմային թույլատրելի արժեքների հետ (եթե ներքին վիճակի ֆունկցիան շեմային է) և դրանից կախված ելքին տալով 0 կամ 1, ապա օրինակ պատկերների ճանաչման դեպքում դրանք անզոր էն, քանի որ յուրաքանչյուր առանձին վերցրած պիքսել որևէ կախվածություն չունի մյուս պիքսելների հետ և չի կարող միանգամից ելքին հաղորդել, թե այդ ինչպիսի պատկեր է տրված մուտքում․ պատկերը կարող է ճանաչվել միայն բոլոր պիքսելների համատեղ մշակման դեպքում, ինչ էլ հնարավոր է միայն բազմաշերտ ցանցերի դեպքում։ Ահա այս դեպքում է, որ օգնության են գալիս բազմաշերտ ցանցերը։

 

 

hidden

Նկար 9․ Բազմաշերտ նեյրոնային ցանց։

Նկար 9֊ում պատկերված է  բազմաշերտ նեյրոնային ցանց, որը պարունակում է 2 մուտքային, 5 միջանկյալ (hidden) և 1 ելքային նեյրոններ։

Դրանց օգտագործման ամբողջ գործընթացը բաղկացած է կշռային գործակիցների արժեքների կարգաբերման հետ։ Նախ և առաջ ցանցը պետք է պարապացնել, դա նշանակում է պարապացնելուց հետո ունենալ համապատասխան կշռային գործակիցներ (կամ կշռային գործակիցների վեկտոր/մատրից)։ Պարապացնելը լինում է երկու տեսակի՝ ուսուցիչով և առանց ուսուցչի։ Առաջինի դեպքում ցանցի ելքում ստացված արժեքները համեմատվում են նախապես տրված արժեքների հետ, վերցվում է սխալի չափը (ցանցի ելքում արժեք  ֊ նախապես տրված արժեք) և հաշվի առնելով սխալի չափը նորից կարգաբերվում են կշռային գործակիցները այնքան քանի դեռ չենք ստացել սխալի մինիմալ, բավարարող արդյունք։

Շարունակելի ․․․ ։

Նեյրոնային ցանցերի ուսուցումը backpropagation ալգորիթմի միջոցով։ Մաս 1, ընդհանուր դրույթներ։, 10.0 out of 10 based on 4 ratings

Նշագրեր: ,

Բաժին: Python, Ալգորիթմներ

Կիսվել , տարածել , պահպանել

VN:F [1.9.20_1166]
Rating: 10.0/10 (4 votes cast)

Մեկնաբանեք

Կհաստատվեն միայն մեսրոպատառ հայերենով գրած մեկնաբանությունները

198