You are on page 1of 6

TRƯỜNG ĐẠI HỌC PHENIKAA

HỌC KỲ I NĂM HỌC 2022 – 2023


BÀI TẬP LỚN GIỮA KỲ: TOÁN ỨNG DỤNG CHO TRÍ TUỆ NHÂN TẠO

ĐỀ TÀI
Minibatch Stochastic Gradient Descent

Sinh viên: Trần Anh Quân


Trần Hữu Gia Huy
Nguyễn Đức Huy
Giảng viên: Vũ Hoàng Diệu
MỤC LỤC
1. Sơ lược về thuật toán.......................................................................................................1

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

Mini-Batch Gradient Descent là một thuật toán tối ưu và là một trong


những biến thể của Gradient Descent. 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).
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ó nn đ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 nn). 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.

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ụ:

price=w 1× area+w 2 ×bedroom+ bias

error 1=( price−^


2
price )

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

area bedrooms price


1 1056 2 39,07
2 2600 4 120
3 1440 3 62
4 1521 3 75
5 1200 2 51
6 1170 2 38
7 2732 4 135
8 3300 4 155
9 1310 3 50
10 3700 5 167
11 1800 3 82
12 2785 4 140
13 1000 2 38
14 1100 2 40
15 2250 3 101
16 1175 2 42
17 1180 3 48
18 1540 3 60
19 2770 3 102
20 800 1 32

You might also like