Fizahan-takelaka[Afeno][Aseho]
Tao anatin'ny taona vitsivitsy izay, ny tambajotra neural dia nitombo ny lazany satria hita fa tena mahay amin'ny asa maro izy ireo.
Naseho ho safidy tsara izy ireo amin'ny fanekena sary sy feo, fanodinana fiteny voajanahary, ary na dia ny filalaovana lalao sarotra toy ny Go sy ny echec aza.
Ato amin'ity lahatsoratra ity dia handeha aho amin'ny dingana manontolo amin'ny fanofanana tambajotra neural. Holazaiko sy hazavaiko ny dingana rehetra hanofanana tambajotra neural.
Raha handeha amin'ny dingana aho dia te-hanampy ohatra tsotra mba hahazoana antoka fa misy ohatra azo ampiharina ihany koa.
Koa, andao ary hianatra ny fomba fanodinana ny tambajotra neural
Andao hanomboka tsotra ary manontany hoe inona izany ny tambajotra vaovao amin'ny voalohany.
Inona marina moa ny tambazotra neural?
Ny tambazotra neural dia rindrankajy informatika izay mampitovy ny fiasan'ny atidohan'olombelona. Afaka mianatra avy amin'ny angon-drakitra be dia be sy lamina hita maso izay mety ho sarotra hitan'ny olona izy ireo.
Ny tambajotra neural dia nitombo ny lazany tato anatin'ny taona vitsivitsy noho ny fahaiza-manaony amin'ny asa toy ny famantarana sary sy feo, fanodinana fiteny voajanahary, ary modely vinavina.
Amin'ny ankapobeny, ny tambajotra neural dia fitaovana matanjaka ho an'ny fampiharana isan-karazany ary manana fahafahana hanova ny fomba hanatonantsika asa isan-karazany.
Nahoana Isika no Tokony Hahafantatra Azy Ireo?
Ny fahatakarana ny tambajotra neural dia zava-dehibe satria nitarika fikarohana amin'ny sehatra isan-karazany izy ireo, anisan'izany ny fahitana amin'ny ordinatera, ny fanekena ny kabary ary ny fanodinana ny fiteny voajanahary.
Ny tambajotra neural, ohatra, no fototry ny fivoarana vao haingana amin'ny fiara mitondra tena, ny serivisy fandikan-teny mandeha ho azy, ary na dia ny diagnostika ara-pitsaboana aza.
Ny fahatakarana ny fomba fiasan'ny tambajotra neural sy ny fomba famolavolana azy dia manampy antsika hanangana fampiharana vaovao sy mamorona. Ary, angamba, mety hitarika ho amin'ny fahitana lehibe kokoa izany amin'ny ho avy.
Fanamarihana momba ny Tutorial
Araka ny nolazaiko teo ambony dia tiako ny hanazava ny dingana amin'ny fanofanana tambajotra neural amin'ny fanomezana ohatra. Mba hanaovana izany dia tokony hiresaka momba ny angona MNIST isika. Safidy malaza ho an'ireo vao manomboka te hanomboka amin'ny tambajotra neural izy io.
MNIST dia fanafohezan-teny izay mijoro ho an'ny Ivon-toeram-pirenena novaina momba ny fenitra sy ny teknolojia. Izy io dia angon-drakitra sora-tanana izay ampiasaina matetika amin'ny fanofanana sy fitiliana ny maodely fianarana milina, indrindra fa ny tambajotra neural.
Ny fanangonana dia misy sary miloko maitso 70,000 misy isa sora-tanana manomboka amin'ny 0 ka hatramin'ny 9.
Ny angon-drakitra MNIST dia marika malaza ho an'ny fanasokajiana sary asa. Ampiasaina matetika amin'ny fampianarana sy fianarana izy io satria mirindra sy mora karakaraina nefa mametraka fanamby sarotra ho an'ny algorithm fianarana milina hamaly.
Ny angon-drakitra MNIST dia tohanan'ny rafitra fianarana milina sy tranomboky maro, anisan'izany ny TensorFlow, Keras, ary PyTorch.
Fantatsika izao ny momba ny angon-drakitra MNIST, andao isika hanomboka amin'ny dingana fanofanana tambajotra neural.
Dingana fototra hanofanana tambajotra neural
Manafatra tranomboky ilaina
Raha vao manomboka mampiofana tambajotra neural dia zava-dehibe ny fananana fitaovana ilaina hamolavolana sy hanofanana ilay modely. Ny dingana voalohany amin'ny famoronana tambajotra neural dia ny manafatra tranomboky ilaina toy ny TensorFlow, Keras, ary NumPy.
Ireo trano famakiam-boky ireo dia singa fototra amin'ny fivoaran'ny tambajotra neural ary manome fahaiza-manao tena ilaina. Ny fitambaran'ireo trano famakiam-boky ireo dia ahafahana mamorona endrika tambajotra neural saro-pady sy fiofanana haingana.
Hanombohana ny ohatra asehontsika; Hanafatra ireo tranomboky ilaina izahay, izay ahitana ny TensorFlow, Keras, ary NumPy. TensorFlow dia rafitra fianarana milina misy loharano misokatra, Keras dia API tambajotra neural avo lenta, ary NumPy dia tranomboky Python informatika nomerika.
import tensorflow as tf
from tensorflow import keras
import numpy as np
Ampidiro ny Dataset
Tsy maintsy ampidirina izao ny angon-drakitra. Ny angon-drakitra dia ny fitambaran'ny angon-drakitra izay hampiofanana ny tambajotra neural. Ity dia mety ho karazana data rehetra, ao anatin'izany ny sary, feo ary lahatsoratra.
Zava-dehibe ny mizara roa ny angona: ny iray ho fanofanana ny tambajotra neural ary ny iray ho fanombanana ny fahamarinan'ny modely voaofana. Tranomboky maromaro, anisan'izany ny TensorFlow, Keras, ary PyTorch, dia azo ampiasaina hanafatra ny angona.
Ho an'ny ohatra ataontsika dia mampiasa Keras ihany koa izahay hametahana ny angona MNIST. Misy sary fanofanana 60,000 ary sary andrana 10,000 ao amin'ny angon-drakitra.
mnist = keras.datasets.mnist
(train_images, train_labels), (test_images, test_labels) = mnist.load_data()
Preprocess ny Data
Ny preprocessing data dia dingana manan-danja amin'ny fanofanana tambajotra neural. Tafiditra ao anatin'izany ny fanomanana sy fanadiovana ny angon-drakitra alohan'ny hampidirana azy ao amin'ny tambajotra neural.
Ohatra amin'ny fomba fiasa mialoha ny fanodinkodinana ny sandan'ny piksel, ny angon-drakitra ara-dalàna, ary ny famadihana ny etikety ho kaody mafana iray. Ireo dingana ireo dia manampy ny tambajotra neural amin'ny fianarana amin'ny fomba mahomby sy marina kokoa.
Ny fanodinana mialoha ny angon-drakitra dia afaka manampy amin'ny fampihenana ny overfitting sy ny fanatsarana ny fahombiazan'ny tambajotra neural.
Tsy maintsy miomana mialoha ny angona ianao alohan'ny hanofanana ny tambajotra neural. Tafiditra ao anatin'izany ny fanovana ny mari-pamantarana amin'ny kaody mafana iray ary ny fampitomboana ny sandan'ny piksel ho eo anelanelan'ny 0 sy 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)
Farito ny Modely
Ny dingan'ny famaritana ny modelin'ny tambajotra neural dia misy ny fametrahana ny maritranony, toy ny isan'ny sosona, ny isan'ny neurônina isaky ny sosona, ny fiasan'ny fampahavitrihana, ary ny karazana tambajotra (feedforward, miverimberina, na convolutional).
Ny famolavolana tambajotra neural ampiasainao dia voafaritra amin'ny karazana olana ezahinao hovahana. Ny famolavolana tambajotra neural voafaritra tsara dia afaka manampy amin'ny fianarana tamba-jotra neural amin'ny alàlan'ny fanaovana azy ho mahomby sy marina kokoa.
Fotoana hamaritana ny maodelin'ny tambajotra neural amin'izao fotoana izao. Mampiasà maodely tsotra misy sosona miafina roa, samy manana neurons 128 ny tsirairay, ary sosona famoahana softmax, izay misy neurons 10, ho an'ity ohatra ity.
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')
])
Angony ny Modely
Ny fiasan'ny fatiantoka, ny optimizer ary ny metrika dia tsy maintsy faritana mandritra ny fanangonana ny maodelin'ny tambajotra neural. Ny fahafahan'ny tambajotra neural maminavina tsara ny vokatra dia tombana amin'ny asan'ny fatiantoka.
Mba hampitomboana ny fahamarinan'ny tambajotra neural mandritra ny fiofanana, dia ovan'ilay optimizer ny lanjany. Ny fahombiazan'ny tambajotra neural mandritra ny fiofanana dia tombana amin'ny fampiasana metrika. Ny modely dia tsy maintsy noforonina alohan'ny hampiofanana ny tambajotra neural.
Amin'ny ohatra asehontsika dia tsy maintsy manangana modely isika izao.
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])
Ampianaro ny Modely
Ny fandefasana ny angona voaomana amin'ny alàlan'ny tambajotra neural ary ny fanovana ny lanjan'ny tambajotra mba hampihenana ny asa fatiantoka dia fantatra amin'ny hoe fanofanana ny tambajotra neural.
Ny angon-drakitra fanamarinana dia ampiasaina hitsapana ny tambajotra neural mandritra ny fiofanana mba hanaraha-maso ny fahombiazany sy hisorohana ny overfitting. Mety haka fotoana kely ny fizotran'ny fiofanana, noho izany dia zava-dehibe ny hahazoana antoka fa voaofana tsara ny tambazotra neural mba hisorohana ny tsy fahampiana.
Amin'ny fampiasana ny angon-drakitra fanofanana, afaka manofana ny modely isika izao. Mba hanaovana izany, dia tsy maintsy mamaritra ny haben'ny batch (ny isan'ny santionany nokarakaraina alohan'ny havaozina ny maodely) sy ny isan'ny vanim-potoana (ny isan'ny miverimberina manerana ny angona feno).
model.fit(train_images, train_labels, epochs=10, batch_size=32)
Fanombanana ny Modely
Ny fitsapana ny fahombiazan'ny tambajotra neural amin'ny angon-drakitra fitsapana dia ny dingan'ny fanombanana izany. Amin'ity dingana ity, ny tamba-jotra neural voaofana dia ampiasaina amin'ny fanodinana ny angon-drakitra fitsapana, ary tombanana ny fahamarinany.
Ny fahombiazan'ny tambajotra neural iray dia afaka maminavina ny vokatra tsara avy amin'ny angon-drakitra vaovao tsy voazaha toetra no fandrefesana ny fahamarinany. Ny famakafakana ny maodely dia mety hanampy amin'ny famaritana ny fomba fiasan'ny tambajotra neural ary manome soso-kevitra ihany koa ny fomba hanatsarana azy io.
Azontsika atao ny manombana ny fahombiazan'ny modely amin'ny alàlan'ny angona fitsapana aorian'ny fiofanana.
test_loss, test_acc = model.evaluate(test_images, test_labels)
print('Test accuracy:', test_acc)
Izay ihany! Nampiofana tambajotra neural izahay hamantatra isa ao amin'ny angona MNIST.
Avy amin'ny fanomanana ny angon-drakitra ka hatramin'ny fanombanana ny fahombiazan'ny modely voaofana, ny fampiofanana tambajotra neural dia misy dingana maromaro. Ireo torolalana ireo dia manampy ireo vaovao amin'ny fananganana sy fanofanana ireo tambajotra neural.
Ireo vao manomboka te hampiasa tambajotra neural hamahana olana isan-karazany dia afaka manao izany amin'ny fanarahana ireo torolàlana ireo.
Famaritana ny ohatra
Andeha hojerentsika ny zavatra nataontsika tamin'ity ohatra ity mba hahatakarana tsara kokoa.
Ny fonosana Matplotlib dia ampiasaina amin'ity snippet kaody ity mba handrafetana sary mifantina kisendrasendra avy amin'ny angona fanofanana. Voalohany, manafatra ny maody "pyplot" an'i Matplotlib izahay ary antsoina hoe "plt". Avy eo, miaraka amin'ny haben'ny totalin'ny 10 amin'ny 10 santimetatra, dia manao tarehimarika misy andalana 5 sy tsanganana 5 amin'ny subplots izahay.
Avy eo, mampiasa loop iray izahay hamerenana ireo zana-tsipìka, mampiseho sary avy amin'ny angon-drakitra fanofanana isaky ny tsirairay. Mba hampisehoana ny sary dia ampiasaina ny fiasa "imshow", miaraka amin'ny safidy "cmap" napetraka amin'ny 'volontsôkôlà' mba hampisehoana ny sary amin'ny grayscale. Ny lohatenin'ny zana-tsipìka tsirairay dia apetraka amin'ny etik'ilay sary mifandray amin'ny fanangonana.
Farany, mampiasa ny "show" izahay mba hampisehoana ireo sary voasokajy ao amin'ny sary. Ity fiasa ity dia ahafahantsika manombatombana santionany sary avy amin'ny angon-drakitra, izay afaka manampy amin'ny fahatakarantsika ny angon-drakitra sy ny famantarana ny olana mety hitranga.
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()
Modely tambajotra neural manan-danja
- Feedforward Neural Networks (FFNN): Karazana tambajotra neural tsotra izay tsy mandeha amin'ny fomba iray ihany ny fampahalalana, manomboka amin'ny sosona fampidirana mankany amin'ny sosona mivoaka amin'ny alalan'ny sosona miafina iray na maromaro.
- Convolutional Neural Networks (CNN): Tambajotra neural izay matetika ampiasaina amin'ny fitadiavana sy fanodinana sary. Ny CNN dia natao hamantatra sy hanesorana ireo endri-javatra avy amin'ny sary ho azy.
- Recurrent Neural Networks (RNN): Tambajotra neural izay matetika ampiasaina amin'ny fitadiavana sy fanodinana sary. Ny CNN dia natao hamantatra sy hanesorana ireo endri-javatra avy amin'ny sary ho azy.
- Tambajotra fitadidiana maharitra fohy (LSTM): Endriky ny RNN noforonina mba handresena ny olan'ny gradient manjavona amin'ny RNN mahazatra. Ny fiankinan-doha maharitra amin'ny angona manaraka dia azo alaina tsara kokoa amin'ny LSTM.
- Autoencoders: Tambajotra neural fianarana tsy misy fanaraha-maso izay ampianarina ny tambajotra hamokatra ny angona fidirana ao amin'ny sosona famoahana azy. Ny famatrarana angon-drakitra, ny fisavana anomaliana, ary ny fanafoanana ny sary dia mety ho vita amin'ny autoencoders.
- Generative Adversarial Networks (GAN): Ny tambajotra neural generative dia endrika tambajotra neural izay ampianarina hamokatra angona vaovao izay azo ampitahaina amin'ny angon-drakitra fanofanana. Tambajotra roa no mandrafitra ny GAN: tamba-jotra mpamokatra izay mamorona angona vaovao sy tamba-jotra manavakavaka izay manombana ny kalitaon'ny angona noforonina.
Famaranana, Inona no tokony hataonao manaraka?
Mikaroka loharano sy fampianarana an-tserasera maromaro hianarana bebe kokoa momba ny fanofanana tambajotra neural. Ny fiasana amin'ny tetikasa na ohatra dia fomba iray hahazoana fahalalana tsara kokoa ny tambajotra neural.
Atombohy amin'ny ohatra mora toy ny olana fanasokajiana mimari-droa na asa fanasokajiana sary, ary mandehana any amin'ny asa sarotra kokoa toy ny fanodinana fiteny voajanahary na fanamafisana fampandrosoana.
Ny fiasana amin'ny tetikasa dia manampy anao hahazo traikefa tena izy ary hanatsara ny fahaizanao fiofanana amin'ny tambajotra neural.
Azonao atao ihany koa ny manatevin-daharana ny fianarana milina an-tserasera sy ny vondrona sy ny seha-pifanakalozana neural mba hifaneraserana amin'ny mpianatra sy matihanina hafa, hizara ny asanao ary handray fanehoan-kevitra sy fanampiana.
LSRS MONRAD-KROHN
⁶ĵTe-hahita ny programa python ho an'ny fampihenana ny fahadisoana. Nodes fifantenana manokana ho an'ny fanovana lanja amin'ny sosona manaraka