Kursus Matematika untuk AI · Pelajaran 38 dari 180
Aljabar Linear dalam Jaringan Saraf Kecil
Telusuri setiap bentuk, bias, aktivasi, dan perubahan rank pada jaringan dua lapis melalui contoh NumPy dan penjelajah interaktif.
Jaringan saraf bisa tampak seperti serangkaian operasi matriks, padahal setiap langkah mengubah makna angkanya. Dengan mengikuti satu jaringan kecil dari masukan hingga keluaran, kita bisa melihat keseluruhan alurnya: bentuk matriks menentukan pemetaan mana yang dapat disambungkan, bias menggeser pemetaan tersebut, rank membatasi arah yang independen, dan fungsi aktivasi mengubah apa yang dapat dinyatakan oleh komposisinya.
Setelah menyelesaikan pelajaran ini, Anda akan mampu menelusuri setiap bentuk, menghitung jaringan dua lapis dengan tangan atau NumPy, lalu menjelaskan bagaimana bias, rank, dan aktivasi memengaruhi hasil.
Pelajaran ini menggabungkan tiga alat dari pelajaran sebelumnya: menyelesaikan sistem linear tanpa membentuk invers matriks secara eksplisit, menggunakan kernel dan image untuk menjelaskan arah yang hilang dan dapat dicapai, serta menggunakan bias untuk menggeser pemetaan afin. Bab 2 dari Mathematics for Machine Learning menyediakan landasan aljabar linear untuk merangkai konsep-konsep tersebut. Jaringan, angka, kode, visual, dan soal di bawah ini merupakan materi orisinal.
Ikuti dimensi pada dua lapisan afin
Di sini, “jaringan dua lapis” berarti dua pemetaan afin yang parameternya dipelajari, dengan aktivasi tersembunyi di antaranya. Keluaran kita biarkan sebagai dua skor; tidak ada konversi ke probabilitas atau keputusan kelas. Misalkan masukan berupa vektor kolom . Setiap pemetaan afin menggabungkan matriks dengan vektor bias:
Dimensi bersama antara pemetaan yang bersebelahan harus cocok: memiliki dua kolom untuk dua fitur masukan dan dua baris untuk keluaran tersembunyi. Lalu menerima dua nilai tersembunyi itu dan menghasilkan dua skor keluaran. Bias ditambahkan pada setiap koordinat tersembunyi, sedangkan ditambahkan pada setiap keluaran. Matriks dengan dimensi yang tidak cocok tidak dapat melakukan pemetaan tersebut; ini sama dengan pemeriksaan bentuk pada perkalian matriks NumPy.
- Masukan · 2 fitur
- Pemetaan afin · 2 nilai tersembunyi
- Aktivasi tersembunyi
- Pemetaan afin · 2 skor
- Keluaran · 2 skor
z = W₁x + b₁
h = σ(z)
y = W₂h + b₂
- Pra-aktivasi z
- (, )
- Keluaran tersembunyi h
- (, )
- Skor y
- (, )
- Unit tersembunyi aktif
- Rank Jacobian lokal
Sebuah nilai pra-aktivasi tepat nol, tempat ReLU memiliki titik sudut. Jacobian tidak terdefinisi pada titik itu; periksa salah satu wilayah di sebelahnya untuk melihat rank lokal.
Masukan awal 1, 1; keluaran tersembunyi 0, 0.5; skor 1.5, −0.5.
Nilai awal pada gambar menggunakan parameter tetap yang dipilih secara manual berikut:
Contoh ini cukup kecil untuk diikuti per entri. Nilainya dipilih untuk menunjukkan satu unit tersembunyi dinonaktifkan oleh ReLU; ini bukan parameter hasil pelatihan dan bukan klaim tentang model yang tipikal.
Hitung satu prediksi sambil mempertahankan setiap nilai antara
Ambil . Matriks pertama menggabungkan dua koordinat masukan dengan cara berbeda. Penambahan bias lalu menggeser setiap hasil:
Operator @ NumPy melakukan perkalian matriks. Operasi + b di bawah menggunakan broadcasting elementwise NumPy untuk menambahkan bias sepanjang dua elemen ke hasil sepanjang dua elemen. Implementasi sederhana ini mencetak vektor perantara yang sebenarnya:
import numpy as np
W1 = np.array([[1.0, -1.0], [1.0, 1.0]]) # (2, 2)
b1 = np.array([-0.5, -1.5]) # (2,)
W2 = np.array([[1.0, 2.0], [-1.0, 1.0]]) # (2, 2)
b2 = np.array([0.5, -1.0]) # (2,)
x = np.array([1.0, 1.0]) # (2,)
z = W1 @ x + b1 # (2,) = (2, 2) @ (2,) + (2,)
h = np.maximum(z, 0.0) # (2,), elementwise ReLU
y = W2 @ h + b2 # (2,) = (2, 2) @ (2,) + (2,)
print('z:', z) # [-0.5 0.5]
print('h:', h) # [0. 0.5]
print('y:', y) # [ 1.5 -0.5]
Logika lebar yang sama berlaku pada satu batch. Jika contoh disimpan sebagai baris, array-nya berbentuk ; kalikan dari kanan dengan untuk menghasilkan nilai tersembunyi berbentuk , lalu dengan untuk menghasilkan skor berbentuk . Lapisan Linear PyTorch menggunakan konvensi yang berorientasi pada baris tersebut: bentuk bobotnya dan operasinya . Jadi, Linear(2, 2) menyimpan bobot berbentuk serta bias sepanjang dua elemen. ReLU PyTorch diterapkan elementwise dan mempertahankan bentuk masukan, sama seperti langkah di atas (dokumentasi Linear, dokumentasi ReLU, dokumentasi NumPy matmul).
Tanpa aktivasi, dua lapisan tetap merupakan satu pemetaan afin
Bias pada lapisan afin berfungsi sebagai translasi. Jika langkah tersembunyinya adalah identitas, substitusi menggabungkan kedua lapisan:
Artinya, menumpuk lebih banyak pemetaan afin tanpa aktivasi nonlinear tidak akan membuat aturan masukan-keluaran keseluruhan menjadi nonlinear; matriks-matriksnya dikalikan menjadi satu matriks dan biasnya digabungkan menjadi satu offset. Untuk nilai yang dipilih di contoh ini, dan . Karena itu, versi identitas memetakan ke .
Rank sebuah matriks menghitung arah keluarannya yang independen. Pada contoh identitas ini, rank dan sama-sama dua, begitu pula rank hasil kalinya. Jika lebar tersembunyi jaringan adalah , rank bagian linear dari komposisi afin tidak bisa melebihi , karena faktornya hanya melewati koordinat. Jika salah satu matriks memiliki rank lebih rendah, rank komposisinya bisa lebih rendah lagi. Semua ini adalah batas atas: lapisan sempit dapat menjadi hambatan, tetapi lebarnya saja tidak menentukan rank tertentu.
ReLU membuat pemetaannya afin sepotong-sepotong
ReLU mengubah koordinat tersembunyi menjadi nol saat pra-aktivasinya negatif. Pada setiap wilayah tempat tanda semua nilai pra-aktivasi tetap, kumpulan unit aktif juga tetap. Misalkan adalah matriks diagonal dengan nilai untuk setiap unit ReLU aktif dan untuk unit yang tidak aktif. Di wilayah tersebut, bagian linear lokal dari jaringan dua lapis adalah
Untuk masukan contoh tadi, , sehingga . Maka
Di sekitar masukan ini, kedua skor keluaran berubah menurut kombinasi masukan yang sama, ; arah selisih tidak berpengaruh selama unit pertama tetap tidak aktif. Matriks menjelaskan perubahan lokal di wilayah aktivasi ini, bukan satu matriks global untuk keseluruhan jaringan. Pada batas ReLU saat pra-aktivasi sama dengan nol, fungsi memiliki titik sudut dan tidak ada Jacobian dari satu wilayah pun yang dapat menjelaskan kedua sisinya.
Lebar tersembunyi dan bobot juga membatasi apa yang dapat dinyatakan jaringan. Dalam contoh khusus ini, dua garis dengan nilai pra-aktivasi nol membagi bidang masukan menjadi beberapa wilayah dengan pola unit aktif berbeda; setiap wilayah memiliki aturan afin, dan melintasi sebuah garis dapat mengubah aturan itu. Secara lebih umum, aktivasi nonlinear memungkinkan fungsi nonlinear, tetapi tidak menjamin setiap pilihan bobot mampu menyatakannya. Sebuah unit tersembunyi mungkin terus tidak aktif untuk masukan yang diperhatikan, atau matriks dapat meruntuhkan arah. Bentuk matriks, rank, offset bias, dan pola aktivasi sama-sama memengaruhi perilaku jaringan.
Itulah sebabnya nilai keluaran saja hanya memberi petunjuk yang terbatas saat melakukan debugging. Telusuri bentuk untuk menemukan sambungan yang tidak cocok, bandingkan dengan untuk melihat fitur mana yang ditahan, dan periksa rank lapisan atau Jacobian lokal untuk mengenali arah yang hilang. Jika langkah fitting terpisah meminta Anda menyelesaikan , Pelajaran 025 menjelaskan mengapa solver numerik menghindari risiko membentuk . Forward pass jaringan itu sendiri menggunakan perkalian matriks; proses ini tidak memerlukan inversi bobot yang dipelajari.
Setelah pemetaan dan arahnya jelas, pertanyaan berikutnya adalah seberapa besar sebuah vektor. Pelajaran 039 memperkenalkan norma untuk mengukur besar vektor, membandingkan skala embedding, dan menjelaskan penalti parameter.
Periksa pemahaman Anda
Question 1
Untuk jaringan dalam pelajaran ini, sebutkan bentuk x, W₁, b₁, z, h, W₂, b₂, dan y. Mengapa W₂ dapat menerima h?
Show the step-by-step solution
berbentuk , berbentuk , berbentuk , sedangkan dan masing-masing berbentuk . Matriks kedua berbentuk dengan bias berbentuk , sehingga menghasilkan berbentuk . Dimensi dalam adalah dua dan cocok dengan dua entri di ; karena itu, matriks tersebut memetakan vektor tersembunyi menjadi dua skor keluaran.
Question 2
Dengan x = (1, 1)ᵀ, hitung z, h, dan y menggunakan matriks serta ReLU dalam pelajaran ini. Tunjukkan langkah bias dan aktivasi.
Show the step-by-step solution
Pertama, , sehingga penambahan menghasilkan . ReLU diterapkan per koordinat dan memberikan . Berikutnya, ; setelah ditambah , hasilnya .
Question 3
Mengapa menghilangkan aktivasi tersembunyi tetap menghasilkan pemetaan afin? Temukan matriks dan bias gabungannya untuk contoh ini.
Show the step-by-step solution
Substitusikan aturan afin pertama ke dalam aturan kedua: . Perkalian matriksnya adalah . Selain itu, , sehingga penambahan menghasilkan bias gabungan . Hasilnya satu pemetaan afin karena tetap berbentuk .
Question 4
Untuk x = (1, 1)ᵀ, keluaran apa yang dihasilkan versi dengan langkah tersembunyi identitas? Bagaimana perbandingannya dengan hasil ReLU?
Show the step-by-step solution
Dengan langkah identitas, gunakan pemetaan gabungan dari jawaban sebelumnya: . Dengan ReLU, keluarannya karena pra-aktivasi tersembunyi pertama negatif lalu menjadi nol, sedangkan yang kedua tetap . Perbedaannya berasal dari aktivasi per koordinat tersebut.
Question 5
Sebuah jaringan memetakan 5 masukan melalui lapisan tersembunyi selebar 3 menuju 4 keluaran tanpa aktivasi. Berapa rank maksimum yang mungkin untuk bagian linearnya? Bagaimana jika rank matriks bobot pertama 2 dan yang kedua 3?
Show the step-by-step solution
Matriks komposisinya difaktorkan melalui tiga koordinat tersembunyi, sehingga rank-nya paling tinggi tiga. Rank-nya juga tidak bisa melebihi dimensi masukan lima atau dimensi keluaran empat. Jika matriks pertama memiliki rank dua dan matriks kedua rank tiga, rank hasil kalinya paling tinggi adalah batas terkecil di antara angka-angka itu, yaitu dua. Ini adalah batas atas; hasil kali aktual bisa memiliki rank yang lebih rendah jika arah keduanya tidak selaras.
Question 6
Pada masukan contoh, unit ReLU pertama tidak aktif dan unit kedua aktif. Hitung rank Jacobian lokal dan jelaskan maknanya.
Show the step-by-step solution
Mask aktivasi adalah . Perkalian menghasilkan . Kolom keduanya sama dengan kolom pertama, jadi hanya ada satu kolom independen dan rank-nya satu. Di wilayah aktivasi ini, perubahan kecil masukan pada satu arah tidak mengubah keluaran; kedua skor bergantung pada kombinasi masukan yang sama. Ini pernyataan lokal karena pergantian unit ReLU mengubah matriks .
Question 7
Apa yang berubah saat nilai pra-aktivasi ReLU tepat nol? Dapatkah Jacobian dari salah satu wilayah di sebelahnya dipakai sebagai turunan tunggal di titik tersebut?
Show the step-by-step solution
ReLU memiliki sudut pada nol: kemiringannya nol tepat di sebelah kiri dan satu tepat di sebelah kanan. Ketika nilai pra-aktivasi tepat nol, fungsi pada koordinat itu tidak terdiferensialkan, sehingga tidak ada satu Jacobian biasa yang menggambarkan kedua sisinya. Keluaran jaringan tetap terdefinisi; yang gagal adalah satu pendekatan linear lokal melintasi batas tersebut.
Question 8
Satu batch memiliki 8 contoh dengan 4 fitur per contoh. Apa bentuk masukan dan keluaran untuk PyTorch Linear(4, 3), dan bagaimana bentuk bobotnya?
Show the step-by-step solution
Masukan batch berbentuk , dengan delapan baris dan empat fitur masukan. PyTorch menyimpan bobot lapisan dalam bentuk , sehingga bobotnya berbentuk dan biasnya . Lapisan mengembalikan bentuk : dimensi batch tetap sama, sedangkan dimensi fitur terakhir diganti dengan tiga keluaran.