Gradient Descent untuk Linear Regression: Solusi Iteratif

๐Ÿ“Š

Also Available as Interactive Presentation

Learn visually with slides and animations

View Presentation

Dalam postingan sebelumnya tentang linear regression, kita menemukan normal equationโ€”sebuah solusi closed-form yang indah untuk menemukan bobot optimal. Namun ada masalahnya: menghitung matrix inversion secara komputasional sangat mahal untuk dataset besar. Di sinilah gradient descent hadir menyelamatkan! Mari kita jelajahi bagaimana metode iteratif yang elegan ini mengoptimalkan model linear regression kita secara efisien.

Masalah dengan Normal Equation

๐Ÿ“Š

Ingat normal equation yang telah kita turunkan? Ini memberikan solusi eksak, tetapi dengan biaya komputasi yang tumbuh dengan cepat seiring ukuran dataset.

Normal Equation (Solusi Eksak)

Vektor bobot optimal untuk linear regression adalah:

W=(XTX)โˆ’1XTyW = (X^TX)^{-1}X^Ty

Ini disebut exact solution atau closed-form solution karena langsung menghitung jawabannya.

โš ๏ธ Hambatan Komputasi

Matrix inversion (XTX)โˆ’1(X^TX)^{-1} memiliki computational complexity sebesar O(n3)O(n^3) di mana nn adalah jumlah fitur. Untuk dataset besar:

  • 10.000 fitur: 10.0003=110.000^3 = 1 triliun operasi
  • 100.000 fitur: 100.0003=1100.000^3 = 1 kuadriliun operasi

Ini menjadi tidak praktis dengan sangat cepat!

๐Ÿ’ก Alternatifnya: Iterative Methods

Daripada menghitung solusi eksak dalam satu langkah yang mahal, kita dapat menggunakan iterative methods yang:

  • Mengambil banyak langkah kecil yang murah menuju solusi
  • Tidak memerlukan matrix inversion
  • Lebih scalable untuk dataset besar
  • Membentuk fondasi machine learning modern

Metode iteratif yang paling populer adalah gradient descent.

Tiga Pertanyaan Fundamental

Sebelum kita menyelami gradient descent, mari kita jawab tiga pertanyaan penting:

โ“
  1. Apa itu gradient?
  2. Bagaimana kita menghitung gradient?
  3. Mengapa menggunakan gradient untuk optimasi iteratif?

Mari kita jawab masing-masing secara sistematis.

Apa itu Gradient?

Gradient

Gradient adalah slope dari tangent line terhadap fungsi pada titik tertentu.

Untuk setiap titik xx pada fungsi f(x)f(x):

  • Kita dapat menggambar tangent line pada titik tersebut
  • Slope dari tangent line ini adalah derivative fโ€ฒ(x)f'(x)
  • Slope ini memberi tahu kita seberapa curam fungsi meningkat atau menurun pada titik tersebut

Contoh Sederhana: Satu Variabel

Pertimbangkan fungsi f(x)=x2f(x) = x^2 pada titik x=2x = 2:

  1. Nilai fungsinya adalah: f(2)=4f(2) = 4
  2. Derivative-nya adalah: fโ€ฒ(x)=2xf'(x) = 2x
  3. Pada x=2x = 2, gradient-nya adalah: fโ€ฒ(2)=4f'(2) = 4

Ini memberitahu kita bahwa pada x=2x = 2, fungsi meningkat dengan slope 4. Jika kita bergerak sedikit ke kanan (meningkatkan xx), nilai fungsi akan meningkat sekitar 4 kali lebih cepat dari ukuran langkah kita.

๐Ÿ’ก Tangent Line dan Slope

Menemukan slope garis yang diberikan dua titik itu mudah. Menemukan slope tangent line (yang hanya menyentuh kurva pada satu titik) memerlukan kalkulusโ€”khususnya, derivative!

Derivative fโ€ฒ(x)f'(x) memberi kita tepat slope yang kita butuhkan pada setiap titik xx.

Menghitung Gradient: Dari Derivative ke Partial Derivative

Kasus Satu Variabel

Untuk fungsi satu variabel, menghitung gradient sangat mudah:

Derivative (Satu Variabel)

