Sun'iy intellekt (AI) so'nggi yillarda sezilarli darajada mashhurlikka erishdi.
Agar siz dasturiy ta'minot muhandisi, kompyuter olimi yoki umuman ma'lumotlar fanining ishqibozi bo'lsangiz, ehtimol siz ushbu soha tomonidan taqdim etilgan tasvirni qayta ishlash, naqshni aniqlash va ob'ektni aniqlashning ajoyib ilovalariga qiziqasiz.
Siz eshitgan sun'iy intellektning eng muhim sohasi bu chuqur o'rganishdir. Bu soha inson miyasi funksiyasidan keyin modellashtirilgan kuchli algoritmlarga (kompyuter dasturlari ko'rsatmalari) qaratilgan. Neyron tarmoqlari.
Ushbu maqolada biz neyron tarmoqlar tushunchasi va ushbu modellarni qanday qurish, kompilyatsiya qilish, moslashtirish va baholashni ko'rib chiqamiz. Python.
Neyron tarmoqlari
Neyron tarmoqlari yoki NN - bu inson miyasining biologik faolligidan keyin modellashtirilgan bir qator algoritmlar. Neyron tarmoqlari neyronlar deb ham ataladigan tugunlardan iborat.
Vertikal tugunlar to'plami qatlamlar deb nomlanadi. Model bitta kirish, bitta chiqish va bir qancha yashirin qatlamlardan iborat. Har bir qatlam neyronlar deb ataladigan tugunlardan iborat bo'lib, u erda hisob-kitoblar amalga oshiriladi.
Quyidagi diagrammada doiralar tugunlarni va vertikal tugunlar to'plami qatlamlarni ifodalaydi. Ushbu modelda uchta qatlam mavjud.
Bir qatlamning tugunlari quyida ko'rsatilganidek, uzatish liniyalari orqali keyingi qatlamga ulanadi.
Bizning ma'lumotlar to'plamimiz etiketli ma'lumotlardan iborat. Bu har bir ma'lumot ob'ektiga ma'lum nom qiymati berilganligini anglatadi.
Shunday qilib, hayvonlarni tasniflash ma'lumotlar to'plami uchun bizning ma'lumotlarimiz sifatida mushuk va itlarning tasvirlari, teg sifatida "mushuk" va "it" bo'ladi.
Shuni ta'kidlash kerakki, yorliqlar modelimiz uchun ularni tushunish uchun raqamli qiymatlarga aylantirilishi kerak, shuning uchun hayvonlar uchun yorliqlarimiz mushuk uchun "0" va it uchun "1" bo'ladi. Ma'lumotlar ham, teglar ham model orqali o'tkaziladi.
Learning
Ma'lumotlar modelga bir vaqtning o'zida bir ob'ekt yuboriladi. Ushbu ma'lumotlar bo'laklarga bo'linadi va modelning har bir tugunidan o'tadi. Tugunlar bu bo'laklar ustida matematik amallarni bajaradi.
Ushbu qo'llanma uchun matematik funktsiyalar yoki hisob-kitoblarni bilishingiz shart emas, lekin bu modellar qanday ishlashi haqida umumiy tasavvurga ega bo'lish muhimdir. Bir qatlamda bir qator hisob-kitoblardan so'ng ma'lumotlar keyingi qatlamga uzatiladi va hokazo.
Tugallangandan so'ng, bizning modelimiz chiqish qatlamidagi ma'lumotlar yorlig'ini bashorat qiladi (masalan, hayvonlarni tasniflash masalasida biz mushuk uchun "0" prognozini olamiz).
Keyin model ushbu bashorat qilingan qiymatni haqiqiy yorliq qiymati bilan solishtirishga kirishadi.
Agar qiymatlar mos kelsa, bizning modelimiz keyingi kiritishni oladi, ammo qiymatlar boshqacha bo'lsa, model yo'qotish deb ataladigan ikkala qiymat o'rtasidagi farqni hisoblab chiqadi va keyingi safar mos teglarni ishlab chiqarish uchun tugun hisoblarini moslashtiradi.
Chuqur o'rganish ramkalari
Neyron tarmoqlarini kodda yaratish uchun biz import qilishimiz kerak Chuqur o'rganish ramkalari Integratsiyalashgan rivojlanish muhitimizdan (IDE) foydalanadigan kutubxonalar sifatida tanilgan.
Ushbu ramkalar bizga ushbu qo'llanmada yordam beradigan oldindan yozilgan funktsiyalar to'plamidir. Biz modelimizni yaratish uchun Keras ramkasidan foydalanamiz.
Keras - bu chuqur o'rganish va sun'iy intellektdan foydalanadigan Python kutubxonasi Tensor oqimi osonlik bilan oddiy ketma-ket modellar ko'rinishida NN yaratish.
Keras, shuningdek, ishlatilishi mumkin bo'lgan o'zining oldindan mavjud modellari bilan birga keladi. Ushbu qo'llanma uchun biz Keras yordamida o'z modelimizni yaratamiz.
Ushbu Deep Learning tizimi haqida ko'proq bilib olishingiz mumkin Keras veb-sayti.
Neyron tarmoqni qurish (qo‘llanma)
Keling, Python yordamida neyron tarmog'ini qurishga o'tamiz.
Muammo bayonoti
Neyron tarmoqlar AIga asoslangan muammolarni hal qilishning bir turi. Ushbu o'quv qo'llanma uchun biz Pima hindularining diabetga oid ma'lumotlarini ko'rib chiqamiz, u mavjud Bu yerga.
UCI Machine Learning ushbu maʼlumotlar toʻplamini tuzdi va hindistonlik bemorlarning tibbiy rekordini o'z ichiga oladi. Bizning modelimiz bemorda 5 yil ichida diabetning boshlanishi yoki yo'qligini taxmin qilish kerak.
Maʼlumotlar toʻplami yuklanmoqda
Bizning maʼlumotlar toʻplamimiz “diabetes.csv” deb nomlangan yagona CSV fayl boʻlib, uni Microsoft Excel yordamida osonlik bilan boshqarish mumkin.
Modelimizni yaratishdan oldin biz ma'lumotlar to'plamini import qilishimiz kerak. Quyidagi kod yordamida buni amalga oshirishingiz mumkin:
pandalarni pd sifatida import qilish
ma'lumotlar = pd.read_csv('diabet.csv')
x = data.drop("Natija")
y = ma'lumotlar["Natija"]
Bu erda biz foydalanamiz Pandas kutubxonasi CSV fayl ma'lumotlarimizni boshqarish imkoniyatiga ega bo'lsa, read_csv() Pandas-ning o'rnatilgan funksiyasi bo'lib, bizga faylimizdagi qiymatlarni "ma'lumotlar" deb nomlangan o'zgaruvchiga saqlash imkonini beradi.
X o'zgaruvchisi natija (yorliqlar) ma'lumotlarisiz bizning ma'lumotlar to'plamini o'z ichiga oladi. Biz bunga x uchun teglarni olib tashlaydigan data.drop() funksiyasi bilan erishamiz, y esa faqat natija (yorliq) maʼlumotlarini oʻz ichiga oladi.
Ketma-ket modelni qurish
1-qadam: Kutubxonalarni import qilish
Birinchidan, biz TensorFlow va Keras-ni modelimiz uchun zarur bo'lgan ma'lum parametrlar bilan birga import qilishimiz kerak. Quyidagi kod buni amalga oshirishga imkon beradi:
tenzor oqimini tf sifatida import qiling
tensorflow import kerasdan
tensorflow.keras.models import Sequential dan
tensorflow.keras.layers import faollashtirish, zich
tensorflow.keras.optimizers dan Odamni import qiladi
tensorflow.keras.metrics dan categorical_crossentropy import
Bizning modelimiz uchun biz zich qatlamlarni import qilamiz. Bular to'liq bog'langan qatlamlardir; ya'ni qatlamdagi har bir tugun keyingi qatlamdagi boshqa tugun bilan to'liq bog'langan.
Biz ham import qilamiz aktivlashtirish tugunlarga yuborilgan ma'lumotlarni masshtablash uchun zarur bo'lgan funksiya. Optimizatorlar yo'qotishlarni kamaytirish uchun ham import qilingan.
Adam mashhur optimallashtiruvchi bo'lib, u bilan birga modelimizni yangilash tugunlari hisoblarini yanada samaraliroq qiladi categorical_crossentropy - bu biz foydalanadigan yo'qotish funktsiyasi turi (haqiqiy va taxmin qilingan yorliq qiymatlari o'rtasidagi farqni hisoblaydi).
2-qadam: Modelimizni loyihalash
Men yaratayotgan modelda bitta kirish (16 birlik bilan), bitta yashirin (32 birlik bilan) va bitta chiqish (2 birlik bilan) qatlamlari mavjud. Bu raqamlar aniqlanmagan va to'liq berilgan muammoga bog'liq bo'ladi.
To'g'ri sonli birliklar va qatlamlarni o'rnatish amaliyot orqali qo'shimcha vaqtni yaxshilash mumkin bo'lgan jarayondir. Faollashtirish ma'lumotlarimizni tugun orqali o'tkazishdan oldin amalga oshiradigan masshtablash turiga mos keladi.
Relu va Softmax bu vazifa uchun mashhur faollashtirish funksiyalaridir.
model = Ketma-ket ([
Zich(birliklar = 16, kirish_shakli = (1,), faollashtirish = 'relu'),
Zich (birliklar = 32, faollashtirish = 'relu'),
Zich (birliklar = 2, faollashtirish = "softmax")
])
Modelning qisqacha mazmuni qanday bo'lishi kerak:
Modelni o'rgatish
Bizning modelimiz ikki bosqichda o'qitiladi, birinchisi modelni kompilyatsiya qilish (modelni birlashtirish) va keyingisi modelni berilgan ma'lumotlar to'plamiga moslashtirish.
Buni model.compile() funksiyasidan keyin model.fit() funksiyasi yordamida amalga oshirish mumkin.
model.compile(optimizer = Adam(o'rganish_stavkasi = 0.0001), yo'qotish = 'ikkilik_krossentropiya', ko'rsatkichlar = ['aniqlik'])
model.fit(x, y, davrlar = 30, to'plam_sizi = 10)
"Aniqlik" ko'rsatkichini ko'rsatish bizga o'quv jarayonida modelimiz to'g'riligini kuzatish imkonini beradi.
Bizning teglarimiz 1 va 0 ko'rinishida bo'lgani uchun biz haqiqiy va taxmin qilingan teglar o'rtasidagi farqni hisoblash uchun ikkilik yo'qotish funksiyasidan foydalanamiz.
Ma'lumotlar to'plami, shuningdek, 10 ta (batch_size) to'plamlarga bo'linadi va model orqali 30 marta (davrlar) o'tkaziladi. Berilgan ma'lumotlar to'plami uchun x ma'lumotlar va y ma'lumotlarga mos keladigan teglar bo'ladi.
Prognozlar yordamida modelni sinovdan o'tkazish
Modelimizni baholash uchun biz taxmin () funktsiyasidan foydalanib test ma'lumotlari bo'yicha bashorat qilamiz.
bashorat = model.predict(x)
Va bu shunday!
Endi siz buni yaxshi tushunishingiz kerak Chuqur o'rganish ilovasi, Neyron tarmoqlari, ular umuman qanday ishlaydi va Python kodida modelni qanday qurish, o'rgatish va sinab ko'rish.
Umid qilamanki, ushbu qo'llanma sizga o'zingizning Deep Learning modellaringizni yaratish va o'rnatishni boshlash imkonini beradi.
Agar maqola foydali bo'lsa, sharhlarda bizga xabar bering.
Leave a Reply