Trang web này tập trung các slide bài giảng và bài tập của môn tối ưu hóa nâng cao giảng dạy tại trường Đại học Khoa học Tự nhiên, Đại học Quốc gia Hà Nội.
Tài liệu tham khảo bắt buộc:
- J. Nocedal and S. Wright, Numerical Optimization (Springer).
- S. Boyd and L. Vandenberghe, Convex Optimization (Cambridge University Press)
Tài liệu tham khảo thêm
- D. Luenberger and Y. Ye, Linear and Nonlinear Programming (Springer)
- Chương 8 Optimization for Training Deep Models trong sách Deep learning https://www.deeplearningbook.org/
Một số bài giảng online:
- Convex Optimization, Prof. L. Vandenberghe, (UCLA): http://www.seas.ucla.edu/~vandenbe/ee236b/ee236b.html
- Optimization Methods for Large-Scale Systems, Prof. L. Vandenberghe, (UCLA): http://www.seas.ucla.edu/~vandenbe/ee236c.html
- Convex Optimization, Prof. R. Tibshirani (CMU): http://www.stat.cmu.edu/~ryantibs/convexopt/
- Machine learning refined, https://jermwatt.github.io/mlrefined/
Các điểm thành phần
- Điểm thường xuyên (20% – lấy từ điểm bài tập)
- Điểm giữa kì (20%)
- Điểm cuối kì (60%)
Điểm dự án sẽ quy đổi thành điểm giữa kì và 1/3 điểm cuối kì (tương ứng 20% tổng số điểm). 2/3 điểm cuối kì còn lại (tương ứng 40% tổng số điểm) lấy từ thi viết kết hợp vấn đáp vào cuối kì.
Projects
Lớp chia thành các nhóm tối đa 2 người. Trong trường hợp lẻ ra một người thì người đó có thể xin tham gia vào một nhóm 2 người. Mỗi nhóm tự tìm ra các vấn đề ứng dụng thực tế của tối ưu (ví dụ trong các bài toán học máy) cũng như dữ liệu cho các bài toán đó (ví dụ https://www.kaggle.com/competitions). Từ đó các nhóm viết code giải các bài toán tương ứng. Điểm dự án sẽ lấy thành điểm giữa kì và 1/3 điểm cuối kì.
Bài thuyết trình phải áp dụng tất cả các thuật toán tối ưu học trong môn học đồng thời đưa ra các so sánh, nhận định đánh giá về thời gian chạy, chất lượng nghiệm, ….
Điểm đánh giá dựa trên độ khó, tính độc đáo/sáng tạo, mức độ hoàn thành, code và thuyết trình.
Thời gian thực hiện:
- Tuần số 2: Bắt đầu tìm kiếm bài toán
- Tuần số 6: Mỗi nhóm đăng kí đề tài và nguồn dữ liệu trong phần bình luận của mục đăng kí trên google classroom. Lưu ý: Các nhóm phải chọn đề tài khác nhau. Trong trường hợp trùng nhau, các nhóm đăng kí muộn hơn sẽ phải kiếm đề tài khác.
- Tuần số 10: Nộp báo cáo tiến độ giữa kì về cách tiếp cận và các phương pháp giải quyết bài toán
- Tuần số 14 và 15: Thuyết trình báo cáo về dự án. Các nhóm phải nộp thuyết trình và code của mình lên google classroom trước buổi học tương ứng. Nộp muộn sẽ không được tính điểm.
Bài tập về nhà
Lớp cũng chia thành các nhóm như với project. Mỗi nhóm sẽ do trưởng nhóm đại diện nộp bài thuyết trình và code lên google classroom trước buổi học tương ứng. Các nhóm nộp muộn sẽ không được tính điểm.
Slide bài giảng và bài tập
Phần 1: Giới thiệu chung
Tuần 1 & 2 (22.3.2020 và 29.3.2020)
Tuần 3 (5.4.2020)
Tuần 4 (12.4.2020)
- Line search
- Bài toán hồi quy tuyến tính, tham khảo
- Thuật toán gradient descent
Bài tập về nhà – Bài 1: áp dụng thuật toán gradient descent giải bài toán hồi quy tuyến tính sử dụng một trong hai gói dữ liệu data 1, data 2. Hạn nộp bài và thuyết trình 26.4.2020.
Tuần 5 (19.4.2020)
- Thuật toán gradient descent (tiếp tục)
- Subgradient
Tuần 6 (26.4.2020)
- Thuyết trình kết quả bài tập 1 (mỗi nhóm có 15 phút thuyết trình, 5 phút trả lời câu hỏi)
Lưu ý cho các bài thuyết trình: Mọi thành viên của nhóm đều phải tham gia thuyết trình và trả lời câu hỏi, giảng viên có thể tùy ý đảo lại thứ tự thuyết trình của các thành viên trong nhóm (mỗi thành viên đều phải nắm rõ nội dung toàn bộ bài thuyết trình). Các thành viên không tham gia vào việc nhóm sẽ bị tách ra khỏi nhóm và phải tự làm trong tất cả các bài tiếp theo.
Tuần 7 (3.5.2020)
- Subgradient (tiếp tục)
- Thuật toán subgradient
- Thuật toán stochastic gradient descent
- Bài toán hồi quy logistic, tham khảo
Bài tập về nhà – Bài 2: áp dụng thuật toán gradient descent, stochastic gradient descent và batch gradient descent cho bài toán logistic regression với tập dữ liệu voicegender. Hãy so sánh thời gian tính toán và kết quả của các thuật toán này với nhau. Hạn nộp bài và thuyết trình 17.5.
Tuần 8 (10.5.2020)
- Thuật toán proximal gradient descent và tăng tốc
- Một số thuật toán bậc nhất khác: nội dung đọc thêm, tự tham khảo chương 11 sách https://d2l.ai/d2l-en.pdf
- Thuật toán Newton
- Thuật toán tựa Newton: nội dung đọc thêm, tự tham khảo chương 6 sách Numerical Optimization của J. Nocedal và S. Wright.
Bài tập về nhà – Bài 3: Áp dụng thuật toán accelerated gradient và Newton cho một trong 2 gói dữ liệu trong bài 1 (với stepsize cố định và dùng backtracking), so sánh với thuật toán đã sử dụng trong bài 1 (về thời gian chạy, số bước, chất lượng nghiệm …). Hãy dùng đồ thị biểu diễn kết quả so sánh tương tự như tại đây. Hạn nộp bài và thuyết trình 31.5.
Tuần 9 (24.5.2020)
- Thuyết trình bài tập 2 (mỗi nhóm có 15 phút thuyết trình, 3-5 phút trả lời câu hỏi)
Tuần 10 (31.5.2020)
- Tiếp tục thuyết trình bài tập 2
- Một vài ví dụ áp dụng thuật toán Newton
- Đối ngẫu
Tuần 11 (7.6.2020)
- Thuyết trình bài tập 3 (mỗi nhóm có 10 phút thuyết trình, 5 phút trả lời câu hỏi)
Tuần 12 (14.6.2020)
Tuần 13 (28.6.2020)
- Thuyết trình project các nhóm từ 1 đến 5 (mỗi nhóm có 20 phút thuyết trình và 10 phút trả lời câu hỏi)
Tuần 14 (5.7.2020)
- Tiếp tục thuyết trình project các nhóm còn lại (mỗi nhóm có 20 phút thuyết trình và 10 phút trả lời câu hỏi)
Tuần 15 (12.7.2020)
- Hỏi đáp & Ôn tập