Derivative fโ€ฒ(x)f'(x) merepresentasikan slope dari f(x)f(x) pada titik xx.

Untuk linear regression dengan satu variabel, fungsi error kita adalah:

f(w)=โˆ‘i=1m(yiโˆ’(w0+w1xi))2f(w) = \sum_{i=1}^m (y_i - (w_0 + w_1x_i))^2

Kita menghitung derivative terhadap setiap bobot: โˆ‚fโˆ‚w0\frac{\partial f}{\partial w_0} dan โˆ‚fโˆ‚w1\frac{\partial f}{\partial w_1}

Banyak Variabel: Partial Derivative

Dalam linear regression, kita biasanya memiliki banyak bobot (satu untuk setiap fitur ditambah intercept). Bagaimana kita menghitung gradient ketika ada banyak variabel?

Partial Derivative

Partial derivative โˆ‚โˆ‚xif(x)\frac{\partial}{\partial x_i}f(\mathbf{x}) mengukur seberapa banyak ff berubah ketika kita hanya memvariasikan xix_i sambil menjaga semua variabel lain konstan.

Untuk metrik linear regression kita:

f(W)=โˆ‘i=1m(yiโˆ’(w0+w1xi1+w2xi2+โ‹ฏ+wnโˆ’1xinโˆ’1))2=โˆฅyโˆ’XWโˆฅ22f(W) = \sum_{i=1}^m (y_i - (w_0 + w_1x_{i1} + w_2x_{i2} + \cdots + w_{n-1}x_{in-1}))^2 = \|y - XW\|_2^2

Kita perlu menghitung partial derivative terhadap setiap bobot dalam WW.

Intuisi Partial Derivative

Bayangkan Anda berdiri di lereng bukit:

  • Partial derivative terhadap x memberi tahu Anda seberapa curam bukit jika Anda berjalan timur-barat
  • Partial derivative terhadap y memberi tahu Anda seberapa curam bukit jika Anda berjalan utara-selatan

Bersama-sama, partial derivative ini memberi tahu Anda โ€œlanskap kemiringanโ€ penuh di posisi Anda!

Gradient Vector

Gradient Vector

Gradient menggeneralisasi konsep derivative ke banyak dimensi. Ini adalah vektor yang berisi semua partial derivative:

โˆ‡xf(x)=[โˆ‚fโˆ‚x1โˆ‚fโˆ‚x2โ‹ฎโˆ‚fโˆ‚xn]\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-ii dari โˆ‡xf(x)\nabla_\mathbf{x}f(\mathbf{x}) adalah partial derivative dari ff terhadap xix_i.

๐Ÿ’ก Properti Critical Point

Pada minimum (atau maksimum) dari suatu fungsi, semua partial derivative sama dengan nol:

โˆ‡xf(x)=0\nabla_\mathbf{x}f(\mathbf{x}) = \mathbf{0}

Ini adalah bagaimana kita menemukan normal equationโ€”kita menetapkan gradient ke nol dan menyelesaikannya!

Mengapa Menggunakan Gradient untuk Optimasi?

Sekarang pertanyaan kuncinya: Mengapa mengikuti gradient membantu kita mengoptimalkan fungsi kita?

Convex Function: Satu Global Minimum

Convex Function

Metrik linear regression kita f(W)=โˆฅyโˆ’XWโˆฅ22f(W) = \|y - XW\|_2^2 adalah convex function. Convex function memiliki properti khusus:

Hanya memiliki satu minimumโ€”global minimum.

Ini berarti:

  • Tidak ada local minima untuk terjebak
  • Minimum apa pun yang kita temukan adalah solusi terbaik
  • Local minimum = Global minimum

Convex Function โœ“

Error Linear Regression

  • Permukaan berbentuk mangkuk
  • Titik minimum tunggal
  • Gradient descent selalu menemukannya
  • Konvergensi terjamin

Contoh: Sum of Squared Errors, mean squared error

Non-Convex Function โœ—

Lanskap Error Kompleks

  • Banyak local minima
  • Gradient descent mungkin terjebak
  • Solusi tergantung pada titik awal
  • Tidak ada jaminan konvergensi

Contoh: Neural networks, beberapa fungsi polinomial

