|
|
||
|---|---|---|
| .. | ||
| lab | ||
| Perceptron.ipynb | ||
| README.md | ||
README.md
Pengantar Jaringan Neural: Perceptron
Kuis Pra-Pelajaran
Salah satu upaya pertama untuk mengimplementasikan sesuatu yang mirip dengan jaringan neural modern dilakukan oleh Frank Rosenblatt dari Cornell Aeronautical Laboratory pada tahun 1957. Ini adalah implementasi perangkat keras yang disebut "Mark-1", dirancang untuk mengenali bentuk geometris sederhana, seperti segitiga, persegi, dan lingkaran.
![]() |
![]() |
Gambar dari Wikipedia
Gambar input direpresentasikan oleh array fotocell 20x20, sehingga jaringan neural memiliki 400 input dan satu output biner. Jaringan sederhana ini terdiri dari satu neuron, yang juga disebut sebagai threshold logic unit. Bobot jaringan neural berfungsi seperti potensiometer yang memerlukan penyesuaian manual selama fase pelatihan.
✅ Potensiometer adalah perangkat yang memungkinkan pengguna untuk mengatur resistansi dalam sebuah rangkaian.
The New York Times menulis tentang perceptron pada saat itu: embrio dari komputer elektronik yang [Angkatan Laut] harapkan akan dapat berjalan, berbicara, melihat, menulis, mereproduksi dirinya sendiri, dan sadar akan keberadaannya.
Model Perceptron
Misalkan kita memiliki N fitur dalam model kita, dalam hal ini vektor input akan menjadi vektor berukuran N. Perceptron adalah model klasifikasi biner, yaitu dapat membedakan antara dua kelas data input. Kita akan mengasumsikan bahwa untuk setiap vektor input x, output dari perceptron kita akan berupa +1 atau -1, tergantung pada kelasnya. Output akan dihitung menggunakan rumus:
y(x) = f(wTx)
di mana f adalah fungsi aktivasi langkah.
Melatih Perceptron
Untuk melatih perceptron, kita perlu menemukan vektor bobot w yang mengklasifikasikan sebagian besar nilai dengan benar, yaitu menghasilkan error terkecil. Error E ini didefinisikan oleh kriteria perceptron dengan cara berikut:
E(w) = -∑wTxiti
di mana:
- jumlah diambil dari titik data pelatihan i yang menghasilkan klasifikasi yang salah
- xi adalah data input, dan ti adalah -1 atau +1 untuk contoh negatif dan positif masing-masing.
Kriteria ini dianggap sebagai fungsi dari bobot w, dan kita perlu meminimalkannya. Sering kali, metode yang disebut gradient descent digunakan, di mana kita memulai dengan bobot awal w(0), dan kemudian pada setiap langkah memperbarui bobot sesuai dengan rumus:
w(t+1) = w(t) - η∇E(w)
Di sini η disebut sebagai learning rate, dan ∇E(w) menunjukkan gradien dari E. Setelah kita menghitung gradien, kita mendapatkan:
w(t+1) = w(t) + ∑ηxiti
Algoritma dalam Python terlihat 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, yang merupakan model klasifikasi biner, dan cara melatihnya dengan menggunakan vektor bobot.
🚀 Tantangan
Jika Anda ingin mencoba membangun perceptron sendiri, coba lab ini di Microsoft Learn yang menggunakan Azure ML designer.
Kuis Pasca-Pelajaran
Tinjauan & Studi Mandiri
Untuk melihat bagaimana kita dapat menggunakan perceptron untuk menyelesaikan masalah sederhana maupun masalah nyata, dan untuk melanjutkan pembelajaran - buka notebook Perceptron.
Berikut adalah artikel menarik tentang perceptron juga.
Tugas
Dalam pelajaran ini, kita telah mengimplementasikan perceptron untuk tugas klasifikasi biner, dan kita telah menggunakannya untuk mengklasifikasikan antara dua digit tulisan tangan. Dalam lab ini, Anda diminta untuk menyelesaikan masalah klasifikasi digit sepenuhnya, yaitu menentukan digit mana yang paling mungkin sesuai dengan gambar yang diberikan.

