Inteligjenca Artificiale: Rrjetet Nervore me Thurje

Veprim i thurjes në dy përmasa
Ilustrim i thjeshtë i veprimit të thurjes në dy përmasa

Rrjetet CNN (Convolutional Neural Network – Rrjet Nervor me Thurje) janë frymëzuar nga lobi pamor i trurit njerëzor i cili gjendet në pjesën e pasme të kafkës. Kjo pjesë e trurit përpunon informacionin pamor dhe është përgjegjëse për dallimin e pamjeve apo objekteve të ndryshme që njeriu shikon. Në themel të këtyre rrjeteve qëndron veprimi i thurjes, veprim matematik midis dy funksioneve f dhe g që jep si rezultat një funksion h (shënohet h = f * g). Funksioni h shpreh shkallën e mbivendosjes së funksionit f teksa ai zhvendoset mbi funksionin g, dhe përllogaritet sipas formulës:

Thurja 2-përmasore zbatohet më së shumti në analiza dhe përpunime imazhesh. Në këto raste, veprimi i thurjes kryhet midis matricave të pikseleve siç ilustrohet në figurën në krye. Matrica në të majtë është matrica e imazhit në hyrje dhe ka përmasa 5 x 5 ndërsa ajo e mesit (me përmasa 3 x 3) quhet matrica filtër ose kernel. Rezultati i thurjes së këtyre dy matricave është matrica në të djathtë. Veprimi i thurjes është shumëzim element për element i matricave i ndjekur nga nga mbledhja e prodhimeve përkatëse.

Siç shihet në figurë, nënmatrica 3 x 3 (sa madhësia e kernelit) në pjesën majtas dhe sipër të matricës së hyrjes jep si rezultat numrin 29. Është e rëndësishme të theksohet se veprimi i thurjes është invariant ndaj pozicionimit lokal. Kjo do të thotë se i njëjti rezultat 29 do të merrej për çdo pozicionim të elementeve në këtë nënmatricë. Kjo cilësi luan një rol thelbësor në shumë zbatime të rrjeteve CNN. Më tej zhvendosemi një shtyllë djathtas në një tjetër nënmatricë 3 x 3 dhe përsëritet veprimi duke dhene si rezultat 12. Zhvendosja vazhdon djathtas dhe më pas poshtë e përsëri djathtas në të gjithë nënmatricat 3 x 3 të matricës së hyrjes e cila jep si rezultat një matricë (ajo në të djathtë) me përmasa 3 x 3.

Zgjedhja e filtrit (kernelit) është e rëndësishme dhe përcaktuese në rezultatin që merret. Ndër filtrat më të rëndësishëm që përdoren janë ata për identifikimin e brinjëve të imazhit, për mjegullimin e imazhit, qartësimin e imazhit, dhe për funksione të tjera nga më të ndryshmet. Për këtë arsye, gjetja e një filtri të arsyeshëm (në fazën e mësimit të parametrave) është shumë e rëndësishme gjatë trajnimit të rrjetit (për më shumë rreth trajnimit të rrjeteve nervore kalo këtu). Kjo shpjegon gjithashtu se pse shumë modele rrjetesh CNN të trajnuar për një detyrë të caktuar mund të përshtaten lehtësisht për detyra të tjera: filtrat e mësuar paraqesin aspekte të shumëanshme të imazheve dhe mund të zbatohen gjerësisht.

Shtresa bazë e rrjeteve CNN është shtresa e thurjes e cila kryhen veprimin e thurjes tek imazhet e hyrjes. Kjo shtresë ndjek shtresën e hyrjes dhe pas veprimit të thurjes zbaton dhe një funksion aktivizimi që është praktikisht një transformim jolinear i quajtur ReLU (për më shumë rreth funksioneve të aktivizimit kalo këtu) me formulë matematike f(x) = max(0, x). Ky veprim heq pjesët negative të hyrjes duke dhënë tipare më të mira të përzgjedhura nga shtresa e thurjes.

Struktura tipike e një rrjeti nervor CNN për analizë imazhesh

Shtresa e thurjes ndiqet zakonisht nga shtresa e nënkampionimit si në figurën e mësipërme ku shfaqet struktura tipike e një rrjeti CNN. Shtresa e nënkampionimit përzgjedh një element nga secila zonë që merr në shqyrtim. Për këtë zbatohen strategji të ndryshme si max-pooling (merret elementi me vlerën më të lartë), average-pooling (merret elementi me vlerë mesatare), ose madje edhe zgjidhje probabilistike që marrin një element në mënyrë rastësore.

Procesi i nënkampionimit e bën rrjetin CNN invariant ndaj transformimeve të vogla (p.sh. mjegullimi) te imazhi i hyrjes duke garantuar një funksionim më të qëndrueshëm. Shtresa e nënkampionimit ndiqet nga një shtresë me lidhje të plotë e cila është shtresa më e zakonshme e rrjeteve nervore. Kjo shtresë shërben për klasifikim të imazheve duke mësuar t’i lidhi tiparet e përzgjedhura nga dy shtresat paraardhëse me klasat apo kategoritë e secilit imazh (p.sh. kategoritë “qen” dhe “mace” nëse rrjetin CNN po e trajnojmë dhe zbatojmë për të dalluar nëse një imazh përmban një qen apo një mace).

Duhet theksuar se shtresa e thurjes, ajo e nënkampionimit dhe shtresa me lidhje të plotë zakonisht përbëhen nga disa të tilla të vendosura njëra pas tjetrës, dhe jo vetëm një siç tregohet më sipër për thjeshtësi. Pra në rrjete konkrete CNN kemi zakonisht disa thurje dhe nënkampionime të përsëritura dhe pas tyre 1, 2 ose 3 shtresa me lidhje të plotë. Në fund të rrjetit CNN gjendet shtresa e daljes e cila na jep kategorinë e imazhit që po analizojmë.

Referenca

  1. https://arxiv.org/abs/1702.07800
  2. https://en.wikipedia.org/wiki/Convolutional_neural_network
  3. https://theappsolutions.com/blog/development/convolutional-neural-networks
  4. https://towardsdatascience.com/applied-deep-learning-part-4-convolutional-neural-networks-584bc134c1e2

Posting....