NumPy cho AI: từ dữ liệu tới mô hình

Bài 6/615 phút

Ghép mọi thứ lại: chuẩn hóa dữ liệu, một lớp mạng, softmax và hàm mất mát — tất cả chỉ vài dòng NumPy. Đây là xương sống bạn sẽ gặp lại trong khóa Nhập môn AI và PyTorch.

mo_hinh_nho.py
rng = np.random.default_rng(0)
X = rng.normal(size=(100, 4))            # 100 mẫu, 4 đặc trưng
y = rng.integers(0, 3, size=100)          # 3 lớp

X = (X - X.mean(0)) / X.std(0)             # chuẩn hóa z-score
W = rng.normal(0, 0.1, size=(4, 3)); b = np.zeros(3)

logits = X @ W + b                         # (100, 3)
z = logits - logits.max(1, keepdims=True)
probs = np.exp(z) / np.exp(z).sum(1, keepdims=True)
loss = -np.log(probs[np.arange(100), y]).mean()   # cross-entropy
acc = (probs.argmax(1) == y).mean()
print(f"loss={loss:.3f}  accuracy={acc:.2%}")

Dùng np.random.default_rng(seed) thay cho np.random.seed — mỗi bộ sinh số có trạng thái riêng, kết quả lặp lại được và không ảnh hưởng nhau.