Սկիզբ » Ուսումնական նյութեր » Ծրագրավորում » Ալգորիթմներ » Նեյրոնային ցանցերի ուսուցումը backpropagation ալգորիթմի միջոցով։ Մաս 3, կշռային գործակիցների հաշվարկն ու սխալի հետադարձ փոխանցումը։

Նեյրոնային ցանցերի ուսուցումը backpropagation ալգորիթմի միջոցով։ Մաս 3, կշռային գործակիցների հաշվարկն ու սխալի հետադարձ փոխանցումը։

| Մայիս 1, 2016 | Մեկնաբանված չէ |

Այս մասում փոքրիկ օրինակի վրա կծանոթանանք backpropagation ալգորիթմին։ Այն կազմված է հետևյալ հիմնական քայլերից՝

  • Ցանցի մուտքից մինչև ելք՝ հաշվում ենք  նեյրոնների ելքային արժեքները,
  • ելքային շերտի յուրաքանչյուր նեյրոնի համար հաշվում ենք δ սխալի արժեքը,
  • ելքային շերտի նեյրոնների համար հաշվում ենք կշռային գործակիցները,
  • հաշվում ենք թաքնված շերտի նեյրոնների համար δ սխալի արժեքները՝ հաշվի առնելով ելքային շերտում համապատասխան սխալների արժեքները (backpropagate),
  • հաշվում ենք թաքնված շերտի նեյրոնների կշռային գործակիցները՝ հաշվի առնելով ելքային շերտի համապատասխան նեյրոնների δ սխալի արժեքները:

Screenshot from 2016-05-01 11-28-31                                                                                                       Նկար 1. Բազմաշերտ նեյրոնային ցանց՝ մեկ թաքնված շերտով։

Նկար 1֊ում բերված է բազմաշերտ նեյրոնային ցանց․  շարժվենք համաձայն վերը բերված ալգորիթմի և հաշվարկենք կշռային գործակիցները մեկ իտերացիայի համար, քանի որ դրանից հետո ամեն ինչ նույնությամբ կրկնվում է։ Դրա համար նախ հաշվենք ներքին վիճակների արժեքները

Screenshot from 2016-05-01 11-20-54Screenshot from 2016-05-01 11-23-22Screenshot from 2016-05-01 11-30-06Հաշվում ենք 3-րդ, 4-րդ և 5-րդ նեյրոնների ելքային արժեքները՝ ըստ ակտիվացման ֆունկցիայի

sigm

Screenshot from 2016-05-01 11-35-37Screenshot from 2016-05-01 11-37-18Screenshot from 2016-05-01 11-38-58

Screenshot from 2016-05-01 11-43-19Screenshot from 2016-05-01 11-45-19Screenshot from 2016-05-01 11-49-11Screenshot from 2016-05-01 11-50-32Հաշվենք δ սխալի արժեքները ելքային շերտի նեյրոնների համար։ Դրա համար հիշենք, որ 2֊րդ մասում ստացել էինք, որ ելքային շերտի կշռային գործակիցները պետք է փոխել  ΔW ֊ի չափով, որտեղ

Screenshot from 2016-05-01 13-35-08կամ կարող ենք գրելScreenshot from 2016-05-01 13-39-32(k-րդ նեյրոնի ելքը միանում է j-րդ նեյրոնի մուտքին)

Որտեղ α ֊ն ցանցի ուսուցման արագության գործակիցն է (learning rate) և գտնվում է (0-1] միջակայքում։ Մենք պարզության համար այն կընդունենք  α = 1:

Այստեղ, համաձայն 2-րդ մասում ստացված արտահայտության (***),

Screenshot from 2016-05-01 12-10-21Եվ հետևաբար ելքային շերտի նեյրոնների համար կունենանք համապատասղանաբար δ սխաների հետևյալ արժեքները․

Screenshot from 2016-05-01 12-18-20Screenshot from 2016-05-01 12-19-20Հետևաբար ելքային շերտի նեյրոնների կշռային գործակիցները կլինեն՝

