8.3.4. Summator-akkumulyator.
Bu elementning murakkabligi, ham kasrli sonlarni qayta ishlash
algoritmining murakkabligi bilan belgilanadi, lekin kristalning resurslarni
iste'mol qilish nuqtai nazaridan bu erda hammasi oddiy bo’lib, faqat bitta
ma’lum o’lchamli qo'shuvchi(Summator-akkumulyator) yaratiladi va
kirishlar sonining ko'payishi bilan, uning o'lchami odatda o'zgarmaydi.
8.3.5. Faollashtirish funktsiyasi.
Faollashtirish funktsiyasi neyron chiqishidagi signalning uning
kirishidagi signallarning og'irlik yig'indisiga bog'liqligini aniqlaydi.
Ko'pgina hollarda, u monotonik o'sib boradigan funksiya bo’lib, (-1...1)
yoki (0...1) miqdorlar chegarasida yotadi. Sun'iy neyron tarmoqlarda
chiziqli bo'lmagan faollashtirish funktsiyasining bir nechta turlari mavjud
bo’lsa ham ko'pincha sigmasimon funksiya ishlatiladi va bu faollashtirish
funktsiyalari 8.7 rasmda ko'rsatilgan.
8.7 rasm - Sigmoidal (a), ostona (b) va chiziqli (v) neyronlarni
faollashtirish funktsiyalari.
Amalda, sun'iy neyronning faollashtirish funktsiyalarini yaratish
deyarli eng muhim o'rinni egallaydi, chunki chiziqli bo'lmagan
sigmasimon funktsiyani to'g'ridan -to'g'ri amalga oshirish, iloji bo'lsa
ham, ancha murakab va ko’p resurs talab qiladi.
σ(x) = 1/(1 + exp(-tx))
Sigmasimon funktsiyani apparatda bajarilishni soddalashtirishning
bir necha usullari mavjud: qidiruv jadvallaridan foydalanish (lookup
table,
aslida
xotira),
har
xil
bo'lakli
chiziqli
aproksimasiya(yaqinlashtirish),
kombinatsion
taxminiy
yaqinlashuv(aproksimasiya).
8.3.6. Suniy neyronlarning strukturasi.
Neyron tarmoq topologiyasini qurishdan oldin, avval bitta neyronni
strukturaviy tuzilishini loyihalash kerak. Quyida beshta funktsional
blokga iborat sun'iy neyron uchun ekvivalent(almashtirish) sxema
keltirilgan. U quyidagi kirish, ko'paytirgich, yig'uvchi, chiziqli bo'lmagan
konvertor(uzgartirgich)), chiqish qisimlaridan iborat. Mana shu bloklar
funktsiyasini saqlab qolgan holda FPGAda qurib ishlatiladi.
8.8 rasm. Sun'iy neyronlarni almashtirish(ekvivalent) sxemasi.
Ekvivalent sxemaga asoslanib (8.8 -rasm) bitta neyronning modeli
qurilgan. Kirish ma'lumotlari [-1; 1] chegarasidagi ishorali o'nlik kasr
raqamlardir.
Eng katta bit (xona) sonning ishorasini bildiradi. Tarmoq og'irliklari
va chegara qiymatlari 19-bitli(xonali) raqamlar bilan ifodalanadi. Eng
katta bit ishorani, keyin sonning butun qismini 9 raqami va kevingi 9 bit
esa kasr qismning 9 raqamini ifodalaydi. Og'irliklar va kirish
ma'lumotlarining hosablash natijasi 24 bitli registrda saglanadi. Chiqish
qiymati esa 26 bitli registrda eslab qolinadi.
Quyida Verilog apparat tavsifi tilida beshta kiruvchili(x0..x4)
chiziqli neyron modulining sarlavhasi keltirilgan
module soma(
input wire [9:0] x0,
input wire [9:0] x1,
input wire [9:0] x2,
input wire [9:0] x3,
input wire [9:0] x4,
output wire [26:0] y);
Sun'iy neyron tarmoqning og'irliklari va chegaralari oddiy
ko'paytirish va qo'shish bloklari yordamida amalga oshirilsa,
faollashtirish funktsiyasi xotira blokidan foydalanishni talab qiladi. Ya'ni,
ba'zi faollashtirish funktsiyalarining haqoniylik jadvali xotira qurilmasida
joylashtiriladi. Qo’yidagi holatda sigmasimon funktsiya ishlatilgan:
bu erda: x - nochiziqli konvertorning kirishidagi yig'indi,
t – funktsiya xarakteristikasining qiyalikini belgilaydigan
koeffitsient. t = 0 bo’sa sigmasimon ostona funktsiyasiga aylanadi.
FPGA xotirasining keraksiz sarflanishiga yo'l qo'ymaslik uchun
ostona funktsiyasining simmetriyalilik xususiyati hisobga olingan.
Shunday qilib, sigmasimon funktsiyaning birinchi yarmining 8000 ta 26
bitli qiymatlari yordamida xotirada saqlanib, ikkinchi qismni shu eslab
qolingan jadvaldan tanlab olivchi mantiqiy sxema yaratilgan. Ammo shu
holatda ham FPGA asosida bu funktsiyani amalga oshirish uchun katta
apparat resurslari kerak bo'ladi.
Sigmasimon funktsiyani ishlatmasdan tuzilgan neyronning
sxematik tasviri 8.9-rasmda ko'rsatilgan.
8.9 rasm. FPGA asosidagi neyronning sxemasi.
Har qanday strukturani amalga oshirish uchun raqamli qiymatlarni
saqlash qobiliyatini ta'minlash kerak. Bu qiymatlarning xonaligi har bir
neyronning mumkin bo'lgan holatlari sonini aniqlaydi va neyronlar sonini
esa umuman avtomatni aniqlashi mumkin bo’lgan holatlarni aniqlaydi.
Buning uchun har bir neyronning chiqish qiymatini reg turidagi xotirada
o'zgaruvchi sifatida saqlashi mumkin. Bunda har bir neyron Verilog
tilidagi modul bo'lgani uchun, ularni og'irliklarning qiymatiga chuqur
kirishmasdan, individual neyronlar bilan ishlash orqali tarmoq
topologiyasini tuzish mumkin.
Biroq,
FPGA
va
boshqa
o'rnatilgan
tizimlarda
o’ramli(konvolyutsion) neyron tarmoqlarni ishga tushirish bir qator
qiyinchiliklarga ega. Bular, tayyor kutubxonalarning yo'qligi, apparat
platformasining hisoblash resurslarining cheklanganligi va o'rnatilgan
platformada
algoritmni
tuzish
sozlah
jarayonini
yuqori
murakkabligidadir. Ammo, yuqorida tasvirlangan muammolarni Modelga
asoslangan loyihalash va MATLAB / Simulink yaratish muhiti yordamida
hal qilish mumkin.
Strukturaviy ravishda Modelga qaratilgan loyihalash jarayonini
uchta asosiy bosqichga bo'lish mumkin: algoritm modelini yaratish va
uning parametrlarini takomillashtirish, apparatni amalga oshirish
algoritmini tayyorlash va avtomatik kod ishlab chiqarish (8.10-rasm).
8.10-rasm. Modelga qaratilgan loyihalashni ishlab chiqish bosqichlari.
Birinchi bosqichda neyron tarmoqning tuzilishi MATLABda
yaratiladi, tarmoq test ma'lumotlari bo'yicha o'qitiladi va kerak bo'lganda
uning tuzilishi takomillashtiriladi. Keyingi bosqichda, Simulink muhiti
yordamida FPGA -larni apparatli amalga oshirishga mos bo'lgan,
ma'lumotlar oqimi bilan ishlavchi, NT-ni algoritmining oqim modeli
yaratiladi. Uchinchi bosqichda, Simulink modellaridan avtomatik kod
ishlab chiqarish yordamida biz uni FPGA -da sintez qilish va ishga
tushirish uchun mos bo'lgan neyron tarmoq algoritmini tasvirlaydigan
HDL kodini olamiz.
Bu erda, o’ramli(konvolyutsion) NT-ning apparatli yaratishga misol
sifatida, qo'lda yozilgan raqamlarni taniy oladigan tarmoq tanlangan
(8.11-rasm). Keyinchalik, yaratilgan NT-ni boshqa ma'lumotlar to'plami
- yo'l belgilari,yoki avtomobil raqamlarini tanish bo'yicha o'rgatish
mumkin va haydovchilarga yordam berish tizimlarida yoki raqamlarni
aniqlash uchun foto va video yozish tizimlarida foydalanish mumkin.
8.11-rasm. Qo'lda yozilgan raqamlar tasviriga misol.
Do'stlaringiz bilan baham: |