Table of Contents[Veşartin][Rêdan]
Di salên dawî de, torên neuralî ji ber ku ew di pirfirehiya peywiran de pir baş in, populerbûna wan zêde bûye.
Ew ji bo naskirina wêne û deng, pêvajokirina zimanê xwezayî, û tewra lîstina lîstikên tevlihev ên mîna Go û şetrencê jî wekî bijarteyek girîng hatine destnîşan kirin.
Di vê postê de, ez ê di tevahiya pêvajoya perwerdehiya torê neuralî de rêve bikim. Ez ê hemî gavên ji bo perwerdekirina tora neuralî behs bikim û rave bikim.
Dema ku ez ê gavan biçim, ez dixwazim mînakek hêsan lê zêde bikim da ku piştrast bikim ku mînakek pratîkî jî heye.
Ji ber vê yekê, werin, û em fêr bibin ka meriv çawa torên neuralî çawa dike
Ka em sade dest pê bikin û bipirsin ka çi ne torên neural di rêza yekem de.
Tora Neuralî bi rastî çi ne?
Tora neuralî nermalava komputerê ye ku xebata mêjiyê mirovan simule dike. Ew dikarin ji cildên pirfireh ên daneyan fêr bibin û qalibên ku mirov dikarin wan zehmet bibînin fêr bibin.
Tora neuralî di van salên dawî de ji ber pirrengiya wan di peywirên wekî naskirina wêne û deng, pêvajokirina zimanê xwezayî, û modelkirina pêşdîtinê de populerbûna wan zêde bûye.
Bi tevayî, torên neuralî ji bo cûrbecûr serlêdanan amûrek bihêz in û şansek heye ku awayê ku em nêzikî cîhek berfireh a karan dibin veguherînin.
Çima Divê Em Derheqa Wan Bizanin?
Têgihîştina torên neuralî krîtîk e ji ber ku ew bûne sedema vedîtinan di warên cûrbecûr de, di nav de dîtina komputerê, naskirina axaftinê, û pêvajoya zimanê xwezayî.
Mînakî, torên neuralî, di dilê pêşkeftinên vê dawiyê yên di otomobîlên xwe-ajotinê de, karûbarên wergera otomatîkî, û tewra tespîtkirina bijîjkî de ne.
Fêmkirina ka torên neuralî çawa tevdigerin û meriv çawa wan sêwiran dike ji me re dibe alîkar ku sepanên nû û dahêner ava bikin. Û, dibe ku, ew di pêşerojê de bibe sedema vedîtinên hê mezintir.
Nîşeyek Derbarê Tutorial
Wekî ku min li jor jî got, ez dixwazim bi dayîna mînakek gavên perwerdehiya tora neuralî vebêjim. Ji bo vê yekê, divê em li ser daneyên MNIST biaxivin. Ew ji bo destpêkên ku dixwazin bi torên neuralî re dest pê bikin vebijarkek populer e.
MNIST akronîmek e ku ji bo Enstîtuya Neteweyî ya Standard û Teknolojiyê ya Modified radiweste. Ew danehevek jimareya destnivîskî ye ku bi gelemperî ji bo perwerdekirin û ceribandina modelên fêrbûna makîneyê, nemaze torên neuralî, tê bikar anîn.
Di berhevokê de 70,000 wêneyên gewr ên jimareyên destnivîsî yên ji 0 heta 9-an hene.
Daneyên MNIST ji bo pîvanek populer e tesnîfkirina wêneyê erkên. Ew bi gelemperî ji bo hînkirin û fêrbûnê tê bikar anîn ji ber ku ew tevlihev e û hêsan e ku meriv pê re mijûl bibe di heman demê de ji bo bersivdayina algorîtmayên fêrbûna makîneyê dijwariyek dijwar e.
Daneya MNIST ji hêla gelek çarçove û pirtûkxaneya fêrbûna makîneyê ve tê piştgirî kirin, tevî TensorFlow, Keras, û PyTorch.
Naha em di derbarê databasa MNIST de dizanin, werin em bi gavên xwe yên perwerdekirina tora neuralî dest pê bikin.
Gavên Bingehîn ji bo Perwerdekirina Tora Neuralî
Pirtûkxaneyên Pêdivî Import
Dema ku yekem dest bi perwerdekirina torgilokek neuralî dike, girîng e ku meriv amûrên pêwîst ji bo sêwirandin û perwerdekirina modelê hebin. Pêngava destpêkê di afirandina torgilokek neuralî de anîna pirtûkxaneyên pêwîst ên wekî TensorFlow, Keras, û NumPy ye.
Van pirtûkxane ji bo pêşkeftina tora neuralî wekî blokên avahîsaziyê kar dikin û kapasîteyên girîng peyda dikin. Kombûna van pirtûkxaneyan rê dide afirandina sêwiranên tora neuralî yên sofîstîke û perwerdehiya bilez.
Ji bo destpêka mînaka me; em ê pirtûkxaneyên pêwîst, yên ku TensorFlow, Keras, û NumPy vedigirin, derxînin. TensorFlow çarçoveyek fêrbûna makîneyê-çavkaniyek vekirî ye, Keras API-ya tora neuralî ya asta bilind e, û NumPy pirtûkxaneyek Python-ê ya jimareyî ye.
import tensorflow as tf
from tensorflow import keras
import numpy as np
Dataset barkirin
Divê databas niha were barkirin. Daneyên berhevoka daneyan e ku dê tora neuralî li ser were perwerde kirin. Dibe ku ev her celeb daneyan be, di nav de wêne, deng û nivîs.
Girîng e ku databasê li du beşan were dabeş kirin: yek ji bo perwerdekirina tora neuralî û ya din jî ji bo nirxandina rastdariya modela perwerdekirî. Gelek pirtûkxane, di nav de TensorFlow, Keras, û PyTorch, dibe ku ji bo îtxalkirina databasê were bikar anîn.
Ji bo nimûneya me, em Keras jî bikar tînin da ku daneya MNIST bar bikin. Di daneyê de 60,000 wêneyên perwerdehiyê û 10,000 wêneyên ceribandinê hene.
mnist = keras.datasets.mnist
(train_images, train_labels), (test_images, test_labels) = mnist.load_data()
Daneyên pêşdibistanê
Pêşdîtina daneyan di perwerdekirina tora neuralî de qonaxek girîng e. Ew amadekarî û paqijkirina daneyan berî ku ew di nav tora neuralî de were veguheztin pêk tîne.
Mezinkirina nirxên pixel, normalîzekirina daneyan, û veguheztina nîşanan bo şîfrekirina yek-germ mînakên pêvajoyên pêşdibistanê ne. Van pêvajoyên tora neuralî di fêrbûna bi bandortir û rast de dibin alîkar.
Pêş-pêvajoya daneyê dikare di heman demê de ji bo kêmkirina zêdebarkirinê û baştirkirina performansa tora neuralî jî bibe alîkar.
Berî ku hûn tora neuralî perwerde bikin, divê hûn daneyan pêşdibistanê bikin. Ev tê de guheztina etîketan li kodkirina yek-germ û pîvandina nirxên pixelê ku di navbera 0 û 1 de bin.
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)
Modelê diyar bike
Pêvajoya danasîna modela torê ya neuralî bi damezrandina mîmariya wê ve girêdayî ye, wek mînak hejmara qatan, hejmara neuronan ji her qatê, fonksiyonên aktîfkirinê, û celebê torê (vexwarinê, dûbareyî, an hevgirtî).
Sêwirana tora neuralî ya ku hûn bikar tînin ji hêla celebê pirsgirêka ku hûn hewl didin çareser bikin ve tê destnîşankirin. Sêwiranek tora neuralî ya xweş diyarkirî dikare ji fêrbûna tora neuralî re bibe alîkar ku wê bikêrtir û rasttir bike.
Wext e ku meriv modela tora neuralî di vê xalê de diyar bike. Ji bo vê nimûneyê modelek hêsan a bi du qatên veşartî, her yek bi 128 noyron, û qatek hilberîna softmax, ku 10 noyron hene, bikar bînin.
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ê berhev bikin
Divê di berhevkirina modela tora neuralî de fonksiyona winda, optimîzator û metrîk bêne diyar kirin. Kapasîteya tora neuralî ya ku rast pêşbîniya derketinê dike ji hêla fonksiyona windabûnê ve tê pîvandin.
Ji bo zêdekirina rastbûna tora neuralî di dema perwerdehiyê de, optimîzator giraniya xwe diguhezîne. Bandoriya tora neuralî di dema perwerdehiyê de bi karanîna metrîkan tê pîvandin. Berî ku tora neuralî were perwerde kirin divê model were afirandin.
Di mînaka me de, divê em niha rast modelê ava bikin.
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])
Modelê perwerde bikin
Derbaskirina daneya amadekirî di nav tora neuralî de dema ku guheztina giraniyên torê ji bo kêmkirina fonksiyona windabûnê wekî perwerdekirina tora neuralî tê zanîn.
Daneya erêkirinê ji bo ceribandina tora neuralî di dema perwerdehiyê de tê bikar anîn da ku bandora wê bişopîne û pêşî li zêdebûnê bigire. Pêvajoya perwerdehiyê dikare hin dem bigire, ji ber vê yekê girîng e ku meriv pê ewle bibe ku tora neuralî bi rêkûpêk hatî perwerde kirin da ku pêşî li kêmbûnê bigire.
Bi karanîna daneyên perwerdehiyê, em niha dikarin modelê perwerde bikin. Ji bo vê yekê, divê em mezinahiya heviyê (hejmara nimûneyên ku berî ku model were nûve kirin) û hejmara serdeman (hejmara dubareyan li seranserê daneya tevahî) diyar bikin.
model.fit(train_images, train_labels, epochs=10, batch_size=32)
Nirxandina Modelê
Testkirina performansa tora neuralî li ser databasa testê pêvajoya nirxandina wê ye. Di vê qonaxê de, tora neuralî ya perwerdekirî tê bikar anîn da ku databasa testê bişopîne, û rastbûn tê nirxandin.
Tora neuralî çiqas bi bandor dikare encama rast ji daneyên nû-nû, neceribandinî pêşbîn bike pîvanek rastbûna wê ye. Analîzkirina modelê dibe alîkar ku diyar bike ka tora neuralî çiqasî baş dixebite û di heman demê de rêyên ku wê hîn çêtir bikin jî pêşniyar dike.
Em dikarin di dawiyê de performansa modelê bi karanîna daneyên testê piştî perwerdehiyê binirxînin.
test_loss, test_acc = model.evaluate(test_images, test_labels)
print('Test accuracy:', test_acc)
Navê pêger! Me torgilokek neuralî perwerde kir da ku jimareyên di daneya MNIST de kifş bike.
Ji amadekirina daneyan bigire heya nirxandina bandorkeriya modela perwerdekirî, perwerdekirina tora neuralî gelek pêvajoyan digire. Van rêwerzan di avakirina û perwerdekirina torên neuralî de bi bandorkerî ji nûxwazan re dibin alîkar.
Destpêkên ku dixwazin torên neuralî bikar bînin da ku pirsgirêkên cûda çareser bikin, dikarin bi şopandina van rêwerzan wiya bikin.
Dîtbarkirina Mînak
Ka em biceribînin ku me bi vê nimûneyê çi kir ku çêtir fêm bikin.
Pakêta Matplotlib di vê perçeya kodê de tê bikar anîn da ku hilbijarkek rasthatî ya wêneyan ji databasa perwerdehiyê çêbike. Pêşî, em modula "pyplot" ya Matplotlib û wekî "plt" bi nav dikin. Dûv re, bi pîvana tevahî 10 bi 10 santîmetre, em bi 5 rêz û 5 stûnên bineqişan re jimarek çêdikin.
Dûv re, em xelekek for-ê bikar tînin da ku li ser binerxeyan dubare bikin, li ser her yekê wêneyek ji berhevoka perwerdehiyê nîşan bidin. Ji bo nîşandana wêneyê, fonksiyona "imshow" tê bikar anîn, bi vebijarka "cmap" vebijarka "gewr" tê danîn da ku wêneyan bi pîvana gewr nîşan bide. Di berhevokê de sernavê her binxetê jî li ser etîketa wêneya têkildar tê danîn.
Di dawiyê de, em fonksiyona "nîşandan" bikar tînin da ku wêneyên xêzkirî yên di wêneyê de nîşan bidin. Ev fonksiyon dihêle ku em bi dîtbarî nimûneyek wêneyan ji databasê binirxînin, ku dikare di têgihîştina me ya daneyan û naskirina her fikarên gengaz de bibe alîkar.
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()
Modelên Tora Neuralî yên Girîng
- Tora Neuralî ya Feedforward (FFNN): Cûreyek hêsan a tora neuralî ya ku tê de agahdarî tenê bi yek awayê digere, ji qata têketinê berbi qata derketinê bi yek an çend qatên veşartî ve.
- Tora Neuralî ya Convolutional (CNN): Tora neuralî ya ku bi gelemperî di vedîtin û hilberandina wêneyê de tê bikar anîn. CNN têne armanc kirin ku taybetmendiyên ji wêneyan bixweber nas bikin û derxînin.
- Tora Neuralî ya Dubarekirî (RNN): Tora neuralî ya ku bi gelemperî di vedîtin û hilberandina wêneyê de tê bikar anîn. CNN têne armanc kirin ku taybetmendiyên ji wêneyan bixweber nas bikin û derxînin.
- Torên Bîra Kurt-Term (LSTM): Formek RNN-ê hatî çêkirin ku ji bo pirsgirêka windabûna gradientan di RNN-yên standard de derbas bike. Girêdanên demdirêj ên di daneyên rêzdar de dikarin bi LSTM-ê çêtir werin girtin.
- Koderên xweser: Tora neuralî ya fêrbûna neçavdêrîkirî ya ku tê de tor tê fêr kirin ku daneyên têketina xwe li qata derana xwe ji nû ve hilberîne. Tevlihevkirina daneyan, tespîtkirina anomalî, û rakirina wêneyê dibe ku hemî bi kodkerên xweser re bêne kirin.
- Torên Dijbera Generative (GAN): Tora neuralî ya hilberî formek tora neuralî ye ku tê fêr kirin da ku daneyên nû yên ku bi berhevokek perwerdehiyê re berawirdî hilberîne. GAN ji du toran pêk tê: tora jeneratorê ku daneya nû diafirîne û tora cûdakar a ku kalîteya daneyên çêkirî dinirxîne.
Berhevkirin, Divê Pêngavên Pêşerojê Çi Bibin?
Gelek çavkanî û qursên serhêl bigerin da ku di derbarê perwerdekirina torê neural de bêtir fêr bibin. Karkirina li ser projeyan an mînakan yek rêbazek e ku meriv çêtir têgihîştina torên neuralî bigire.
Bi mînakên hêsan ên mîna pirsgirêkên dabeşkirina binary an peywirên dabeşkirina wêneyan dest pê bikin, û dûv re biçin karên dijwartir ên mîna pêvajokirina zimanê xwezayî an hînbûna hînkirinê.
Karkirina li ser projeyan ji we re dibe alîkar ku hûn ezmûnek rastîn bistînin û jêhatîbûna perwerdehiya tora neuralî baştir bikin.
Her weha hûn dikarin beşdarî kom û forûmên fêrbûna makîneyê û tora neuralî ya serhêl bibin ku bi xwendekar û pisporên din re têkilî daynin, xebata xwe parve bikin, û şîrove û alîkariyê bistînin.
LSRS MONRAD-KROHN
⁶ĵDixwaze bernameya python ji bo kêmkirina xeletiyan bibîne. Girêdanên bijartina taybetî yên ji bo guheztina giraniyê berbi qata din ve diçin