Նեյրոնային ցանցերի ուսուցումը backpropagation ալգորիթմի միջոցով։ Մաս 3, կշռային գործակիցների հաշվարկն ու սխալի հետադարձ փոխանցումը։
Այս մասում փոքրիկ օրինակի վրա կծանոթանանք backpropagation ալգորիթմին։ Այն կազմված է հետևյալ հիմնական քայլերից՝
- Ցանցի մուտքից մինչև ելք՝ հաշվում ենք նեյրոնների ելքային արժեքները,
- ելքային շերտի յուրաքանչյուր նեյրոնի համար հաշվում ենք δ սխալի արժեքը,
- ելքային շերտի նեյրոնների համար հաշվում ենք կշռային գործակիցները,
- հաշվում ենք թաքնված շերտի նեյրոնների համար δ սխալի արժեքները՝ հաշվի առնելով ելքային շերտում համապատասխան սխալների արժեքները (backpropagate),
- հաշվում ենք թաքնված շերտի նեյրոնների կշռային գործակիցները՝ հաշվի առնելով ելքային շերտի համապատասխան նեյրոնների δ սխալի արժեքները:
Նկար 1. Բազմաշերտ նեյրոնային ցանց՝ մեկ թաքնված շերտով։
Նկար 1֊ում բերված է բազմաշերտ նեյրոնային ցանց․ շարժվենք համաձայն վերը բերված ալգորիթմի և հաշվարկենք կշռային գործակիցները մեկ իտերացիայի համար, քանի որ դրանից հետո ամեն ինչ նույնությամբ կրկնվում է։ Դրա համար նախ հաշվենք ներքին վիճակների արժեքները
Հաշվում ենք 3-րդ, 4-րդ և 5-րդ նեյրոնների ելքային արժեքները՝ ըստ ակտիվացման ֆունկցիայի
Հաշվենք δ սխալի արժեքները ելքային շերտի նեյրոնների համար։ Դրա համար հիշենք, որ 2֊րդ մասում ստացել էինք, որ ելքային շերտի կշռային գործակիցները պետք է փոխել ΔW ֊ի չափով, որտեղ
կամ կարող ենք գրել
(k-րդ նեյրոնի ելքը միանում է j-րդ նեյրոնի մուտքին)
Որտեղ α ֊ն ցանցի ուսուցման արագության գործակիցն է (learning rate) և գտնվում է (0-1] միջակայքում։ Մենք պարզության համար այն կընդունենք α = 1:
Այստեղ, համաձայն 2-րդ մասում ստացված արտահայտության (***),
Եվ հետևաբար ելքային շերտի նեյրոնների համար կունենանք համապատասղանաբար δ սխաների հետևյալ արժեքները․
Հետևաբար ելքային շերտի նեյրոնների կշռային գործակիցները կլինեն՝
Հաշվենք թաքնված շերտի նեյրոնների δ սխաների արժեքները` համաձայն 2-րդ մասում բերված հետևյալ բանաձևի
Որտեղ δi -ն ելքային շերտի i-րդ նեյրոնի սխալն է,
Wij ֊ն թաքնված շերտի j-րդ նեյրոնի ելքը ելքային շերտի i-րդ նեյրոնի մուտքին միացնող կապուղու կշռային գործակիցն է
Yj֊ն թաքնված շերտի j-րդ նեյրոնի ելքի արժեքն է,
Yk֊ն մուտքային շերտի k-րդ նեյրոնի ելքային արժեքն է։
Այստեղ թաքնված շերտի j֊րդ նեյրոնի δյ սխալը նշանակենք՝
Հենց այս առնչությամբ է, որ ելքային սխալը հետադարձ ճանապարհով իր ազդեցությունն է ունենում նախկին շերտերի սխալների արժեքների վրա և թույլ է տալիս նորից հաշվարկել կշռային գործակիցները։
Համաձայն վերը բերված արտահայտության հաշվենք թաքնված շերտի նեյրոնների δj սխալները․
Մնաց հաշվարկել մուտքային և թաքնված շերտերի նեյրոնների միջև կշռային գործակիցները․
Եվ այսպիսով մենք ներկայացրեցինք մեկ իտերացիայի ընթացքում կշռային գործակիցների հաշվարկման ալգորիթմը։ Իտերացիաների քանակը կարող է սահմանափակվել ելքային շերտում սխալի որոշակի արժեքով։
Հիմա փոքր օրինակի վրա կատարենք հաշվարկ արդեն իրական թվերով։ Դիցուք՝ ունենք հետևյալ ցանցը, որի ելքում պետք է ստանանք՝ t = 0.5․
ՈՒնենք մեկ ելք և համաձայն (***) արտահայտության ելքային սխալը կլինի՝
Ելքային շերտի նեյրոնների կշռային գործակիցները կլինեն՝
Հաշվենք թաքնված շերտի նեյրոնների համար սխալների արժեքները կլինեն՝
Հետևաբար թաքնված շերտի նեյրոնների համար կշռային գործակիցների նոր արժեքները կլինեն՝
Հին սխալի արժեքը հավասար է ՝
Մեկ անգամ ևս հաշվելով σ(Sout) ֊ը արդեն նոր կշռային գործակիցների դեպքում՝ ելքային սխալի համար կստանանք
Եվ ահա տեսնում ենք, որ անգամ մեկ իտերացիայից հետո ունենք ելքային սխալի որոշակի փոքրացում։
Վերջապես ամենածանր մասերը ավարտեցինք։ 4 -րդ մասում, որը կլինի վերջինը, կիրականացնենք պատկերի ճանաչում․ ցանցի մուտքին կտանք ձեռագրային սիմվոլ և կփորձենք ճանաչել այն։
Կարդացեք ավելին
Բաժին: Ալգորիթմներ, Ծրագրավորում