Không gian tự học dành cho sinh viên UET

Chào mừng đến với UETệ

Tìm bài giảng theo học phần, hiểu lại những kiến thức nền và ôn tập theo nhịp học của bạn.

Bài giảng
Đọc Notes, ôn nhanh với Slides và luyện tập qua các bài có lời giải.
Wiki kiến thức
Tra cứu thuật ngữ và bổ sung kiến thức nền ngay khi cần.
Góc học tập
Ôn bằng flashcard, lưu ghi chú và hẹn giờ tập trung.

Bạn có thể xem lại phần giới thiệu ở cuối trang.

Buy me a coffee

Website hoàn toàn miễn phí. Nếu thấy hữu ích, bạn có thể tặng tôi một cốc cà phê theo thông tin dưới đây nhé!

Mã QR chuyển khoản Momo
Ngân hàng
Momo
Tên người nhận
MOMO - TKTH DO MINH TRI
Số tài khoản
01MMTTT0060405229
Skip to content

Các phương pháp tối ưu trong huấn luyện mô hình học sâu

Bài 5Cập nhật 15/10/2026Ghi chú của bạn

Ở Bài 04, chúng ta giả định rằng tại mỗi bước lặp, thuật toán luôn tính toán được chính xác tuyệt đối của toàn bộ hàm mục tiêu. Thế nhưng khi bước vào thế giới học sâu hiện đại, giả định đó lập tức vấp phải bức tường thực tế: Các tập dữ liệu huấn luyện (từ thị giác máy tính đến các mô hình ngôn ngữ lớn) thường chứa hàng triệu, thậm chí hàng nghìn tỷ mẫu dữ liệu. Việc duyệt qua toàn bộ dữ liệu chỉ để thực hiện một bước cập nhật duy nhất là điều hoàn toàn bất khả thi về mặt tài nguyên và thời gian.

Để vượt qua giới hạn này, kỹ nghệ học sâu vận hành dựa trên nguyên lý tối ưu hóa ngẫu nhiên (stochastic optimization) then chốt: Thay vì tính toán chính xác trên toàn bộ tập dữ liệu (Full-batch), ta ước lượng gradient thông qua một lô dữ liệu nhỏ (mini-batch) được lấy mẫu ngẫu nhiên. Bước chuyển dịch này kéo theo hàng loạt câu hỏi cốt lõi:

  • Làm sao bảo đảm trên lô nhỏ phản ánh đúng xu hướng suy giảm chung của toàn bộ dữ liệu?
  • Làm thế nào để kiểm soát và chế ngự nhiễu ngẫu nhiên sinh ra từ việc lấy mẫu?
  • Cơ chế quán tính () và kỹ thuật nhìn trước (Nesterov) giúp thuật toán vượt qua các thung lũng hẹp và điểm yên ngựa ra sao?
  • Tại sao việc khởi tạo trọng số ngẫu nhiên lại quyết định sự sống còn của dòng chảy tín hiệu trong các mạng nơ-ron sâu?

1. Hàm mục tiêu thực nghiệm và Ranh giới Khái quát hóa ​

Trong học máy có giám sát, ta có một tập huấn luyện gồm N mẫu dữ liệu D={(xi,yi)}i=1N. Với vector θ∈Rd và hàm mất mát trên mẫu thứ i là ℓi(θ)=ℓ(fθ(xi),yi), hàm mục tiêu huấn luyện được định nghĩa bằng mất mát thực nghiệm trung bình (Empirical Risk):

J(θ)=1N∑i=1Nℓi(θ)=ℓ1(θ)+ℓ2(θ)+⋯+ℓN(θ)N.

Nếu áp dụng kỹ thuật điều chuẩn (regularization), ta cộng thêm số hạng phạt độ phức tạp ρR(θ) (với hệ số phạt ρ>0). của hàm mục tiêu theo θ được tính bằng thuật toán lan truyền ngược (backpropagation), về bản chất là việc áp dụng giải tích trên đồ thị tính toán của mạng nơ-ron.

Ở đây, chúng ta cần phân biệt rạch ròi giữa hai mục tiêu hoàn toàn khác nhau:

  1. Bài toán tối ưu (Optimization): Tìm bộ θ để cực tiểu hóa hàm mất mát thực nghiệm J(θ) trên dữ liệu đã biết trong tập huấn luyện.
  2. Khả năng khái quát hóa (Generalization): Đo lường chất lượng dự đoán của mô hình trên phân phối dữ liệu thực tế chưa từng xuất hiện trong quá trình huấn luyện.

Một thuật toán tối ưu hội tụ hoàn hảo về điểm có mất mát bằng 0 trên tập huấn luyện hoàn toàn không đồng nghĩa với việc mô hình sẽ hoạt động tốt trên thực tế vì mô hình có thể rơi vào bẫy học vẹt (overfitting). Do đó, trong thực hành ta luôn chia tách dữ liệu thành:

  • Tập huấn luyện (Training set): Dùng trực tiếp để tính và cập nhật .
  • Tập xác thực (Validation set): Dùng để tinh chỉnh siêu và theo dõi hiện tượng overfitting.
  • Tập kiểm thử (Test set): Giữ tuyệt đối cho lần đánh giá năng lực cuối cùng.

2. Gradient ước lượng từ Lô nhỏ (Mini-batch Gradient) ​

Do phép lấy đạo hàm có tính tuyến tính, của hàm mất mát thực nghiệm bằng trung bình cộng các gradient trên từng mẫu:

∇J(θ)=1N∑i=1N∇ℓi(θ).

Thay vì tính tổng trên toàn bộ N mẫu, tại mỗi bước lặp ta chọn ngẫu nhiên một lô nhỏ (mini-batch) gồm B mẫu (B≪N), ký hiệu tập chỉ số là B={I1,I2,…,IB}. Vector được tính bằng:

