Արհեստական բանականություն և մեքենայական ուսուցում

Փաթեթային նեյրոնային ցանց (Convolutional Neural Network)

Ի՞նչ Է իրենից ներկայացնում CNN ալգորիթմը

Artyom Stepanyan
Picsart Academy

--

Ներածություն

Փաթեթային նեյրոնային ցանցը (Convolutional Neural Network, CNN) հանդիսանում է կենսաբանության և մաթեմատիկայի խառնուրդ՝ ինֆորմատիկայի լրացումով։ Դրանք ցանցեր են, որոնք համարվում են համակարգչային տեսլակալի (computer vision) ամենաազդեցիկ նորարարություններից մեկը։ Առաջին անգամ նեյրոնային ցանցերը համամասնային ուշադրություն գրավեցին 2012թ, երբ Alex Krizhevsky-ն նրանց շնորհիվ հաղթեց ImageNet մրցույթում՝ (ամենամյա մեքենայական տեսլականի օլիմպիադայում) նվազեցնելով սխալների դասակարգման ռեկորդը 26%-ից մինչև 15%, ինչը այդ ժամանակ մեծ առաջընթաց էր։ Բայց դասական և հնարավոր է ամենահայտնի ցանցերի կիրառման տարբերակը նկարների մշակումն է։

Ներմուծում և արտածում

Երբ համակարգիչը տեսնում է պատկերը (ընդունում է տվյալների մուտքագրումը), այն տեսնում է փիքսելների զանգված։ Անկախ պատկերի ձևաչափից և չափսից, զանգվածի չափսը կարող է լինել 32х32х3 (որտեղ 3-ը RGB ալիքների քանակն է).

Որպեսզի ավելի հասկանալի լինի, եկեք պատկերացնենք որ ունենք JPG ձևաչափով պատկեր, և նրա չափը կազմում է 480х480х3։ Այդ թվերից յուրաքանչյուրին համապատասխանում է 0 մինչև 255 արժեքներ, որոնք նկարագրում են այդ կետում փիքսելների խտությունը։ Այդ թվերը անզեն աչքի համար անիմաստ են, սակայն հանդիսանում են միակ մուտքագրվող տվյալները, որոնք հասանելի են համակարգչին։ Գաղափարը կայանում է նրանում որ դուք տալիս եք համակարգչին այդ մատրիցը իսկ նա արտածում է թվեր, որոնք նկարագրում են պատկերի դասի հավանականությունը։

Կենսաբանական կապեր

Առաջին անգամ լսելով «փաթեթային նեյրոնային ցանցեր» արտահայտությունը կարելի է մտածել թե դա կապված է նեյրոգիտությունների կամ կենսաբանության հետ՝ ինչը որոշ չափով մոտ է իրականությանը։ CNN-ը իրականում գլխուղեղի տեսողական կեղևի նախատիպ է։ Տեսողական կեղևը ունի բջիջների ոչ մեծ տարածք, որը զգայուն է տեսադաշտի հստակ միջակայքերի նկատմամբ։ Այդ գաղափարը 1962 թ․ մանրամասն դիտարկել են David Hunter Hubel-ը և Axel Visel-ը մի հիանալի փորձի օգնությամբ, որում ցույց տվեցին որ գլխուղեղի առանձին նյարդային բջիջները արձագանքում կամ ակտիվանում են միայն որոշակի կողմնորոշման սահմանների վիզուալ ընկալման դեպքում։ Օրինակ որոշ նեյրոններ ակտիվանում էին երբ ընկալում էին ուղղահայաց սահմանները, իսկ մյուսները՝ հորիզոնականները կամ անկյունագծայինները։ David Hunter Hubel-ը և Axel Visel-ը բացահայտեցին որ բոլոր այդ նեյրոնները կենտրոնացված են առանցքային ճարտարապետության տեսքով և միասին ձևավորում են տեսողական ընկալումը։ Համակարգի մեջ այն մասնագիտացված բաղադրիչների գաղափարները, որոնք լուծում են հստակ խնդիրներ (ինչպես տեսողական կեղևի բջիջները, որոնք փնտրում են հատկանշական բնութագրեր) և որոնք օգտագործվում են մեքենաների կողմից՝ ընկած են CNN-ի հիմքում։

Կառուցվածք

Վերադառնանք հատկանիշներին․

Ի՞նչ է իսկապես անում CNN-ը։ Վերցնում է պատկերը, անցկացում փաթեթային, ոչ գծային շերտերի շարքով, համախմբման և ամբողջությամբ միացված շերտերի միջով և գեներացնում է ելքը։ Ինչպես արդեն ասվել է նախկինում որպես ելք կարող է լինել դասը կամ այն դասերի հավանականությունը որոնք ամենից լավն են նկարագրում պատկերը։ Դժվարը հասկանալն է թե ինչ է անում շերտերից յուրաքանչյուրը։ Եկեք անցնենք ամենակարևորին։

Առաջին շերտ՝ մաթեմատիկական մաս

CNN-ում առաջին շերտը միշտ փաթեթայինն է։ Ինչպես նախկինում ասվել էր, ներմուծված պատկերը դա մատրից է 32 х 32 х 3 փիքսելային նշանակություններով։ Ավելի հեշտ կլինի հասկանալ թե ինչ է փաթեթային շերտը եթե ներկայացնենք այն լապտերի տեսքով որը լուսավորում է պատկերի վերևի ձախ հատվածը։ Ենթադրենք լույսը որը արձակում է լապտերը, լուսավորում է 5 х 5 մակերեսով տարծքը ամբողջությամբ։ Իսկ հիմա եկեք պատկերացնենք որ լապտերը շարժվում է մուտքագրվող պատկերի բոլոր սահմաններով։ Համակարգչային ուսման տերմիններում այդ լապտերը կոչվում է զտիչ (երբեմն նեյրոն կամ միջուկ), իսկ այն հատվածները որոնք այն լուսավորում է կոչվում են ընկալունակ բացատներ։ Այսինքն մեր զտիչը դա մատրիցն է (այդպիսի մատրիցը անվանում են նաև զանգվածների մատրից կամ կարգավորումների մատրից)։ Նշենք որ զտիչի խորությունը պետք է լինի այնքան որքան մուտքագրվող պատկերինն է (այդ դեպքում մաթեմատիկական ճշգրտության ապահովություն կա) և այդ զտիչը 5 х 5 х 3 չափի է։ Հիմա եկեք որպես օրինակ վերցնենք դիրք, որում գտնվում է զտիչը։ Թող դա լինի վերևի ձախ հատվածը։ Քանի որ զտիչը կատարում է փաթեթավորում՝ տեղաշարժվում է մուտքագրվող պատկերի վրայով, այն բազմապատկում է զտիչի արժեքը պատկերի սկզբնական արժեքների փիքսելներով (պարզագույն բազմապատկում)։ Բոլոր այդ բազմապատկումները գումարվում են (ընդամենը 75 բազմապատկում) և վերջում ստացվում է մեկ թիվ։ Հիշեք՛, որ այն պարզապես խորհրդանշում է զտիչի գտնվելու վայրը պատկերի վերևի ձախ հատվածում։ Հիմա կատարենք այդ գործընթացը յուրաքանչյուր դիրքի համար։ Հաջորդ քայլը զտիչի մեկ միավորով դեպի աջ տեղաշարժն է, այնուհետև ևս մեկ միավորով աջ և այդպես շարունակ։

Ներմուծվող պատկերի յուրաքանչյուր յուրահատուկ դիրք թիվ է արտահանում։ Զտիչի բոլոր դիրքերով անցնելուց հետո ստացվում է 28 х 28 х 1 մատրից, որին անվանում են ակտիվացիայի գործառույթ կամ նախանշանների քարտեզ։ 28 х 28 մատրիցը ստացվում է որովհետև կան 784 տարատեսակ դիրքեր, որոնք կարող են անցկացնել 5 х 5 զտիչով 32 х 32 պատկերներ։ Այդ 784 թվերը վերածվում են 28 х 28 մատրիցի։

Ենթադրենք հիմա օգտագործում ենք երկու 5 х 5 х 3 զտիչ մեկի փոխարեն։ Այդ դեպքում ելքահանվող արժեքը կլինի 28 х 28 х 2։

Առաջին շերտ

