Gradient Descent untuk Linear Regression: Solusi Iteratif

Opening Image

Masalah: Mencari Weight Optimal

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!

Theme Stated

"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.

Setup - Three Questions

Sebelum Kita Mulai

Tiga Pertanyaan Fundamental

❓ 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! 🚀

Question 1 - What is a Gradient?

Apa itu Gradient?

Definisi

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

Contoh: $f(x) = x^2$ di $x = 2$

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!

Question 2 - Computing Gradients (Single Variable)

Menghitung Gradients: Satu Variabel

Derivative (Satu Variabel)

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!

Question 2 - Partial Derivatives

Menghitung Gradients: Banyak Variabel

Partial Derivatives

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$!

Intuisi: Berdiri di Lereng Bukit 🏔️

• $\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!

Question 2 - Gradient Vector

Vektor Gradient

Gradient Menggeneralisasi Derivatives

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!

Question 3 - Why Gradients? Convex Functions

Mengapa Menggunakan Gradients untuk Optimisasi?

Fungsi Convex: Satu Minimum Global

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

Catalyst - Directional Derivatives

Membuktikan Mengapa Gradients Bekerja

Directional Derivative

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!

Catalyst - Finding Best Direction

Arah Mana yang Meminimalkan Tercepat?

Masalah Optimisasi

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}$

Break into Two - The Algorithm

Algoritma Gradient Descent

🎯 Insight Kunci

Bergerak dalam arah BERLAWANAN dari gradient!

Inilah mengapa disebut gradient DESCENT! ⬇️

Aturan Update

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

Fun and Games - Example Iteration

Gradient Descent dalam Aksi

Menelusuri Satu Iterasi

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!

Midpoint - Learning Rate Challenge

Pertanyaan Kritis 🤔

Seberapa Besar Langkah Kita Seharusnya?

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!

All Is Lost - Learning Rate Strategies

Tiga Strategi untuk Memilih Learning Rate

1️⃣ Nilai Kecil Tetap

Pilih $\varepsilon = 0.001$ atau $0.01$
✓ Sederhana, stabil | ✗ Mungkin tidak efisien

2️⃣ Exact Line Search

Selesaikan: $\min_\varepsilon f(\mathbf{x} - \varepsilon \nabla_\mathbf{x}f(\mathbf{x}))$
✓ Ukuran langkah optimal | ✗ Komputasi mahal

3️⃣ Backtracking Line Search ⭐

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!

Break into Three - Modern Methods

Metode Learning Rate Adaptif Modern

💡 Solusinya

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!

Finale - Complete Picture

Menyatukan Semuanya

Gambaran Lengkap Gradient Descent

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!

Comparison - Methods Side-by-Side

Normal Equation vs. Gradient Descent

Normal Equation

$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$

Gradient Descent

$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$

Key Takeaways - Summary

Yang Telah Kita Pelajari

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!

Practice Problem 1

Soal Latihan: Level 1

Satu Iterasi Gradient Descent

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! 💪

Practice Problem 2

Soal Latihan: Level 2

Pemahaman Konseptual

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! 🏔️

What's Next

Lanjutkan Perjalanan Belajar Anda

Siap Mengeksplorasi Lebih Lanjut?

🎯 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!

Final Image

Gradient Descent: Tenaga Kerja Machine Learning

Matematika 📐

Gradients menunjuk ke atas
Kita turun
Convexity menjamin kesuksesan

Dampak 🌟

Fondasi deep learning
Menggerakkan AI modern
Skalabel hingga miliaran parameter

Kuasai gradient descent, buka machine learning! 🔑

Optimisasi iteratif efisien
Skalabel ke dataset masif
Konvergensi terjamin (convex)
Fondasi untuk deep learning

"Gradient descent adalah tenaga kerja machine learning modern. Kuasai itu, dan Anda telah membuka fondasi deep learning!"

- QuiverLearn