Teskari tarqalishli neyronlarni (kitobda 7-bob) kelgusi mavzuda kiritasizmi? Agar kelgusi mavzuga kiritmasangiz shu mavzuning oxiridan kiritish kerak


Evolyutsiyalashgan neyron qanday ishlaydi



Download 1,22 Mb.
bet8/16
Sana23.12.2022
Hajmi1,22 Mb.
#895341
1   ...   4   5   6   7   8   9   10   11   ...   16
Bog'liq
13-mavzu

Evolyutsiyalashgan neyron qanday ishlaydi. Xo'sh, endi birinchi evolyutsiyadan keyin sun'iy neyronning ishi bo'yicha barcha xulosalarimizni sinab ko'rish vaqti keldi. Buni amalga oshirish uchun biz Pythondan foydalanishga murojaat qilamiz, lekin avval biz o'zimizning ro'yxatimizni barchasini boshlagan ma'lumotlar bilan ko'rsatamiz (13.2-jadval):
13.2-jadval

Agar biz koordinatalar bo'yicha tekislikdagi nuqtalarni chizadigan bo'lsak, unda ularning qiymatlari funksiya grafigi: y = 2 x + 2.5 qiymatlari yonida joylashganligini sezamiz.
Dastur
tasodifiy import
# Biz istalgan raqam bilan boshlaymiz w1 = A to'g'ri chiziqning qiyaligi
w1 = 0.4
w1_vis = w1 # Nishabning boshlang'ich qiymatini eslaymiz
# W2 = b parametrini ishga tushiring - Y o'qi orqali to'g'ri chiziqning o'tish nuqtasi uchun javobgardir
w2 = randov.uniform (-4, 4)
w2_vis = w2 # Parametrning boshlang'ich qiymatini eslaymiz
# Dastlabki qatorning ma'lumotlar chiqishi
print ('Boshlang'ich satr:', w1, '* X +', w2)
# O’qish tezligi
lr = 0,001
# Davrlar sonini o’rnatish
davrlar = 3000
# X1 kirish ma'lumotlari qatorini (kirish ma'lumotlari tanlanmasi) yaratish
arr_x1 = [1, 2, 3, 3.5, 4, 6, 7.5, 8.5, 9]
# Ikkinchi kirishning kirish ma'lumotlarining qiymati har doim 1 ga teng
x2 = 1
# Bir qator qadriyatlar yaratish (maqsadli qiymatlar)
arr_y = [4.3, 7, 8.0, 10.1, 11.3, 14.2, 18.5, 19.3, 21.4]
# Tanlanma bo'yicha ishlash
oralig'idagi e (davrlar) uchun:
i uchun (len (arr_x1)) oralig'ida: # len (arr) - funksiya qator uzunligini qaytaradi
# Nuqtaning x koordinatasini olamiz
x1 = arr_x1 [i]
# Hisoblangan y, nuqta koordinatasini olamiz
y = w1 * x1 + w2
# Maqsad Y, nuqta koordinatasini olamiz
target_Y = arr_y [i]
# Xatolik E = - (maqsad qiymati - neyron chiqishi)
E = - (target_Y - y)
# Vaznni yangilash qoidasiga binoan vaznni x darajasida o’zgartamiz
w1 - = lr * E * x1
# Vaznni x2 = 1 ga o’zgartamiz
# w2 - = stavka * E * x2 # Chunki x2 = 1 bo'lsa, unda bu omil qoldirilishi mumkin
w2 - = lr * E
# Ma'lumotlarning chiqishi to'g'ridan-to'g'ri tayyor
print ('Tayyor qator:', w1, '* X +', w2)
Tayyor to'g'ri chiziq: 2.058410130422831 * X + 2.5013583972057263 Ushbu kodni boshqalar singari havoladan yuklab olishingiz mumkin: https://github.com/CaniaCan/neuralmaster
Keling, dastur kodini tavsiflaymiz:
Dasturning boshida biz tasodifiy raqamlar bilan ishlash uchun modulni import qilamiz:
import random
Buning yordamida tasodifiy son bilan biz parametrning vazn koeffitsientini yaratamiz (w2 = b) - to'g'ri chiziqning o'qi orqali o'tishi uchun javobgar:
w2 = random.uniform(-4, 4)
Randov modulning usuli, uniform(from, to)- from dan, to gacha, tasodifiy haqiqiy sonni generatsiya qiladi.
Ko'rib turganingizdek, bizning dasturimizda biz ilgari yozganimiz bilan solishtirganda juda ko'p o'zgarishlar mavjud emas. Biz o'zimizning vazn koeffitsientimiz (w2) bilan ikkinchi kiritishni (x2 = 1) qo'shdik. Koeffitsient (A) - vaznkoeffitsienti (w1), parametr (b) - vaznkoeffitsienti (w2) ga o'zgartirildi. Va, albatta, biz yaxshilangan xato funksiyasini va gradient tushish usuli yordamida vaznkoeffitsientlarini yangilashni amalga oshirdik.
Natijada, bizning rivojlangan neyronimiz endi sinflash masalasini juda yaxshi bajaradi. Endi u ma'lumotlarni ikkita kirish usuli bilan sinflashi va shu bilan to'g'ridan-to'g'ri nol nuqtasida emas, balki butun Y o'qi bo'ylab to'g'ri chiziq bilan kesishishi bilan chiziqli sinflagichni olishi mumkin.
Buni ko'rish uchun natijani ko'rib chiqamiz:
Boshlang'ich chiziq: 0.4 * X + 0.3652477754014445
Ko'ryapsizmi! Bizning sun'iy neyronimiz qanday qilib ajoyib ish qiladi. Ko'zlari bilan deyarli farq qilmasa ham, u bemalol chiziqli bo'linishi mumkin edi.
Endi avvalgidek shartni o'rnatamiz. Agar ma'lumotlar sinflash chizig'ining ustida joylashgan bo'lsa, demak bu jirafaning bir turi va pastdagi hamma narsa timsohlardir. Biz buni kirishlarga neyronning ilgari ko'rmagan qiymatlarini etkazib berish va o'qitilgan neyronning qaysi turga mansubligini mustaqil ravishda aniqlay olish-qilmasligini ko'rish orqali amalga oshiramiz.
x1 = input ("X kengligi uchun qiymatni kiriting:")
x1 = int (x1)
T = input ("Y balandligi uchun qiymatni kiriting:")
T = int (T)
y = w1 * x1 + w2
# Shart
agar T & gt; y:
print ('Bu jirafa!')
boshqa:
print ('Bu timsoh!')
Bizning qadriyatlarimizga kirgandan so'ng, jirafalar yoki timsohlar qanday ma'lumot ekanligini tekshiradigan va berilgan savolga javobni qaytaradigan shart kelib chiqadi.
X: 4 kengligi uchun qiymatni kiriting
Y balandligi qiymatini kiriting: 15
Bu jirafa!

Download 1,22 Mb.

Do'stlaringiz bilan baham:
1   ...   4   5   6   7   8   9   10   11   ...   16




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish