โ† Kembali ke Deep Learning

Kuliah 1: Fondasi Deep Learning

Lecture 1: Foundations of Deep Learning ยท Tipe: video

Status: completed

๐Ÿ“ Paper Bahasa Indonesia

๐ŸŽฏ Ringkasan Kuliah

Kuliah pertama MIT 6.S191 โ€” Introduction to Deep Learning oleh Alexander Amini membangun fondasi matematika deep learning dari nol. Dimulai dari satu neuron (perceptron), kita naik level ke jaringan multi-layer, backpropagation, gradient descent, hingga teknik regularisasi modern.

๐Ÿ—๏ธ Konsep Kunci: Deep Learning = subset dari Machine Learning = subset dari AI. Bedanya: deep learning menggunakan jaringan saraf dalam (deep neural networks) untuk belajar langsung dari data mentah โ€” tanpa perlu rekayasa fitur manual oleh manusia.

๐Ÿง  1. Single Neuron (Perceptron)

Neuron adalah unit paling fundamental dalam deep learning. Satu neuron menerima m input, mengalikan setiap input dengan bobot (weight), menjumlahkan semuanya, menambahkan bias, lalu melewatkannya melalui fungsi aktivasi non-linear.

๐Ÿ“ Rumus Matematika

ลท = g( Xโ‚ยทWโ‚ + Xโ‚‚ยทWโ‚‚ + ... + Xโ‚˜ยทWโ‚˜ + Wโ‚€ )
ลท = g( X ยท W + b )

Di mana:

๐Ÿ Implementasi Python (dari nol)

import numpy as np

class SingleNeuron:
    def __init__(self, n_inputs):
        self.W = np.random.randn(n_inputs)  # bobot
        self.b = np.random.randn()           # bias
    
    def sigmoid(self, z):
        return 1 / (1 + np.exp(-z))
    
    def forward(self, X):
        z = np.dot(X, self.W) + self.b      # dot product + bias
        return self.sigmoid(z)               # aktivasi

# Contoh: neuron dengan 3 input
neuron = SingleNeuron(3)
X = np.array([0.5, -1.2, 0.8])
y_pred = neuron.forward(X)
print(f"Prediksi: {y_pred:.4f}")  # output antara 0-1

๐Ÿ“ˆ 2. Fungsi Aktivasi (Activation Functions)

Fungsi aktivasi memperkenalkan non-linearitas ke dalam model. Tanpa non-linearitas, seluruh jaringan akan kolaps menjadi transformasi linear biasa โ€” tidak peduli seberapa dalam.

Jenis-jenis Aktivasi Utama

AktivasiRangeUse Case
Sigmoid(0, 1)Probabilitas, binary classification
ReLU[0, โˆž)Hidden layers, non-negativity
Tanh(-1, 1)Centered outputs, RNNs
Softmax(0, 1) โ€” sum=1Multi-class classification
๐Ÿ’ก Mengapa perlu non-linear? Data dunia nyata sangat non-linear. Contoh sederhana: tidak ada garis lurus yang bisa memisahkan titik merah dari titik hijau di dataset spiral. Dengan aktivasi non-linear, model bisa "menggambar kurva" di decision boundary.

๐Ÿ—๏ธ 3. Dari Neuron โ†’ Jaringan Neural

Jaringan neural dibangun dengan menumpuk neuron menjadi layer, lalu menumpuk layer menjadi arsitektur dalam.

Arsitektur Forward Pass

Input (X) โ”€โ”€โ†’ [Layer 1: Wโ‚,bโ‚ + ReLU] โ”€โ”€โ†’ [Layer 2: Wโ‚‚,bโ‚‚ + ReLU] โ”€โ”€โ†’ Output (ลท)

# Setiap layer melakukan 3 langkah:
# 1. Matrix multiply: X @ W
# 2. Tambah bias: + b
# 3. Aktivasi non-linear: g(z)

๐Ÿ TensorFlow / Keras

import tensorflow as tf

model = tf.keras.Sequential([
    tf.keras.layers.Dense(128, activation='relu', input_shape=(784,)),
    tf.keras.layers.Dense(64, activation='relu'),
    tf.keras.layers.Dense(10, activation='softmax')  # 10 kelas
])

๐Ÿ”ฅ PyTorch

import torch.nn as nn

model = nn.Sequential(
    nn.Linear(784, 128),
    nn.ReLU(),
    nn.Linear(128, 64),
    nn.ReLU(),
    nn.Linear(64, 10),
    nn.Softmax(dim=1)
)

๐Ÿ“‰ 4. Loss Function โ€” Mengukur Error

Loss adalah selisih antara prediksi (ลท) dan nilai sebenarnya (y). Semakin kecil loss, semakin baik model.

Dua Jenis Loss Utama

  • Binary Cross-Entropy: Untuk klasifikasi biner (ya/tidak). Output model berupa probabilitas 0โ€“1, dicocokkan dengan label 0/1.
  • Mean Squared Error (MSE): Untuk regresi (nilai kontinu). Menghitung rata-rata kuadrat selisih prediksi vs aktual.