gB(θ)=1B∑j=1B∇ℓIj(θ).

Tính không chệch và Phương sai của ước lượng ​

Nếu các chỉ số Ij được lấy mẫu ngẫu nhiên đều trên tập {1,…,N}, có điều kiện của thỏa mãn:

E[gB(θ)∣θ]=1B∑j=1BE[∇ℓIj(θ)]=1B∑j=1B∇J(θ)=∇J(θ).

Đẳng thức này khẳng định gB(θ) là một ước lượng không chệch (unbiased estimator) của toàn bộ tập dữ liệu.

Tuy nhiên, ước lượng này đi kèm với ngẫu nhiên. Giả sử phương sai của trên một mẫu đơn lẻ là σg2. Khi lấy trung bình trên B mẫu , phương sai của giảm tỉ lệ nghịch với kích thước lô:

Var(gB(θ))=σg2B.

Định luật này giải thích vì sao kích thước lô B đóng vai trò chiếc van điều tiết giữa độ chính xác và tốc độ tính toán:

  • Tăng kích thước lô B làm giảm , ít bị nhiễu hơn, cho phép bước đi ổn định hơn.
  • Nhưng khi B tăng quá lớn, chi phí tính toán tăng tuyến tính trong khi chỉ giảm với tốc độ căn bậc hai (1/B), dẫn tới hiệu suất biên giảm dần.
  • Thú vị hơn, trong học sâu, chính sự dao động ngẫu nhiên của các lô nhỏ vừa phải (B∈[32,256]) lại hoạt động như một cơ chế điều chuẩn ngầm, giúp mô hình thoát khỏi các hố cực tiểu cục bộ nhọn (sharp minima) và định vị các cực tiểu phẳng (flat minima) có tính khái quát hóa bền bỉ hơn!

Ví dụ: Quan sát nhiễu ngẫu nhiên trên mô hình một tham số

Xét tập dữ liệu cực nhỏ gồm hai mẫu có nhãn b1=0 và b2=2. Mô hình đưa ra dự đoán đơn θ với hàm mất mát bình phương ℓi(θ)=12(θ−bi)2. Hàm mục tiêu trên toàn bộ tập dữ liệu là:

J(θ)=12[12(θ−0)2+12(θ−2)2]=14(2θ2−4θ+4)=12(θ−1)2+12.

toàn phần là ∇J(θ)=θ−1. Nghiệm tối ưu thực sự là θ∗=1.

  • Tại θ=0: mẫu 1 là ∇ℓ1(0)=0−0=0. Gradient mẫu 2 là ∇ℓ2(0)=0−2=−2. Gradient toàn phần là ∇J(0)=−1. Nếu cập nhật với tốc độ học η=0.1:
    • Cập nhật full-batch: θ+=0−0.1(−1)=0.1.
    • Nếu gặp riêng mẫu 1: θ+=0−0.1(0)=0 (đứng yên).
    • Nếu gặp riêng mẫu 2: θ+=0−0.1(−2)=0.2. Trung bình cập nhật của hai mẫu đúng bằng 0.1.
  • Tại điểm tối ưu θ=1: toàn phần triệt tiêu hoàn toàn (∇J(1)=0). Thế nhưng gradient của từng mẫu đơn lẻ lần lượt là ∇ℓ1(1)=1 và ∇ℓ2(1)=−1. Do đó, một bước với tốc độ học cố định sẽ tiếp tục nhảy lệch khỏi điểm tối ưu thay vì dừng lại!
Câu hỏi đào sâu: Tại điểm cực tiểu toàn cục $\theta = 1$, nếu bước cập nhật bốc phải mẫu $b = 0$ với $\eta = 0.1$, hàm mất mát toàn phần sẽ biến thiên ra sao?

Tại θ=1, giá trị mất mát toàn phần là J(1)=0.5. Nếu gặp mẫu b=0, là 1−0=1, điểm mới trở thành θ+=1−0.1(1)=0.9. Giá trị mất mát mới là:

J(0.9)=12(0.9−1)2+0.5=0.505>0.5.

Mất mát đã tăng lên! Điều này cho thấy tính không chệch của chỉ là một bảo đảm về mặt thống kê. Hệ quả là, nó tuyệt đối không bảo đảm rằng hàm mục tiêu sẽ giảm sau từng bước cập nhật ngẫu nhiên đơn lẻ.


3. Thuật toán Stochastic Gradient Descent (SGD) ​

Thuật toán (SGD) cập nhật tại bước thứ t theo quy tắc:

θt+1=θt−ηtgBt(θt),

trong đó ηt>0 là tốc độ học tại bước t, và gBt(θt) là tính trên lô nhỏ Bt.

Một epoch được định nghĩa là một chu trình hoàn chỉnh duyệt qua toàn bộ tập dữ liệu huấn luyện. Trong thực hành, người ta xáo trộn ngẫu nhiên (shuffle) tập dữ liệu ở đầu mỗi epoch, sau đó chia thành các lô nhỏ liên tiếp không hoàn lại.

Vì luôn chứa thành phần nhiễu ngẫu nhiên, thuật toán không thể hội tụ về điểm dừng nếu giữ nguyên tốc độ học cố định η. Để bảo đảm sự hội tụ tiệm cận, lịch trình giảm tốc độ học (learning rate schedule) phải thỏa mãn điều kiện Robbins–Monro:

∑t=1∞ηt=∞,∑t=1∞ηt2<∞.

Điều kiện thứ nhất bảo đảm bước đi đủ dài để đi tới nghiệm dù xuất phát từ bất kỳ đâu, trong khi điều kiện thứ hai bảo đảm tích lũy của nhiễu bị triệt tiêu dần khi tiệm cận nghiệm.

