ከቅርብ ዓመታት ወዲህ የነርቭ ኔትወርኮች በሰፊው ሥራ ላይ እጅግ በጣም ጥሩ ሆነው በመገኘታቸው በታዋቂነት አድጓል።
ለምስል እና ድምጽ ማወቂያ፣ ለተፈጥሮ ቋንቋ ሂደት እና እንደ ጎ እና ቼዝ ያሉ ውስብስብ ጨዋታዎችን ለመጫወት ምርጥ ምርጫ ሆነው ታይተዋል።
በዚህ ልኡክ ጽሁፍ ላይ የነርቭ ኔትወርክን የማሰልጠን ሂደቱን በሙሉ እመራችኋለሁ. የነርቭ ኔትወርክን ለማሰልጠን ሁሉንም ደረጃዎች እጠቅሳለሁ እና እገልጻለሁ.
ወደ ደረጃዎቹ ብሄድም ተግባራዊ ምሳሌም እንዳለ ለማረጋገጥ አንድ ቀላል ምሳሌ ልጨምር።
እንግዲያው፣ ይምጡ፣ እና የነርቭ መረቦችን እንዴት ማቀናበር እንዳለብን እንማር
በቀላል እንጀምር እና ምን እንደሆኑ እንጠይቅ የነርቭ ኔትወርኮች ሲጀምር.
የነርቭ አውታረ መረቦች በትክክል ምንድናቸው?
የነርቭ ኔትወርኮች የሰውን አእምሮ አሠራር የሚመስሉ የኮምፒውተር ሶፍትዌሮች ናቸው። ሰዎች ለመለየት ሊከብዷቸው ከሚችሉት ከብዙ የውሂብ መጠን እና የቦታ ቅጦች መማር ይችላሉ።
እንደ ስዕል እና ድምጽ ማወቂያ፣ የተፈጥሮ ቋንቋን ማቀናበር እና የትንበያ ሞዴሊንግ በመሳሰሉት ተግባራት ሁለገብ በመሆናቸው የነርቭ ኔትወርኮች ከቅርብ ዓመታት ወዲህ ተወዳጅነት እያሳደጉ መጥተዋል።
በአጠቃላይ, የነርቭ ኔትወርኮች ለብዙ አፕሊኬሽኖች ጠንካራ መሳሪያ ናቸው እና ወደ ሰፊ ስራዎች የምንቀርብበትን መንገድ ለመለወጥ እድሉ አላቸው.
ስለእነሱ ማወቅ ያለብን ለምንድን ነው?
የነርቭ ኔትወርኮችን መረዳት በጣም አስፈላጊ ነው ምክንያቱም በተለያዩ መስኮች ግኝቶች እንዲገኙ ያደረጉ ሲሆን ይህም የኮምፒዩተር እይታ, የንግግር ማወቂያ እና የተፈጥሮ ቋንቋ ሂደትን ያካትታል.
የነርቭ ኔትወርኮች፣ ለምሳሌ፣ በራስ-የሚነዱ መኪኖች፣ አውቶማቲክ የትርጉም አገልግሎቶች እና በሕክምና ምርመራዎች ላይ የቅርብ ጊዜ ለውጦች እምብርት ናቸው።
የነርቭ ኔትወርኮች እንዴት እንደሚሠሩ እና እንዴት እንደሚቀረጹ መረዳታችን አዲስ እና የፈጠራ አፕሊኬሽኖችን እንድንገነባ ይረዳናል። እና፣ ምናልባት፣ ወደፊትም የበለጠ ግኝቶችን ሊያመጣ ይችላል።
ስለ ትምህርቱ ማስታወሻ
ከላይ እንደተናገርኩት, ምሳሌ በመስጠት የነርቭ ኔትወርክን የማሰልጠን ደረጃዎችን ማብራራት እፈልጋለሁ. ይህንን ለማድረግ፣ ስለ MNIST የውሂብ ስብስብ መነጋገር አለብን። በነርቭ ኔትወርኮች ለመጀመር ለሚፈልጉ ለጀማሪዎች ተወዳጅ ምርጫ ነው.
MNIST የተሻሻለ ብሄራዊ ደረጃዎች እና ቴክኖሎጂ ኢንስቲትዩት አህጽሮተ ቃል ነው። በተለምዶ የማሽን መማሪያ ሞዴሎችን በተለይም የነርቭ ኔትወርኮችን ለማሰልጠን እና ለሙከራ የሚያገለግል በእጅ የተጻፈ አሃዝ ዳታ ስብስብ ነው።
ስብስቡ ከ 70,000 እስከ 0 የሚደርሱ 9 ግራጫ ቀለም ያላቸው በእጅ የተጻፉ ቁጥሮች ይዟል።
የMNIST የውሂብ ስብስብ ለ ታዋቂ መለኪያ ነው። የምስል ምደባ ተግባራት. የማሽን መማሪያ ስልተ ቀመሮችን ለመመለስ አስቸጋሪ ፈተና እያለበት የታመቀ እና ለመቋቋም ቀላል ስለሆነ ለማስተማር እና ለመማር በተደጋጋሚ ጥቅም ላይ ይውላል።
የMNIST መረጃ ስብስብ TensorFlow፣ Keras እና PyTorchን ጨምሮ በበርካታ የማሽን መማሪያ ማዕቀፎች እና ቤተ-መጻሕፍት ይደገፋል።
አሁን ስለ MNIST መረጃ ስብስብ አውቀናል፣ የነርቭ ኔትወርክን የማሰልጠን እርምጃችንን እንጀምር።
የነርቭ አውታረ መረብን ለማሰልጠን መሰረታዊ እርምጃዎች
አስፈላጊ ቤተ-መጻሕፍት አስመጣ
በመጀመሪያ የነርቭ ኔትወርክን ማሰልጠን ሲጀምሩ ሞዴሉን ለመንደፍ እና ለማሰልጠን አስፈላጊ መሣሪያዎች መኖራቸው በጣም አስፈላጊ ነው. የነርቭ ኔትወርክን ለመፍጠር የመጀመሪያው እርምጃ እንደ TensorFlow፣ Keras እና NumPy ያሉ አስፈላጊ ቤተ-መጻሕፍት ማስመጣት ነው።
እነዚህ ቤተ-መጻህፍት ለነርቭ ኔትወርክ እድገት እንደ ህንጻዎች ሆነው ያገለግላሉ እና ወሳኝ ችሎታዎችን ይሰጣሉ። የእነዚህ ቤተ-መጻሕፍት ጥምረት የተራቀቁ የነርቭ አውታር ንድፎችን እና ፈጣን ስልጠናዎችን ለመፍጠር ያስችላል.
የእኛን ምሳሌ ለመጀመር; TensorFlow፣ Keras እና NumPyን የሚያካትቱ የሚያስፈልጉትን ቤተ-መጻሕፍት እናስመጣለን። TensorFlow የክፍት ምንጭ የማሽን ትምህርት ማዕቀፍ ነው፣ Keras ከፍተኛ ደረጃ የነርቭ አውታረ መረብ ኤፒአይ ነው፣ እና NumPy የቁጥር ማስላት Python ቤተ-መጽሐፍት ነው።
import tensorflow as tf
from tensorflow import keras
import numpy as np
የውሂብ ስብስብን ይጫኑ
የውሂብ ስብስብ አሁን መጫን አለበት። የመረጃ ቋቱ የነርቭ ኔትወርክ የሚሰለጥንበት የመረጃ ስብስብ ነው። ይህ ፎቶዎችን፣ ኦዲዮ እና ጽሑፍን ጨምሮ ማንኛውም አይነት ውሂብ ሊሆን ይችላል።
የመረጃ ቋቱን በሁለት ክፍሎች መከፋፈል በጣም አስፈላጊ ነው-አንደኛው የነርቭ ኔትወርክን ለማሰልጠን እና ሌላኛው የሰለጠነውን ሞዴል ትክክለኛነት ለመገምገም. የዳታ ስብስቡን ለማስመጣት TensorFlow፣ Keras እና PyTorchን ጨምሮ በርካታ ቤተ-መጻሕፍት ጥቅም ላይ ሊውሉ ይችላሉ።
ለምሳሌ የMNIST ዳታ ስብስብን ለመጫን Kerasንም እንጠቀማለን። በመረጃ ቋቱ ውስጥ 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 የውሂብ ስብስብ ውስጥ አሃዞችን ለመለየት የነርቭ ኔትወርክን አሰልጥነናል።
መረጃውን ከማዘጋጀት ጀምሮ የሰለጠነውን ሞዴል ውጤታማነት ለመገምገም, የነርቭ ኔትወርክን ማሰልጠን ብዙ ሂደቶችን ያካትታል. እነዚህ መመሪያዎች የነርቭ ኔትወርኮችን በብቃት ለመገንባት እና ለማሰልጠን ጀማሪዎችን ይረዳሉ።
የተለያዩ ችግሮችን ለመፍታት የነርቭ ኔትወርኮችን መጠቀም የሚፈልጉ ጀማሪዎች እነዚህን መመሪያዎች በመከተል ማድረግ ይችላሉ።
ምሳሌውን መሳል
የበለጠ ለመረዳት በዚህ ምሳሌ ያደረግነውን በዓይነ ሕሊና ለማየት እንሞክር።
የማትፕሎትሊብ ጥቅል ከሥልጠና ዳታ ስብስብ የዘፈቀደ የፎቶዎች ምርጫን ለማዘጋጀት በዚህ ኮድ ቅንጭብ ጥቅም ላይ ይውላል። በመጀመሪያ፣ የማትፕሎትሊብን “ፓይፕሎት” ሞጁሉን እናስመጣለን እና “plt” ብለን እንጠራዋለን። ከዚያም በጠቅላላው ከ 10 በ 10 ኢንች ስፋት ጋር, በ 5 ረድፎች እና 5 አምዶች ንኡስ ፕላቶች ያለው ምስል እንሰራለን.
ከዚያም በእያንዳንዱ ላይ ከስልጠናው ዳታ ስብስብ ላይ ምስልን በማሳየት በንዑስ እቅዶች ላይ ለመድገም ለ loop እንጠቀማለን። ስዕሉን ለማሳየት የ"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()
አስፈላጊ የነርቭ አውታር ሞዴሎች
- መጋቢ የነርቭ አውታረ መረቦች (FFNN)፡- መረጃ በአንድ መንገድ ብቻ የሚጓዝበት ቀላል የነርቭ አውታረ መረብ ከግቤት ንብርብር እስከ የውጤት ንብርብር በአንድ ወይም ከዚያ በላይ በተደበቁ ንብርብሮች።
- ኮንቮሉላር ኒውራል ኔትወርኮች (ሲ.ኤን.ኤን)፡- በምስል ፍለጋ እና ሂደት ውስጥ በብዛት ጥቅም ላይ የሚውል የነርቭ አውታረ መረብ። CNNs ባህሪያትን ከስዕሎች ለመለየት እና ለማውጣት የታቀዱ ናቸው።
- ተደጋጋሚ የነርቭ አውታረ መረቦች (RNN)፦ በምስል ፍለጋ እና ሂደት ውስጥ በብዛት ጥቅም ላይ የሚውል የነርቭ አውታረ መረብ። CNNs ባህሪያትን ከስዕሎች ለመለየት እና ለማውጣት የታቀዱ ናቸው።
- የረጅም ጊዜ የአጭር ጊዜ ማህደረ ትውስታ (LSTM) አውታረ መረቦች፡ በመደበኛ RNNs ውስጥ የሚጠፉ የግራዲየንቶችን ጉዳይ ለማሸነፍ የተፈጠረ የRNN አይነት። የረጅም ጊዜ ጥገኞች በቅደም ተከተል መረጃ በኤል.ኤስ.ኤም.ኤስ በተሻለ ሁኔታ ሊያዙ ይችላሉ።
- አውቶኢንኮደሮች፡ አውታረ መረቡ የግቤት ውሂቡን በውጤቱ ንብርብር ላይ እንዲባዛ የሚያስተምርበት ክትትል የማይደረግበት የመማሪያ የነርቭ ኔትወርክ። የውሂብ መጭመቅ፣ ያልተለመደ ፈልጎ ማግኘት እና ምስልን መካድ ሁሉም በአውቶኢንኮደሮች ሊከናወኑ ይችላሉ።
- ጀነሬቲቭ አድቨርሳሪያል አውታረ መረቦች (GAN)፡- የጄኔሬቲቭ ነርቭ ኔትወርክ ከስልጠና ዳታ ስብስብ ጋር ተመጣጣኝ የሆነ አዲስ መረጃ ለማምረት የሚያስተምር የነርቭ ኔትወርክ አይነት ነው። GANs በሁለት ኔትወርኮች የተገነቡ ናቸው፡ ትኩስ መረጃን የሚፈጥር የጄነሬተር ኔትወርክ እና የተፈጠረውን ውሂብ ጥራት የሚገመግም አድሎአዊ አውታረ መረብ ነው።
ማጠቃለያ፣ ቀጣይ እርምጃዎችዎ ምን መሆን አለባቸው?
የነርቭ ኔትወርክን ስለማሰልጠን የበለጠ ለማወቅ ብዙ የመስመር ላይ መርጃዎችን እና ኮርሶችን ያስሱ። በፕሮጀክቶች ወይም በምሳሌዎች ላይ መስራት የነርቭ መረቦችን የበለጠ ለመረዳት አንዱ ዘዴ ነው.
እንደ ሁለትዮሽ ምደባ ችግሮች ወይም የስዕል ምደባ ተግባራት ባሉ ቀላል ምሳሌዎች ይጀምሩ እና ከዚያ ወደ ይበልጥ ከባድ ወደሆኑ እንደ ተፈጥሯዊ ቋንቋ ማቀናበር ወይም ይሂዱ። የማጠናከሪያ ትምህርት.
በፕሮጀክቶች ላይ መስራት እውነተኛ ልምድን ለማግኘት እና የነርቭ አውታረመረብ የስልጠና ክህሎቶችን ለማሻሻል ይረዳዎታል.
ከሌሎች ተማሪዎች እና ባለሙያዎች ጋር ለመገናኘት፣ ስራዎን ለማካፈል እና አስተያየቶችን እና እገዛን ለመቀበል የመስመር ላይ ማሽን መማሪያ እና የነርቭ አውታረ መረብ ቡድኖችን እና መድረኮችን መቀላቀል ይችላሉ።
LSRS MONRAD-KROHN
⁶ĵ ለስህተቱ ቅነሳ የ python ፕሮግራሙን ማየት እፈልግ ነበር። የክብደት ለውጦች ወደ ቀጣዩ ንብርብር ልዩ ምርጫ አንጓዎች