Lompat ke konten utama
←

Jaringan Saraf Tiruan Dasar dengan Python

Pelajaran 15 dari 22

MLP scikit-learn, inisialisasi, dan regularisasi

Inisialisasi bobot: simetri, Xavier, dan He

Setelah pelajaran ini kamu bisa menjelaskan kenapa bobot awal harus acak dan berskala tepat, menghitung batas inisialisasi Xavier, dan membuat bobot He dengan generator acak numpy.

±14 menitDiperiksa 28 Sep 2026

Materi

Sebelum pelatihan dimulai, setiap bobot harus diberi nilai awal, dan Dive into Deep Learning §5.4 menunjukkan dua cara gagal. Pertama, semua bobot lapis tersembunyi diisi konstanta yang sama. Setiap neuron lalu menerima masukan dan bobot yang sama, menghasilkan aktivasi yang sama, dan menerima gradien yang sama, sehingga setelah berapa pun langkah gradient descent neuron-neuron itu tetap kembar. Simetri ini baru pecah bila bobot awalnya acak. Kedua, skala acaknya keliru: d2l mengalikan 100 matriks acak bersimpangan baku 1 dan hasilnya meledak, sedangkan skala yang terlalu kecil membuat sinyal dan gradien menyusut ke nol.

Inisialisasi Xavier (Glorot dan Bengio, 2010) memilih varians yang menjaga skala sinyal maju dan gradien mundur: σ² = 2 / (n_in + n_out), dengan n_in banyak masukan dan n_out banyak keluaran lapisan. Versi seragamnya mengambil bobot dari U(−a, a) dengan a = √(6 / (n_in + n_out)), karena varians sebaran seragam U(−a, a) adalah a²/3. Deep Learning bab 8.4 menulis rumus seragam yang sama.

Penurunan Xavier mengandaikan lapisan tanpa aktivasi. ReLU membuang semua bagian negatif, sehingga He, Zhang, Ren, dan Sun (2015, §2.2) menggandakan variansnya: bobot diambil dari sebaran Gaussian bermean 0 dengan simpangan baku √(2 / n_in), dan bias diisi 0. Di numpy, generator yang hasilnya bisa diulang dibuat dengan np.random.default_rng(seed), dan rng.normal(loc, scale, size) mengambil bilangan Gaussian dengan scale sebagai simpangan bakunya.

import numpy as np

# Xavier normal untuk lapisan 10 -> 5
rng = np.random.default_rng(3)
sd = np.sqrt(2 / (10 + 5))           # 0.365
W = rng.normal(0.0, sd, size=(10, 5))
print(W.shape, round(sd, 3))

Latihan

0/3 lulus

Jawaban diperiksa di server. Lulus berarti kamu memahami contohnya, bukan penilaian seluruh pekerjaanmu.

Latihan 1 dari 3

Lapisan dengan 40 masukan dan 56 keluaran diinisialisasi dengan Xavier seragam U(−a, a). Berapa a? Tulis dengan dua desimal.

Latihan 3 dari 3

Seorang rekan mengisi semua bobot lapis tersembunyi (8 neuron) dengan 0,5, lalu melatih jaringannya selama 1.000 epoch. Apa yang terjadi pada kedelapan neuron itu?

Pilih satu jawaban

Catatanmu

Memuat catatan…

tersimpan otomatis, ikut tercetak · 0/4.000

Luluskan semua latihan dulu untuk menandai pelajaran ini selesai.

Lanjutkan ke