Thứ Ba, 18 tháng 12, 2018

[Machine Learning] Lộ trình học Deep Learning bắt đầu từ con số 0

Khi mới sang đây học từ tháng 9/2018, tôi khá bỡ ngỡ và không nghĩ mình nên học về AI, nhưng chỉ sau 1 tháng ở đây, tôi đã nhận ra việc học AI là một điều kiện tiên quyết dù có thích hay không để phát triển bản thân và cơ hội nghề nghiệp. Ở Việt Nam, khi nói tới AI hay Machine Learning, nó là một thứ gì đó xa xỉ và thường là ở các cuộc hội thảo khi mà các ông diễn giả chém gió là giỏi chứ thực chất chưa động tay vào xây dựng một mô hình AI tử tế bao giờ (chém gió ăn tiền chứ kiến thức rỗng tuếch), thì ở đây, nó là một thứ được nhắc tới thường ngày, ở trên lớp, cuộc họp và trong các câu chuyện phiếm thường nhật giữa 2 sinh viên.

Lúc đó, tôi khá mông lung không biết học từ đâu, tôi đã xem qua thử cuốn Machine Learning cơ bản của anh Vũ Hữu Tiệp, nhưng thực sự tôi thấy cách diễn giải khá lan man, và sẽ ít người đủ kiên nhẫn để theo đuổi. Cái thứ hai tôi không thích ở các cuốn sách về ML hiện nay (mới có 1 nhóm các bạn Việt Nam mới dịch thêm 1 cuốn) bởi vì các thuật ngữ đặc biệt "domain-specific" được dịch ra tiếng Việt. Dạo qua 1 vòng thì ngoài diễn đàn machinelearning cơ bản các tài liệu khác thường là rất manh mún và chắp vá.

Sau đó, tôi thử học khóa Machine Learning trên Coursera của Andrew Ng, và thực sự thấy đây là thứ tôi đang tìm, khóa học trình bày rất tổng quan về ML, nhiều kiến thức rất hay nhưng do lúc đó tôi mới học nên chưa thấm được hết, nhưng sau đó gặp cái gì đó là xem lại, thấy kiến thức ông nói rất xúc tích và chính xác. Mọi người cứ muốn đào sâu vào học cái khó cho nên họ recommend tôi học khóa CS231n của Stanford, nhưng tôi luôn nghĩ xây dựng từ cơ bản là tốt nhất, cho nên, tôi đã dành nguyên 1 tháng để tự học khóa này.
Sau đó, tôi định học khóa CS231n, theo tôi cảm nhận, người dạy khóa này kiến thức và khả năng truyền đạt không thể bằng Andrew Ng được, thêm vào đó assignment là khá nhiều và đòi hỏi người học phải tự đọc thêm nhiều, và lúc đó đang đợt ôn thi nên tôi cũng học qua vài lecture rồi bỏ.

Sau khi thi học kì thứ nhất xong, thời gian lại rảnh lại có để tự học, có lẽ tôi là fan của Andrew Ng nên tôi thích nghe giọng ông giảng, do đó tôi đang theo học khóa Deep Learning Specialization trên deeplearning.ai của ông. Do tôi định đi theo mảng NLP nên dù khóa này có tận 5 khóa con, nhưng tôi chỉ học Course 1 và week 1 của Course 5 nói về RNN.
Tiếp theo, tôi đọc bài Host load prediction with long short-term memory in cloud computing để tìm hiểu về Time-series prediction sử dụng RNN, bởi vì có 1 anh cùng lab làm về mảng này và recommend tôi đọc. Khi đã đọc hiểu rồi, để implement, cần học DL framework như TensorFlow hoặc Pytorch, và cá nhân tôi chọn học Pytorch qua khóa Intro to Deep Learning with PyTorch trên Udacity theo lời khuyên của labmate.
Khóa Deep Learning with PyTorch trên Udacity khá hay, ngoài lý thuyết ta còn được code do đó việc hiểu về CNN và RNN sẽ rõ ràng hơn rất nhiều, trong course này có 2 phần là Style Transfer và Sentiment Analysis là phần mở rộng của CNN và RNN, ta có thể học nếu hứng thú, tuy nhiên, tôi bỏ qua 2 phần này.

Tiếp theo, ta quay lại xem qua lecture về CNN và RNN của CS231n, lúc này, kiến thứ thực sự dễ hiểu, dù sao đi nữa CS231n là khóa học về DL thực sự gần như là tốt nhất về mặt lý thuyết, nên khi đã có đủ kiến thức nền, việc nghe các bài giảng trên CS231n như một cách nhắc lại và hệ thống kiến thức hoàn chỉnh.

1 nhận xét: