Мундариҷа[Пинҳон кардан][Намоиш]
Дар солҳои охир, шабакаҳои нейрон маъруфият пайдо карданд, зеро онҳо дар доираи васеи вазифаҳо бениҳоят хуб будани худро нишон доданд.
Онҳо як интихоби олӣ барои шинохти тасвир ва аудио, коркарди забони табиӣ ва ҳатто бозиҳои мураккаб ба монанди Go ва шоҳмот мебошанд.
Дар ин паём, ман ба шумо тамоми раванди омӯзиши шабакаи нейронро роҳнамоӣ мекунам. Ман тамоми қадамҳоро барои омӯзиши шабакаи нейронӣ зикр ва шарҳ медиҳам.
Дар ҳоле ки ман қадамҳоро аз назар мегузаронам, ман мехоҳам як мисоли оддиро илова кунам, то боварӣ ҳосил кунем, ки намунаи амалӣ низ вуҷуд дорад.
Пас, биёед ва биёед чӣ гуна коркарди шабакаҳои нейронро омӯзем
Биёед содда оғоз кунем ва пурсем, ки чӣ гунаанд шабакаҳои нейралӣ дар ҷои аввал.
Шабакаҳои нейронӣ маҳз кадомҳоянд?
Шабакаҳои нейрон нармафзори компютерӣ мебошанд, ки кори майнаи инсонро тақлид мекунанд. Онҳо метавонанд аз миқдори зиёди маълумот ва намунаҳои муайяне, ки ба одамон ошкор кардани онҳо душвор аст, омӯзанд.
Шабакаҳои нейронӣ дар солҳои охир аз сабаби гуногунҷабҳаи онҳо дар вазифаҳо ба монанди шинохти тасвир ва аудио, коркарди забони табиӣ ва моделсозии пешгӯишаванда маъруфият пайдо карданд.
Дар маҷмӯъ, шабакаҳои нейрон як воситаи пурқувват барои доираи васеи барномаҳо мебошанд ва имкони тағир додани тарзи муносибати мо ба доираи васеи корҳоро доранд.
Чаро мо бояд дар бораи онҳо донем?
Фаҳмидани шабакаҳои нейрон муҳим аст, зеро онҳо боиси кашфиётҳо дар соҳаҳои гуногун, аз ҷумла биниши компютер, шинохти нутқ ва коркарди забони табиӣ шудаанд.
Масалан, шабакаҳои нейронӣ дар маркази таҳаввулоти ахир дар мошинҳои худгард, хадамоти тарҷумаи автоматӣ ва ҳатто ташхиси тиббӣ мебошанд.
Фаҳмидани он, ки шабакаҳои нейронӣ чӣ гуна кор мекунанд ва чӣ гуна тарҳрезии онҳо ба мо кӯмак мекунад, ки барномаҳои нав ва ихтироъкорӣ эҷод кунем. Ва, шояд, он метавонад дар оянда ба бозёфтҳои боз ҳам бузургтар оварда расонад.
Эзоҳ дар бораи дастур
Тавре ки ман дар боло гуфтам, ман мехостам қадамҳои омӯзиши шабакаи нейронро тавассути мисол шарҳ диҳам. Барои ин, мо бояд дар бораи маҷмӯи додаҳои MNIST сӯҳбат кунем. Ин интихоби маъмул барои шурӯъкунандагон аст, ки мехоҳанд бо шабакаҳои нейронӣ оғоз кунанд.
MNIST ихтисоротест, ки маънои Институти Миллии Стандартҳо ва Технологияҳои Тағйирёфтаро дорад. Ин маҷмӯи маълумотҳои рақамии дастӣ мебошад, ки одатан барои омӯзиш ва озмоиши моделҳои омӯзиши мошинсозӣ, бахусус шабакаҳои нейрон истифода мешавад.
Дар маҷмӯа 70,000 аксҳои хокистарӣ бо рақамҳои дастнависи аз 0 то 9 иборат аст.
Маҷмӯи додаҳои MNIST як меъёри маъмул барои таснифи тасвир вазифахо. Он аксар вақт барои таълим ва омӯзиш истифода мешавад, зеро он паймон ва осон аст, дар ҳоле ки барои алгоритмҳои омӯзиши мошинҳо ҷавоб додан душвор аст.
Маҷмӯи додаҳои MNIST аз ҷониби якчанд чаҳорчӯбаҳои омӯзиши мошинсозӣ ва китобхонаҳо, аз ҷумла TensorFlow, Keras ва PyTorch дастгирӣ карда мешавад.
Акнун мо дар бораи маҷмӯи додаҳои MNIST медонем, биёед бо қадамҳои омӯзиши шабакаи нейронӣ оғоз кунем.
Қадамҳои асосӣ барои омӯзиши шабакаи нейрон
Ворид кардани китобхонаҳои зарурӣ
Вақте ки бори аввал ба омӯзиши шабакаи нейронӣ шурӯъ мекунед, дорои асбобҳои зарурӣ барои тарҳрезӣ ва омӯзиши модел муҳим аст. Қадами аввал дар эҷоди шабакаи нейрон ин ворид кардани китобхонаҳои зарурӣ ба монанди TensorFlow, Keras ва NumPy мебошад.
Ин китобхонаҳо ҳамчун блокҳои сохтмонӣ барои рушди шабакаи нейрон хизмат мекунанд ва имкониятҳои муҳимро фароҳам меоранд. Якҷоякунии ин китобхонаҳо имкон медиҳад, ки тарҳҳои мураккаби шабакаҳои нейронӣ ва омӯзиши зуд эҷод карда шаванд.
Барои оғози мисоли мо; мо китобхонаҳои лозимиро ворид хоҳем кард, ки ба онҳо TensorFlow, Keras ва NumPy дохил мешаванд. ТенорФлов чаҳорчӯбаи омӯзиши мошини кушодаасос, Keras API-и сатҳи баланди шабакаи нейронӣ ва NumPy китобхонаи рақамии ҳисоббарории Python мебошад.
import tensorflow as tf
from tensorflow import keras
import numpy as np
Маҷмӯи маълумотро бор кунед
Ҳоло маҷмӯи додаҳо бояд бор карда шавад. Маҷмӯи додаҳо маҷмӯи маълумотест, ки дар он шабакаи нейронӣ таълим дода мешавад. Ин метавонад ҳама гуна маълумот, аз ҷумла аксҳо, аудио ва матн бошад.
Муҳим аст, ки маҷмӯи маълумот ба ду қисм тақсим карда шавад: яке барои омӯзиши шабакаи нейрон ва дигаре барои арзёбии дурустии модели таълимшуда. Якчанд китобхонаҳо, аз ҷумла TensorFlow, Keras ва PyTorch, метавонанд барои ворид кардани маҷмӯи додаҳо истифода шаванд.
Барои мисоли мо, мо инчунин Keras-ро барои бор кардани маҷмӯи додаҳои MNIST истифода мебарем. Дар маҷмӯи додаҳо 60,000 аксҳои омӯзишӣ ва 10,000 тасвирҳои санҷишӣ мавҷуданд.
mnist = keras.datasets.mnist
(train_images, train_labels), (test_images, test_labels) = mnist.load_data()
Пеш аз коркарди маълумот
Коркарди пешакии додаҳо марҳилаи муҳими омӯзиши шабакаи нейронӣ мебошад. Он омода ва тоза кардани маълумотро пеш аз ворид шудан ба шабакаи нейрон дар бар мегирад.
Миқёси арзишҳои пиксел, ба эътидол овардани маълумот ва табдил додани тамғакоғазҳо ба рамзгузории як-гарм намунаҳои расмиёти пешакии коркард мебошанд. Ин равандҳо ба шабакаи нейрон дар омӯзиши самараноктар ва дақиқтар кӯмак мекунанд.
Коркарди пешакии маълумот инчунин метавонад барои кам кардани фишурдани зиёдатӣ ва беҳтар кардани кори шабакаи нейрон мусоидат кунад.
Шумо бояд пеш аз омӯзиши шабакаи нейрон маълумотро пешакӣ коркард кунед. Ин тағир додани тамғакоғазҳоро ба рамзгузории як-гарм ва миқёси арзишҳои пикселро то аз 0 то 1 дар бар мегирад.
train_images = train_images / 255.0
test_images = test_images / 255.0
train_labels = keras.utils.to_categorical(train_labels, 10)
test_labels = keras.utils.to_categorical(test_labels, 10)
Моделро муайян кунед
Раванди муайян кардани модели шабакаи нейронӣ муқаррар кардани меъмории онро дар бар мегирад, аз қабили шумораи қабатҳо, шумораи нейронҳо дар як қабат, функсияҳои фаъолсозӣ ва навъи шабака (фидфорд, такрорӣ ё конволютсионӣ).
Тарҳрезии шабакаи нейроние, ки шумо истифода мебаред, аз рӯи намуди мушкилоте, ки шумо кӯшиши ҳалли онро доред, муайян карда мешавад. Тарҳрезии дақиқи шабакаи нейронӣ метавонад ба омӯзиши шабакаи нейрон тавассути самараноктар ва дақиқтар кардани он кӯмак кунад.
Вақти он расидааст, ки модели шабакаи нейронро дар ин лаҳза тавсиф кунем. Барои ин мисол модели оддиро бо ду қабати пинҳонӣ, ки ҳар кадоми онҳо 128 нейрон ва қабати баромади softmax, ки 10 нейрон дорад, истифода баред.
model = keras.Sequential([
keras.layers.Flatten(input_shape=(28, 28)),
keras.layers.Dense(128, activation='relu'),
keras.layers.Dense(128, activation='relu'),
keras.layers.Dense(10, activation='softmax')
])
Моделро тартиб диҳед
Функсияи талафот, оптимизатор ва ченакҳо бояд ҳангоми тартиб додани модели шабакаи нейронӣ муайян карда шаванд. Қобилияти шабакаи нейрон барои пешгӯии дурусти натиҷа бо функсияи талафот муайян карда мешавад.
Барои баланд бардоштани дақиқии шабакаи нейронӣ ҳангоми омӯзиш, оптимизатор вазнҳои худро тағир медиҳад. Самаранокии шабакаи нейронӣ ҳангоми омӯзиш бо истифода аз метрика муайян карда мешавад. Модел бояд пеш аз омӯзиши шабакаи нейрон сохта шавад.
Дар мисоли мо, мо бояд худи ҳозир моделро созем.
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])
Моделро омӯзед
Гузаронидани маҷмӯи додаҳои омодашуда тавассути шабакаи нейрон ҳангоми тағир додани вазнҳои шабака барои кам кардани функсияи талафот ҳамчун омӯзиши шабакаи нейрон маълум аст.
Маҷмӯи додаҳои тасдиқкунӣ барои санҷиши шабакаи нейронӣ ҳангоми омӯзиш барои пайгирии самаранокии он ва пешгирии аз ҳад зиёд фишурда истифода мешавад. Раванди омӯзиш метавонад каме вақтро талаб кунад, аз ин рӯ муҳим аст, ки боварӣ ҳосил кунед, ки шабакаи нейрон барои пешгирии номувофиқӣ ба таври мувофиқ омӯзонида шудааст.
Бо истифода аз маълумоти омӯзишӣ, мо ҳоло метавонем моделро омӯзем. Барои ин, мо бояд андозаи партия (шумораи намунаҳое, ки пеш аз навсозии модел коркард шудаанд) ва шумораи давраҳоро (шумораи такрорҳо дар маҷмӯи пурраи додаҳо) муайян кунем.
model.fit(train_images, train_labels, epochs=10, batch_size=32)
Арзёбии Модели
Санҷиши кори шабакаи нейронӣ дар маҷмӯи додаҳои санҷишӣ раванди арзёбии он мебошад. Дар ин марҳила, шабакаи нейронии омӯзонидашуда барои коркарди маҷмӯи додаҳои тестӣ истифода мешавад ва дақиқӣ арзёбӣ мешавад.
То чӣ андоза самаранок як шабакаи нейрон метавонад натиҷаи дурустро аз маълумоти нав ва санҷиданашуда пешгӯӣ кунад, ченаки дақиқии он аст. Таҳлили модел метавонад муайян кунад, ки шабакаи нейрон то чӣ андоза хуб кор мекунад ва инчунин роҳҳои беҳтар кардани онро пешниҳод мекунад.
Мо дар ниҳоят метавонем бо истифода аз маълумотҳои санҷишӣ пас аз омӯзиш фаъолияти моделро арзёбӣ кунем.
test_loss, test_acc = model.evaluate(test_images, test_labels)
print('Test accuracy:', test_acc)
Ҳамааш ҳамин! Мо як шабакаи нейронро барои муайян кардани рақамҳо дар маҷмӯи додаҳои MNIST омӯзонидем.
Аз омода кардани маълумот то арзёбии самаранокии модели омӯзонидашуда, омӯзиши шабакаи нейронӣ якчанд равандҳоро дар бар мегирад. Ин дастурҳо ба навкорон дар сохтани самаранок ва омӯзиши шабакаҳои нейрон кӯмак мекунанд.
Навовароне, ки мехоҳанд шабакаҳои нейронро барои ҳалли масъалаҳои гуногун истифода баранд, метавонанд бо риояи ин дастурҳо ин корро кунанд.
Намоиши мисол
Биёед кӯшиш кунем, ки бо ин мисол чӣ кор кардаем, то беҳтар фаҳмем.
Бастаи Matplotlib дар ин порчаи код барои тарҳрезии интихоби тасодуфии аксҳо аз маҷмӯаи маълумот истифода мешавад. Аввалан, мо модули "pyplot"-и Matplotlib-ро ворид мекунем ва тахаллуси онро ҳамчун "plt" номгузорӣ мекунем. Сипас, бо андозаи умумии 10 ба 10 дюйм, мо рақамеро бо 5 сатр ва 5 сутуни зерсохторҳо месозем.
Сипас, мо ҳалқаи for-ро истифода мебарем, то дар зерплотҳо такрор карда, тасвирро аз маҷмӯи маълумотҳои омӯзишӣ дар ҳар як нишон диҳем. Барои намоиш додани расм, функсияи "imshow" истифода мешавад, ки опсияи "cmap" ба "хокистарӣ" гузошта шудааст, то аксҳоро бо ранги хокистарӣ намоиш диҳад. Унвони ҳар як зерплот инчунин ба нишони тасвири алоқаманд дар коллексия муқаррар карда мешавад.
Ниҳоят, мо функсияи "нишон додан"-ро истифода мебарем, то тасвирҳои тарҳрезишударо дар расм намоиш диҳем. Ин функсия ба мо имкон медиҳад, ки намунаи аксҳоро аз маҷмӯаи додаҳо ба таври визуалӣ арзёбӣ кунем, ки метавонад дар фаҳмиши мо дар бораи маълумот ва муайян кардани ҳама гуна нигарониҳои эҳтимолӣ кӯмак кунад.
import matplotlib.pyplot as plt
# Plot a random sample of images
fig, axes = plt.subplots(nrows=5, ncols=5, figsize=(10,10))
for i, ax in enumerate(axes.flat):
ax.imshow(train_images[i], cmap='gray')
ax.set_title(f"Label: {train_labels[i].argmax()}")
ax.axis('off')
plt.show()
Моделҳои муҳими шабакаи нейронӣ
- Шабакаҳои Neural Feedforward (FFNN): Навъи оддии шабакаи нейронӣ, ки дар он иттилоот танҳо бо як роҳ, аз қабати воридотӣ то қабати баромад тавассути як ё якчанд қабатҳои пинҳонӣ ҳаракат мекунад.
- Шабакаҳои нейронҳои конволютсионӣ (CNN): Шабакаи нейронӣ, ки одатан дар ошкор ва коркарди тасвир истифода мешавад. CNN барои шинохтан ва истихроҷи хусусиятҳо аз тасвирҳо ба таври худкор пешбинӣ шудааст.
- Шабакаҳои нейронҳои такрорӣ (RNN): Шабакаи нейронӣ, ки одатан дар ошкор ва коркарди тасвир истифода мешавад. CNN барои шинохтан ва истихроҷи хусусиятҳо аз тасвирҳо ба таври худкор пешбинӣ шудааст.
- Шабакаҳои хотираи кӯтоҳмуддат (LSTM): Шакли RNN барои бартараф кардани масъалаи нопадидшавии градиентҳо дар RNN-ҳои стандартӣ сохта шудааст. Вобастагии дарозмуддат дар маълумоти пайдарпайро бо LSTMҳо беҳтар гирифтан мумкин аст.
- Автокодерҳо: Шабакаи таълимии нейронии назоратнашаванда, ки дар он шабака ба таҷдиди маълумоти вуруди худ дар қабати баромади худ таълим дода мешавад. Фишурдани маълумот, ошкор кардани аномалия ва безараргардонии тасвир ҳама метавонанд бо автоматикодерҳо анҷом дода шаванд.
- Шабакаҳои генеративии душманӣ (GAN): Шабакаи генеративии нейрон як шакли шабакаи нейрон аст, ки барои тавлиди додаҳои нав таълим дода мешавад, ки бо маҷмӯи додаҳои таълимӣ муқоиса карда мешавад. GANҳо аз ду шабака иборатанд: шабакаи генераторӣ, ки маълумоти тоза эҷод мекунад ва шабакаи дискриминатор, ки сифати маълумоти сохташударо арзёбӣ мекунад.
Хулоса, қадамҳои навбатии шумо бояд чӣ гуна бошанд?
Якчанд захираҳо ва курсҳои онлайнро омӯзед, то дар бораи омӯзиши шабакаи нейрон бештар маълумот гиред. Кор дар лоиҳаҳо ё мисолҳо яке аз усулҳои ба даст овардани дарки беҳтари шабакаҳои нейрон мебошад.
Бо мисолҳои осон ба монанди мушкилоти таснифи бинарӣ ё таснифоти тасвирҳо оғоз кунед ва сипас ба вазифаҳои душвортаре, ба мисли коркарди забони табиӣ ё омӯзиши тақвият.
Кор дар лоиҳаҳо ба шумо кӯмак мекунад, ки таҷрибаи воқеӣ ба даст оред ва малакаҳои омӯзиши шабакаи нейронии худро такмил диҳед.
Шумо инчунин метавонед ба гурӯҳҳо ва форумҳои омӯзиши мошинҳои онлайнӣ ва шабакаҳои нейронӣ ҳамроҳ шавед, то бо дигар донишомӯзон ва мутахассисон муошират кунед, кори худро мубодила кунед ва шарҳҳо ва кӯмак гиред.
ЛСР МОНРАД-КРОХН
⁶ĵМехостам барномаи python-ро барои кам кардани хатоҳо бубинам. Гиреҳҳои махсуси интихобӣ барои тағир додани вазн ба қабати оянда