Đoạn mã Python mô phỏng chính xác thuật toán trên mô hình đơn :

python
def sgd_scalar(theta, targets, rate, draws):
    history = [theta]
    for i in draws:  # chỉ số lấy mẫu được cung cấp để tái lập
        gradient = theta-targets[i]
        theta -= rate*gradient
        history.append(theta)
    return history

print(sgd_scalar(0.0, [0.0, 2.0], 0.1, [0, 1, 0, 1]))
# [0.0, 0.0, 0.2, 0.18, 0.362]

4. Cơ chế Quán tính: Momentum và Trạng thái Vận tốc ​

Khi bề mặt hàm mất mát có dạng hẻm núi hẹp (độ cong theo một số hướng lớn hơn gấp nhiều lần các hướng khác), sẽ dao động mạnh qua lại giữa hai sườn dốc và di chuyển rất chậm chạp dọc theo đáy thung lũng.

Thuật toán mượn ý tưởng trực quan từ cơ học cổ điển: Coi như một hòn bi có khối lượng lăn trên bề mặt thế năng mất mát. Hòn bi tích lũy vận tốc theo thời gian, giúp nó vượt qua các gờ nhấp nhô và giữ đà lao nhanh dọc theo hướng dốc chính.

Khởi tạo vector vận tốc v0=0, tại mỗi bước ta cập nhật theo quy tắc:

vt+1=μvt−ηgt,θt+1=θt+vt+1,

trong đó μ∈[0,1) là hệ số ma sát quán tính (thường chọn μ=0.9).

Ý nghĩa của hệ số μ:

  • Nếu các vector ở các bước liên tiếp cùng hướng, số hạng vận tốc sẽ tích lũy theo cấp số nhân:
    v≈−η1−μg.
    Với μ=0.9, bước nhảy thực tế dọc theo hướng ổn định sẽ được khuếch đại gấp 10 lần!
  • Nếu các vector liên tục đổi dấu (như dao động giữa hai sườn dốc hẹp), các số hạng sẽ triệt tiêu lẫn nhau trong tổng vận tốc, giúp dập tắt dao động ziczac.

Ví dụ: Tính toán định lượng hai bước lặp Momentum

Xét hàm số J(θ)=12(θ−1)2+12, là g(θ)=θ−1. Khởi tạo θ0=0, v0=0, tốc độ học η=0.1, hệ số quán tính μ=0.9.

  • Bước 1:
    • : g0=0−1=−1.
    • Vận tốc mới: v1=0.9(0)−0.1(−1)=0.1.
    • Cập nhật vị trí: θ1=0+0.1=0.1.
  • Bước 2:
    • : g1=0.1−1=−0.9.
    • Vận tốc mới:
      v2=0.9(0.1)−0.1(−0.9)=0.09+0.09=0.18.
    • Cập nhật vị trí: θ2=0.1+0.18=0.28.

Để so sánh: Descent thuần túy ở bước 2 chỉ đạt tới θ2=0.19. Nhờ tích lũy quán tính từ bước 1 (0.09), đã đẩy vị trí tiến xa hơn đáng kể hướng về phía nghiệm θ∗=1.


5. Nesterov Accelerated Gradient (NAG): Kỹ thuật Nhìn trước ​

Mặc dù thông thường tăng tốc rất tốt, nhược điểm của nó là có thể tích lũy quán tính quá lớn và lao vọt qua đáy thung lũng trước khi kịp hãm phanh.

Accelerated (NAG) giải quyết điều này bằng một cơ chế thông minh: Tính toán gradient tại vị trí nhìn trước (lookahead point) thay vì tại vị trí hiện tại.

Quy tắc cập nhật :

  1. Dự phóng vị trí tương lai theo quán tính thuần túy: θ~t=θt+μvt.
  2. Đo độ dốc địa hình tại điểm dự phóng: gt=∇J(θ~t).
  3. Cập nhật vận tốc và vị trí:
    vt+1=μvt−ηgt,θt+1=θt+vt+1.

Sự khác biệt cốt tử giữa nằm ở vị trí lấy đạo hàm:

  • thông thường: Tính tại điểm đang đứng θt, rồi mới cộng quán tính μvt.
  • : Nhảy một bước thử theo quán tính tới θ~t, quan sát xem phía trước dốc lên hay dốc xuống để tự động "nhấn phanh" hãm đà nếu sắp lao qua đỉnh đối diện!

Ví dụ: Kiểm chứng bước Nesterov trên cùng bài toán

Với bài toán J(θ)=12(θ−1)2+12, khởi tạo θ0=0,v0=0,η=0.1,μ=0.9:

  • Bước 1: Vì v0=0, trùng điểm hiện tại θ~0=0. Kết quả thu được v1=0.1,θ1=0.1 (giống Momentum).
  • Bước 2:
    • : θ~1=θ1+μv1=0.1+0.9(0.1)=0.19.
    • tại : g1=∇J(0.19)=0.19−1=−0.81.
    • Vận tốc mới:
      v2=0.9(0.1)−0.1(−0.81)=0.09+0.081=0.171.
    • Cập nhật vị trí: θ2=0.1+0.171=0.271.

Ta thấy vận tốc (0.171) nhỏ hơn một chút so với Momentum thông thường (0.18) vì nó đã phát hiện ra rằng quán tính đang đưa điểm tới gần đáy hơn, từ đó tự động hiệu chỉnh bước đi chính xác và mượt mà hơn.

Theo dõi từng bước cập nhật

0xy

Bước 0: (2.0000, 2.0000) và f = 22.0000.

Xem code và điều kiện mô phỏng