Եկեք խոսենք այն մասին թե այդ փաթեթավորումը բարձր մակարդակի վրա իրականում ինչ ազդեցություն ունի։ Յուրաքանչյուր զտիչ կարելի է դիտարկել որպես հատկությունների նույնականացում։ Հատկության տակ ի նկատի ունենք ուղիղ սահմաններ, պարզ գույներ և կորեր։ Մտածեք ամենապարզ բնութագրերի մասին որոնք ունեն բոլոր պատկերները։ Ենթադրենք մեր առաջին զտիչը 7 х 7 х 3 չափի է և այն կորերի դետեկտոր է (առայժմ անտեսենք այն փաստը որ զտիչի խորությունը 3 է և պարզության համար դիտարկենք զտիչի և պատկերի միայն վերևի շերտը)։ Զտիչը ունի փիքսելային կառուցվածք որում թվային արժեքները աճում են տարածքի երկայնքով և որոշում կորի ձևը։

Վերադառնանք մաթեմատիկական վիզուալացմանը․

Երբ մեզ մոտ պատկերի վերևի ձախ անկյունում կա զտիչ, այն իրականացնում է զտիչի արժեքների բազմապատկում այդ մասի փիքսելների արժեքների հետ։ Եկեք ուսումնասիրենք պատկերի օրինակ, որին մենք ցանկանում ենք դաս շնորհել և տեղադրել զտիչի վերևի ձախ անկյունում։

Իրականում եթե մուտքագրվող պատկերում կա ձև, որը ընդհանուր չափով կոր է հիշեցնում և որը ներկայացնում է այդ զտիչը՝ բոլոր բազմապատկված արժեքները գումարվում են և արդյունքում ստացվում է մեծ արժեք։ Եկեք հիմա տեսնենք թե ինչ կլինի եթե մենք տեղափոխենք զտիչը։

Ինչպես տեսնում եք արժեքը ավելի փոքր է։ Պատճառն այն է, որ պատկերի նոր հատվածում չկա մի բան որը կորի որոշման զտիչը կարողանա ճանաչել։ Հիշեք՛, որ այդ փաթեթային շերտի արտահանումը իրականացնում է հատկությունների քարտեզը։ Փաթեթի ամենահասարակ մեկ զտիչի առկայության դեպքում նույնիսկ (եթե այդ զտիչը կորի դետեկտոր է) հատկությունների քարտեզը ցույց կտա այն հատվածները որոնցում կորերի առկայությունը ամենահավանականն է։ Այս օրինակում վերևի ձախ անկյունում մեր 28 х 28 х 1 հատկությունների քարտեզի արժեքը կլինի 6600։ Այդ բարձր նշանակությունը ցույց է տալիս որ հնարավոր է կորի նման ինչ-որ բան կա պատկերում և այդ հնարավորությունը ակտիվացրել է զտիչը։ Վերևի հատվածում հնարավորությունների քարտի արժեքը կլինի 0, քանի որ պատկերի վրա չկա մի բան ինչը կարող էր ակտիվացնել զտիչը (ավելի պարզ ասած՝ այդ հատվածում չկար կոր)։ Հիշեք, որ դա միայն մեկ զտիչի համար է։ Դա զտիչ է որը հայտնաբերում է դեպի դուրս կորացող գծերը։ Գծերի համար կարող են լինել այլ զտիչներ՝ դեպի ներս կորացող կամ պարզապես ուղիղ գծեր։ Որքան շատ են զտիչները այնքան ավելի մեծ է հնարավորությունների քարտի խորությունը, այնքան ավելի շատ է մուտքագրվող նկարի մասին ինֆորմացիան։

Նշում․

Զտիչը որի մասին խոսվում էր այս հոդվածում պարզեցված է։ Ներքևում ցուցադրված պատկերում պարզեցված ցանցի առաջին փաթեթային շերտի զտիչների փաստացի վիզուալացման օրինակն է ներկայացված։ Միտքն այստեղ նույնն է՝ առաջին շերտի զտիչները փաթաթվում են մուտքագրվող պատկերի շուրջ և «ակտիվացնում են» հատուկ գիծը, որը նրանք փնտրում են արդեն մուտքագրված պատկերում։

Ավելի ենք խորանում ցանցում

Այսօր դասական CNN-ի ճարտարապետության մեջ գոյություն ունեն այլ շերտեր, որոնք միախառնվում են փաթեթայինների հետ։ CNN դասական ճարտարապետությունը կունենա հետևյալ տեսքը։

