How do we see the world? (Bagaimana Kita Memandang Dunia?)
🍪 Kasus Linear: Cookies vs Weight
Linear Model"The more cookies I eat, the more weight I gain."
Jika variabel \(A\) naik, maka variabel \(B\) naik dengan pola arah yang konsisten.
Hasil Prediksi Garis: 6 Kg (Persamaan: \(y = 0 + 2x\))
😊 Mood vs Waktu (Non-linear)
Non-linear Model"I am not necessarily always happier as time passes."
Jika \(A\) naik, nilai \(B\) bisa naik-turun bergantian secara dinamis.
Say it in Mathematics: Menghubungkan Titik Menjadi Garis (Slide 17 - 22)
Penjelasan Konsep
Dari data titik \((1, 2)\) dan \((2, 4)\), kita dapat menarik sebuah garis lurus yang melewati kedua titik tersebut.
Kekuatan Garis: Dengan model garis ini, kita bisa memprediksi penambahan berat badan untuk sembarang jumlah cookie:
• 3 cookies \(\rightarrow 2 \times 3 = 6\) Kg
• 5 cookies \(\rightarrow 2 \times 5 = 10\) Kg
• 10 cookies \(\rightarrow 2 \times 10 = 20\) Kg
Eksplorasi Parameter: Slope (\(\theta_1\)) & Intercept (\(\theta_0\))
Menunjukkan seberapa curam tanjakan garis (rasio kenaikan y per satuan x).
Menunjukkan nilai \(y\) saat \(x = 0\) (menggeser garis ke atas atau ke bawah secara sejajar).
Kasus Nyata: Harga Rumah & Konsep Model Generalization
Dataset Sampel Rumah (Slide 33)
Bentuk data umum dalam machine learning: \((x^{(i)}, y^{(i)}); i = 1, \dots, m\)
| i | Luas Rumah (x) [m²] | Harga (y) [Juta Rp] |
|---|
Pertanyaan Kunci Kuliah (Slide 33 & 35):
"What is the price of a house if the area is 558 m²?"
Apa itu Model Generalization? (Slide 36-38)
Tujuan kita adalah memprediksi \(\hat{y}\) yang belum pernah dilihat (unseen) berdasarkan data baru \(\hat{x}\). Model yang baik adalah model yang dapat menggeneralisasi tren data, bukan sekadar menghafal.
Plot Sebaran Data & Pilihan Model Garis
Pilih model untuk melihat perbandingan (Slide 39 - 45)
Cost Function (Fungsi Biaya) & Lembah Parabola
Error setiap titik: \(h_\theta(x^{(i)}) - y^{(i)}\) adalah jarak vertikal dari titik data ke garis. Kita kuadratkan agar bernilai positif dan memberi penalti lebih besar pada error jauh!
"Informally, a good line/model is the one that is generally close to all data points. Total distance is called error; the lower it is, the better." (Slide 30-32).
Simulasi Interaktif Gradient Descent
Contoh Perhitungan Step-by-Step Gradient Descent di Kelas
1 Tabel Evaluasi Titik Data & Gradien Parsial
| Data ke-i | Input \(x^{(i)}\) | Target Aktual \(y^{(i)}\) | Prediksi \(\hat{y} = h(x)\) | Error \((h - y)\) | Kuadrat \((h - y)^2\) | Gradien \(\theta_0\): \((h - y)\) | Gradien \(\theta_1\): \((h - y) \cdot x\) |
|---|
2 Perhitungan Cost Function \(J(\theta)\)
3 Pembaruan Nilai Bobot \(\theta_0\) dan \(\theta_1\)
Bagaimana Cara Menurunkan (Diferensiasi) \(J(\theta)\) ke \(\theta_0\) dan \(\theta_1\)?
Banyak mahasiswa bingung dari mana datangnya rumus turunan di Slide 41 dan 46. Di bawah ini adalah langkah pembuktian matematikanya yang sangat jelas dan mudah dipahami:
1 Tuliskan Fungsi Biaya Secara Eksplisit
Model garis kita adalah \(h_\theta(x^{(i)}) = \theta_0 + \theta_1 x^{(i)}\). Masukkan ini ke dalam fungsi biaya \(J(\theta)\):
2 Gunakan Aturan Rantai (Chain Rule)
Misalkan bagian dalam tanda kurung adalah \(u = h_\theta(x^{(i)}) - y^{(i)}\). Maka kita sedang menurunkan fungsi kuadrat \(\frac{1}{2} u^2\):
3 Turunan Terhadap \(\theta_0\) (Intercept)
Karena diturunkan terhadap \(\theta_0\), maka \(\theta_1 x^{(i)}\) dan \(y^{(i)}\) diperlakukan sebagai konstanta (turunannya = 0):
Masukkan kembali ke aturan rantai:
4 Turunan Terhadap \(\theta_1\) (Slope)
Karena diturunkan terhadap \(\theta_1\), maka \(\theta_0\) dan \(y^{(i)}\) adalah konstanta, sedangkan turunan dari \(\theta_1 x^{(i)}\) terhadap \(\theta_1\) adalah \(x^{(i)}\):
Masukkan kembali ke aturan rantai:
Intuisi Fisik / Geometris (Untuk Ditanyakan ke Mahasiswa di Kelas):
Karena \(\theta_0\) adalah intercept yang menggeser garis ke atas atau ke bawah secara paralel. Pergeseran ini berdampak sama rata pada semua titik data, berapapun nilai \(x\)-nya.
Karena \(\theta_1\) adalah slope yang memutar kemiringan garis. Semakin jauh suatu titik dari sumbu nol (\(x\) semakin besar), dampak rotasi garis terhadap perubahan ketinggian vertikal akan semakin besar (proporsional terhadap \(x\)).
Prosedur Pelatihan Regresi Linear & Kode R
Linear Regression: The Procedure (Slide 46)
Pick Initial Model
Pilih model awal \(h(\theta)\) dengan menginisialisasi parameter \(\theta\) secara acak (random guess).
Compute Cost Function
Hitung nilai fungsi biaya: \[J(\theta) = \frac{1}{2} \sum_{i=1}^m (h_\theta(x^{(i)}) - y^{(i)})^2\]
Update Parameter
Perbarui \(\theta\) agar \(J(\theta)\) semakin kecil via Gradient Descent: \[\theta_j := \theta_j - \alpha \frac{\partial}{\partial \theta_j} J(\theta)\]
Repeat Until Converges
Ulangi langkah 2 dan 3 sampai garis konvergen (mencapai dasar lembah dengan error minimum).
Continuous vs Discrete (Slide 47)
Selama ini kita mengasumsikan target \(y\) adalah kontinu (misalnya harga rumah, berat badan, tinggi badan, suhu).
Misal: Lulus/Gagal (Pass/Fail), Ya/Tidak (Yes/No), 1/0. Ini membentuk pola non-linear dan mengarah ke tugas Klasifikasi (Classification), yang nantinya akan dipelajari menggunakan Logistic Regression.
Praktik R (Slide 49 & 50)
R Script# Example 1: Simple Linear Regression (Regresi Linear Sederhana)
library(MASS)
lm.fit <- lm(medv ~ lstat, data = Boston)
# Check model summary & coefficients (Periksa ringkasan model)
summary(lm.fit)
# Plot data points & regression line (Visualisasi data & garis)
plot(Boston$lstat, Boston$medv)
abline(lm.fit, col = "red", lwd = 2)
# Example 2: Multiple Linear Regression (Regresi Linear Berganda)
lm.fit_all <- lm(medv ~ ., data = Boston)
summary(lm.fit_all)
Logistic Regression: Klasifikasi Variabel Diskret
Pada regresi linear, target \(y\) diasumsikan kontinu (misal harga rumah, berat badan).
"What if \(y\) is discrete? E.g., pass/fail, yes/true, 1/0, etc, that leads to nonlinear fashion and a classification task." (Slide 4).
Plot Sebaran Jam Belajar vs Status Ujian
Pilih model untuk mengamati kegagalan garis linear vs sigmoid
Fungsi Sigmoid (Slide 11):
\(h(x) = g(\theta^T x)\)Simulasi Prediksi Mahasiswa Baru:
Binary Cross-Entropy (Log Loss)
Suku kedua \((1 - y) \log(1 - h)\) bernilai 0. Biaya murni dihitung dari:
Suku pertama \(-y \log(h)\) bernilai 0. Biaya murni dihitung dari:
Simulasi Live Training Logistic Regression
Papan Kalkulasi Step-by-Step Logistic Regression
| Mahasiswa i | Jam Belajar (x) | Target Aktual (y) | Skor Linear \(z = \theta_0 + \theta_1 x\) | Prediksi \(h = \sigma(z)\) | Error \((h - y)\) | Loss \(-[y \log h + (1-y)\log(1-h)]\) | Gradien \(\theta_0\): \((h - y)\) | Gradien \(\theta_1\): \((h - y) \cdot x\) |
|---|
1 Perhitungan Cross-Entropy Loss \(J(\theta)\)
2 Pembaruan Bobot \(\theta_0\) dan \(\theta_1\) via Gradient Descent
Mengapa Turunan Logistic Regression Persis Sama dengan Linear Regression?
Banyak mahasiswa dan pembelajar terkejut saat melihat rumus pembaruan Gradient Descent di Slide 12: meskipun fungsi hipotesisnya rumit (Sigmoid) dan fungsi biayanya berbentuk logaritma (Cross-Entropy), hasil turunannya tetap:
Jika \(g(z) = \frac{1}{1 + e^{-z}}\), turunannya adalah perkalian anggun:
Turunan fungsi biaya \(J\) terhadap prediksi \(h\) menghasilkan:
Saat digabungkan dengan Aturan Rantai:
Penyebut \(h(1-h)\) dicoret sempurna oleh turunan sigmoid!