Chương trình dùng dữ liệu nhỏ tự đặt. Các quan hệ toán được ghi ngay trong Notes. Mô phỏng hữu hạn không thay chứng minh cho mọi điểm. Code tính toán được chia sẻ giữa component và kiểm tra tại docs/.vitepress/theme/math-ai.mjs.

js
const lookahead = point.map((x,i) => x+mu*velocity[i]);
const g = gradient(lookahead);
velocity = velocity.map((v,i) => mu*v-rate*g[i]);
point = point.map((x,i) => x+velocity[i]);

6. Khởi tạo Trọng số và Nguyên lý Bảo toàn Phương sai Glorot (Xavier) ​

Trước khi thuật toán tối ưu hóa bắt đầu bước đi đầu tiên, bài toán đặt ra là: Nên khởi tạo các trọng số của mạng nơ-ron như thế nào?

Nếu ta khởi tạo toàn bộ trọng số của một tầng ẩn bằng 0:

  • Tất cả các nơ-ron trong tầng đó sẽ nhận tín hiệu đầu vào giống nhau và sinh ra đầu ra giống hệt nhau.
  • Trong pha lan truyền ngược, tất cả các nơ-ron sẽ nhận cùng một , dẫn tới việc chúng được cập nhật cùng một giá trị như nhau ở mọi bước lặp.
  • Mạng nơ-ron hoàn toàn mất khả năng học các đặc trưng đa dạng, hiện tượng này được gọi là sự sụp đổ đối xứng (symmetry trap).

Để phá vỡ đối xứng, ta bắt buộc phải khởi tạo trọng số ngẫu nhiên. Nhưng ngẫu nhiên với bao nhiêu?

  • Nếu quá lớn: Tín hiệu kích hoạt sẽ phóng đại theo cấp số nhân qua các tầng, dẫn tới hiện tượng bùng nổ (exploding gradients).
  • Nếu quá nhỏ: Tín hiệu kích hoạt sẽ suy giảm dần về 0 khi đi sâu vào mạng, dẫn tới hiện tượng triệt tiêu (vanishing gradients).

Phân tích bảo toàn phương sai của Xavier Glorot & Yoshua Bengio (2010) ​

Xét một nơ-ron tuyến tính tính tổng trọng số z=∑i=1ninWixi. Giả sử các đầu vào xi và trọng số Wi thống kê với nhau, có bằng 0 và lần lượt là Var(x) và Var(W).

của tổ hợp tuyến tính là:

Var(z)=∑i=1ninVar(Wixi)=ninVar(W)Var(x).

Để của tín hiệu không bị phóng đại hay triệt tiêu khi truyền xuôi qua tầng (Var(z)=Var(x)), ta cần:

Var(W)=1nin.

Mặt khác, trong pha lan truyền ngược, để bảo toàn của truyền từ tầng sau (nout nơ-ron) về tầng trước, phân tích tương tự đòi hỏi:

Var(W)=1nout.

Không thể đồng thời thỏa mãn cả hai điều kiện khi nin≠nout. Glorot & Bengio đề xuất giải pháp dung hòa bằng trung bình điều hòa của hai đại lượng:

Var(W)=2nin+nout.

Nếu khởi tạo theo phân phối đều đối xứng W∼U[−a,a], vì phân phối đều có Var(W)=a23, ta thu được cận biên độ:

a23=2nin+nout⟹a=6nin+nout.

Chẳng hạn với một tầng có 4 đầu vào (nin=4) và 2 đầu ra (nout=2):

  • Biên độ phân phối đều: a=64+2=1=1.
  • Trọng số được lấy mẫu từ W∼U[−1,1] với Var(W)=123=13.

Bài tập tự luyện ​

Bài tập 1: Tính toán gradient lô nhỏ

Xét bài toán một với hai mẫu b1=0 và b2=2, hàm mất mát ℓi(θ)=12(θ−bi)2. Tại điểm θ=0.5:

  1. Tính của từng mẫu riêng biệt ∇ℓ1(0.5) và ∇ℓ2(0.5).
  2. Tính của lô chứa cả hai mẫu và so sánh với đạo hàm toàn phần J′(0.5).
Lời giải
  1. từng mẫu:
    • Mẫu 1: ∇ℓ1(0.5)=0.5−0=0.5.
    • Mẫu 2: ∇ℓ2(0.5)=0.5−2=−1.5.
  2. của lô hai mẫu:
    gB(0.5)=0.5+(−1.5)2=−1.02=−0.5.
    Đạo hàm toàn phần:
    J(θ)=12(θ−1)2+12⟹J′(0.5)=0.5−1=−0.5.
    Hai kết quả trùng khớp hoàn hảo. Chú ý: Nếu cộng các mà quên chia cho kích thước lô B=2, ta sẽ thu được −1.0, làm sai lệch thang đo của bước cập nhật.

Bài tập 2: Thực hiện bước thứ ba của thuật toán Momentum

Tiếp tục ví dụ ở mục 4: Tại cuối bước 2, ta có θ2=0.28 và v2=0.18. Hãy tính toán chi tiết bước lặp thứ 3 với toàn phần, tốc độ học η=0.1 và hệ số quán tính μ=0.9.

Lời giải
  • Tính tại vị trí hiện tại θ2=0.28:
    g2=θ2−1=0.28−1=−0.72.
  • Cập nhật vận tốc mới v3:
    v3=μv2−ηg2=0.9(0.18)−0.1(−0.72)=0.162+0.072=0.234.
  • Cập nhật vị trí mới θ3:
    θ3=θ2+v3=0.28+0.234=0.514.

Vận tốc tiếp tục tăng từ 0.18 lên 0.234, giúp đẩy vượt qua mốc giữa đường (0.5) chỉ sau 3 bước lặp.

