AI-For-Beginners/translations/ms/lessons/3-NeuralNetworks/04-OwnFramework
localizeflow[bot] f2a27efc74 chore(i18n): sync translations with latest source changes (chunk 1/1, 205 changes) 2026-01-30 02:22:28 +00:00
..
lab chore(i18n): sync translations with latest source changes (chunk 1/1, 205 changes) 2026-01-30 02:22:28 +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, 205 changes) 2026-01-30 02:22:28 +00:00

README.md

Pengenalan kepada Rangkaian Neural. Multi-Layered Perceptron

Dalam bahagian sebelumnya, anda telah mempelajari model rangkaian neural yang paling mudah - perceptron satu lapisan, iaitu model klasifikasi linear dua kelas.

Dalam bahagian ini, kita akan memperluaskan model ini kepada kerangka yang lebih fleksibel, membolehkan kita:

  • melakukan klasifikasi pelbagai kelas selain daripada dua kelas
  • menyelesaikan masalah regresi selain daripada klasifikasi
  • memisahkan kelas yang tidak boleh dipisahkan secara linear

Kita juga akan membangunkan kerangka modular kita sendiri dalam Python yang membolehkan kita membina pelbagai seni bina rangkaian neural.

Kuiz pra-kuliah

Formalisasi Pembelajaran Mesin

Mari kita mulakan dengan memformalkan masalah Pembelajaran Mesin. Katakan kita mempunyai dataset latihan X dengan label Y, dan kita perlu membina model f yang akan membuat ramalan paling tepat. Kualiti ramalan diukur oleh Fungsi Kehilangan . Fungsi kehilangan berikut sering digunakan:

  • Untuk masalah regresi, apabila kita perlu meramalkan nombor, kita boleh menggunakan ralat mutlaki|f(x(i))-y(i)|, atau ralat kuasa duai(f(x(i))-y(i))2
  • Untuk klasifikasi, kita menggunakan kehilangan 0-1 (yang pada asasnya sama dengan ketepatan model), atau kehilangan logistik.

Untuk perceptron satu lapisan, fungsi f ditakrifkan sebagai fungsi linear f(x)=wx+b (di sini w adalah matriks berat, x adalah vektor ciri input, dan b adalah vektor bias). Untuk seni bina rangkaian neural yang berbeza, fungsi ini boleh mengambil bentuk yang lebih kompleks.

Dalam kes klasifikasi, sering kali diinginkan untuk mendapatkan kebarangkalian kelas yang sesuai sebagai output rangkaian. Untuk menukar nombor sewenang-wenang kepada kebarangkalian (contohnya untuk menormalkan output), kita sering menggunakan fungsi softmax σ, dan fungsi f menjadi f(x)=σ(wx+b)

Dalam definisi f di atas, w dan b dipanggil parameter θ=⟨w,b⟩. Diberikan dataset ⟨X,Y⟩, kita boleh mengira ralat keseluruhan pada keseluruhan dataset sebagai fungsi parameter θ.

Matlamat latihan rangkaian neural adalah untuk meminimumkan ralat dengan mengubah parameter θ

Pengoptimuman Penurunan Gradien

Terdapat kaedah pengoptimuman fungsi yang terkenal yang dipanggil penurunan gradien. Ideanya ialah kita boleh mengira derivatif (dalam kes berbilang dimensi dipanggil gradien) fungsi kehilangan berkenaan dengan parameter, dan mengubah parameter sedemikian rupa sehingga ralat akan berkurangan. Ini boleh diformalkan seperti berikut:

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

Semasa latihan, langkah pengoptimuman sepatutnya dikira dengan mempertimbangkan keseluruhan dataset (ingat bahawa kehilangan dikira sebagai jumlah melalui semua sampel latihan). Walau bagaimanapun, dalam kehidupan sebenar kita mengambil bahagian kecil dataset yang dipanggil minibatch, dan mengira gradien berdasarkan subset data. Oleh kerana subset diambil secara rawak setiap kali, kaedah sedemikian dipanggil penurunan gradien stokastik (SGD).

Multi-Layered Perceptrons dan Backpropagation

Rangkaian satu lapisan, seperti yang telah kita lihat di atas, mampu mengklasifikasikan kelas yang boleh dipisahkan secara linear. Untuk membina model yang lebih kaya, kita boleh menggabungkan beberapa lapisan rangkaian. Secara matematik, ini bermakna fungsi f akan mempunyai bentuk yang lebih kompleks, dan akan dikira dalam beberapa langkah:

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

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

Algoritma penurunan gradien akan kekal sama, tetapi ia akan menjadi lebih sukar untuk mengira gradien. Berdasarkan peraturan pembezaan rantai, kita boleh mengira derivatif seperti:

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

Peraturan pembezaan rantai digunakan untuk mengira derivatif fungsi kehilangan berkenaan dengan parameter.

Perhatikan bahawa bahagian paling kiri semua ungkapan tersebut adalah sama, dan oleh itu kita boleh mengira derivatif dengan berkesan bermula daripada fungsi kehilangan dan bergerak "ke belakang" melalui graf pengiraan. Oleh itu, kaedah latihan perceptron berbilang lapisan dipanggil backpropagation, atau 'backprop'.

compute graph

TODO: rujukan imej

Kita akan membincangkan backprop dengan lebih terperinci dalam contoh notebook kita.

Kesimpulan

Dalam pelajaran ini, kita telah membina perpustakaan rangkaian neural kita sendiri, dan kita telah menggunakannya untuk tugas klasifikasi dua dimensi yang mudah.

🚀 Cabaran

Dalam notebook yang disertakan, anda akan melaksanakan kerangka anda sendiri untuk membina dan melatih perceptron berbilang lapisan. Anda akan dapat melihat secara terperinci bagaimana rangkaian neural moden beroperasi.

Teruskan ke notebook OwnFramework dan selesaikan latihan di dalamnya.

Kuiz pasca-kuliah

Kajian & Pembelajaran Kendiri

Backpropagation adalah algoritma biasa yang digunakan dalam AI dan ML, berbaloi untuk dikaji dengan lebih mendalam

Tugasan

Dalam makmal ini, anda diminta untuk menggunakan kerangka yang anda bina dalam pelajaran ini untuk menyelesaikan klasifikasi digit tulisan tangan MNIST.