Materi
Jaringan saraf konvolusi (CNN) dipakai untuk gambar. Alih-alih menyambungkan setiap piksel ke setiap neuron, lapisan konvolusi menggeser kernel kecil, misalnya 3 × 3, melintasi gambar dan menghitung jumlah berbobot di setiap posisi. Bobot kernel yang sama dipakai di semua posisi, jadi banyak parameternya tidak bergantung pada ukuran gambar.
Ukuran keluaran mengikuti rumus Dive into Deep Learning §7.3. Untuk masukan selebar n, kernel k, padding p di setiap sisi (total 2p), dan stride s: lebar keluaran = ⌊(n + 2p − k) / s⌋ + 1. Tanpa padding dan dengan stride 1, keluarannya n − k + 1, lebih kecil dari masukan; padding p = (k − 1)/2 untuk k ganjil mempertahankan ukurannya, dan stride 2 memotongnya kira-kira setengah.
Menurut d2l §7.4, kernel lapisan dengan cᵢ kanal masukan dan cₒ kanal keluaran berbentuk cₒ × cᵢ × k × k. Ditambah satu bias per kanal keluaran, jumlah parameternya cₒ·cᵢ·k² + cₒ.
Embedding memetakan setiap kata (atau kategori) ke vektor angka berpanjang tetap, disimpan sebagai tabel berukuran (banyak kata × dimensi); tabel itu sendiri adalah parameternya. d2l §15.1 menjelaskan kenapa vektor one-hot tidak cukup: kemiripan kosinus dua one-hot yang berbeda selalu 0. Kemiripan kosinus x·y / (‖x‖‖y‖) bernilai −1 sampai 1.
# gambar 28 × 28, kernel 5, tanpa padding, stride 1
print((28 + 2 * 0 - 5) // 1 + 1) # 24
# 1 kanal masuk, 6 kanal keluar, kernel 5 × 5
print(6 * 1 * 5 * 5 + 6) # 156 parameter