Professional Documents
Culture Documents
Toán AI
Toán AI
ĐỀ TÀI
Minibatch Stochastic Gradient Descent
2. Mô tả thuật toán..............................................................................................................1
3. Ưu nhược điểm................................................................................................................2
4. Ứng dụng..........................................................................................................................3
1. Sơ lược về thuật toán
2. Mô tả thuật toán
Khác với SGD, mini-batch sử dụng một số lượng n lớn hơn 1 (nhưng
vẫn nhỏ hơn tô̂ng số dữ liệu N rất nhiều). Giống với SGD , Mini-batch
Gradient Descent bắt đầu mỗi epoch bằng việc xáo trộn ngẫu nhiên dữ
liệu rồi chia toàn bộ dữ liệu thành các mini-batch, mỗi mini-batch có n
điểm dữ liệu (trừ mini-batch cuối có thể có ít hơn nếu N không chia hết
cho n ). Mỗi lần cập nhật, thuật toán này lấy ra một mini-batch để tính
toán đạo hàm rồi cập nhật. Công thức có thể viết dưới dạng:
θ=θ−η ∇θ J ( θ ; x i : i+n ; y i: i+ n)
Với x i :i +n được hiểu là dữ liệu từ thứ i tới thứ i+n−1 (theo ký hiệu của
Python). Dữ liệu này sau mối epoch là khác nhau vì chúng cần được xáo
trộn. Một lần nữa, các thuật toán khác cho GD như Momentum,
Adagrad, Adadelta,... cũng có thể được áp dụng vào đây.
Mini-batch GD được sử dụng trong hầu hết các thuật toán Machine
Learning, đặc biệt là trong Deep Learning. Giá trị n thường được chọn là
khoảng từ 50 đến 100 .
1
3. Ưu nhược điểm
Stochastic Mini-batch
Gradient Descent
Gradient Descent Gradient Descent
Xem xét toàn bộ cơ sở dữ Tại 1 thời điểm, ta chỉ Tại 1 thời điểm, ta tính
liệu cùng 1 lúc, khiến cho tính đạo hàm của hàm mất đạo hàm của hàm mất mát
mỗi vòng lặp trở nên cồng mát dựa trên chỉ một điểm dựa trên một tập hợp các
kềnh và không hiệu quả, dữ liệu rồi cập nhật dựa điểm dữ liệu ví dụ huấn
không phù hợp với online trên đạo hàm này. Việc luyện được xem xét, nó
learning này được thực hiện với có thể cập nhật nhanh các
từng điểm trên toàn bộ dữ thông số mô hình và cũng
liệu, sau đó lặp lại quá có thể khai thác tốc độ
trình trên. Thuật toán rất liên quan đến vectơ mã
đơn giản này trên thực tế hóa.
lại làm việc rất hiệu quả.
Thực hiện cập nhật trơn tru Tạo ra các cập nhật thông Tùy thuộc vào kích thước
các thông số mô hình số rất ồn ào batch, các bản cập nhật có
thể được thực hiện ít
nhiễu hơn nếu batch lớn
2
hơn
=> Mini-batch GD sẽ tiến đến gần cực tiểu toàn cục hơn SGD nhưng sẽ khó để
thoát khỏi cực tiểu địa phương hơn. Dù vậy SGD và Mini-batch GD sẽ tiến
đến cực tiểu toàn cục nếu chúng ta áp dụng giảm dần learning rate hợp lý.
4. Ứng dụng
Trong toán tối ưu, việc tìm ra cực trị của hàm số rất phổ biến. Có
nhiều phương pháp để tìm cực trị hàm số, trong đó cách phổ biến nhất là
tìm đạo hàm rồi giải phương trình đạo hàm bằng 0, các nghiệm sẽ là hữu
hạn và thay từng nghiệm vào hàm số ta sẽ được các giá trị cực tiểu, sau
đó lấy nghiệm làm cho hàm số có giá trị nhỏ nhất.
Tuy nhiên thì không phải lúc nào chúng ta cũng có thể tìm ra được đạo
hàm cũng như giải phương trình đạo hàm. Lý do là do hàm số có đạo
hàm phức tạp, dữ liệu có nhiều chiều… Vì vậy người ta nghĩ ra 1 cách để
tìm cực trị (cực tiểu/cực đại)
Ví dụ:
3
∂ L( w)
=X T (X w− y )
∂w
∂ ( error )
w 1=w 1−learning rate×
∂w1
∂ ( error )
w 2=w 2−learning rate×
∂w2
∂ ( error )
b=b−learning rate ×
∂b