Kita telah mempelajari bahwa normal equation memberikan solusi eksak untuk linear regression...
Normal Equation:
$W = (X^TX)^{-1}X^Ty$
✓ Solusi eksak dalam satu langkah
⚠️ Namun ada masalahnya:
Inversi matriks memiliki kompleksitas $O(n^3)$
10.000 fitur = 1 triliun
operasi!
Ini menjadi tidak praktis SANGAT cepat.
💡 Alternatifnya: Gradient Descent
Ambil banyak langkah kecil yang murah daripada satu lompatan mahal!
"Daripada menghitung solusi eksak dalam satu langkah mahal, kita dapat mengambil banyak langkah kecil menuju solusi dengan mengikuti gradient."
Ini adalah fondasi optimisasi machine learning modern.
❓ 1. Apa itu gradient?
Kita perlu memahami konsep matematis ini
❓ 2. Bagaimana menghitung gradients?
Terutama dengan banyak variabel
❓ 3. Mengapa menggunakan gradients untuk optimisasi?
Apa yang membuatnya begitu powerful?
Mari jawab setiap pertanyaan secara sistematis! 🚀
Gradient adalah kemiringan dari garis singgung terhadap fungsi pada
titik tertentu.
Untuk setiap titik $x$ pada fungsi $f(x)$:
• Kita gambar garis singgung pada titik
tersebut
• Kemiringan garis ini adalah turunan $f'(x)$
• Ini memberitahu kita seberapa curam fungsi
naik/turun
1. Nilai fungsi: $f(2) = 4$
2. Turunan: $f'(x) = 2x$
3. Gradient di $x=2$:
$f'(2) = 4$
Di $x = 2$, fungsi naik dengan kemiringan 4!
💡 Insight Kunci:
Mencari kemiringan memerlukan kalkulus—khususnya turunan!
Turunan $f'(x)$ merepresentasikan kemiringan $f(x)$ di titik $x$.
Untuk linear regression dengan satu variabel:
$f(w) = \sum_{i=1}^m (y_i - (w_0 + w_1x_i))^2$
Kita hitung turunan terhadap setiap weight:
$\frac{\partial f}{\partial w_0}$ dan $\frac{\partial f}{\partial w_1}$
🎯 Kasus Sederhana:
Satu variabel = satu turunan = kemiringan di titik tersebut!
Partial derivative $\frac{\partial}{\partial x_i}f(\mathbf{x})$ mengukur seberapa besar $f$ berubah ketika kita hanya memvariasikan $x_i$ sambil menjaga semua variabel lain konstan.
$f(W) = \sum_{i=1}^m (y_i - (w_0 + w_1x_{i1} + \cdots + w_{n-1}x_{in-1}))^2$
Kita perlu partial derivatives untuk setiap weight di $W$!
• $\frac{\partial f}{\partial x}$ = kecuraman berjalan timur-barat
•
$\frac{\partial f}{\partial y}$ = kecuraman berjalan utara-selatan
Bersama-sama, mereka mendeskripsikan
lanskap kemiringan penuh!
Gradient adalah sebuah vektor yang berisi semua partial derivatives:
$\nabla_\mathbf{x}f(\mathbf{x}) = \begin{bmatrix} \frac{\partial f}{\partial x_1} \\ \frac{\partial f}{\partial x_2} \\ \vdots \\ \frac{\partial f}{\partial x_n} \end{bmatrix}$
Elemen ke-$i$ adalah partial derivative terhadap $x_i$.
💡 Properti Titik Kritis
Pada minimum (atau maksimum), semua partial derivatives sama dengan
nol:
$\nabla_\mathbf{x}f(\mathbf{x}) = \mathbf{0}$
Beginilah cara kita menemukan normal equation!
Metrik linear regression kita $f(W) = \|y - XW\|_2^2$ adalah convex.
Properti Khusus:
✓ Hanya SATU minimum—minimum global
✓ Tidak ada minima lokal untuk
terjebak
✓ Minimum apapun yang kita temukan adalah solusi TERBAIK
✓ Minimum lokal = Minimum global
✓ Linear Regression
Permukaan berbentuk mangkuk
Minimum tunggal
Selalu konvergen
✗ Neural Networks
Banyak minima lokal
Bisa terjebak
Tidak ada jaminan
Directional derivative dalam arah $\mathbf{u}$
(vektor satuan) memberitahu kita:
"Seberapa cepat $f$ berubah jika kita bergerak dalam arah $\mathbf{u}$?"
Menggunakan chain rule:
$\frac{\partial}{\partial \alpha} f(\mathbf{x} + \alpha
\mathbf{u})$
$= \left(\frac{\partial (\mathbf{x} + \alpha \mathbf{u})}{\partial \alpha}\right)^T
\nabla_\mathbf{x}f(\mathbf{x})$
$= \mathbf{u}^T \nabla_\mathbf{x}f(\mathbf{x})$
🔍 Hasil yang Indah:
Laju perubahan dalam arah $\mathbf{u}$ = dot product arah dan gradient!
Arah $\mathbf{u}$ mana yang meminimalkan fungsi kita tercepat?
$\min_{\mathbf{u}, \|\mathbf{u}\|_2=1} \mathbf{u}^T
\nabla_\mathbf{x}f(\mathbf{x})$
$= \min_{\mathbf{u}, \|\mathbf{u}\|_2=1} \|\mathbf{u}\|_2
\|\nabla_\mathbf{x}f(\mathbf{x})\|_2 \cos \theta$
Karena $\mathbf{u}$ adalah vektor satuan ($\|\mathbf{u}\|_2 = 1$):
$\min_{\mathbf{u}} \|\nabla_\mathbf{x}f(\mathbf{x})\|_2 \cos \theta = \min_{\mathbf{u}} \cos \theta$
💡 Arah Optimal
Minimum dari $\cos \theta$ terjadi ketika $\theta = 180°$
$\mathbf{u}$
harus menunjuk BERLAWANAN dengan gradient!
$\mathbf{u} =
-\frac{\nabla_\mathbf{x}f(\mathbf{x})}{\|\nabla_\mathbf{x}f(\mathbf{x})\|_2}$
Bergerak dalam arah BERLAWANAN dari gradient!
Inilah mengapa disebut gradient DESCENT! ⬇️
Bentuk umum:
$\mathbf{x}_{new} = \mathbf{x}_{old} - \varepsilon \nabla_\mathbf{x}f(\mathbf{x}_{old})$
Untuk weight linear regression:
$W_{new} = W_{old} - \varepsilon \nabla_W f(W_{old})$
dimana $\varepsilon$ adalah learning rate
1. Mulai: $W = [1.0, 2.0]$, error $f(W) = 10.5$
2. Hitung gradient: $\nabla_W f(W) = [2.5, -1.2]$
3. Pilih learning rate: $\varepsilon = 0.1$
4. Update:
$W_{new} = [1.0,
2.0] - 0.1 \times [2.5, -1.2]$
$W_{new} = [0.75, 2.12]$
5. Error baru: $f(W_{new}) = 9.3$ ✓ Menurun!
6. Ulangi hingga konvergen!
Learning rate $\varepsilon$ mengontrol seberapa jauh kita bergerak di setiap iterasi.
Dilema:
🐌 Terlalu Kecil
Konvergensi sangat lambat
Butuh banyak iterasi
Komputasi mahal
🚀 Terlalu Besar
Bisa melewati minimum
Dapat divergen/osilasi
Kurang stabil
😰 Masalahnya:
Menemukan keseimbangan yang tepat sangat krusial untuk machine learning praktis!
Pilih $\varepsilon = 0.001$ atau $0.01$
✓ Sederhana, stabil | ✗ Mungkin tidak
efisien
Selesaikan: $\min_\varepsilon f(\mathbf{x} - \varepsilon
\nabla_\mathbf{x}f(\mathbf{x}))$
✓ Ukuran langkah optimal | ✗ Komputasi mahal
Algoritma:
1. Mulai dengan kandidat $\varepsilon$ (mis., 1.0)
2.
Evaluasi $f(\mathbf{x} - \varepsilon \nabla_\mathbf{x}f(\mathbf{x}))$
3. Jika tidak cukup menurun:
$\varepsilon \leftarrow 0.5\varepsilon$
4. Ulangi hingga penurunan dapat diterima
Paling populer dalam praktik!
Metode adaptif secara otomatis menyesuaikan $\varepsilon$ selama training!
Adam
Menyesuaikan learning rate per parameter berdasarkan riwayat gradient
RMSprop
Menggunakan moving average dari squared gradients
AdaGrad
Menyesuaikan berdasarkan info gradient kumulatif
🎯 Dampak:
Metode-metode ini menangani learning rate secara otomatis, membuat deep learning jauh lebih praktis!
1️⃣ Masalah:
Normal equation: kompleksitas
$O(n^3)$—terlalu mahal!
2️⃣ Solusi:
Gradient descent—optimisasi
iteratif
3️⃣ Bagaimana:
Mulai random → Hitung
gradient → Turun → Ulangi
4️⃣ Mengapa:
Fungsi convex → Arah berlawanan
gradient → Konvergensi terjamin!
5️⃣ Parameter Kunci:
Learning rate
$\varepsilon$ mengontrol ukuran langkah
6️⃣ Modern:
Metode adaptif (Adam, RMSprop)
auto-tune!
$W = (X^TX)^{-1}X^Ty$
✓ Keuntungan:
Solusi eksak dalam satu langkah
Tidak ada parameter untuk tune
Tidak perlu
iterasi
✗ Kerugian:
Kompleksitas $O(n^3)$
Memerlukan inversi matriks
Tidak praktis untuk $n$
besar
Gunakan: $n < 10.000$
$W_{new} = W_{old} - \varepsilon \nabla_W f(W)$
✓ Keuntungan:
Skalabel untuk dataset besar
$O(n)$ per iterasi
Efisien memori
Fondasi
untuk deep learning
✗ Kerugian:
Butuh banyak iterasi
Harus tune learning rate
Gunakan: $n > 10.000$
✓ Gradient = kemiringan garis singgung; arah kenaikan tercuram
✓ Partial derivatives mengukur perubahan dalam satu variabel (lainnya tetap)
✓ Vektor gradient berisi semua partial derivatives
✓ Fungsi convex memiliki satu minimum global—sempurna untuk GD!
✓ Directional derivative berlawanan gradient = penurunan tercuram
✓ Learning rate mengontrol ukuran langkah & konvergensi
✓ Gradient descent menukar solusi eksak dengan efisiensi
✓ Fondasi machine learning modern!
Untuk $f(x) = x^2 - 4x + 5$, hitung satu iterasi dimulai dari $x = 0$ dengan learning rate $\varepsilon = 0.1$.
Petunjuk:
1. Hitung turunan $f'(x)$
2. Evaluasi di $x = 0$
3. Terapkan aturan update: $x_{new} =
x_{old} - \varepsilon f'(x_{old})$
Coba sendiri sebelum memeriksa solusinya! 💪
Pertanyaan:
Mengapa linear regression sangat cocok untuk gradient descent dibandingkan model machine learning lainnya? Properti apa yang membuatnya reliable?
Petunjuk:
Pikirkan tentang bentuk fungsi error dan jumlah minima yang dimilikinya.
Konsep kunci: Convexity! 🏔️
🎯 Stochastic Gradient Descent (SGD)
Menghitung gradients pada mini-batches daripada seluruh dataset
🚀 Advanced Optimizers
Pendalaman tentang Adam, RMSprop, dan metode momentum
🛡️ Regularization
Penalty L1 dan L2 untuk mencegah overfitting
🧠 Model Non-linear
Memperluas konsep ini ke neural networks!
Gradients menunjuk ke atas
Kita turun
Convexity menjamin
kesuksesan
Fondasi deep learning
Menggerakkan AI modern
Skalabel hingga
miliaran parameter
Kuasai gradient descent, buka machine learning! 🔑
"Gradient descent adalah tenaga kerja machine learning modern. Kuasai itu, dan Anda telah membuka fondasi deep learning!"
- QuiverLearn