Bài tập 3: Tính toán tham số khởi tạo Glorot cho tầng ẩn

Một tầng ẩn trong mạng nơ-ron sâu nhận 8 đầu vào (nin=8) và kết nối tới 4 nơ-ron ở tầng kế tiếp (nout=4).

  1. Xác định khởi tạo Glorot cho ma trận trọng số của tầng này.
  2. Nếu dùng phân phối đều U[−a,a], hãy tính giá trị cận biên a.
Lời giải
  1. Glorot chuẩn hóa:
    Var(W)=2nin+nout=28+4=212=16≈0.1667.
  2. Biên độ phân phối đều:
    a=6nin+nout=612=12=12≈0.7071.

Trọng số của tầng này cần được lấy mẫu ngẫu nhiên từ phân phối U[−0.7071,0.7071].

Bài tập 4: Phân tích thống kê: Kỳ vọng, hiệp phương sai và nhiễu của gradient mini-batch

Cho tập dữ liệu huấn luyện gồm N mẫu quan sát {z1,…,zN}. Hàm mất mát thực nghiệm trên toàn bộ tập dữ liệu là:

f(θ)=1N∑i=1Nℓ(θ,zi).

Tại mỗi bước lặp, thuật toán Mini-batch chọn ngẫu nhiên đồng đều không hoàn lại một tập chỉ số B⊂{1,…,N} gồm |B|=m mẫu (1≤m≤N), và tính xấp xỉ:

gB(θ)=1m∑i∈B∇θℓ(θ,zi).
  1. Chứng minh rằng gB(θ) là một ước lượng không chệch của toàn thể ∇f(θ): E[gB(θ)]=∇f(θ).
  2. Giả sử của từng mẫu đơn lẻ có bị chặn: Cov(∇ℓ(θ,zi))⪯σ2I. Trong trường hợp lấy mẫu có hoàn lại, hãy tính ma trận hiệp phương sai của gB(θ) theo kích thước lô m.
  3. Nêu ý nghĩa của tỉ số tín hiệu trên nhiễu (SNR) của : Tại sao khi tăng kích thước lô m lên 4 lần thì của nhiễu chỉ giảm đi 2 lần?
Lời giải
  1. Tính không chệch của mini-batch: Đặt chỉ thị Ii=I(i∈B). Xác suất để một mẫu thứ i bất kỳ lọt vào lô kích thước m là:
    P(i∈B)=mN⟹E[Ii]=mN.
    mini-batch được viết lại dưới dạng:
    gB(θ)=1m∑i=1NIi∇ℓ(θ,zi).
    Lấy toán học theo phân phối chọn mẫu:

\mathbb{E}[g_B(\theta)] &= \frac{1}{m} \sum_{i=1}^N \mathbb{E}[I_i] \nabla \ell(\theta, z_i) \ &= \frac{1}{m} \sum_{i=1}^N \left(\frac{m}{N}\right) \nabla \ell(\theta, z_i) \ &= \frac{1}{N} \sum_{i=1}^N \nabla \ell(\theta, z_i) = \nabla f(\theta). \end

Đẳngthứcnàykhẳngđịnh$gB(θ)$làmộtướclượngkhôngchệchcủagradientchânthực.2.∗∗Matrậnhiệpphươngsaicủagradient∗∗:Khicácmẫutronglôđượcrútđộclậpcóhoànlại(i.i.d.),cácbiếnngẫunhiên$∇ℓ(θ,zi)$làđộclậpcùngphânphối.Hiệpphươngsaicủatổngcácbiếnđộclậpbằngtổngcáchiệpphươngsai:

\begin{aligned} \operatorname{Cov}\big(g_B(\theta)\big) &= \operatorname{Cov}\left(\frac{1}{m} \sum_{i \in B} \nabla \ell(\theta, z_i)\right) \ &= \frac{1}{m^2} \sum_{i \in B} \operatorname{Cov}\big(\nabla \ell(\theta, z_i)\big) \ \preceq \frac{1}{m^2} \big(m \sigma^2 I\big) &= \frac{\sigma^2}{m} I. \end

Phươngsaicủavectorgradienttỷlệnghịchchínhxácvớikíchthướclô$m$.3.∗∗Ýnghĩacủatỉsốtínhiệutrênnhiễu(SNR)∗∗:Tínhiệuđịnhhướngcủagradientlàvectorkỳvọng$∥∇f(θ)∥2$,trongkhiđộlớncủanhiễungẫunhiênđượcđobằngđộlệchchuẩn:

\text{Noise std} = \sqrt{\operatorname{Tr}(\operatorname{Cov})} \propto \frac{\sigma}{\sqrt{m}}.

Tỉsốtínhiệutrênnhiễutăngtheoquyluậtcănbậchai$m$:

\text{SNR} = \frac{|\nabla f(\theta)|_2}{\sigma / \sqrt{m}} \propto \sqrt{m}.

Dođó,muốngiảmmộtnửabiênđộdaođộngngẫunhiêncủabướcnhảygradient,tabắtbuộcphảitănggấpbốnlầnchiphítínhtoáncủamỗilô($m→4m$).Đâychínhlànguyênnhânkinhtếvàtínhtoánkhiếncáckíchthướclôvừaphải($m∈[32,256]$)trởthànhtiêuchuẩnvàngtronghuấnluyệnhọcsâuthựctế.

Bài tập 5: Bất đẳng thức bước giảm (Descent Lemma) và tốc độ hội tụ của SGD

Cho hàm mục tiêu f:Rd→R khả vi và có thỏa mãn điều kiện Lipschitz với hằng số L>0:

