Membedah fondasi matematis jaringan saraf: neuron, weight & bias, fungsi aktivasi ReLU/Sigmoid/Tanh/GELU, loss function, serta alur forward propagation, backpropagation, dan gradient descent dengan optimizer SGD hingga Adam/AdamW.

Di episode 1 kita melihat sejarah panjang deep learning. Sekarang waktunya memahami bahan bakarnya: bagaimana sebuah jaringan saraf sebenarnya menghitung dan belajar. Episode ini adalah fondasi paling penting di seluruh series — semua arsitektur yang akan datang (CNN, RNN, transformer) hanyalah variasi dari pola dasar yang akan kita bedah sekarang.
Pahami ini dengan benar, dan kode-kode PyTorch di episode-episode berikutnya akan terasa seperti penerjemahan matematika ke bahasa pemrograman, bukan tebakan. Mari kita mulai dari satu neuron.
Satu neuron menerima beberapa input, mengalikan masing-masing dengan bobot (weight), menjumlahkannya, menambahkan bias, lalu melewati fungsi aktivasi:
y = aktivasi(w1*x1 + w2*x2 + ... + wn*xn + b)Dalam bentuk matriks, ini hanyalah z = W @ x + b lalu y = aktivasi(z). Bobot menentukan seberapa besar pengaruh tiap input; bias memungkinkan neuron aktif meskipun semua input nol. Proses belajar jaringan adalah mencari kombinasi bobot dan bias yang meminimalkan error.
Aktivasi adalah sumber non-linearitas. Tanpa aktivasi, deretan layer linear hanya bisa di-collapse menjadi satu transformasi linear — jaringan setebal apa pun tak lebih pintar dari satu layer. Empat aktivasi paling penting:
| Aktivasi | Rentang | Karakteristik |
|---|---|---|
| Sigmoid | 0 s.d. 1 | Halus, tapi gradien mudah hilang di ujung |
| Tanh | -1 s.d. 1 | Zero-centered, lebih baik dari sigmoid |
| ReLU | 0 s.d. ∞ | Murah & cepat, standar hidden layer |
| GELU | Halus di sekitar 0 | Standar di transformer modern |
ReLU (max(0, x)) mendominasi hidden layer karena murah dan tidak menjenuhkan gradien positif. Sigmoid dan softmax dipakai di layer output untuk klasifikasi biner/multikelas. GELU dipakai hampir semua LLM — detailnya nanti di episode 12.
Layer adalah kumpulan neuron paralel. Jaringan tersusun dari layer input, satu atau lebih hidden layer, dan layer output. Loss function mengukur seberapa jauh prediksi dari target:
CrossEntropyLoss untuk klasifikasi.MSELoss untuk regresi.BCEWithLogitsLoss untuk klasifikasi biner.Loss inilah yang menjadi satu angka untuk dinilai: tujuan training adalah menurunkannya.
Sekali operasi forward: data mengalir dari layer input melewati semua hidden layer sampai menghasilkan prediksi dan loss. Karena semuanya hanya operasi matriks dan fungsi turunan yang dikenal, kita bisa menelusuri loss kembali ke setiap bobot.
Backpropagation memakai aturan rantai (chain rule) untuk menghitung turunan loss terhadap setiap bobot, dari layer paling belakang mundur ke layer paling depan. Hasilnya adalah gradien — vektor yang menunjukkan arah menaikkan loss. Untuk menurunkannya, kita bergerak ke arah sebaliknya.
Intuisi aturan rantai: jika L bergantung pada y, y pada z, dan z pada w, maka dL/dw = (dL/dy) * (dy/dz) * (dz/dw). Produk inilah yang diakumulasi mundur layer demi layer.
Update parameter mengikuti aturan sederhana:
w_baru = w_lama - learning_rate * gradienIni SGD (Stochastic Gradient Descent): ambil sampel batch, hitung gradien, update. Variasi modern memperbaiki kelemahannya:
| Optimizer | Kekuatan | Kapan dipakai |
|---|---|---|
| SGD | Sederhana, bisa lebih presisi dengan tuning | Dataset kecil, butuh generalisasi terbaik |
| Adam | Stabil, hampir tanpa tuning | Default untuk hampir semua masalah |
| AdamW | Weight decay benar, performa LLM lebih baik | Transformer, LLM, model besar |
Tip
Aturan praktis: mulai dengan Adam (learning rate 1e-3). Jika sudah percaya diri, coba SGD dengan momentum untuk kualitas akhir yang lebih baik — pengaturan detail ini akan kita perdalam di episode 6.
Aktivasi sigmoid/tanh mengompres gradien menuju nol di ujung kurva. Jaringan dalam jadi tidak belajar di layer awal. Solusi: pakai ReLU/GELU, inisialisasi yang baik, residual connection, atau batch normalization — kita bahas masing-masing di episode-episode berikutnya.
Terlalu kecil: training lambat. Terlalu besar: loss meledak atau osilasi. Learning rate adalah knob paling penting dalam training. Episode 6 dan 14 akan membahas scheduling dan learning rate finder.
Jaringan sangat ekspresif sehingga mudah menghafal training set. Tanda khasnya: training loss terus turun, validation loss naik. Solusi jangka pendek: dropout, weight decay, early stopping, dan data augmentation — dibahas tuntas di episode 6.
Warning
Jangan pernah mengevaluasi model pada data training. Overfit bukan bug sesaat — ia jebakan yang membuat model tampak sempurna di notebook tetapi gagal total di dunia nyata. Selalu pegang test set yang tidak pernah disentuh saat tuning.
Pada episode 2 ini, kalian telah membangun fondasi matematis jaringan saraf.
Inti yang harus dibawa pulang:
aktivasi(W @ x + b); bobot dan bias adalah yang dipelajari.Di episode 3 selanjutnya kita akan menerjemahkan semua konsep ini ke PyTorch — tensor, operasi GPU, autograd, dan nn.Module, lalu membangun model linear dan MLP pertama dari scratch. Pastikan venv kalian siap, karena di sinilah praktik sebenarnya dimulai!