๐Ÿ’ก Mengapa Convexity Penting

Karena fungsi error linear regression kita adalah convex:

  1. Kita dapat mulai dari titik acak mana pun
  2. Ikuti arah berlawanan dari gradient (turun)
  3. Kita dijamin mencapai global minimum pada akhirnya!

Inilah mengapa linear regression sangat andal dibandingkan dengan model yang lebih kompleks.

Directional Derivative: Bergerak ke Arah yang Benar

Mari kita buktikan secara matematis mengapa bergerak berlawanan dengan gradient meminimalkan fungsi kita.

Directional Derivative

Directional derivative dalam arah u\mathbf{u} (vektor unit) adalah derivative dari f(x+ฮฑu)f(\mathbf{x} + \alpha\mathbf{u}) terhadap ฮฑ\alpha, dievaluasi pada ฮฑ=0\alpha = 0.

Ini memberi tahu kita: โ€œSeberapa cepat ff berubah jika kita bergerak dalam arah u\mathbf{u}?โ€

Menggunakan chain rule, kita dapat menurunkan:

โˆ‚โˆ‚ฮฑf(x+ฮฑu)=โˆ‘iโˆ‚f(x+ฮฑu)โˆ‚(xi+ฮฑui)โˆ‚(xi+ฮฑui)โˆ‚ฮฑ=(โˆ‚(x+ฮฑu)โˆ‚ฮฑ)Tโˆ‡xf(x)=uTโˆ‡xf(x)\begin{aligned} \frac{\partial}{\partial \alpha} f(\mathbf{x} + \alpha \mathbf{u}) &= \sum_i \frac{\partial f(\mathbf{x} + \alpha \mathbf{u})}{\partial (x_i + \alpha u_i)} \frac{\partial (x_i + \alpha u_i)}{\partial \alpha} \\ &= \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}) \end{aligned}
๐Ÿ”

Hasil yang indah ini mengatakan: Laju perubahan dalam arah u\mathbf{u} hanyalah dot product dari arah dan gradient!

Menemukan Arah Terbaik

Sekarang, arah u\mathbf{u} mana yang meminimalkan fungsi kita dengan tercepat?

minโกu,โˆฅuโˆฅ2=1uTโˆ‡xf(x)=minโกu,โˆฅuโˆฅ2=1โˆฅuโˆฅ2โˆฅโˆ‡xf(x)โˆฅ2cosโกฮธ\begin{aligned} \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 \end{aligned}

di mana ฮธ\theta adalah sudut antara u\mathbf{u} dan gradient.

Karena u\mathbf{u} adalah vektor unit, โˆฅuโˆฅ2=1\|\mathbf{u}\|_2 = 1, dan kita dapat menyederhanakan:

minโกuโˆฅโˆ‡xf(x)โˆฅ2cosโกฮธ=minโกucosโกฮธ\min_{\mathbf{u}} \|\nabla_\mathbf{x}f(\mathbf{x})\|_2 \cos \theta = \min_{\mathbf{u}} \cos \theta
๐Ÿ’ก Arah Optimal

Minimum dari cosโกฮธ\cos \theta terjadi ketika ฮธ=180ยฐ\theta = 180ยฐ (atau ฯ€\pi radian).

Ini berarti: u\mathbf{u} harus menunjuk ke arah berlawanan dari gradient!

u=โˆ’โˆ‡xf(x)โˆฅโˆ‡xf(x)โˆฅ2\mathbf{u} = -\frac{\nabla_\mathbf{x}f(\mathbf{x})}{\|\nabla_\mathbf{x}f(\mathbf{x})\|_2}
๐ŸŽฏ

Insight Kunci: Untuk meminimalkan fungsi, bergerak ke arah berlawanan dari gradient. Inilah mengapa metode ini disebut gradient descentโ€”kita turun menuruni gradient!

Algoritma Gradient Descent

Sekarang kita dapat merumuskan algoritma lengkapnya!

Aturan Update Gradient Descent

Mulai dari titik sewenang-wenang x\mathbf{x}, kita memperbarui posisi kita menggunakan:

xnew=xoldโˆ’ฮตโˆ‡xf(xold)\mathbf{x}_{new} = \mathbf{x}_{old} - \varepsilon \nabla_\mathbf{x}f(\mathbf{x}_{old})

