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
134
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.
135
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
136
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
137
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).
138
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.
Dostları ilə paylaş: |