Screenshot from 2016-05-01 13-46-03Screenshot from 2016-05-01 13-52-01Screenshot from 2016-05-01 13-53-33Screenshot from 2016-05-01 13-56-38Screenshot from 2016-05-01 13-57-41Screenshot from 2016-05-01 13-58-44Հաշվենք թաքնված շերտի նեյրոնների δ սխաների արժեքները` համաձայն 2-րդ մասում բերված հետևյալ բանաձևի

Screenshot from 2016-05-01 14-14-22Որտեղ δi -ն ելքային շերտի i-րդ նեյրոնի սխալն է,

Wij ֊ն  թաքնված շերտի j-րդ նեյրոնի ելքը ելքային շերտի i-րդ նեյրոնի մուտքին միացնող կապուղու կշռային գործակիցն է

Yj֊ն թաքնված շերտի j-րդ նեյրոնի ելքի արժեքն է,

Yk֊ն մուտքային շերտի k-րդ նեյրոնի ելքային արժեքն է։

Այստեղ թաքնված շերտի j֊րդ նեյրոնի δյ սխալը նշանակենք՝

Screenshot from 2016-05-01 14-26-55Հենց այս առնչությամբ է, որ ելքային սխալը հետադարձ ճանապարհով իր ազդեցությունն է ունենում նախկին շերտերի սխալների արժեքների վրա և թույլ է տալիս նորից հաշվարկել կշռային գործակիցները։

Համաձայն վերը բերված արտահայտության հաշվենք թաքնված շերտի նեյրոնների δj սխալները․

Screenshot from 2016-05-01 14-52-47Screenshot from 2016-05-01 14-54-30Screenshot from 2016-05-01 14-55-38Մնաց հաշվարկել մուտքային և թաքնված շերտերի նեյրոնների միջև կշռային գործակիցները․

Screenshot from 2016-05-01 15-02-37Screenshot from 2016-05-01 15-04-12Screenshot from 2016-05-01 15-05-09Screenshot from 2016-05-01 15-06-41Screenshot from 2016-05-01 15-07-34Screenshot from 2016-05-01 15-08-29Եվ այսպիսով մենք ներկայացրեցինք մեկ իտերացիայի ընթացքում կշռային գործակիցների հաշվարկման ալգորիթմը։ Իտերացիաների քանակը կարող է սահմանափակվել ելքային շերտում սխալի որոշակի արժեքով։

Հիմա փոքր օրինակի վրա կատարենք հաշվարկ արդեն իրական թվերով։ Դիցուք՝ ունենք հետևյալ ցանցը, որի ելքում պետք է ստանանք՝ t = 0.5․

Screenshot from 2016-05-01 15-20-49

Screenshot from 2016-05-01 15-24-48

 

Screenshot from 2016-05-01 15-27-27

Screenshot from 2016-05-01 15-36-52

 

 

Screenshot from 2016-05-01 15-37-55

 

 

Screenshot from 2016-05-01 15-34-52

 

Screenshot from 2016-05-01 15-45-50

 

 

ՈՒնենք մեկ ելք և համաձայն (***) արտահայտության ելքային սխալը կլինի՝

Screenshot from 2016-05-01 15-55-06

 

Ելքային շերտի նեյրոնների կշռային գործակիցները կլինեն՝

Screenshot from 2016-05-01 16-04-08

 

Screenshot from 2016-05-01 16-05-47

 

Հաշվենք թաքնված շերտի նեյրոնների համար սխալների արժեքները կլինեն՝

Screenshot from 2016-05-01 16-25-12

 

Screenshot from 2016-05-01 16-36-07

 

Հետևաբար թաքնված շերտի նեյրոնների համար կշռային գործակիցների նոր արժեքները կլինեն՝

Screenshot from 2016-05-01 16-44-40

 

Screenshot from 2016-05-01 16-56-08

 

Screenshot from 2016-05-01 17-00-46

 

Screenshot from 2016-05-01 17-04-49

 

Հին սխալի արժեքը հավասար է ՝

Screenshot from 2016-05-01 17-21-39

 

Մեկ անգամ ևս հաշվելով σ(Sout) ֊ը արդեն նոր կշռային գործակիցների դեպքում՝ ելքային սխալի համար կստանանք

Screenshot from 2016-05-01 17-24-24

 

Եվ ահա տեսնում ենք, որ անգամ մեկ իտերացիայից հետո ունենք ելքային սխալի որոշակի փոքրացում։

Վերջապես ամենածանր մասերը ավարտեցինք։ 4 -րդ մասում, որը կլինի վերջինը, կիրականացնենք պատկերի ճանաչում․ ցանցի մուտքին կտանք ձեռագրային սիմվոլ և կփորձենք ճանաչել այն։

Նեյրոնային ցանցերի ուսուցումը backpropagation ալգորիթմի միջոցով։ Մաս 3, կշռային գործակիցների հաշվարկն ու սխալի հետադարձ փոխանցումը։, 10.0 out of 10 based on 3 ratings

Նշագրեր: , ,

Բաժին: Ալգորիթմներ, Ծրագրավորում

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

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

Մեկնաբանեք

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

234