∥∇f(x)−∇f(y)∥2≤L∥x−y∥2∀x,y∈Rd.
  1. Bổ đề giảm bước (Descent Lemma): Chứng minh rằng với mọi x,y∈Rd, ta luôn có bất đẳng thức bậc hai chặn trên:
    f(y)≤f(x)+∇f(x)T(y−x)+L2∥y−x∥22.
  2. Xét bước cập nhật hạ : θt+1=θt−ηgt, với E[gt∣θt]=∇f(θt) và E[∥gt∥22∣θt]≤G2. Chứng minh rằng:
    E[f(θt+1)∣θt]≤f(θt)−η(1−ηL2)∥∇f(θt)∥22+η2LG22.
  3. Nếu chọn tốc độ học cố định η<2L, hãy giải thích tại sao không hội tụ về điểm dừng chính xác ∇f(θ)=0 mà chỉ dao động quanh một quả cầu sai số phụ thuộc vào nhiễu G2.
Lời giải
  1. Chứng minh Descent Lemma: Theo định lý cơ bản của giải tích vi tích phân:
    f(y)−f(x)=∫01∇f(x+τ(y−x))T(y−x)dτ.
    Cộng và trừ số hạng ∇f(x)T(y−x):
    f(y)−f(x)−∇f(x)T(y−x)=∫01[∇f(x+τ(y−x))−∇f(x)]T(y−x)dτ.
    Áp dụng bất đẳng thức Cauchy-Schwarz và tính chất Lipschitz của :

\left|f(y) - f(x) - \nabla f(x)^T (y - x)\right| &\le \int_0^1 \left|\nabla f\big(x + \tau(y - x)\big) - \nabla f(x)\right|_2 |y - x|_2 , \mathrm{d}\tau \ &\le \int_0^1 L \tau |y - x|_2^2 , \mathrm{d}\tau = L |y - x|_2^2 \left[\frac{\tau^2}{2}\right]_0^1 = \frac{L}{2}|y - x|_2^2. \end

Bỏdấugiátrịtuyệtđốitathuđượcbấtđẳngthứcbướcgiảmcầnchứngminh.2.∗∗KỳvọngbướcgiảmcủaSGD∗∗:Thay$x=θt$và$y=θt+1=θt−ηgt$vàoDescentLemma:

f(\theta_{t+1}) \le f(\theta_t) - \eta \nabla f(\theta_t)^T g_t + \frac{\eta^2 L}{2}|g_t|_2^2.

Lấykỳvọngcóđiềukiệntheotrạngtháihiệntại$θt$:

\begin{aligned} \mathbb{E}[f(\theta_{t+1}) \mid \theta_t] &\le f(\theta_t) - \eta \nabla f(\theta_t)^T \mathbb{E}[g_t \mid \theta_t] + \frac{\eta^2 L}{2}\mathbb{E}[|g_t|_2^2 \mid \theta_t] \ &= f(\theta_t) - \eta |\nabla f(\theta_t)|_2^2 + \frac{\eta^2 L}{2}\mathbb{E}[|g_t|_2^2 \mid \theta_t]. \end

Tách$E[∥gt∥22]=∥∇f(θt)∥22+σ2≤G2$:

\mathbb{E}[f(\theta_{t+1}) \mid \theta_t] \le f(\theta_t) - \eta \left(1 - \frac{\eta L}{2}\right) |\nabla f(\theta_t)|_2^2 + \frac{\eta^2 L G^2}{2}.

3.∗∗PhântíchquảcầusaisốcủaSGD∗∗:Khichọntốcđộhọccốđịnh$η<2/L$,hệsốgiảm$c=η(1−ηL/2)>0$.Tuynhiên,luôntồntạisốhạngnhiễudương$η2LG22>0$.Hàmmụctiêuchỉđượcbảođảmgiảmkhi:

\eta \left(1 - \frac{\eta L}{2}\right) |\nabla f(\theta_t)|_2^2 > \frac{\eta^2 L G^2}{2} \iff |\nabla f(\theta_t)|_2^2 > \frac{\eta L G^2}{2 - \eta L}.

Khimôhìnhtiếngầntớicựctiểuvàgradienttriệttiêudần,lựcgiảmcủagradientbịápđảohoàntoànbởinhiễungẫunhiên.Thuậttoánkhôngthểđứngyênmàsẽdaođộngvĩnhviễntrongmộtlâncậnbánkính$O(ηG2)$.Đểhộitụvềđúngđiểmdừng,tabắtbuộcphảigiảmdầntốcđộhọctheothờigian(learningratedecay,vídụ$ηt=O(1/t)$).

Bài tập 6: Cơ chế nhìn trước (Look-ahead) của Nesterov Accelerated Gradient (NAG)

Xét hàm toàn phương một chiều:

f(θ)=12θ2.

Giả sử tại bước lặp hiện tại, vị trí là θ=1 và vận tốc quán tính tích lũy là v=1. Tốc độ học là η=0,1 và hệ số quán tính là μ=0,9.

  1. Tính bước cập nhật theo thuật toán Polyak Heavy-Ball :
    • Tính tại điểm hiện tại g=f′(θ).
    • Cập nhật vận tốc mới vPolyak=μv−ηg và vị trí mới θPolyak=θ+vPolyak.
  2. Tính bước cập nhật theo thuật toán Accelerated (NAG):
    • Tính vị trí nhìn trước θlook=θ+μv.
    • Tính tại vị trí nhìn trước glook=f′(θlook).
    • Cập nhật vận tốc mới vNAG=μv−ηglook và vị trí mới θNAG=θ+vNAG.
  3. So sánh hai kết quả và giải thích cơ chế "hãm đà thông minh" của giúp ngăn chặn hiện tượng trượt quá đà (overshooting).
