Professional Documents
Culture Documents
Bài tập lớn kĩ thuật lập trình
Bài tập lớn kĩ thuật lập trình
Mục lục :
Phần 1: Giới thiệu bài toán
1 𝑁
J m ,𝑏 = σ𝑖=1(𝑦𝑖 − 𝑚𝑥𝑖 + 𝑏 )2
𝑁
nhỏ nhất với xi ,yi là tọa độ của điểm i được liệt kê.
• Cách giải quyết bài toán: Sử dụng Gradient Descent.
.
Gradient Descent là gì?
• Để tìm được giá trị nhỏ nhất của hàm tối ưu ,một cách làm
đó là chọn một giá trị m, b nào đó. Từ điểm đó ta nạp và tái
nạp 2 biến số trên theo hàm độ dốc và learning rate để đi
dần dần đến cực tiểu.
Cách làm
1. Chọn một giá trị m, b bất kỳ.
2. Chọn một learning rate α (thường là 0.0001, 0.0003, 0.001,
0.003, 0. ) .
3. Thực hiện lặp n lần các phép toán dưới đây.
Lặp đến khi hội tụ {
𝜕
gradM := m - α 𝐽 𝑚, 𝑏
𝜕𝑚
𝜕
gradB := b - α 𝐽 𝑚, 𝑏
𝜕𝑏
m := gradM
b := gradB
}
Kiểm chứng độ chính xác.
• Để kiểm chứng độ chính xác, ta biểu diễn hàm tối ưu trên
đồ thị.
Phần II: Trình bày code.
• Khởi tạo class GradientDescent.
Bốn phần chính trong class GradientDescent bao gồm.
1. Function giúp đọc file csv biểu diễn tọa độ các điểm.
• Function giúp chọn và tái nạp m và b.
• Function chạy Gradient Descent qua 500000 lần.
Phần III: Chạy thử.
Cảm ơn các bạn đã theo dõi!