๐Ÿ“‰ 5. Gradient Descent โ€” Belajar dari Error

Training = mencari bobot W yang meminimalkan loss J(W) di seluruh dataset.

Algoritma Gradient Descent

  1. Inisialisasi: Bobot W di-acak
  2. Forward pass: Hitung prediksi ลท dan loss J
  3. Backward pass (backpropagation): Hitung gradien โˆ‚J/โˆ‚W โ€” arah kemiringan loss
  4. Update: W โ† W โˆ’ ฮท ยท โˆ‚J/โˆ‚W (melangkah berlawanan arah gradien)
  5. Ulangi sampai konvergen
Update Rule:
W_baru = W_lama โˆ’ ฮท ยท โˆ‡J(W)

ฮท (eta) = learning rate โ€” seberapa besar langkah yang diambil setiap iterasi.

๐Ÿงฎ Backpropagation = Chain Rule

Backpropagation hanyalah aplikasi aturan rantai (chain rule) dari kalkulus. Gradien dihitung mundur dari output โ†’ input:

โˆ‚J/โˆ‚Wโ‚ = โˆ‚J/โˆ‚ลท  ร—  โˆ‚ลท/โˆ‚zโ‚‚  ร—  โˆ‚zโ‚‚/โˆ‚aโ‚  ร—  โˆ‚aโ‚/โˆ‚zโ‚  ร—  โˆ‚zโ‚/โˆ‚Wโ‚
         โ†‘ output   โ†‘ layer 2   โ†‘ aktivasi โ†‘ layer 1   โ†‘ weight

โš™๏ธ 6. Training Praktis

๐ŸŽฏ Batch Size

๐Ÿ“ Learning Rate

โš ๏ธ Terlalu kecil: Konvergensi lambat, bisa terjebak di local minimum palsu.
โš ๏ธ Terlalu besar: Overshoot, loss meledak (divergence), tidak pernah konvergen.

๐Ÿš€ Optimizer Modern: Adam

Hampir tidak ada yang pakai SGD vanilla di production. Adam (Adaptive Moment Estimation) adalah standar de facto โ€” learning rate adaptif per parameter + momentum:

# TensorFlow
model.compile(optimizer='adam', loss='binary_crossentropy')

# PyTorch
optimizer = torch.optim.Adam(model.parameters(), lr=0.001)

๐Ÿ›ก๏ธ 7. Regularisasi โ€” Melawan Overfitting

Overfitting: Model terlalu "menghafal" data training โ€” bagus di training, jelek di data baru.
Underfitting: Model terlalu sederhana โ€” bahkan tidak bisa menangkap pola di data training.

๐ŸŽฒ Dropout

Pada setiap iterasi training, random 50% neuron di-hidden-layer dimatikan. Ini memaksa jaringan tidak bergantung pada satu jalur spesifik โ†’ generalisasi lebih baik.

# TensorFlow
tf.keras.layers.Dropout(0.5)

# PyTorch  
nn.Dropout(p=0.5)

โน๏ธ Early Stopping

Pantau loss di validation set (data yang tidak dilihat model saat training). Begitu validation loss mulai naik โ†’ hentikan training. Simpan checkpoint terbaik.

๐Ÿ“Š Pola Klasik:
Training loss โ†“ terus
Validation loss โ†“ awalnya ... lalu โ†‘ (di sinilah early stopping)

๐ŸŽ“ Rangkuman: Pipeline Training Neural Network

  1. ๐Ÿ’ฝ Siapkan data โ€” split training / validation / test
  2. ๐Ÿ—๏ธ Bangun arsitektur โ€” stack Dense/Linear layers + aktivasi
  3. ๐Ÿ“ Pilih loss function โ€” cross-entropy (klasifikasi) atau MSE (regresi)
  4. ๐Ÿš€ Pilih optimizer โ€” Adam sebagai default
  5. ๐Ÿ”„ Training loop: forward pass โ†’ hitung loss โ†’ backward pass โ†’ update bobot
  6. ๐Ÿ›ก๏ธ Regularisasi: Dropout + Early Stopping
  7. ๐Ÿ“Š Evaluasi di test set โ€” jangan sentuh test set sampai model final!

๐Ÿ”‘ 3 Hal yang HARUS Diingat

  1. 1 neuron = dot product + bias + aktivasi non-linear โ†’ building block segalanya
  2. Backpropagation = chain rule โ€” hitung gradien mundur dari output ke input
  3. Deep = banyak layer bertumpuk โ€” tidak ada yang ajaib, hanya komposisi transformasi linear + non-linear

๐Ÿ“š Referensi

๐Ÿ“… Kuliah berikutnya: Lecture 2 โ€” Sequence Models (RNN, LSTM, Transformers) oleh Ava

Keyword: deep learning, perceptron, backpropagation, gradient descent, neural network, aktivasi, dropout, Adam, TensorFlow, PyTorch, MIT 6.S191 ยท Status: published