di mana ฮต\varepsilon disebut learning rate.

Untuk bobot linear regression WW:

Wnew=Woldโˆ’ฮตโˆ‡Wf(Wold)W_{new} = W_{old} - \varepsilon \nabla_W f(W_{old})

Gradient Descent dalam Aksi

Mari kita lalui satu iterasi:

  1. Mulai: Kita berada di titik W=[1.0,2.0]W = [1.0, 2.0] dengan error f(W)=10.5f(W) = 10.5
  2. Hitung gradient: โˆ‡Wf(W)=[2.5,โˆ’1.2]\nabla_W f(W) = [2.5, -1.2]
  3. Pilih learning rate: ฮต=0.1\varepsilon = 0.1
  4. Update: Wnew=[1.0,2.0]โˆ’0.1ร—[2.5,โˆ’1.2]=[0.75,2.12]W_{new} = [1.0, 2.0] - 0.1 \times [2.5, -1.2] = [0.75, 2.12]
  5. Error baru: f(Wnew)=9.3f(W_{new}) = 9.3 (menurun!)
  6. Ulangi sampai konvergen

Setelah banyak iterasi, kita mencapai bobot optimal!

Learning Rate: Seberapa Besar Langkah Kita?

Learning rate ฮต\varepsilon mengontrol seberapa jauh kita bergerak di setiap iterasi. Memilihnya sangat penting!

Learning Rate (ฮต)

Learning rate menentukan ukuran langkah dalam gradient descent:

  • Terlalu kecil โ†’ konvergensi sangat lambat
  • Terlalu besar โ†’ mungkin overshoot minimum atau diverge
  • Pas โ†’ konvergensi efisien ke minimum

Learning Rate Kecil

Kelebihan:

  • Stabil, kemajuan terjamin
  • Tidak akan overshoot minimum
  • Konvergensi lebih presisi

Kekurangan:

  • Konvergensi sangat lambat
  • Banyak iterasi diperlukan
  • Mahal secara komputasi

Learning Rate Besar

Kelebihan:

  • Kemajuan awal cepat
  • Lebih sedikit iterasi diperlukan
  • Efisien secara komputasi

Kekurangan:

  • Mungkin overshoot minimum
  • Dapat diverge atau berosilasi
  • Kurang stabil

Tiga Strategi Umum untuk Memilih Learning Rate

Strategi 1: Nilai Kecil Tetap

Pendekatan: Pilih nilai konstan kecil seperti ฮต=0.001\varepsilon = 0.001 atau ฮต=0.01\varepsilon = 0.01

Kelebihan:

  • Sederhana untuk diimplementasikan
  • Umumnya stabil
  • Bekerja baik untuk banyak masalah

Kekurangan:

  • Mungkin tidak efisien (terlalu lambat)
  • Memerlukan tuning manual

Kapan digunakan: Ketika Anda menginginkan kesederhanaan dan stabilitas, dan biaya komputasi tidak kritis.

Strategi 2: Exact Line Search

Pendekatan: Temukan ฮต\varepsilon di mana โˆ‡xf(x)=0\nabla_\mathbf{x}f(\mathbf{x}) = \mathbf{0}

Dengan kata lain, selesaikan:

minโกฮตf(xโˆ’ฮตโˆ‡xf(x))\min_\varepsilon f(\mathbf{x} - \varepsilon \nabla_\mathbf{x}f(\mathbf{x}))

Kelebihan:

  • Ukuran langkah optimal secara teoritis
  • Kemajuan maksimum per iterasi

Kekurangan:

  • Mahal secara komputasi (menyelesaikan masalah optimasi di setiap langkah!)
  • Sering tidak praktis

Kapan digunakan: Jarang dalam praktik, tetapi berguna untuk pemahaman teoritis.

Strategi 3: Backtracking Line Search (Paling Populer)

Pendekatan: Coba nilai ฮต\varepsilon yang berbeda dan pilih yang memberikan minimum f(xโˆ’ฮตโˆ‡xf(x))f(\mathbf{x} - \varepsilon \nabla_\mathbf{x}f(\mathbf{x}))

