AI-For-Beginners/translations/id/lessons/3-NeuralNetworks/04-OwnFramework
localizeflow[bot] c0566b76f0 chore(i18n): sync translations with latest source changes (chunk 1/1, 201 changes) 2026-01-30 02:14:00 +00:00
..
lab chore(i18n): sync translations with latest source changes (chunk 1/1, 201 changes) 2026-01-30 02:14:00 +00:00
OwnFramework.ipynb Fallback snapshot commit due to git add failure 2026-01-15 12:40:29 +00:00
README.md chore(i18n): sync translations with latest source changes (chunk 1/1, 201 changes) 2026-01-30 02:14:00 +00:00

README.md

Pengantar Jaringan Neural. Multi-Layered Perceptron

Pada bagian sebelumnya, Anda telah mempelajari model jaringan neural paling sederhana - perceptron satu lapis, sebuah model klasifikasi linear dua kelas.

Pada bagian ini, kita akan memperluas model tersebut ke dalam kerangka kerja yang lebih fleksibel, memungkinkan kita untuk:

  • melakukan klasifikasi multi-kelas selain dua kelas
  • menyelesaikan masalah regresi selain klasifikasi
  • memisahkan kelas yang tidak dapat dipisahkan secara linear

Kita juga akan mengembangkan kerangka kerja modular kita sendiri dalam Python yang memungkinkan kita untuk membangun berbagai arsitektur jaringan neural.

Kuis sebelum pelajaran

Formalisasi Pembelajaran Mesin

Mari kita mulai dengan memformalkan masalah Pembelajaran Mesin. Misalkan kita memiliki dataset pelatihan X dengan label Y, dan kita perlu membangun model f yang akan memberikan prediksi paling akurat. Kualitas prediksi diukur dengan fungsi kerugian . Fungsi kerugian berikut sering digunakan:

  • Untuk masalah regresi, ketika kita perlu memprediksi sebuah angka, kita dapat menggunakan absolute errori|f(x(i))-y(i)|, atau squared errori(f(x(i))-y(i))2
  • Untuk klasifikasi, kita menggunakan 0-1 loss (yang pada dasarnya sama dengan akurasi model), atau logistic loss.

Untuk perceptron satu lapis, fungsi f didefinisikan sebagai fungsi linear f(x)=wx+b (di sini w adalah matriks bobot, x adalah vektor fitur input, dan b adalah vektor bias). Untuk berbagai arsitektur jaringan neural, fungsi ini dapat memiliki bentuk yang lebih kompleks.

Dalam kasus klasifikasi, sering kali diinginkan untuk mendapatkan probabilitas dari kelas-kelas yang sesuai sebagai output jaringan. Untuk mengubah angka sembarang menjadi probabilitas (misalnya untuk menormalisasi output), kita sering menggunakan fungsi softmax σ, dan fungsi f menjadi f(x)=σ(wx+b)

Dalam definisi f di atas, w dan b disebut parameter θ=⟨w,b⟩. Dengan dataset ⟨X,Y⟩, kita dapat menghitung keseluruhan kesalahan pada seluruh dataset sebagai fungsi dari parameter θ.

Tujuan pelatihan jaringan neural adalah meminimalkan kesalahan dengan mengubah parameter θ

Optimasi Gradient Descent

Ada metode optimasi fungsi yang terkenal yang disebut gradient descent. Ide dasarnya adalah kita dapat menghitung turunan (dalam kasus multi-dimensi disebut gradien) dari fungsi kerugian terhadap parameter, dan mengubah parameter sedemikian rupa sehingga kesalahan akan berkurang. Ini dapat diformalkan sebagai berikut:

  • Inisialisasi parameter dengan beberapa nilai acak w(0), b(0)
  • Ulangi langkah berikut berkali-kali:
    • w(i+1) = w(i)-η∂ℒ/∂w
    • b(i+1) = b(i)-η∂ℒ/∂b

Selama pelatihan, langkah-langkah optimasi seharusnya dihitung dengan mempertimbangkan seluruh dataset (ingat bahwa kerugian dihitung sebagai jumlah dari semua sampel pelatihan). Namun, dalam praktiknya kita mengambil bagian kecil dari dataset yang disebut minibatches, dan menghitung gradien berdasarkan subset data. Karena subset diambil secara acak setiap kali, metode ini disebut stochastic gradient descent (SGD).

Multi-Layered Perceptrons dan Backpropagation

Jaringan satu lapis, seperti yang telah kita lihat di atas, mampu mengklasifikasikan kelas yang dapat dipisahkan secara linear. Untuk membangun model yang lebih kaya, kita dapat menggabungkan beberapa lapisan jaringan. Secara matematis, ini berarti fungsi f akan memiliki bentuk yang lebih kompleks, dan akan dihitung dalam beberapa langkah:

  • z1=w1x+b1
  • z2=w2α(z1)+b2
  • f = σ(z2)

Di sini, α adalah fungsi aktivasi non-linear, σ adalah fungsi softmax, dan parameter θ=<w1,b1,w2,b2>.

Algoritma gradient descent tetap sama, tetapi akan lebih sulit untuk menghitung gradien. Berdasarkan aturan diferensiasi rantai, kita dapat menghitung turunan sebagai:

  • ∂ℒ/∂w2 = (∂ℒ/∂σ)(∂σ/∂z2)(∂z2/∂w2)
  • ∂ℒ/∂w1 = (∂ℒ/∂σ)(∂σ/∂z2)(∂z2/∂α)(∂α/∂z1)(∂z1/∂w1)

Aturan diferensiasi rantai digunakan untuk menghitung turunan fungsi kerugian terhadap parameter.

Perhatikan bahwa bagian paling kiri dari semua ekspresi tersebut adalah sama, sehingga kita dapat secara efektif menghitung turunan mulai dari fungsi kerugian dan bergerak "mundur" melalui grafik komputasi. Oleh karena itu, metode pelatihan perceptron multi-lapis disebut backpropagation, atau 'backprop'.

compute graph

TODO: sitasi gambar

Kita akan membahas backprop secara lebih rinci dalam contoh notebook kita.

Kesimpulan

Dalam pelajaran ini, kita telah membangun pustaka jaringan neural kita sendiri, dan kita telah menggunakannya untuk tugas klasifikasi dua dimensi yang sederhana.

🚀 Tantangan

Dalam notebook yang menyertai, Anda akan mengimplementasikan kerangka kerja Anda sendiri untuk membangun dan melatih perceptron multi-lapis. Anda akan dapat melihat secara rinci bagaimana jaringan neural modern beroperasi.

Lanjutkan ke notebook OwnFramework dan kerjakan.

Kuis setelah pelajaran

Tinjauan & Studi Mandiri

Backpropagation adalah algoritma umum yang digunakan dalam AI dan ML, layak untuk dipelajari lebih lanjut

Tugas

Dalam lab ini, Anda diminta untuk menggunakan kerangka kerja yang Anda bangun dalam pelajaran ini untuk menyelesaikan klasifikasi digit tulisan tangan MNIST.