Վերջին շերտը չնայած որ գտնվում է վերջում՝ կարևորներից մեկն է որին մենք կանրադառնանք ավելի ուշ։ Եկեք ամփոփենք այն ինչը հասկացանք․

Մենք խոսում էինք այն մասին թե ինչ կարող են անել առաջին փաթեթային շերտի զտիչները։ Նրանք որոշում են բազային մակարդակի հատկությունները, ինչպիսիք են սահմաննեը և կորերը։ Որպեսզի կարելի լինի հասկանալ թե նկարի վրա օբյեկտի ինչ տիպ է պատկերված՝ մեզ անհրաժեշտ կլինի ցանց, որը կարող է ճանաչել ավելի բարձր մակարդակի հնարավորությունները, ինչպիսիք են օրինակ ձեռքերը, թաթերը կամ ականջները։ Եկեք մտածենք թե ինչ տեսք ունի ցանցի արտահանվող արդյունքը՝ առաջին փաթեթային շերտից հետո։ Նրա չափսը 28 х 28 х 3 (այն դեպքում երբ մենք օգտագործում ենք 5 х 5 х 3 երեք զտիչ)։ Երբ նկարը անցնում է մեկ փաթեթային շերտով, առաջին շերտի ելքը դառնում է 2-րդ շերտի մուտքագրվող նշանակություն։ Հիմա այն ավելի դժվար է վիզուալացնել։ Երբ մենք խոսում էինք առաջին շերտի մասին, որպես մուտք էին հանդիսանում միայն արտահանվող պատկերի տվյալները, բայց երբ մենք անցանք 2–րդ շերտին՝ նրա համար մուտքագրվող տվյալ դարձավ հնարավորությունների քարտերից մեկը կամ մի քանիսը, որը կամ որոնք հանդիսանում են նախորդ շերտով մշակվածների արդյունքները։ Մուտքագրվող տվյալների յուրաքանչյուր հավաքածու նկարագրում է դիրքեր, որտեղ ելքային պատկերի վրա հանդիպում են որոշակի բազային նախանշաններ։

Հիմա երբ դուք զտիչների հավաքածու եք օգտագործում՝ անցկացնում եք նկարը երկրորդ փաթեթային շերտով, ելքում կակտիվանան զտիչներ, որոնք ներկայացնում են ավելի բարձր մակարդակի հատկություններ։ Այդպիսի հատկությունների տիպեր կարող են լինել կիսաօղակներ (ուղիղ սահմանների և կորի համակցում) կամ քառակուսիներ (մի քանի ուղիղ կողերի համադրում)։ Ինչքան ավելի շատ փաթեթային շերտերով է անցնում պատկերը և ինչքան ավելի հեռու է այն շարժվում ցանցով, այնքան ավելի բարդ բնութագրեր են արտահանվում ակտիվացման քարտերում։ Ցանցի վերջում կարող են լինել զտիչներ, որոնք ակտիվանում են երբ պատկերի վրա կա ձեռագիր տեքստ, վարդագույն օբյեկտների առկայություն և այլն։

Կա ևս մեկ հետաքրքրիր կողմ։ Երբ դուք խորանում եք ցանցի մեջ, զտիչները աշխատում են ընկալման ավելի մեծ բացատով իսկ դա նշանակում է որ նրանք ի վիճակի են սկզբնական պատկերի ավելի մեծ մակերեսից տեղեկատվություն մշակել։ Ավելի պարզ ասած, նրանք հարմարվում են ավելի մեծ փիքսելային տիրույթի պատկանող։

Ամբողջությամբ կապակցված շերտեր

Այժմ երբ մենք կարող ենք ներկայացնել բարձր մակարդակի հատկություններ, ամենալավն նորությունն այն է, որ ամբողջությամբ կապակցված շերտը միանում է ցանցի վերջին։ Այս շերտը վերցնում է մուտքագրվող տվյալները և արտահանում դեպի N տարածական վեկտոր, որտեղ N-ը դասերի թիվն է, որոնցից ծրագիրը ընտրում է անհրաժեշտը։ Օրինակ եթե դուք ցանկանում եք ունենալ ծրագիր որը ընդունակ է թվեր ճանաչել՝ N-ի նշանակությունը կլինի 10, քանի որ թվերի քանակը 10 է։ Յուրաքանչյուր թիվ այդ N տարածական վեկտորում իրենից ներկայացնում է հստակ դասի հավանականություն։ Օրինակ, եթե արդյունքային վեկտորը թվերի ճանաչման ծրագրի համար [0 0,1 0,1 0,75 0 0 0 0 0,05] է ուրեմն գոյություն ունի 10% հավանականություն որ պատկերի վրա “1”, 10% հավանականություն որ պատկերի վրա “2”, 75% հավանականություն որ “3”, և 5% հավանականություն որ “9” է (իհարկե ելքը ներկայացնելու համար կան և ուրիշ տարբերակներ)։

