|
|
||
|---|---|---|
| .. | ||
| lab | ||
| Perceptron.ipynb | ||
| README.md | ||
README.md
Pengenalan kepada Rangkaian Neural: Perceptron
Kuiz Pra-Kuliah
Salah satu usaha pertama untuk melaksanakan sesuatu yang serupa dengan rangkaian neural moden dilakukan oleh Frank Rosenblatt dari Cornell Aeronautical Laboratory pada tahun 1957. Ia adalah pelaksanaan perkakasan yang dipanggil "Mark-1", direka untuk mengenali bentuk geometri primitif seperti segitiga, segi empat sama, dan bulatan.
![]() |
![]() |
Imej dari Wikipedia
Imej input diwakili oleh susunan fotocell 20x20, jadi rangkaian neural mempunyai 400 input dan satu output binari. Rangkaian mudah ini mengandungi satu neuron, yang juga dipanggil threshold logic unit. Berat rangkaian neural bertindak seperti potensiometer yang memerlukan pelarasan manual semasa fasa latihan.
✅ Potensiometer adalah alat yang membolehkan pengguna melaraskan rintangan dalam litar.
The New York Times menulis tentang perceptron pada masa itu: embrio komputer elektronik yang [Tentera Laut] jangka akan dapat berjalan, bercakap, melihat, menulis, membiak sendiri dan sedar akan kewujudannya.
Model Perceptron
Katakan kita mempunyai N ciri dalam model kita, di mana vektor input akan menjadi vektor bersaiz N. Perceptron adalah model klasifikasi binari, iaitu ia boleh membezakan antara dua kelas data input. Kita akan menganggap bahawa untuk setiap vektor input x, output perceptron kita akan sama ada +1 atau -1, bergantung pada kelas. Output akan dikira menggunakan formula:
y(x) = f(wTx)
di mana f adalah fungsi pengaktifan langkah
Melatih Perceptron
Untuk melatih perceptron, kita perlu mencari vektor berat w yang mengklasifikasikan kebanyakan nilai dengan betul, iaitu menghasilkan ralat yang paling kecil. Ralat E ini ditakrifkan oleh kriteria perceptron dengan cara berikut:
E(w) = -∑wTxiti
di mana:
- jumlah diambil pada titik data latihan i yang menghasilkan klasifikasi yang salah
- xi adalah data input, dan ti adalah sama ada -1 atau +1 untuk contoh negatif dan positif masing-masing.
Kriteria ini dianggap sebagai fungsi berat w, dan kita perlu meminimumkannya. Selalunya, kaedah yang dipanggil gradient descent digunakan, di mana kita bermula dengan beberapa berat awal w(0), dan kemudian pada setiap langkah mengemas kini berat mengikut formula:
w(t+1) = w(t) - η∇E(w)
Di sini η adalah kadar pembelajaran, dan ∇E(w) merujuk kepada kecerunan E. Selepas kita mengira kecerunan, kita akan mendapat
w(t+1) = w(t) + ∑ηxiti
Algoritma dalam Python kelihatan seperti ini:
def train(positive_examples, negative_examples, num_iterations = 100, eta = 1):
weights = [0,0,0] # Initialize weights (almost randomly :)
for i in range(num_iterations):
pos = random.choice(positive_examples)
neg = random.choice(negative_examples)
z = np.dot(pos, weights) # compute perceptron output
if z < 0: # positive example classified as negative
weights = weights + eta*weights.shape
z = np.dot(neg, weights)
if z >= 0: # negative example classified as positive
weights = weights - eta*weights.shape
return weights
Kesimpulan
Dalam pelajaran ini, anda telah mempelajari tentang perceptron, iaitu model klasifikasi binari, dan cara melatihnya dengan menggunakan vektor berat.
🚀 Cabaran
Jika anda ingin mencuba membina perceptron anda sendiri, cuba makmal ini di Microsoft Learn yang menggunakan Azure ML designer.
Kuiz Pasca-Kuliah
Ulasan & Kajian Kendiri
Untuk melihat bagaimana kita boleh menggunakan perceptron untuk menyelesaikan masalah mainan serta masalah kehidupan sebenar, dan untuk terus belajar - pergi ke notebook Perceptron.
Berikut adalah artikel menarik tentang perceptron.
Tugasan
Dalam pelajaran ini, kita telah melaksanakan perceptron untuk tugas klasifikasi binari, dan kita telah menggunakannya untuk mengklasifikasikan antara dua digit tulisan tangan. Dalam makmal ini, anda diminta untuk menyelesaikan masalah klasifikasi digit sepenuhnya, iaitu menentukan digit mana yang paling mungkin sepadan dengan imej yang diberikan.