Lời giải
  1. Thuật toán Polyak :

    • Vị trí hiện tại: θ=1, vận tốc cũ v=1.
    • tại vị trí hiện tại:
      g=f′(1)=1.
    • Cập nhật vận tốc mới:
      vPolyak=μv−ηg=0,9(1)−0,1(1)=0,9−0,1=0,8.
    • Cập nhật vị trí mới:
      θPolyak=θ+vPolyak=1+0,8=1,8.

    Nhận xét: Vị trí mới θ=1,8 bị đẩy ra xa cực tiểu θ∗=0 hơn so với vị trí ban đầu θ=1 do quán tính quá lớn.

  2. Thuật toán (NAG):

    • (Look-ahead point):
      θlook=θ+μv=1+0,9(1)=1,9.
    • tại :
      glook=f′(1,9)=1,9.
    • Cập nhật vận tốc mới:
      vNAG=μv−ηglook=0,9(1)−0,1(1,9)=0,9−0,19=0,71.
    • Cập nhật vị trí mới:
      θNAG=θ+vNAG=1+0,71=1,71.
  3. Bản chất cơ chế hãm đà của :

    • Polyak tính tại điểm cũ (θ=1) nên chỉ nhận được lực kéo về là 0,1, khiến vận tốc sau khi trừ vẫn còn rất lớn (0,8).
    • chủ động phóng tầm mắt tới vị trí mà quán tính sẽ đưa hạt vật chất tới (θlook=1,9). Tại đó, độ dốc vách núi dốc hơn nhiều (glook=1,9), sinh ra một lực phanh ngược chiều mạnh hơn (0,19).
    • Nhờ lực phanh này, vận tốc của bị triệt tiêu bớt (0,71<0,8), giúp hạt vật chất dừng lại sớm hơn và giảm thiểu chấn động dao động quanh điểm cực tiểu.

Bài tập 7: Khởi tạo He (Kaiming) cho hàm kích hoạt ReLU và sự bảo toàn phương sai

Xét một tầng tuyến tính trong mạng nơ-ron: y=Wx, trong đó x∈Rnin là đầu vào, W∈Rnout×nin là ma trận trọng số, và các phần tử Wij cùng phân phối với bằng 0 và Var(W). Ngay sau đó là hàm kích hoạt phi tuyến ReLU: z=ReLU(y)=max(0,y).

  1. Giả sử đối xứng yi có N(0,σy2). Chứng minh rằng:
    E[zi2]=12σy2.
  2. Để bảo toàn của tín hiệu qua các tầng mạng sâu (Var(zi)=Var(xj)), hãy chứng minh công thức khởi tạo He (Kaiming):
    Var(W)=2nin.
  3. Giải thích tại sao nếu dùng công thức Glorot Var(W)=2nin+nout cho mạng sâu dùng ReLU, tín hiệu sẽ bị triệt tiêu theo cấp số nhân qua từng tầng.
Lời giải
  1. bình phương qua hàm kích hoạt ReLU: yi∼N(0,σy2) có hàm mật độ xác suất đối xứng quanh 0: p(y)=p(−y). Biến đổi qua ReLU: zi=max(0,yi). Kỳ vọng bình phương được tính bằng tích phân:

    E[zi2]=∫−∞+∞max(0,y)2p(y)dy=∫0+∞y2p(y)dy.

    Do tính đối xứng của hàm mật độ chuẩn:

    ∫0+∞y2p(y)dy=12∫−∞+∞y2p(y)dy=12E[yi2]=12σy2.

    Hàm kích hoạt ReLU triệt tiêu đúng một nửa năng lượng tín hiệu ở phần âm.

  2. Thiết lập công thức khởi tạo He (Kaiming): Xét thành phần thứ i của đầu ra tuyến tính yi=∑j=1ninWijxj. Vì Wij và xj , E[Wij]=0:

    Var(yi)=∑j=1ninVar(Wijxj)=ninVar(W)E[xj2].

    Kế tiếp, qua tầng ReLU, theo kết quả câu 1:

    E[zi2]=12Var(yi)=12ninVar(W)E[xj2].

    Để năng lượng tín hiệu không bị co cụm hay bùng nổ qua từng tầng (E[zi2]=E[xj2]), ta cần hệ số nhân bằng đúng 1:

    12ninVar(W)=1⟹Var(W)=2nin.

    Đây chính là công thức khởi tạo He (Kaiming Initialization) nổi tiếng.

  3. Hậu quả khi dùng nhầm khởi tạo Glorot cho ReLU: Khởi tạo Glorot được thiết kế cho các hàm kích hoạt tuyến tính hoặc sigmoid/tanh đối xứng quanh gốc tọa độ, với giả định tín hiệu không bị mất năng lượng qua hàm kích hoạt (E[z2]≈E[y2]), dẫn tới hệ số Var(W)≈1nin. Nếu áp dụng công thức này cho mạng ReLU:

    E[z2]=12nin(1nin)E[x2]=12E[x2].

    Qua mỗi tầng mạng, của tín hiệu bị giảm đi một nửa. Qua L=50 tầng tích chập hoặc tầng ẩn, năng lượng tín hiệu bị suy giảm theo tỉ lệ:

    (12)50≈8,88×10−16.

    Tín hiệu lan truyền xuôi và lan truyền ngược bị triệt tiêu hoàn toàn về 0, khiến mạng sâu không thể học được bất cứ điều gì.

Bài tập 8: Bất đẳng thức tập trung Chebyshev và Hoeffding trong kiểm soát sai số mini-batch

