Lecture 1: Foundations of Deep Learning ยท Tipe: video
Status: completed
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.
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.
Di mana:
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
Fungsi aktivasi memperkenalkan non-linearitas ke dalam model. Tanpa non-linearitas, seluruh jaringan akan kolaps menjadi transformasi linear biasa โ tidak peduli seberapa dalam.
| Aktivasi | Range | Use Case |
|---|---|---|
| Sigmoid | (0, 1) | Probabilitas, binary classification |
| ReLU | [0, โ) | Hidden layers, non-negativity |
| Tanh | (-1, 1) | Centered outputs, RNNs |
| Softmax | (0, 1) โ sum=1 | Multi-class classification |
Jaringan neural dibangun dengan menumpuk neuron menjadi layer, lalu menumpuk layer menjadi arsitektur dalam.
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)
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
])
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)
)
Loss adalah selisih antara prediksi (ลท) dan nilai sebenarnya (y). Semakin kecil loss, semakin baik model.
Training = mencari bobot W yang meminimalkan loss J(W) di seluruh dataset.
ฮท (eta) = learning rate โ seberapa besar langkah yang diambil setiap iterasi.
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
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)
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.
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)
Pantau loss di validation set (data yang tidak dilihat model saat training). Begitu validation loss mulai naik โ hentikan training. Simpan checkpoint terbaik.
introtodeeplearning.com/slides๐ 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