Algoritma:

  1. Mulai dengan kandidat ฮต\varepsilon (misalnya, 1.0)
  2. Evaluasi f(xโˆ’ฮตโˆ‡xf(x))f(\mathbf{x} - \varepsilon \nabla_\mathbf{x}f(\mathbf{x}))
  3. Jika tidak cukup menurun, kurangi ฮต\varepsilon (misalnya, ฮตโ†0.5ฮต\varepsilon \leftarrow 0.5\varepsilon)
  4. Ulangi sampai kita menemukan penurunan yang dapat diterima

Kelebihan:

  • Keseimbangan baik antara kecepatan dan akurasi
  • Adaptif terhadap lanskap fungsi
  • Digunakan dalam sebagian besar implementasi modern

Kekurangan:

  • Lebih kompleks dari fixed rate
  • Memerlukan beberapa evaluasi fungsi per iterasi

Kapan digunakan: Ini adalah metode paling populer dalam praktik!

โš ๏ธ Jebakan Learning Rate

Terlalu Kecil: Algoritma Anda akan memakan waktu selamanya untuk konvergen. Anda mungkin kehabisan anggaran komputasi sebelum mencapai minimum.

Terlalu Besar: Algoritma Anda mungkin:

  • Berosilasi di sekitar minimum tanpa mencapainya
  • Diverge sepenuhnya (error meningkat alih-alih menurun!)
  • Melompati solusi optimal berulang kali

Menemukan keseimbangan yang tepat sangat penting untuk machine learning praktis!

๐Ÿ’ก Metode Adaptive Modern

Machine learning modern menggunakan metode adaptive learning rate yang secara otomatis menyesuaikan ฮต\varepsilon selama training:

  • Adam: Menyesuaikan learning rate per parameter berdasarkan riwayat gradient
  • RMSprop: Menggunakan moving average dari squared gradient
  • AdaGrad: Beradaptasi berdasarkan informasi gradient kumulatif

Metode-metode ini menangani masalah learning rate secara otomatis, membuat deep learning jauh lebih praktis!

Menyatukan Semuanya

๐ŸŽ“

Gambaran Lengkap Gradient Descent:

  1. Masalah: Normal equation mahal secara komputasi (O(n3)O(n^3))
  2. Solusi: Gradient descentโ€”optimasi iteratif
  3. Cara kerjanya:
    • Mulai dengan bobot acak
    • Hitung gradient (arah peningkatan tercuram)
    • Bergerak berlawanan dengan gradient (turun)
    • Ulangi sampai konvergen
  4. Mengapa berhasil:
    • Error linear regression adalah convex
    • Gradient menunjuk ke peningkatan maksimum
    • Arah berlawanan menunjuk ke minimum
    • Dijamin mencapai global minimum!
  5. Parameter kunci: Learning rate mengontrol ukuran langkah

Perbandingan: Normal Equation vs. Gradient Descent

Normal Equation

W=(XTX)โˆ’1XTyW = (X^TX)^{-1}X^Ty

Keuntungan:

  • Solusi eksak dalam satu langkah
  • Tidak ada parameter untuk di-tune
  • Tidak perlu iterasi

Kerugian:

  • Kompleksitas O(n3)O(n^3)
  • Memerlukan matrix inversion
  • Tidak praktis untuk nn besar
  • Intensif memori

Gunakan ketika: Dataset kecil hingga menengah (n < 10.000)

Gradient Descent

Wnew=Woldโˆ’ฮตโˆ‡Wf(W)W_{new} = W_{old} - \varepsilon \nabla_W f(W)

Keuntungan:

  • Scalable ke dataset besar
  • O(n)O(n) per iterasi
  • Efisien memori
  • Fondasi untuk deep learning

Kerugian:

  • Memerlukan banyak iterasi
  • Harus tune learning rate
  • Solusi aproksimasi
  • Lebih lambat untuk konvergen

Gunakan ketika: Dataset besar (n > 10.000) atau real-time learning

Poin-Poin Penting

๐Ÿ“

