Dulu saya membayangkan neural network sebagai tiruan otak yang mistis, penuh keajaiban yang tidak akan pernah saya pahami. Kenyataannya setelah berani membuka tudung mesinnya: neural network adalah tumpukan operasi perkalian matriks yang diselingi fungsi non-linear sederhana. Tidak ada sihir, hanya aljabar linear yang diulang jutaan kali. Episode ini catatan saya membedah tiga blok bangunannya: neuron, activation function, dan layer.
Neuron: Fungsi Paling Membosankan di Dunia
Satu neuron sebenarnya cuma melakukan dua langkah. Pertama, kalikan setiap input dengan bobotnya, jumlahkan semuanya, tambahkan bias — ini persis regresi linear yang sudah kita bahas di episode awal. Kedua, masukkan hasilnya ke sebuah fungsi aktivasi. Secara matematis: z = w·x + b, lalu a = g(z). Selesai. Tidak ada dendrit, tidak ada sinaps yang hidup, hanya perkalian dan penjumlahan.
- Bobot (w): seberapa penting tiap input. Ini parameter yang dioptimasi saat training.
- Bias (b): geser ambang keputusan, seperti intercept pada regresi.
- Aktivasi (g): fungsi non-linear yang memberi jaringan kemampuan memodelkan hubungan rumit.
Kenapa Butuh Activation Function
Ingin fakta yang membuat saya terkejut pertama kali mendengarnya: kalau Anda menyusun banyak layer tanpa fungsi aktivasi non-linear, seluruh jaringan itu runtuh menjadi satu regresi linear biasa. Komposisi dari fungsi-fungsi linear tetaplah linear. Neural network dengan seratus layer tanpa aktivasi sama saja dengan regresi linear yang sangat mahal.
Makanya activation function bukan detail teknis, tapi syarat eksistensinya deep learning. Beberapa yang paling sering dipakai:
- ReLU: kembalikan input jika positif, nol jika negatif. Super murah dihitung, default untuk hidden layer modern.
- Sigmoid: memetakan ke rentang 0 sampai 1, cocok untuk output probabilitas biner.
- Tanh: mirip sigmoid tapi rentangnya -1 sampai 1, kadang lebih stabil untuk hidden layer.
- Softmax: mengubah vektor angka menjadi distribusi probabilitas, standar untuk output multi-kelas.
Layer: Merakit Neuron Jadi Jaringan
Neuron tunggal terlalu lemah untuk hal berarti. Kekuatannya muncul saat dirakit: satu layer berisi banyak neuron yang membaca input yang sama, lalu layer berikutnya membaca output layer sebelumnya. Susunan standar: input layer menerima fitur, satu atau lebih hidden layer mengolah, output layer menghasilkan jawaban. Proses meneruskan data dari depan ke belakang ini disebut forward pass, dan seluruhnya hanyalah rangkaian perkalian matriks.
import numpy as np
def relu(z):
return np.maximum(0, z)
def forward(X, W1, b1, W2, b2):
h = relu(X @ W1 + b1) # hidden layer, shape (batch, 8)
logits = h @ W2 + b2 # output layer, shape (batch, 3)
return logits
X = np.random.randn(32, 4) # 32 sampel, 4 fitur
W1 = np.random.randn(4, 8) # 4 input -> 8 neuron hidden
b1 = np.zeros(8)
W2 = np.random.randn(8, 3) # 8 hidden -> 3 kelas output
b2 = np.zeros(3)
print(forward(X, W1, b1, W2, b2).shape) # (32, 3)
Menghitung Jumlah Parameter
Kalau model adalah fungsi, jumlah parameter adalah jumlah “knob” yang dioptimasi training. Hitungannya sederhana: untuk layer yang menghubungkan n input ke m neuron, bobotnya n×m ditambah m bias. Dari contoh di atas:
| Layer | Bobot | Bias | Total |
|---|---|---|---|
| Input ke hidden (4 ke 8) | 4 × 8 = 32 | 8 | 40 |
| Hidden ke output (8 ke 3) | 8 × 3 = 24 | 3 | 27 |
| Total | — | 67 | |
67 parameter terdengar remeh. Sekarang naikkan skalanya: model bahasa modern punya miliaran parameter, artinya miliaran knob yang semuanya disentuh optimizer di setiap langkah training. Itulah alasan episode-episode berikutnya bicara soal GPU dan teknik training yang makin canggih.
Shape Error: Musuh Pertama Saya
Pengalaman pribadi: sembilan dari sepuluh bug di minggu-minggu awal saya belajar neural network bukan soal matematika, tapi salah bentuk matriks. Matrix multiplication itu picky — (32, 4) dikali (8, 3) langsung error karena kolom pertama tidak cocok dengan baris kedua. Tips yang menyelamatkan saya: tulis komentar shape di sebelah kanan hampir setiap baris kode, persis seperti contoh di atas. Repot sebentar, hemat berjam-jam debugging.
Dengan tiga blok bangunan ini — neuron, aktivasi, layer — Anda sudah punya model mental lengkap untuk membaca arsitektur apapun. Pertanyaan berikutnya: bagaimana jaringan ini belajar dari kesalahannya? Itu bahasan episode 12 tentang backpropagation.
Komentar Terbaru