Jadual Kandungan[Sembunyi][Tunjukkan]
Dalam tahun-tahun kebelakangan ini, rangkaian saraf telah berkembang dengan populariti kerana ia telah terbukti sangat baik dalam pelbagai tugas.
Mereka telah ditunjukkan sebagai pilihan yang bagus untuk pengecaman imej dan audio, pemprosesan bahasa semula jadi, dan juga bermain permainan rumit seperti Go dan catur.
Dalam siaran ini, saya akan membimbing anda melalui keseluruhan proses melatih rangkaian saraf. Saya akan menyebut dan menerangkan semua langkah untuk melatih rangkaian saraf.
Walaupun saya akan meneruskan langkah-langkah saya ingin menambah contoh mudah untuk memastikan terdapat contoh praktikal juga.
Jadi, ikut serta, dan mari belajar cara memproses rangkaian saraf
Mari kita mulakan dengan mudah dan tanya apa itu rangkaian saraf di tempat pertama.
Apakah Sebenarnya Rangkaian Neural?
Rangkaian saraf adalah perisian komputer yang menyerupai operasi otak manusia. Mereka boleh belajar daripada sejumlah besar data dan corak tempat yang mungkin sukar dikesan oleh orang ramai.
Rangkaian saraf semakin popular sejak beberapa tahun kebelakangan ini kerana kepelbagaian dalam tugas seperti pengecaman gambar dan audio, pemprosesan bahasa semula jadi dan pemodelan ramalan.
Secara keseluruhannya, rangkaian saraf ialah alat yang kuat untuk pelbagai aplikasi dan mempunyai peluang untuk mengubah cara kami mendekati pelbagai pekerjaan.
Mengapa Kita Perlu Tahu Tentang Mereka?
Memahami rangkaian saraf adalah penting kerana ia telah membawa kepada penemuan dalam pelbagai bidang, termasuk penglihatan komputer, pengecaman pertuturan dan pemprosesan bahasa semula jadi.
Rangkaian saraf, sebagai contoh, berada di tengah-tengah perkembangan terkini dalam kereta pandu sendiri, perkhidmatan terjemahan automatik dan juga diagnostik perubatan.
Memahami cara rangkaian saraf berfungsi dan cara mereka bentuknya membantu kami membina aplikasi baharu dan inventif. Dan, mungkin, ia boleh membawa kepada penemuan yang lebih hebat pada masa hadapan.
Nota Mengenai Tutorial
Seperti yang saya katakan di atas, saya ingin menerangkan langkah-langkah melatih rangkaian saraf dengan memberi contoh. Untuk melakukan ini, kita harus bercakap tentang set data MNIST. Ia adalah pilihan popular untuk pemula yang ingin bermula dengan rangkaian saraf.
MNIST ialah akronim yang bermaksud Institut Piawaian dan Teknologi Kebangsaan yang Diubahsuai. Ia ialah set data digit tulisan tangan yang biasa digunakan untuk melatih dan menguji model pembelajaran mesin, terutamanya rangkaian saraf.
Koleksi ini mengandungi 70,000 foto skala kelabu angka tulisan tangan antara 0 hingga 9.
Set data MNIST ialah penanda aras yang popular untuk klasifikasi imej tugasan. Ia kerap digunakan untuk pengajaran dan pembelajaran kerana ia padat dan mudah ditangani sementara masih menimbulkan cabaran yang sukar untuk dijawab oleh algoritma pembelajaran mesin.
Set data MNIST disokong oleh beberapa rangka kerja dan perpustakaan pembelajaran mesin, termasuk TensorFlow, Keras dan PyTorch.
Sekarang kita tahu tentang set data MNIST, mari mulakan langkah kita melatih rangkaian saraf.
Langkah Asas untuk Melatih Rangkaian Neural
Import Perpustakaan yang Diperlukan
Apabila mula-mula mula melatih rangkaian saraf, adalah penting untuk mempunyai alat yang diperlukan untuk mereka bentuk dan melatih model. Langkah awal dalam mencipta rangkaian saraf ialah mengimport perpustakaan yang diperlukan seperti TensorFlow, Keras dan NumPy.
Perpustakaan ini berfungsi sebagai blok bangunan untuk pembangunan rangkaian saraf dan menyediakan keupayaan penting. Gabungan perpustakaan ini membolehkan penciptaan reka bentuk rangkaian saraf yang canggih dan latihan pantas.
Untuk memulakan contoh kita; kami akan mengimport perpustakaan yang diperlukan, termasuk TensorFlow, Keras dan NumPy. TensorFlow ialah rangka kerja pembelajaran mesin sumber terbuka, Keras ialah API rangkaian saraf peringkat tinggi, dan NumPy ialah perpustakaan Python pengkomputeran berangka.
import tensorflow as tf
from tensorflow import keras
import numpy as np
Muatkan Set Data
Set data kini mesti dimuatkan. Set data ialah set data di mana rangkaian saraf akan dilatih. Ini mungkin apa-apa jenis data, termasuk foto, audio dan teks.
Adalah penting untuk membahagikan set data kepada dua bahagian: satu untuk melatih rangkaian saraf dan satu lagi untuk menilai ketepatan model terlatih. Beberapa perpustakaan, termasuk TensorFlow, Keras dan PyTorch, boleh digunakan untuk mengimport set data.
Untuk contoh kami, kami juga menggunakan Keras untuk memuatkan set data MNIST. Terdapat 60,000 foto latihan dan 10,000 imej ujian dalam set data.
mnist = keras.datasets.mnist
(train_images, train_labels), (test_images, test_labels) = mnist.load_data()
Praproses Data
Prapemprosesan data adalah peringkat penting dalam melatih rangkaian saraf. Ia memerlukan penyediaan dan pembersihan data sebelum dimasukkan ke dalam rangkaian saraf.
Menskalakan nilai piksel, menormalkan data dan menukar label kepada pengekodan satu panas adalah contoh prosedur prapemprosesan. Proses ini membantu rangkaian saraf dalam pembelajaran dengan lebih berkesan dan tepat.
Prapemprosesan data juga boleh membantu untuk meminimumkan overfitting dan meningkatkan prestasi rangkaian saraf.
Anda mesti praproses data sebelum melatih rangkaian saraf. Ini termasuk menukar label kepada pengekodan satu panas dan menskalakan nilai piksel menjadi antara 0 dan 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)
Tentukan Model
Proses mentakrifkan model rangkaian saraf melibatkan penubuhan seni binanya, seperti bilangan lapisan, bilangan neuron setiap lapisan, fungsi pengaktifan dan jenis rangkaian (suapan, berulang atau konvolusi).
Reka bentuk rangkaian saraf yang anda gunakan ditentukan oleh jenis masalah yang anda cuba selesaikan. Reka bentuk rangkaian neural yang jelas boleh membantu dalam pembelajaran rangkaian saraf dengan menjadikannya lebih cekap dan tepat.
Sudah tiba masanya untuk menerangkan model rangkaian saraf pada ketika ini. Gunakan model ringkas dengan dua lapisan tersembunyi, setiap satu dengan 128 neuron, dan lapisan keluaran softmax, yang mempunyai 10 neuron, untuk contoh ini.
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')
])
Susun Model
Fungsi kehilangan, pengoptimum dan metrik mesti dinyatakan semasa penyusunan model rangkaian saraf. Keupayaan rangkaian saraf untuk meramalkan output dengan betul diukur oleh fungsi kehilangan.
Untuk meningkatkan ketepatan rangkaian saraf semasa latihan, pengoptimum mengubah suai pemberatnya. Keberkesanan rangkaian saraf semasa latihan diukur menggunakan metrik. Model mesti dibuat sebelum rangkaian saraf boleh dilatih.
Dalam contoh kita, kita mesti sekarang membina model.
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])
Latih Model
Melepasi set data yang disediakan melalui rangkaian saraf sambil mengubah suai pemberat rangkaian untuk meminimumkan fungsi kehilangan dikenali sebagai melatih rangkaian saraf.
Dataset pengesahan digunakan untuk menguji rangkaian saraf semasa latihan untuk menjejaki keberkesanannya dan mencegah overfitting. Proses latihan boleh mengambil sedikit masa, oleh itu adalah penting untuk memastikan rangkaian saraf dilatih dengan sewajarnya untuk mengelakkan kekurangan.
Menggunakan data latihan, kami kini boleh melatih model. Untuk melakukan ini, kita mesti menentukan saiz kelompok (bilangan sampel yang diproses sebelum model dikemas kini) dan bilangan zaman (bilangan ulangan merentas set data lengkap).
model.fit(train_images, train_labels, epochs=10, batch_size=32)
Menilai Model
Menguji prestasi rangkaian saraf pada set data ujian ialah proses menilainya. Dalam peringkat ini, rangkaian saraf terlatih digunakan untuk memproses set data ujian, dan ketepatan dinilai.
Seberapa berkesan rangkaian saraf boleh meramalkan hasil yang betul daripada data baharu yang belum dicuba ialah ukuran ketepatannya. Menganalisis model boleh membantu menentukan sejauh mana rangkaian saraf berfungsi dan juga mencadangkan cara untuk menjadikannya lebih baik.
Kami akhirnya boleh menilai prestasi model menggunakan data ujian selepas latihan.
test_loss, test_acc = model.evaluate(test_images, test_labels)
print('Test accuracy:', test_acc)
Itu sahaja! Kami melatih rangkaian saraf untuk mengesan digit dalam set data MNIST.
Daripada menyediakan data kepada menilai keberkesanan model terlatih, latihan rangkaian saraf melibatkan beberapa proses. Arahan ini membantu orang baru dalam membina dan melatih rangkaian saraf dengan cekap.
Pemula yang ingin menggunakan rangkaian saraf untuk menangani pelbagai isu boleh berbuat demikian dengan mengikuti arahan ini.
Menggambarkan Contoh
Mari cuba bayangkan apa yang telah kita lakukan dengan contoh ini untuk memahami dengan lebih baik.
Pakej Matplotlib digunakan dalam coretan kod ini untuk memplot pilihan rawak foto daripada set data latihan. Mula-mula, kami mengimport modul "pyplot" Matplotlib dan menyamakannya sebagai "plt". Kemudian, dengan jumlah dimensi 10 kali 10 inci, kami membuat rajah dengan 5 baris dan 5 lajur subplot.
Kemudian, kami menggunakan gelung for untuk mengulangi subplot, memaparkan gambar daripada set data latihan pada setiap satu. Untuk memaparkan gambar, fungsi "imshow" digunakan, dengan pilihan "cmap" ditetapkan kepada 'kelabu' untuk memaparkan foto dalam skala kelabu. Tajuk setiap subplot juga ditetapkan pada label imej yang berkaitan dalam koleksi.
Akhir sekali, kami menggunakan fungsi "tunjukkan" untuk memaparkan gambar yang diplot dalam rajah. Fungsi ini membolehkan kami menilai secara visual sampel foto daripada set data, yang boleh membantu dalam pemahaman kami tentang data dan mengenal pasti sebarang kemungkinan kebimbangan.
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 Rangkaian Neural yang Penting
- Rangkaian Neural Feedforward (FFNN): Jenis rangkaian saraf yang ringkas di mana maklumat bergerak hanya dalam satu cara, dari lapisan input ke lapisan output melalui satu atau lebih lapisan tersembunyi.
- Rangkaian Neural Konvolusi (CNN): Rangkaian saraf yang biasa digunakan dalam pengesanan dan pemprosesan imej. CNN bertujuan untuk mengenali dan mengekstrak ciri daripada gambar secara automatik.
- Rangkaian Neural Berulang (RNN): Rangkaian saraf yang biasa digunakan dalam pengesanan dan pemprosesan imej. CNN bertujuan untuk mengenali dan mengekstrak ciri daripada gambar secara automatik.
- Rangkaian Memori Jangka Pendek Panjang (LSTM): Satu bentuk RNN yang dicipta untuk mengatasi isu kehilangan kecerunan dalam RNN standard. Kebergantungan jangka panjang dalam data berjujukan boleh ditangkap dengan lebih baik dengan LSTM.
- Pengekod automatik: Rangkaian saraf pembelajaran tanpa pengawasan di mana rangkaian diajar untuk menghasilkan semula data inputnya pada lapisan keluarannya. Pemampatan data, pengesanan anomali dan penyahkodan gambar semuanya boleh dicapai dengan pengekod automatik.
- Rangkaian Musuh Generatif (GAN): Rangkaian saraf generatif ialah satu bentuk rangkaian saraf yang diajar untuk menghasilkan data baharu yang setanding dengan set data latihan. GAN terdiri daripada dua rangkaian: rangkaian penjana yang mencipta data baharu dan rangkaian diskriminator yang menilai kualiti data yang dicipta.
Penutup, Apakah Langkah Anda Seterusnya?
Terokai beberapa sumber dan kursus dalam talian untuk mengetahui lebih lanjut tentang melatih rangkaian saraf. Bekerja pada projek atau contoh adalah satu kaedah untuk mendapatkan pemahaman yang lebih baik tentang rangkaian saraf.
Mulakan dengan contoh mudah seperti masalah klasifikasi binari atau tugas klasifikasi gambar, dan kemudian pergi ke tugas yang lebih sukar seperti pemprosesan bahasa semula jadi atau pembelajaran tetulang.
Mengusahakan projek membantu anda memperoleh pengalaman sebenar dan meningkatkan kemahiran latihan rangkaian saraf anda.
Anda juga boleh menyertai pembelajaran mesin dalam talian dan kumpulan dan forum rangkaian saraf untuk berinteraksi dengan pelajar dan profesional lain, berkongsi kerja anda serta menerima komen dan bantuan.
LSRS MONRAD-KROHN
⁶ĵAdalah ingin melihat program python untuk meminimumkan ralat. Nod pemilihan khas untuk perubahan berat ke lapisan seterusnya