Khi huấn luyện mô hình phân loại trên tập dữ liệu kích thước lớn, ta dùng gm=1m∑i=1mXi để xấp xỉ toàn thể μ=E[Xi]. Giả sử mỗi thành phần của gradient đơn lẻ bị chặn trong đoạn [−1,1], và thành phần là σ2=0,25.

  1. Áp dụng Bất đẳng thức Chebyshev: Cần kích thước lô m tối thiểu là bao nhiêu để xác suất sai số |gm−μ|≥0,1 không vượt quá 5% (δ=0,05)?
  2. Áp dụng Bất đẳng thức Hoeffding: Với cùng sai số ϵ=0,1 và độ tin cậy 95% (δ=0,05), hãy tính kích thước lô m theo cận hàm mũ.
  3. So sánh hai kết quả và giải thích tại sao bất đẳng thức Hoeffding mang lại cận kích thước mẫu vượt trội hơn khi yêu cầu độ tin cậy cực cao (δ→0).
Lời giải
  1. Áp dụng Bất đẳng thức Chebyshev: Kỳ vọng của trung bình mẫu là E[gm]=μ, và là Var(gm)=σ2m=0,25m. Bất đẳng thức Chebyshev phát biểu rằng với mọi ϵ>0:

    P(|gm−μ|≥ϵ)≤Var(gm)ϵ2=σ2mϵ2.

    Yêu cầu xác suất vi phạm không vượt quá δ=0,05:

    0,25m(0,1)2≤0,05⟺0,250,01m≤0,05⟺25m≤0,05⟹m≥250,05=500.

    Theo Chebyshev, cần kích thước lô ít nhất m=500 mẫu.

  2. Áp dụng Bất đẳng thức Hoeffding: Vì mỗi Xi bị chặn trong đoạn [ai,bi]=[−1,1], độ dài khoảng chặn là bi−ai=1−(−1)=2. Bất đẳng thức Hoeffding cho biến ngẫu nhiên bị chặn:

    P(|gm−μ|≥ϵ)≤2exp⁡(−2m2ϵ2∑i=1m(bi−ai)2)=2exp⁡(−2m2ϵ2m×22)=2exp⁡(−mϵ22).

    Yêu cầu cận trên không vượt quá δ=0,05:

    2exp⁡(−m(0,1)22)≤0,05⟺exp⁡(−0,005m)≤0,025.

    Lấy logarit tự nhiên hai vế:

    −0,005m≤log⁡(0,025)≈−3,6889⟹m≥3,68890,005≈737,8.

    Làm tròn lên, ta cần m≥738 mẫu.

  3. So sánh bản chất của hai bất đẳng thức:

    • Khi độ tin cậy ở mức thông thường (δ=0,05), Chebyshev có thể cho cận số học nhỏ hơn nếu thực tế σ2=0,25 nhỏ hơn nhiều so với độ rộng khoảng chặn ([−1,1] có biên độ tối đa cho phép phương sai lên tới 1).
    • Tuy nhiên, sự khác biệt then chốt nằm ở tốc độ suy giảm theo xác suất lỗi δ:
      • Cận kích thước mẫu của Chebyshev tỷ lệ với 1δ (suy giảm dạng đa thức chậm). Nếu đòi hỏi δ=10−6, Chebyshev đòi hỏi m≥2510−6=25.000.000 mẫu.
      • Cận kích thước mẫu của Hoeffding tỷ lệ với log⁡(1/δ) (suy giảm dạng hàm mũ). Với δ=10−6, Hoeffding chỉ đòi hỏi m≥2log⁡(2×106)0,01≈2×14,50,01=2900 mẫu.

    Bất đẳng thức Hoeffding khai thác triệt để phân phối đuôi mỏng hàm mũ (sub- tails), tạo nền tảng vững chắc cho lý thuyết học thống kê (PAC learning) và cận khái quát hóa trong trí tuệ nhân tạo.


Tóm tắt cốt lõi ​

  1. Tối ưu hóa vs Khái quát hóa: Cực tiểu hóa mất mát thực nghiệm trên tập huấn luyện là phương tiện, trong khi mục tiêu tối thượng của học máy là khả năng khái quát hóa trên dữ liệu thực tế chưa biết.
  2. Bản chất của Mini-batch : Gradient lô nhỏ là ước lượng không chệch với tỉ lệ nghịch với kích thước lô (1/B). Nhiễu ngẫu nhiên vừa là thách thức vừa là công cụ điều chuẩn hữu hiệu.
  3. : Tích lũy quán tính giúp triệt tiêu dao động ziczac trong hẻm núi hẹp. Nesterov cải tiến vượt bậc bằng cách lấy tại vị trí nhìn trước để chủ động hãm đà khi tới gần đáy.
  4. Khởi tạo Glorot: Bảo toàn của dòng chảy tín hiệu lan truyền xuôi và lan truyền ngược, ngăn chặn triệt để thảm họa bùng nổ hay triệt tiêu gradient.

Tài liệu tham khảo và Đọc thêm ​

Dành cho người học muốn nghiên cứu chuyên sâu về tối ưu hóa trong học sâu:

  • Ian Goodfellow, Yoshua Bengio & Aaron Courville, Deep Learning, MIT Press. Đọc kỹ Chương 8 (Tối ưu hóa trong huấn luyện mô hình học sâu: Các thách thức giải tích, thuật toán cơ bản, thuật toán với , và chiến lược khởi tạo).
  • Xavier Glorot & Yoshua Bengio (2010), Understanding the difficulty of training deep feedforward neural networks, AISTATS. Công trình nền tảng khai sinh phương pháp khởi tạo chuẩn hóa (Glorot / Xavier initialization).

Tiếp theo: Bài 06: Các phương pháp tối ưu thích nghi: AdaGrad, RMSProp và Adam.

Ảnh & sơ đồ
100%
Ảnh tài liệu được phóng to