Yang Telah Kita Pelajari:

  1. Gradient = slope dari tangent line pada suatu titik; arah peningkatan tercuram
  2. Partial derivative mengukur perubahan dalam satu variabel sementara yang lain tetap
  3. Gradient vector berisi semua partial derivative; menunjuk ke peningkatan maksimum
  4. Convex function memiliki satu global minimumโ€”sempurna untuk gradient descent
  5. Directional derivative dalam arah berlawanan gradient memberikan descent tercuram
  6. Learning rate mengontrol ukuran langkah; penting untuk kecepatan konvergensi dan stabilitas
  7. Gradient descent menukar solusi eksak dengan efisiensi komputasi

Pendekatan iteratif ini membentuk fondasi machine learning modern!

Soal Latihan

Level 1:

Untuk fungsi f(x)=x2โˆ’4x+5f(x) = x^2 - 4x + 5, hitung satu iterasi gradient descent mulai dari x=0x = 0 dengan learning rate ฮต=0.1\varepsilon = 0.1.

Klik untuk petunjuk Pertama, hitung derivative fโ€ฒ(x)f'(x), lalu evaluasi pada x=0x = 0, dan terakhir terapkan aturan update xnew=xoldโˆ’ฮตfโ€ฒ(xold)x_{new} = x_{old} - \varepsilon f'(x_{old}).

Klik untuk solusi

Langkah 1: Hitung derivative fโ€ฒ(x)=2xโˆ’4f'(x) = 2x - 4

Langkah 2: Evaluasi pada x=0x = 0 fโ€ฒ(0)=2(0)โˆ’4=โˆ’4f'(0) = 2(0) - 4 = -4

Langkah 3: Terapkan aturan update xnew=0โˆ’0.1ร—(โˆ’4)=0.4x_{new} = 0 - 0.1 \times (-4) = 0.4

Langkah 4: Verifikasi perbaikan

  • f(0)=0โˆ’0+5=5f(0) = 0 - 0 + 5 = 5
  • f(0.4)=0.16โˆ’1.6+5=3.56f(0.4) = 0.16 - 1.6 + 5 = 3.56 โœ“ (menurun!)

Nilai fungsi menurun dari 5 ke 3.56, mengkonfirmasi kita bergerak menuju minimum!

Level 2:

Mengapa linear regression sangat cocok untuk gradient descent dibandingkan dengan model machine learning lainnya? Properti apa yang membuatnya andal?

Klik untuk petunjuk Pikirkan tentang bentuk fungsi error dan jumlah minima yang dimilikinya.

Klik untuk solusi

Linear regression ideal untuk gradient descent karena:

  1. Fungsi error convex: Squared error โˆฅyโˆ’XWโˆฅ22\|y - XW\|_2^2 adalah convex, artinya memiliki bentuk mangkuk dengan satu minimum.

  2. Tidak ada local minima: Tidak seperti neural networks atau model polinomial, tidak ada risiko terjebak di local minima. Minimum apa pun yang kita temukan adalah global minimum.

  3. Gradient yang smooth: Fungsi error dapat didifferensiasi di mana-mana, menyediakan gradient yang smooth yang dengan andal menunjuk ke minimum.

  4. Konvergensi terjamin: Dengan learning rate yang tepat, gradient descent dijamin secara matematis untuk konvergen ke solusi optimal.

  5. Lanskap yang well-behaved: Tidak ada saddle point, plateau, atau fitur patologis lainnya yang mengganggu model yang lebih kompleks.

Kontras dengan neural networks: Neural networks memiliki permukaan error yang sangat non-convex dengan banyak local minima, membuat optimasi jauh lebih menantang. Inilah mengapa deep learning memerlukan teknik canggih seperti batch normalization, inisialisasi yang hati-hati, dan adaptive learning rate!

Level 3:

Implementasikan trace konseptual dari gradient descent untuk linear regression dengan satu variabel. Diberikan data point (1,3)(1, 3), (2,5)(2, 5), (3,7)(3, 7), bobot awal w0=0,w1=1w_0 = 0, w_1 = 1, dan learning rate ฮต=0.01\varepsilon = 0.01, hitung dua iterasi. Apa yang terjadi dengan error?

