Tôi đã từng học Machine Learning trong vòng 2 tháng và tôi tin bạn cũng có thể làm được.
Lộ trình sẽ giúp bạn nắm chắc công nghệ này từ cơ bản đến nâng cao, xây dựng Machine Learning model từ python thuần cho đến các thư viện cao cấp như TensorFlow hay Keras. Đi sâu phân tích bản chất vấn đề là giá trị cốt lõi của khóa học này.
P/S: Hãy để lại 1 star để team có động lực xuất bản các phần tiếp theo và cũng đừng quên chia sẻ tới bạn bè của bạn.
- 1. Kiến thức toán học cần thiết
- 2. Kỹ năng lập trình Python
- 3. Thư viện Numpy và TensorFlow
- 4. Bài toán hồi quy (Regression)
- 5. Bài toán phân loại (Classification)
- 6. Xây dựng mô hình Decision Trees và Random Forests
- 7. Xây dựng mạng Neural Network
- 8. Xây dựng mạng Convolutional Neural Network (CNN)
- 9. Xây dựng mạng Recurrent Neural Network (RNN)
- 10. Triển khai (Deploy) Machine Learning Model trên Production
-
a. Đại số tuyến tính
Nếu các bạn có nhiều thời gian và sự kiên trì thì có thể học toàn bộ khóa này MIT 18.06 Linear Algebra, Spring 2005 . Nhưng đối với bản thân tôi có những phần trong khóa này đến bây giờ tôi vẫn chưa dùng đến. Vì thế nếu bạn không có nhiều thời gian, muốn tăng nhanh tốc độ thì có thể học theo từng phần tôi nhấn mạnh ở phía dưới đây.
- Scalar/Vector
- Giới thiệu vector/scalar và các thành phần của chúng: Vector basics - Khan Academy
- Ma trận (Matrix)
- Giới thiệu về ma trận: Introduction to matrices - Khan Academy
- Chuyển vị ma trận
- Cách chuyển vị ma trận và những vấn đề liên quan: Transpose of a matrix - Khan Academy
- Norm Vector
- Norm L1/L2: Vector Norms
- Tensor
- Giới thiệu về Tensor: Tensors for Beginners 0: Tensor Definition
- Các phép toán với ma trận
- Phép cộng ma trận
- Phương pháp cộng/trừ ma trận: Matrix addition and subtraction | Matrices | Precalculus | Khan Academy
- Phép nhân ma trận
- Các phương pháp nhân ma trận: Lec 3 | MIT 18.06 Linear Algebra, Spring 2005
- Tích Hadamard/Element-Wise
- Phương pháp tính tích Element-Wise: Element-Wise Multiplication and Division of Matrices
- Phép cộng ma trận
- Ma trận đơn vị
- Miêu tả ma trận đơn vị: Identity matrix | Matrices | Precalculus | Khan Academy
- Ma trận nghịch đảo
- Phương pháp tính ma trận nghịch đảo: Lec 3 | MIT 18.06 Linear Algebra, Spring 2005
- Scalar/Vector
-
b. Đạo hàm
-
Đây là series kinh điển để nhắc lại kiến thức đạo hàm của bạn. Essence of calculus - 3Blue1Brown
-
Anh Tiệp có một bài rất đầy đủ về đạo hàm ở đây: Machine Learning cơ bản - Phần Toán. Hãy thực hành tính toán phần 3.5, tôi đảm bảo bạn sẽ nắm chắc được đạo hàm trên vector và ma trận.
-
Ngoài phần cơ bản quan trọng thì việc nắm thuần thục Chain Rule và Production Rule là rất quan trọng đặc biệt là dành cho thuật toán Backpropagation trong Deep Learing. Bạn hãy xem kỹ video này: Visualizing the chain rule and product rule | Essence of calculus, chapter 4
-
-
c. Lý thuyết xác suất
- Các khái niệm cơ bản
- Những khái niệm cơ bản: Basic theoretical probability
- Xác suất sử dụng không gian mẫu: Probability using sample spaces
- Tiên đề xác suất: Axioms of Probability
- Các loại xác suất
- Xác suất có điều kiện:
- Giới thiệu: Dependent probability introduction | Probability and Statistics | Khan Academy
- Các ví dụ liên quan: Dependent probability example | Probability and Statistics | Khan Academy
- Công thức Bayes: CRITICAL THINKING - Fundamentals: Bayes' Theorem
- Xác suất độc lập: Compound probability of independent events | Probability and Statistics | Khan Academy
- Xác suất có điều kiện:
- Biến ngẫu nhiên và phân phối xác suất: Biến ngẫu nhiên và phân phối xác suất
- Các khái niệm cơ bản
Python là ngôn ngữ được dùng nhiều nhất để làm Machine Learning vì tính đơn giản gọn nhẹ của nó. Nhưng để đưa vào Production thì tôi nghĩ Javascript cũng là một lựa chọn không tồi. Tôi sẽ chia sẻ về Machine Learning với Javascript trong các phần tiếp theo.
-
a. Cài đặt Python: Cách cài đặt Python và các thư viện cần thiết
- Python
- Pip
- Jupyter Notebook
-
b. Tính chất đặc điểm
Python là ngôn ngữ thông dịch có:
- Điểm mạnh:
- Dễ viết/ Dễ đọc
- Quy trình phát triển phần mềm nhanh vì dòng lệnh được thông dịch thành mã máy và thực thi ngay lập tức
- Có nhiều thư viện mạnh để tính toán cũng như làm Machine Learning như Numpy, Sympy, Scipy, Matplotlib, Pandas, TensorFlow, Keras, vv.
- Điểm yếu:
- Mang đầy đủ điểm yếu của các ngôn ngữ thông dịch như tốc độ chậm, tiềm tàng lỗi trong quá trình thông dịch, source code dễ dàng bị dịch ngược.
- Ngôn ngữ có tính linh hoạt cao nên thiếu tính chặt chẽ.
- Điểm mạnh:
-
c. Các hàm dựng sẵn và kiểu dữ liệu trên Python
-
Các kiểu dữ liệu trong Python
Phần này được thiết kế dựa trên khóa Data Structures & Algorithms in Python - Udacity nhưng tôi sẽ đi sâu hơn vào các ví dụ thực tế hơn là chỉ dừng lại ở lý thuyết. Bên cạnh đó tôi sẽ giúp các bạn nắm rõ một số Data Structure quan trọng trong Machine Learning như Graph và Tree.
- Integer, Float và Boolean
- String
- List-Based Collection
- Dictionary
- Set
- Tree
- Tree
- Binary Tree
- Heap
- Self-Balancing Tree
- Red-Black Tree
- Graph
-
d. Vòng lặp
-
e. Hàm
-
f. Class
-
g. Thuật toán