Bog'lanish og'irliklari qanday yaratiladi?
Kirish qatlami neyronlarining og'irligi
Ushbu og'irliklar barcha neyronlarning maksimal javoblari teng bo'lishini ta'minlash uchun o'rnatiladi va aynan bitta naqsh o'ziga xos neyronning javob berishiga sabab bo'ladi. Bunga erishish uchun tarmoqni o'rgatishning hojati yo'q, og'irliklarni matematik tarzda belgilash kifoya.
qayerda:
w (i, j) - "j" neyroni va "i" kirish o'rtasidagi aloqaning og'irligi
x(i,j) – “j” naqshidagi “i” signalining qiymati
Neyronning og'irliklari va impulslarining mahsulotini og'irlik vektori va impuls vektori orasidagi burchakning kosinusi sifatida talqin qilish mumkinligini eslaganimizda, bu tenglama aniq bo'ladi. Ushbu vektorlar teng bo'lganda, neyron chiqishi "1" bo'ladi, vektorlar boshqacha bo'lsa, chiqish qiymati diapazoni -1 dan 1 gacha bo'ladi.
Chiqish qatlami neyronlarining kirish og'irliklari
Dastlab, biz chiqish qatlami neyronlari kirish sonini aniqlashimiz kerak.
Ushbu neyronlarning har biri bir-biriga bog'langan:
o'ziga - vazn = 1
chiqish qatlamining barcha neyronlariga - har bir ulanishning og'irligi -1 / M
kirish qatlamining tegishli neyroniga - vazn = 1
Misol
Hamming klassifikatori bilan tanishish uchun biz Matlab muhitida tarmoq yaratdik. Uning vazifasi tarmoq "xotirasida" qayd etilgan 8 ta belgidan 1 tasini tanib olishdir. Quyidagi rasmda 8 ta ishlatilgan belgilar ko'rsatilgan:
Ushbu belgilarni ifodalovchi matritsalar ikki o'lchovli (3x5 piksel), lekin ularni bir qatorli (15 pozitsiya) vektor sifatida yozish qulayroq edi. Qora kvadratlar bir, oq kvadratlar esa nolga teng. To'g'ri hisob-kitoblarni amalga oshirish uchun biz barcha qator vektorlarini normallashtirdik.
Biz 8 ta belgini tasniflashni xohlaymiz, shuning uchun bizning tarmog'imiz 2 guruhga bo'lingan 16 ta neyronni, har bir qatlamda 8 ta neyronni o'z ichiga oladi.
Kirish qatlamining og'irligi oldindan normallashtirilgan belgilarning transpozitsiyalangan matritsasi sifatida belgilangan.
Chiqish qatlamining og'irligi ilgari aytilgan taxminlarga muvofiq aniqlanadi ( "Chiqish qatlami neyronlarining kirish og'irliklari" bo'limiga qarang) va bizning holatlarimizda "–1/M" parametri "–1/8" ga o'rnatildi. Ushbu matritsaning qatorlarini normallashtirish kerakligini unutolmaymiz.
Biz tanlagan neyron faollashtirish funksiyasi:
Tarmoq javobini barqarorlashtirish uchun chiqish qatlamidagi 15 ta hisoblash tsikli etarli bo'ladi, deb taxmin qildik; lekin biz kuchli shovqin bilan shug'ullanganimizda, bu etarli bo'lmasligi mumkinligini payqadik. Har bir tsiklda chiqishlardan birida “1” bor yoki yoʻqligini tekshirish eng yaxshi yechim boʻlardi, lekin u holda tasnifni amalga oshirish uchun qancha vaqt kerakligini taxmin qilish qiyin boʻladi – va bu bilan ishlashda bu juda muhim. DSP.
Tajribaning oxirgi qismi bizning belgilarimizga biroz shovqin qo'shish va keyin tarmoqni tekshirish edi. “Analog” shovqin rand() funksiyasi bilan hosil qilinadi.
Biz yaratgan tarmoq to'g'ri ishlaydi - agar iloji bo'lsa, u shovqin bilan ham berilgan belgini taniydi. Buni amalga oshirishning mutlaqo imkoni bo'lmaganida yoki ikkita neyron bir-biriga o'xshash kuchli javoblarga ega bo'lganda, uni to'g'ri tan olmaydi - buni tanib olish uchun ko'proq hisoblash tsikllari kerak bo'ladi.
Do'stlaringiz bilan baham: |