Klik untuk petunjuk Gradient dari f(W)=โˆ‘i(yiโˆ’(w0+w1xi))2f(W) = \sum_i (y_i - (w_0 + w_1x_i))^2 terhadap w0w_0 adalah โˆ’2โˆ‘i(yiโˆ’(w0+w1xi))-2\sum_i (y_i - (w_0 + w_1x_i)) dan terhadap w1w_1 adalah โˆ’2โˆ‘ixi(yiโˆ’(w0+w1xi))-2\sum_i x_i(y_i - (w_0 + w_1x_i)).

Klik untuk solusi

Keadaan awal: w0=0,w1=1w_0 = 0, w_1 = 1

Iterasi 1:

Hitung prediksi:

  • y^1=0+1(1)=1\hat{y}_1 = 0 + 1(1) = 1, error: e1=3โˆ’1=2e_1 = 3 - 1 = 2
  • y^2=0+1(2)=2\hat{y}_2 = 0 + 1(2) = 2, error: e2=5โˆ’2=3e_2 = 5 - 2 = 3
  • y^3=0+1(3)=3\hat{y}_3 = 0 + 1(3) = 3, error: e3=7โˆ’3=4e_3 = 7 - 3 = 4

SSE = 22+32+42=4+9+16=292^2 + 3^2 + 4^2 = 4 + 9 + 16 = 29

Hitung gradient: โˆ‚fโˆ‚w0=โˆ’2(2+3+4)=โˆ’18\frac{\partial f}{\partial w_0} = -2(2 + 3 + 4) = -18 โˆ‚fโˆ‚w1=โˆ’2(1โ‹…2+2โ‹…3+3โ‹…4)=โˆ’2(2+6+12)=โˆ’40\frac{\partial f}{\partial w_1} = -2(1 \cdot 2 + 2 \cdot 3 + 3 \cdot 4) = -2(2 + 6 + 12) = -40

Update bobot: w0new=0โˆ’0.01(โˆ’18)=0.18w_0^{new} = 0 - 0.01(-18) = 0.18 w1new=1โˆ’0.01(โˆ’40)=1.40w_1^{new} = 1 - 0.01(-40) = 1.40

Iterasi 2: w0=0.18,w1=1.40w_0 = 0.18, w_1 = 1.40

Hitung prediksi:

  • y^1=0.18+1.40(1)=1.58\hat{y}_1 = 0.18 + 1.40(1) = 1.58, error: e1=3โˆ’1.58=1.42e_1 = 3 - 1.58 = 1.42
  • y^2=0.18+1.40(2)=2.98\hat{y}_2 = 0.18 + 1.40(2) = 2.98, error: e2=5โˆ’2.98=2.02e_2 = 5 - 2.98 = 2.02
  • y^3=0.18+1.40(3)=4.38\hat{y}_3 = 0.18 + 1.40(3) = 4.38, error: e3=7โˆ’4.38=2.62e_3 = 7 - 4.38 = 2.62

SSE = 1.422+2.022+2.622=2.02+4.08+6.86=12.961.42^2 + 2.02^2 + 2.62^2 = 2.02 + 4.08 + 6.86 = 12.96

Hasil: Error menurun dari 29 โ†’ 12.96! Gradient descent bekerja!

Dengan lebih banyak iterasi, error akan terus menurun sampai mencapai solusi optimal: w0=1,w1=2w_0 = 1, w_1 = 2 (hubungan sebenarnya adalah y=1+2xy = 1 + 2x).

Referensi

  1. Goodfellow, I., Bengio, Y., & Courville, A. - Deep Learning (Chapter 4: Numerical Computation)
  2. Boyd, S., & Vandenberghe, L. - Convex Optimization
  3. Nocedal, J., & Wright, S. - Numerical Optimization
  4. Veytsman, B. - Convex and Concave Functions Visualization

Selanjutnya Apa?

Sekarang setelah Anda memahami gradient descent untuk linear regression, Anda siap untuk menjelajahi:

  • Stochastic Gradient Descent (SGD): Menghitung gradient pada batch kecil daripada seluruh dataset
  • Advanced Optimizer: Adam, RMSprop, dan metode adaptive lainnya
  • Regularization: L1 dan L2 penalty untuk mencegah overfitting
  • Non-linear Model: Memperluas konsep ini ke neural networks!

Gradient descent adalah kuda pekerja machine learning modern. Kuasai ini, dan Anda telah membuka fondasi deep learning!