Enhavtabelo[Kaŝi][Montri]
En la lastaj jaroj, neŭralaj retoj kreskis en populareco ĉar ili montris esti ekstreme bonaj pri larĝa gamo de taskoj.
Ili montriĝis bonega elekto por bilda kaj sona rekono, naturlingva prilaborado, kaj eĉ ludi komplikajn ludojn kiel Go kaj ŝako.
En ĉi tiu afiŝo, mi gvidos vin tra la tuta procezo de trejnado de neŭrala reto. Mi mencios kaj klarigos ĉiujn paŝojn por trejni neŭralan reton.
Dum mi transiros la paŝojn, mi ŝatus aldoni simplan ekzemplon por certigi, ke ankaŭ ekzistas praktika ekzemplo.
Do, venu, kaj ni lernu kiel prilabori neŭrajn retojn
Ni komencu simple kaj demandu kio estas Neŭraj retoj en la unua loko.
Kio Ĝuste Estas Neŭralaj Retoj?
Neŭralaj retoj estas komputila programaro, kiu simulas la funkciadon de la homa cerbo. Ili povas lerni de vastaj volumoj de datumoj kaj ekvidi ŝablonojn, kiujn homoj povas malfacile detekti.
Neŭralaj retoj kreskis en populareco en la lastaj jaroj pro sia ĉiuflankeco en taskoj kiel ekzemple bildo kaj sonrekono, naturlingva prilaborado, kaj prognoza modeligado.
Ĝenerale, neŭralaj retoj estas forta ilo por ampleksa gamo de aplikoj kaj havas ŝancon transformi la manieron kiel ni alproksimiĝas al larĝa gamo de laboroj.
Kial Ni Devus Scii Pri Ili?
Kompreni neŭralaj retoj estas kritika ĉar ili kaŭzis malkovrojn en diversaj kampoj, inkluzive de komputila vizio, parolrekono kaj naturlingva prilaborado.
Neŭralaj retoj, ekzemple, estas ĉe la koro de lastatempaj evoluoj en aŭtoveturaj aŭtoj, aŭtomataj tradukservoj kaj eĉ medicinaj diagnozoj.
Kompreni kiel funkcias neŭralaj retoj kaj kiel desegni ilin helpas nin konstrui novajn kaj inventajn aplikojn. Kaj, eble, ĝi povas konduki al eĉ pli grandaj malkovroj en la estonteco.
Noto Pri la Lernilo
Kiel mi diris supre, mi ŝatus klarigi la paŝojn de trejnado de neŭrala reto donante ekzemplon. Por fari tion, ni devus paroli pri la MNIST-datumaro. Ĝi estas populara elekto por komencantoj, kiuj volas komenci kun neŭralaj retoj.
MNIST estas akronimo kiu signifas Modifita Nacia Instituto de Normoj kaj Teknologio. Ĝi estas manskribita cifera datumaro kiu estas ofte uzita por trejnado kaj testado de maŝinlernado-modeloj, precipe neŭralaj retoj.
La kolekto enhavas 70,000 grizskalajn fotojn de manskribitaj numeraloj intervalantaj de 0 ĝis 9.
La MNIST-datumaro estas populara komparnormo por bilda klasifiko taskoj. Ĝi estas ofte uzata por instruado kaj lernado ĉar ĝi estas kompakta kaj facile traktebla dum ĝi tamen prezentas malfacilan defion por respondi algoritmoj de maŝinlernado.
La MNIST-datumaro estas subtenata de pluraj maŝinlernadaj kadroj kaj bibliotekoj, inkluzive de TensorFlow, Keras kaj PyTorch.
Nun ni scias pri la MNIST-datumaro, ni komencu kun niaj paŝoj de trejnado de neŭrala reto.
Bazaj Paŝoj por Trejni Neŭralan Reton
Importi Necesajn Bibliotekojn
Kiam unue komencas trejni neŭralan reton, estas grave havi la necesajn ilojn por desegni kaj trejni la modelon. La komenca paŝo en kreado de neŭrala reto estas importi postulatajn bibliotekojn kiel TensorFlow, Keras kaj NumPy.
Tiuj bibliotekoj funkcias kiel konstrubriketoj por la evoluo de la neŭrala reto kaj disponigas decidajn kapablojn. La kombinaĵo de tiuj bibliotekoj permesas la kreadon de sofistikaj neŭralaj retodezajnoj kaj rapida trejnado.
Por komenci nian ekzemplon; ni importos la postulatajn bibliotekojn, kiuj inkluzivas TensorFlow, Keras kaj NumPy. TensoroFluo estas malfermfonta maŝinlernada kadro, Keras estas altnivela neŭrala reto API, kaj NumPy estas nombra komputika Python-biblioteko.
import tensorflow as tf
from tensorflow import keras
import numpy as np
Ŝarĝu la datumaron
La datumaro nun devas esti ŝargita. La datumaro estas la aro de datumoj sur kiuj la neŭrala reto estos trejnita. Ĉi tio povas esti ajna tipo de datumoj, inkluzive de fotoj, audio kaj teksto.
Estas kritike dividi la datumaron en du partojn: unu por trejnado de la neŭrala reto kaj alia por taksi la ĝustecon de la trejnita modelo. Pluraj bibliotekoj, inkluzive de TensorFlow, Keras, kaj PyTorch, povas esti uzataj por importi la datumaron.
Por nia ekzemplo, ni uzas ankaŭ Keras por ŝargi la MNIST-datumaron. Estas 60,000 trejnaj fotoj kaj 10,000 testaj bildoj en la datumaro.
mnist = keras.datasets.mnist
(train_images, train_labels), (test_images, test_labels) = mnist.load_data()
Antaŭprocezi La Datumojn
Datuma antaŭprilaborado estas grava etapo en trejnado de neŭrala reto. Ĝi implicas prepari kaj purigi la datumojn antaŭ ol ĝi estas enmetita en la neŭralan reton.
Skalado de pikselaj valoroj, normaligado de datenoj kaj konvertado de etikedoj al unu-varma kodigado estas ekzemploj de antaŭpretigaj proceduroj. Ĉi tiuj procezoj helpas la neŭralan reton lerni pli efike kaj precize.
Antaŭprilaborado de la datumoj ankaŭ povas helpi minimumigi troagordon kaj plibonigi la agadon de la neŭrala reto.
Vi devas antaŭprilabori la datumojn antaŭ trejni la neŭralan reton. Ĉi tio inkluzivas ŝanĝi la etikedojn al unu-varma kodigado kaj grimpi la pikselvalorojn por esti inter 0 kaj 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)
Difinu la Modelon
La procezo de difinado de la neŭrala reto-modelo implikas establi ĝian arkitekturon, kiel ekzemple la nombro da tavoloj, nombro da neŭronoj per tavolo, aktivigaj funkcioj kaj retspeco (antaŭa, ripetiĝanta aŭ konvolucia).
La neŭrala reto, kiun vi uzas, estas determinita de la speco de problemo, kiun vi provas solvi. Bone difinita neŭrala reto-dezajno povas helpi pri neŭrala lernado igante ĝin pli efika kaj preciza.
Estas tempo priskribi la modelon de neŭrala reto ĉe ĉi tiu punkto. Uzu simplan modelon kun du kaŝitaj tavoloj, ĉiu kun 128 neŭronoj, kaj softmax-eliga tavolo, kiu havas 10 neŭronojn, por ĉi tiu ekzemplo.
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')
])
Kompilu la Modelon
La perdfunkcio, optimumiganto, kaj metriko devas esti precizigitaj dum la kompilo de la neŭrala retomodelo. La kapablo de la neŭrala reto ĝuste antaŭvidi la produktaĵon estas mezurita per la perdfunkcio.
Por pliigi la precizecon de la neŭrala reto dum trejnado, la optimumigilo modifas siajn pezojn. La efikeco de la neŭrala reto dum trejnado estas mezurita uzante metrikon. La modelo devas esti kreita antaŭ ol la neŭrala reto povas esti trejnita.
En nia ekzemplo, ni devas nun konstrui la modelon.
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])
Trejnu la Modelon
Pasi la pretan datumaron tra la neŭrala reto dum modifado de la pezoj de la reto por minimumigi la perdan funkcion estas konata kiel trejnado de la neŭrala reto.
La validuma datumaro estas uzata por testi la neŭralan reton dum trejnado por spuri ĝian efikecon kaj malhelpi troagordon. La trejnadprocezo povas daŭri iom da tempo, do gravas certigi, ke la neŭrala reto estas taŭge trejnita por malhelpi nesufiĉan taŭgecon.
Uzante la trejnajn datumojn, ni nun povas trejni la modelon. Por fari tion, ni devas difini la aran grandecon (la nombro da specimenoj prilaboritaj antaŭ ol la modelo estas ĝisdatigita) kaj la nombron da epokoj (la nombro da ripetoj tra la kompleta datumaro).
model.fit(train_images, train_labels, epochs=10, batch_size=32)
Taksante la Modelon
Testi la efikecon de la neŭrala reto sur la testa datumaro estas la procezo de taksado de ĝi. En ĉi tiu etapo, la edukita neŭrala reto estas uzata por prilabori la testan datumaron, kaj precizeco estas taksita.
Kiom efike neŭrala reto povas antaŭvidi la ĝustan rezulton de tute novaj, neprovitaj datumoj estas mezuro de ĝia precizeco. Analizi la modelon povas helpi determini kiom bone funkcias la neŭrala reto kaj ankaŭ sugesti manierojn fari ĝin eĉ pli bona.
Ni povas finfine taksi la agadon de la modelo uzante la testajn datumojn post trejnado.
test_loss, test_acc = model.evaluate(test_images, test_labels)
print('Test accuracy:', test_acc)
Tio estas ĉio! Ni trejnis neŭralan reton por detekti ciferojn en la MNIST-datumaro.
De preparado de la datenoj ĝis taksado de la efikeco de la trejnita modelo, trejni neŭralan reton implikas plurajn procezojn. Ĉi tiuj instrukcioj helpas novulojn efike konstrui kaj trejni neŭralajn retojn.
Komencantoj, kiuj volas uzi neŭrajn retojn por trakti diversajn problemojn, povas fari tion sekvante ĉi tiujn instrukciojn.
Vidigo de la Ekzemplo
Ni provu bildigi, kion ni faris kun ĉi tiu ekzemplo por pli bone kompreni.
La Matplotlib-pakaĵo estas uzata en ĉi tiu kodpeceto por desegni hazardan elekton de fotoj el la trejna datumaro. Unue, ni importas la modulon "pyplot" de Matplotlib kaj kaŝnomo ĝi kiel "plt". Poste, kun tuta dimensio de 10 per 10 coloj, ni faras figuron kun 5 vicoj kaj 5 kolumnoj de subintrigoj.
Poste, ni uzas for-buklon por ripeti la subintrigojn, montrante bildon de la trejna datumaro sur ĉiu. Por montri la bildon, la funkcio "imshow" estas uzata, kun la opcio "cmap" agordita al "griza" por montri la fotojn en grizskalo. La titolo de ĉiu subintrigo ankaŭ estas agordita al la etikedo de la rilata bildo en la kolekto.
Fine, ni uzas la "montri" funkcion por montri la grafikaĵojn en la figuro. Ĉi tiu funkcio permesas al ni vide taksi specimenon de fotoj el la datumaro, kio povas helpi nian komprenon de la datumoj kaj la identigo de iuj eblaj zorgoj.
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()
Gravaj Neŭralaj Retaj Modeloj
- Feedforward Neŭralaj Retoj (FFNN): Simpla speco de neŭrala reto en kiu informoj vojaĝas nur laŭ unu maniero, de la enirtavolo al la produktaĵtavolo per unu aŭ pluraj kaŝitaj tavoloj.
- Konvoluciaj Neŭralaj Retoj (CNN): Neŭrala reto kiu estas ofte uzita en bilddetekto kaj prilaborado. CNNoj celas rekoni kaj eltiri funkciojn el bildoj aŭtomate.
- Ripetantaj Neŭralaj Retoj (RNN): Neŭrala reto kiu estas ofte uzita en bilddetekto kaj prilaborado. CNNoj celas rekoni kaj eltiri funkciojn el bildoj aŭtomate.
- Longa Mallongdaŭra Memoro (LSTM) Retoj: Formo de RNN kreita por venki la temon de malaperantaj gradientoj en normaj RNNoj. Longperspektivaj dependecoj en sinsekvaj datenoj povas esti pli bone kaptitaj per LSTMoj.
- Aŭtokodiloj: Nekontrolita lerna neŭrala reto en kiu la reto estas instruata por reprodukti siajn enirdatenojn ĉe sia produktaĵtavolo. Datenkunpremado, anomaliodetekto, kaj bildsenbruigo ĉiuj povas esti plenumitaj per aŭtokodiloj.
- Generative Adversarial Networks (GAN): Genera neŭrala reto estas formo de neŭrala reto, kiu estas instruata por produkti novajn datenojn kompareblajn al trejna datumaro. GANoj konsistas el du retoj: generatora reto kiu kreas freŝajn datumojn kaj diskriminacia reto kiu taksas la kvaliton de la kreitaj datenoj.
Finiĝo, Kio Devus Esti Viaj Sekvaj Paŝoj?
Esploru plurajn retajn rimedojn kaj kursojn por lerni pli pri trejnado de neŭrala reto. Labori pri projektoj aŭ ekzemploj estas unu metodo por akiri pli bonan ekkomprenon de neŭralaj retoj.
Komencu kun facilaj ekzemploj kiel binaraj klasifikproblemoj aŭ bildklasifikaj taskoj, kaj poste iru al pli malfacilaj taskoj kiel naturlingva prilaborado aŭ plifortiga lernado.
Labori pri projektoj helpas vin akiri veran sperton kaj plibonigi viajn trejnajn kapablojn pri neŭrala reto.
Vi ankaŭ povas aliĝi al interretaj maŝinlernado kaj neŭralaj retaj grupoj kaj forumoj por interagi kun aliaj lernantoj kaj profesiuloj, dividi vian laboron kaj ricevi komentojn kaj helpon.
LSRS MONRAD-KROHN
⁶ĵEstintus ŝatinta vidi la python-programon por la erarminimumigo. Specialaj elektaj nodoj por pezŝanĝoj al la sekva tavolo