Եղանակը որի օգնությամբ աշխատում է ամբողջությամբ կապակցված շերտը՝ նախկին շերտի ելքին դիմումն է (որը ինչպես մենք հիշում ենք պետք է արտահանի հատկությունների բարձր մակարդակի քարտերը) և այն հատկությունների որոշումը, որոնք ավելի շատ են կապված որոշակի դասի հետ։ Օրինակ եթե ծրագիրը նախագուշակում է որ պատկերի վրա շուն է՝ հատկությունների քարտերի մոտ, որոնք արտացոլում են բարձր մակարդակ ունեցող բնութագրերը, ինչպիսիք են թաթերը կամ 4 ոտքերը՝ պետք է լինեն բարձր նշանակություններ։ Այնպես ինչպես ծրագիրը հասկանում է որ պատկերի վրա թռչուն է, նրա մոտ հատկությունների քարտերում կլինեն բարձր նշանակություններ, որոնք ներկայացված են բարձր մակարդակի բնութագրերով ինչպիսիք են թևերը կամ կտուցը։ Ամբողջությամբ կապակցված շերտը հաշվի է առնում այն որ բարձր մակարդակի ֆունկցիաները ամուր կապակցված են որոշակի դասի հետ և ունեն որոշակի զանգված։ Այսպիսով երբ դուք հաշվարկում եք զանգվածների հարաբերությունները նախկին շերտի հետ, ապա ստանում ենք տարբեր դասերի համար ճշգրիտ հավանականություններ։

Ուսուցում կամ ինչն է ստիպում այն աշխատել

Նախքան այս մեթոդի պարզաբանմանը անցնելը խոսենք այն մասին թե ինչ է պետք նեյրոնային ցանցին աշխատելու համար։ Օրինակ նորածինները չգիտեն թե ինչ տեսք ունի կատուն, շունը կամ թռչունը։ CNN-ի հետ իրավիճակը նույնն ՝ մինչև ցանցի, զանգվածի կառուցման պահը զտիչերի նշանակությւոնները պատահական են։ Զտիչները չեն կարողանում փնտրել սահմաններ և կորեր։ Վերևի շերտի զտիչները չեն կարողանում փնտրել թաթեր և կտուցներ։ Երբ մենք մեծանում ենք, ծնողները և ուսուցիչները ցույց են տալիս մեզ տարբեր նկարներ և պատկերներ՝ տրամադրելով նրանց բնորոշ բնութագրեր։ Այդպիսի գաղափար է օգտագործվում նաև CNN-ի ուսուցման ընթացքում, որտեղ ցուցադրվում և բնութագրվում է նկարը։ Եկեք պատկերացնենք որ մենք ունենք ուսուցանողական նկարների հավաքածու որտեղ կան հազարավոր շների, կատուների և թռչունների պատկերներ։ Յուրաքանչյուր պատկեր ունի համապատասխան պիտակ, որտեղ նշված է կենդանու անվանումը։ Սխալի տարածման հակադարձ մեթոդը կարելի է բաժանել 4 առանձին բլոկերի՝ ուղիղ տարածում, կորստի ֆունկցիա, հակադարձ տարածում և զանգվածի թարմացում։ Ուղիղ տարածման ժամանակ առանձնացվում է ուսուցանողական պատկերը, ինչպես հիշում եք դա 32 х 32 х 3 մատրիցն է որը անցկացվում է ամբողջ ցանցով։ Քանի որ առաջին ուսուցանողական օրինակում բոլոր զանգվածները կամ զտիչների նշանակությունները նախանշված էին պատահական ձևով՝ ելքային տվյալ կլինի [.1 .1 .1 .1 .1 .1 .1 .1 .1 .1], այսինքն այնպիսի նշանակություն որը չի տա նախընտրություն որևէ թվի։ Այդպիսի զանգվածներով ցանցը չի կարող բազային մակարդակի հատկություններ գտնել և չի կարող հիմնորեն որոշել պատկերի դասը և դա բերում է ֆունկցիայի կորստի։ Հիշեք որ այն ինչ մենք օգտագործում ենք հիմա՝ ուսուցանողական տվյալներ են։ Այդպիսի տվյալները ունեն պատկեր և պիտակ։ Ենթադրենք որ առաջին ուսուցանողական պատկերը դա «3» թիվն է։ Պատկերի պիտակը կլինի [0 0 0 1 0 0 0 0 0 0]։ Կորստի ֆունկցիան կարող է արտահայտված լինել տարբեր ձևերով, բայց հաճախ օգտագործվում է ՄՔՍ (միջին քառակուսային սխալ), դա ½ բազմապատկված (իրականություն -կանխագուշակում) քառակուսի:

