Một bước cập nhật gradient descent
Một bước hạ gradient lấy trọng số trừ đi tích của learning rate và gradient. Toàn bộ quá trình huấn luyện chỉ là lặp lại phép tính này, nên hiểu đúng một bước là hiểu cả vòng lặp.

Bóc tách cỗ máy huấn luyện mạng nơ-ron: tự tính đạo hàm chuỗi (chain rule), cập nhật trọng số, ổn định số học và kiểm soát hiện tượng overfitting.
bài tập có chấm code
Bài tập theo chuyên đề, có đề bài, ví dụ và starter code riêng.
cơ bản
Củng cố nền tảng và làm quen với kỹ thuật cốt lõi.
trung bình
Kết hợp nhiều bước suy luận để vận dụng kiến thức.
nâng cao
Thử thách tối ưu, cấu trúc dữ liệu và thuật toán chuyên sâu.
Lan truyền tiến (forward) và lan truyền ngược (backward) nhiều tầng bằng NumPy.
Cài đặt ReLU, GELU và Softmax trừ max để tránh tràn số số học.
Cài đặt SGD với Momentum, RMSprop và AdamW có trọng số suy giảm.
Tự viết lớp Dropout ngẫu nhiên và Batch Normalization chuẩn hóa mini-batch.
Sai kích thước ma trận chuyển vị (transpose) khi nhân đạo hàm trong lan truyền ngược.
Quên chuyển mạng sang chế độ eval() khi đánh giá khiến Dropout hoặc BatchNorm vẫn hoạt động sai.
Trong mỗi mức độ, bài tập được xếp từ dễ nhất đến khó nhất — hãy đi theo số bước.
Nhập xuất, biến, rẽ nhánh và các bước suy luận đơn giản.
Một bước hạ gradient lấy trọng số trừ đi tích của learning rate và gradient. Toàn bộ quá trình huấn luyện chỉ là lặp lại phép tính này, nên hiểu đúng một bước là hiểu cả vòng lặp.
Một nơ-ron tuyến tính tính tích vô hướng giữa đầu vào và trọng số rồi cộng thêm bias. Bias cho phép đường quyết định dịch chuyển mà không phụ thuộc đầu vào, nên thiếu nó mô hình ké…
Cross-entropy đo mức bất ngờ của kết quả thật theo xác suất mô hình gán cho nó: mô hình càng tự tin vào đáp án sai thì mất mát càng lớn, và tăng vô hạn khi xác suất tiến về 0.
Hinge loss là hàm mất mát của SVM: nó chỉ phạt khi mẫu bị phân loại sai hoặc nằm trong lề. Khi mẫu đã đúng và nằm ngoài lề, mất mát bằng 0 nên mô hình tập trung vào các mẫu khó.
Binary cross-entropy chỉ phạt một nửa công thức tuỳ theo nhãn thật: nhãn 1 phạt theo xác suất dự đoán lớp dương, nhãn 0 phạt theo xác suất dự đoán lớp âm. Vì vậy hai mẫu có cùng xá…
Trong mạng nơ-ron, hàm kích hoạt phi tuyến cho phép mạng xấp xỉ các hàm số phức tạp. Khi thực hiện Backpropagation, ta cần tính đạo hàm giải tích của từng hàm kích hoạt:
Vòng lặp, mảng một chiều, chuỗi và hàm ở mức cơ bản.
Trong PyTorch và NumPy, khi thực hiện phép cộng bias vào đầu ra ma trận Y = Z + b với Z ∈ RB × S × D (Batch, Sequence, Dim) và b ∈ RD, cơ chế br…
Trong bài toán hồi quy tọa độ Bounding Box (Fast R-CNN) và dự đoán giá trị liên tục, hàm mất mát bình phương MSE (L2) rất nhạy cảm với các điểm dữ liệu nhiễu ngoại lai (outliers),…
ReLU (max(0, x)) là hàm kích hoạt mặc định của hầu hết mạng nơ-ron hiện đại vì rẻ và ít bị triệt tiêu gradient. Áp dụng lên từng giá trị của một feature là bước quen thuộc khi mô…
Sigmoid nén mọi giá trị thực về khoảng (0, 1), nên dùng cho xác suất ở bài phân loại nhị phân và cho các cổng trong mạng hồi quy.
Softmax biến logits thành phân phối xác suất: mọi giá trị dương và tổng bằng 1. Đây là bước chuẩn hoá đầu ra của mọi mô hình phân loại đa lớp.
Kẹp gradient chặn hiện tượng gradient bùng nổ trong mạng sâu và RNN. Nếu chuẩn của gradient vượt ngưỡng, ta co cả vector theo cùng một tỉ lệ, nên hướng cập nhật không đổi mà chỉ độ…
Dùng một kỹ thuật quen thuộc: sắp xếp, tìm kiếm, đếm, ngăn xếp.
Trong các mô hình Transformer và Phân loại Đa lớp, vector logits đầu ra của mạng nơ-ron có thể đạt giá trị 1000.0. Một công thức ngây thơ ez∑ ez sẽ lập tức tạo ra…
mask ∼ Bernoulli(1 - p), y = x ⊙ mask1 - p
1. Tính chuẩn L2 tổng thể trên toàn bộ các tensor gradient:
1. Giai đoạn Warmup (t ≤ Twarmup): Tăng tuyến tính từ 0 lên lrmax để tránh gradient khổng lồ ở các epoch đầu phá hủy các trọng số khởi tạo ngẫu nhiên.
Trong công trình đột phá năm 2010 của Xavier Glorot và Yoshua Bengio, nguyên nhân khiến mạng nơ-ron sâu không hội tụ được chứng minh là do phương sai tín hiệu bị thu hẹp hoặc bùng…
Năm 2015, Kaiming He (tác giả ResNet) chỉ ra rằng khởi tạo Xavier thất bại trên mạng dùng ReLU: vì ReLU triệt tiêu hoàn toàn một nửa miền âm (x < 0 ⇒ y = 0), phương sai của…
Trong học máy, khi tính chuẩn hóa xác suất hoặc hàm Cross-Entropy Loss, ta thường xuyên phải tính:
Trong bài toán phân loại nhị phân hoặc đa nhãn (Multi-Label Classification), hàm mất mát Binary Cross-Entropy (BCE) cho một mẫu có logit z và nhãn y ∈ {0, 1} là:
Trong bài báo kinh điển *Rethinking the Inception Architecture* (Szegedy et al., 2016), các tác giả chỉ ra rằng việc huấn luyện mạng với nhãn One-Hot tuyệt đối (yk = 1) buộc mô hì…
Trong bài báo đoạt giải của Tsung-Yi Lin et al. (RetinaNet, ICCV 2017), hàm Focal Loss được thiết kế để giải quyết bài toán mất cân bằng lớp cực đoan (khi số lượng mẫu âm nền áp đả…
Trong lý thuyết thông tin và học tăng cường với phản hồi từ con người (RLHF), độ phân kỳ Kullback-Leibler (KL Divergence / Relative Entropy) đo lường sự khác biệt giữa phân phối xá…
Trong huấn luyện LLM, một batch size hiệu dụng lý tưởng thường là 512 hoặc 1024 câu. Tuy nhiên, bộ nhớ VRAM của GPU chỉ đủ chứa một micro-batch nhỏ kích thước 4 hoặc 8.
Trong huấn luyện RNN và LLM, khi chuỗi ngữ cảnh dài, tích các ma trận trọng số trong lan truyền ngược có thể khiến gradient tăng theo cấp số nhân thành hàng triệu (Exploding Gradie…
Phối hợp hai kỹ thuật trong cùng một lời giải.
Trong tiền huấn luyện mô hình ngôn ngữ lớn (như GPT-3, Chinchilla, Llama 3), chiến lược điều chỉnh learning rate thống trị là Linear Warmup kết hợp Cosine Annealing Decay:
1. Nếu có L2 Weight Decay (λ > 0): gt ← gt + λ · wt.
1. Xây dựng lớp TextSequenceDataset(torch.utils.data.Dataset):
Xây dựng lớp EarlyStoppingManager:
μ = 1D ∑j=1D xj, σ2 = 1D ∑j=1D (xj - μ)2
Phát minh vĩ đại của Kaiming He trong kiến trúc ResNet và Vaswani trong Transformer là khối kết nối tắt Residual Connection (Skip Connection):
Trong quá trình huấn luyện mạng nơ-ron, tốc độ học (learning rate η) cố định thường khiến mô hình khó hội tụ vào cực tiểu địa phương tối ưu. Kỹ thuật giảm dần tốc độ học (Learni…
AdaGrad (Duchi et al., 2011) là thuật toán tối ưu hóa tiên phong đặt nền móng cho học thích nghi (Adaptive Learning Rate). Thay vì dùng một learning rate đồng nhất cho mọi tham số,…
AdaGrad giải quyết vấn đề điều chỉnh tốc độ học theo từng tọa độ nhưng gặp phải nhược điểm chí mạng: bộ tích lũy Gt tích lũy toàn bộ quá khứ nên tăng đơn điệu không ngừng, khiến l…
Nối prediction của regression với loss tensor mà optimizer sẽ tối ưu.
Nhận ra mỗi activation có vai trò khác nhau: lọc âm, nén xác suất, hoặc chuẩn hóa logits.
Phân biệt logits với probability và chọn loss binary đúng API.
Bài dài hơn, cần chọn đúng cấu trúc dữ liệu.
Dùng đúng CrossEntropyLoss cho logits của classifier nhiều lớp.
Thấy một Linear layer biến batch có in_features thành batch có out_features.
Ghép Linear và ReLU thành một MLP tối thiểu có thể làm forward.
Đóng gói feature/label thành dataset và chia batch có shape rõ ràng.
Phân biệt behavior train/eval của Dropout và tắt gradient khi chỉ đánh giá.
Tách dataset thành train/validation rồi nạp từng phần bằng DataLoader.
Nhìn đủ ba bước zero_grad → backward → optimizer.step trong một update.
Hiểu state_dict là phần trọng tâm để lưu model artifact và nạp lại ở nơi khác.
Huấn luyện model PyTorch end-to-end trên bài regression nhỏ và quan sát loss.
Dùng một dataset nhỏ để thấy model đủ capacity có thể nhớ train rất tốt.
Huấn luyện MLP binary đúng với logits và BCEWithLogitsLoss.
Kết nối split dữ liệu, tensor, DataLoader, MLP, train và validation thành một workflow hoàn chỉnh.
Thuật toán chuyên sâu: quy hoạch động, đồ thị, cây.
Trong mạng hồi quy (RNN/LSTM) và các mô hình sâu không có Residual connection, khởi tạo trực giao (Orthogonal Initialization) là kỹ thuật quan trọng nhất để bảo toàn độ dài vector…
Khi huấn luyện mô hình Transformer lớn, phần lớn bộ nhớ VRAM không phải bị chiếm bởi trọng số mô hình mà bởi Activation Cache (các kết quả trung gian cần lưu lại cho pha backward).
1. Tuyến tính tầng 1: Z1 = X W1 + b1 (với X ∈ RN × D, W1 ∈ RD × H, b1 ∈ RH).
1. Tính kỳ vọng mini-batch: μB = 1N ∑i=1N xi.
1. Tăng bước đếm thời gian: t ← t + 1.
Cấu trúc dữ liệu nâng cao và nhiều bước chứng minh.
Tầng tuyến tính (Linear Layer / Fully-Connected Layer) là khối kiến trúc cốt lõi nhất của mạng nơ-ron:
Cho vector xác suất sau Softmax p = softmax(z) ∈ RV với pi = ezi∑k ezk.
Trong học tăng cường và mô hình sinh rời rạc, thao tác lấy mẫu argmax hoặc sample() từ phân phối Categorical là một hàm bậc thang không thể tính đạo hàm (non-differentiable).
Trong PyTorch (nn.CrossEntropyLoss) và các framework AI, hàm mất mát Cross-Entropy không bao giờ tính riêng p = softmax(z) rồi loss = -log(p). Nếu làm rời rạc, khi mô hình dự đoán…
Hãy cài đặt một mạng nơ-ron truyền thẳng 2 tầng (2-Layer Multi-Layer Perceptron) hoàn chỉnh bằng NumPy:
Ràng buộc chặt về thời gian và bộ nhớ — mức thi đấu.
Trước khi hàm ReLU ra đời, hiện tượng Suy biến Gradient (Vanishing Gradient) là rào cản lớn nhất ngăn cản việc huấn luyện các mạng nơ-ron sâu.
Momentum cổ điển (Polyak Momentum) cộng thêm quán tính vận tốc v từ các bước trước vào gradient hiện tại. Tuy nhiên, Nesterov Accelerated Gradient (NAG) có tầm nhìn thông minh hơn:…
Adam (Adaptive Moment Estimation - Kingma & Ba, 2014) kết hợp hai thành phần: Momentum (ước lượng mô-men bậc một mt) và RMSprop (ước lượng mô-men bậc hai vt):
Trong bài báo mang tính bước ngoặt *Fixing Weight Decay Regularization in Adam* (ICLR 2019), Ilya Loshchilov và Frank Hutter đã chỉ ra nguyên nhân khiến Adam thường tổng quát hóa k…
Trong các bài toán huấn luyện quy mô lớn (LLM Pretraining), quá trình huấn luyện có thể gặp sự cố phần cứng hoặc phải dừng lại định kỳ. Nếu chỉ lưu trữ trọng số mô hình mà quên lưu…