Այս նշանակությունը ընդունենք որպես L փոփոխական։ Ինչպես դուք գուշակեցիք, առաջին երկու ուսուցանողական պատկերների համար կորուստը կլինի շատ բարձր։ Այժմ եկեք այս մասին մտածենք ենթագիտակցորեն։ Մենք ուզում ենք հասնել նրան որ նախագուշակված պիտակը (փաթեթային շերտի ելքը) լինի այնպիսին, ինչպիսին է ուսուցանվող պատկերի պիտակը դա կնշանակի որ ցանցը կատարել է ճիշտ ենթադրություն։ Որպեսզի հասնենք դրան, մեզ անհրաժեշտ է մեզ հասանելի կորուստների քանակը հասցնել նվազագույնի։ Վիզուալացնելով դա որպես օպտիմիզացիայի խնդիր մաթեմատիկական վերլուծությունից, մեզ պետք է պարզել թե ինչպիսի մուտքեր են (մեր դեպքում զանգվածի) ամենաուղղակիորեն նպաստել ցանցի կորուստներին (սխալներին)։

(Կորստի մինիմիզացիայի գաղափարի տարբերակներից մեկը եռաչափ գրաֆիկն է, որտեղ նեյրոնային ցանցի զանգվածները անկախ փոփոխականներն են, իսկ կախված փոփոխականը՝ կորուստը։ Կորուստների մինիմիզացիայի խնդիրն է զանգվածները կարգավորել այնպես որ հնարավոր լինի նվազեցնել կորուստները։ Վիզուալորեն մեզ անհրաժեշտ է մոտենալ այդպիսի օբյեկտի ամենաներքևի կետին։ Որպեսզի հասնենք դրան, պետք է գտնենք կորստի ածանցյալը (պատկերված գրաֆիկի սահմաններում յուրաքանչյուր ուղղությամբ հաշվարկել անկյունային գործակիցը՝ հաշվի առնելով զանգվածները)։

Մաթեմատիկական համարժեք է dL/dW-ը որտեղ W-ն որոշակի շերտի զանգված է։ Այժմ մեզ անհրաժեշտ է կատարել հակադարձ տարածում ցանցի միջոցով, որը որոշում է թե որ զանգվածներն են ամենաշատը ազդել կորուստների վրա, և գտնել միջոցներ որոնք կարող են դրանք կարգավորել՝ կորուստների քանակը նվազեցնելու նպատակով։ Այնուհետև երբ մենք կհաշվենք համարժեքը, կանցնենք վերջին փուլին՝ զանգվածների թարմեցմանը։ Կվերցնենք բոլոր զտիչային զանգվածները և կթարմեցնենք դրանք այնպես, որ նրանք փոփոխվեն գրադիենտի ուղղությամբ։

Ուսուցման արագությունը դա կարգավորում է, որը ընտրվում է ծրագրավորողի կողմից։ Ուսուցման բարձր արագությունը նշանակում է որ զանգվածների թարմացումներում կատարվել են ավելի խոշոր քայլեր, այդ իսկ պատճառով նմուշին կարող է անհրաժեշտ լինել ավելի քիչ ժամանակ որպեսզի հավաքի զանգվածների օպտիմալ հավաքածուն։ Բայց ուսուցանման չափազանց բարձր արագությունը կարող է բերել խոշոր և սակավ հստակ տատանումների, որոնք կխոչընդոտեն օպտիմալ ցուցումների հասնելուն։

Ուղիղ տարածման գործընթացը, կորստի ֆունկցիան, հակադարձ տարածումը և զանգվածների թարմեցումը սովորաբար անվանում են դիսկրետիզացիայի փուլ կամ epoch դարաշրջան։ Ծրագիրը շարունակելու է կատարել այս գործընթացը փուլերի ֆիքսված քանակով յուրաքանչյուր ուսուցանողական պատկերի համար։ Նրանից հետո երբ կարգավորումների թարմացումը վերջին ուսուցանողական օրինակի վրա կավարտվի՝ տեսականորեն ցանցը պետք է հնարավորինս լավ ուսուցված լինի իսկ շերտերի զանգվածները՝ ճիշտ կարգավորված։

Թեստավորում

Ի վերջո տեսնելու համար թե ինչպես է աշխատում CNN-ը, մենք վերցնում ենք պատկերների և պիտակների այլ հավաքածուներ և անցկացնում ենք պատկերների ցանցի միջով։ Համեմատում ենք ելքերը իրականության հետ և ստուգում արդյոք աշխատում է ցանցը թե ոչ։

Ինչպես են կազմակերպությունները օգտագործում CNN-ը

Տվյալներ տվյալներ տվյալներ․․․

Կազմակերպությունները որոնք ունեն հսկայական տվյալների տոննաներ՝ ունեն օրինական առավելություն՝ մնացած մրցակիցների հանդեպ։ Որքան շատ են ուսուցանողական տվյալները որոնց կարելի է տալ ցանցին, այնքան ավելի շատ ուսուցողական իտերացիաներ, ավելի շատ զանգվածների թարմեցումներ կարելի է ստեղծել և մինչև արտադրության դուրս գալը՝ ստանալ ավելի լավ ուսուցված ցանց։ Facebook և Instagram-ը կարող են օգտագործել միլիարդավոր օգտատերերի լուսանկարներ, որոնք նրանք ունեն, Pinterest-ը՝ 50 միլլիարդ փիներից ստացված տեղեկատվությունը, Google-ը՝ փնտրման տվյալները, իսկ Amazon-ը՝ ամեն օր գնվող միլիոնավոր ապրանքների մասին տվյալները։

Code Republic-ը ծրագրավորման գիտահետազոտական կենտրոն է, որն ունի նաև ուսումնական բաժին։ Ուսումնական բաժնում խմբավորում ենք խորացված ծրագրավորումը մաթեմատիկայի, ֆիզիկայի և ինժեներության հետ։

Մենք ջանք ու ժամանակ չենք խնայում և ստեղծում ենք այնպիսի որակյալ նյութեր, որոնք ցույց են տալիս ծրագրավորման իրական կողմը` արվեստը: Առայժմ դա ստացվում է, իսկ պատճառը պարզ է.

մենք սիրում ենք այն, ինչ անում ենք։

Ձգտում ենք ունենալ ծրագրավորման, մաթեմատիկայի, ֆիզիկայի և ինժեներության խորացված լավագույն դասընթացները և վարձավճարը սահմանել ամսական հնարավոր նվազագույնը` 42 000 դրամ։ Խոստանում ենք երբեք չթանկացնել, իսկ շատ ու շատ անվճար դասընթացներ էլ տեղադրել YouTube-յան մեր ալիքում, այստեղ՝

Բոլոր ցանկացողները կարող են ստեղծել և տեղադրել նոր դասընթացներ, կամ, ինչու ոչ, գրել հայալեզու հոդվածներ Medium-ում։ Համագործակցության համար գրեք մեզ contact@coderepublic.am հասցեով։ Եվ, իհարկե, հետևեք մեզ այլ սոց. ցանցերում. Facebook, Instagram, Telegram, և որ ավելի կարևոր է՝ LinkedIn, տեղադրում ենք միայն օգտակար նյութեր։

Ջանք ու եռանդ չենք խնայում լուծելու երկրում գլխավոր խնդիրներից մեկը՝ որակյալ ծրագրավորող-ինժեներների կրթումը։ Ժամանակատար է, դժվար է, բայց կանգ չենք առնում։

Ընտրել ենք բա՛րդ ճանապարհը

--

--