Dạo gần đây, AI đang “hot” hòn họt từ khi ChatGPT xuất hiện năm 2022. Ai cũng kinh ngạc khi nó làm được đủ thứ từ giải đáp thắc mắc đơn giản đến viết luận văn, code phức tạp (lập trình viên có vẻ hơi “toang” 😂). AI mạnh mẽ vậy, nhưng thực ra nó học hỏi giống con người mình thôi, đó chính là Học Máy.
Note: Bài blog này sẽ hơi nặng về lý thuyết Toán một xíu 😅

Giới thiệu về Học Máy
Theo Tom Mitchell [1], học máy được định nghĩa như sau
Một chương trình máy tính được cho là học những kinh nghiệm E từ những tác vụ T và được đo lường bởi hiệu suất P.
Nghe thì có vẻ hơi trừu tượng nhưng hãy liên tưởng đến việc bạn chinh phuc môn Toán ở phổ thông ở nội dung Tích phân chẳng hạn:
-
Tác vụ (T) - Bài kiểm tra Tích phân: Đây là mục tiêu cuối cùng mà bạn muốn giải quyết đó chính là hoàn thành bài thi một cách trọn vẹn nhất. Đây chính là đầu ra mà bạn muốn máy tính thực hiện tốt.
-
Kinh nghiệm (E) - Học tập lý thuyết và luyện đề: Ông cha ta có câu văn ôn võ luyện quả là không sai :blush:. Muốn làm bài thi cho tốt thì bạn phải dành nhiều thời gian để học tập lý thuyết và giải vô số bài tập khác nhau. Càng giải nhiều thì kinh nghiệm bạn tích lũy được càng nhiều và trở nên nhạy bén hơn. Trong học máy, E được biểu diễn dưới dạng dữ liệu. Càng nhiều dữ liệu thì chương trình học máy lại càng cho ra kết quả chính xác.
-
Hiệu suất (P) - Điểm số bài kiểm tra: Điểm số là thước đo đánh giá bạn thực hiện tác vụ (bài kiểm tra Tích phân) sau khi đã tích lũy kinh nghiệm (lý thuyết và luyện đề). Tương tự, hiệu suất đánh giá khả năng của mô hình học máy có khả năng thực hiện tác vụ T tốt hay không.
Trong các bài viết của mình, tôi sẽ tiếp cận Học Máy chủ yếu dưới góc độ xác suất tức là mọi biến ẩn (kết quả dự đoán hay các tham số bên trong mô hình) đều được xét như một biến ngẫu nhiên theo một phân phối xác suất nhất định. Lối tiếp cận này mang lại nhiều lợi thế đáng kể. Nó không chỉ tối ưu trong việc quyết định trong điều kiện bất định (uncertainty) mà còn mở ra khả năng kết hợp đa ngành mạnh mẽ, tận dụng những công cụ mô hình hóa xác suất đã được khẳng định trong các lĩnh vực khoa học khác như tối ưu hóa stochastic, lý thuyết điều khiển, thống kê vật lý, và nhiều hơn nữa.
Phân loại các mô hinh học máy
Dựa vào các kiểu dữ liệu thì mô hình học máy được chia ra thành 3 loại:
Ở bài lần này mình sẽ bàn luận sau về mục 1 (Học có giám sát). Còn những phần còn lại thì xin để dành cho các bài blog sau.
1. Học có giám sát (Supervised Learning)
Trong bài toán này, tác vụ T là học một hàm số ánh xạ $f$ từ biến đầu vào $\boldsymbol{x} \in \mathcal X$ ra kết quả $\boldsymbol{y} \in \mathcal Y$. Tại đây $\boldsymbol{x}$ được gọi là features hay còn gọi là biến dự đoán, thường được biểu diễn bằng một vector có chiều dài là $D$ (tập xác định $\mathcal{X} = \mathbb{R}^{D}$) và D là số đặc trưng của dữ liệu. Biến $\boldsymbol{y}$ được gọi là nhãn hoặc biến mục tiêu. Kinh nghiệm E là tập hợp gồm $N$ cặp đầu ra đầu vào dưới dạng \(\mathcal{D} = \{(\boldsymbol{x}_i, \boldsymbol{y}_i) \}_{i=1}^{N}\) được gọi là tập huấn luyện. Khi có được một ánh xạ $f$ cần tìm với $\theta$ là tham số, ta có thể sử đụng $f(\boldsymbol{x}; \boldsymbol{\theta})$ để dự đoạn $\hat{y}$. Hiệu suất mô hình P được đo tùy thuộc vào dạng kết quả mà mô hình dự đoán. Nó gồm hai bài toán điển hình:
- Bài toán phân loại (Classification):
Kết quả dự đoán $y$ sẽ có dạng là tập hợp các số nguyên từ 1 đến $C$. Trong đó $C$ là số lớp. Trường hợp chỉ có 2 nhãn thì $y$ sẽ dưới dạng \(y \in \{0, 1\}\) hoặc \(y \in \{-1, +1\}\). Bài toán này được gọi là phân loại nhị phân (Binary Classification).
Bài toán này rất phổ biến trong việc phân loại spam email đến chẩn đoán y khoa. Hình ở dưới minh hoạ việc xài học máy để phân loại hình ảnh chó và mèo.

Có 1 ví dụ điển hình nhất cho bài toán phân loại này đó chính là phân loại hoa Iris. Bộ dữ liệu Iris được giới thiệu bởi Ronald Fisher vào năm 1936, chứa thông tin của 150 mẫu hoa Iris chia đều cho 3 loài: Iris setosa, Iris versicolor, Iris virginica. Thông tin này được đo bằng 4 đặc trưng bằng centimeters:
- Chiều dài đài hoa (sepal length)
- Chiều rộng đài hoa (sepal length)
- Chiều dài cánh hoa (petal length)
- Chiều rộng cánh hoa (petal width)
Mục tiêu của bài toán là xây dựng mô hình học máy có dự đoán chính xác loài bông hoa Iris dựa trên đặc trưng trên

Để đo hiệu suất của mô hình, chúng ta có thể lấy giá trị tỉ lệ dự đoán sai bằng cách lấy trung bình của tổng số lần dự đoán sai. Biểu thức được biểu diễn như sau: \(\tag{1} \mathcal{L}(\theta) = \frac{1}{N} \sum_{n=1}^{N} \mathbb{I}(y_n \neq f(x_n; \theta))\)
Trong đó $\mathbb{I}(e)$ là hàm chỉ thị (indicator function) cho ra kết quả 1 khi và chỉ khi điều kiện $e$ là đúng và ngược lại. Phương trình trên được khái quát hóa bằng rủi ro thực nghiệm (empirical risk) \(\tag{2} \mathcal{L}(\theta) = \frac{1}{N} \sum_{n=1}^{N} \ell(y_n, f(x_n; \theta))\)
Tại đây tỉ lệ dự đoán sai ở phương trình (1) bằng rủi ro thực nghiệm nếu hàm mất mát là hàm mất mát 0-1 khi so sánh với kết quả dự đoán với nhãn thực tế: \(\tag{3} \ell_{01}(y, \hat{y}) = \mathbb{I}(y \neq \hat{y})\)
Quá trình tìm ra các tham số để tìm giá trị nhỏ nhất của hàm rủi ro thực nghiệm trên được gọi là tối thiểu hóa rủi ro thực nghiệm (Empirical Minimization) với công thức sau: \(\tag{4} \hat{\theta} = \arg \min_{\theta} \mathcal{L}(\theta) = \arg \min_{\theta} \frac{1}{N} \sum_{n=1}^{N} \ell(y_n, f(x_n; \theta))\) Huấn luyện mô hình được hiểu theo cách khác là quá trình tìm tham số của ánh xạ $f$ để tối thiểu hóa rủi ro thực nghiệm
Sẽ có bài viết chi tiết hơn về hàm mất mát và lý thuyết quyết định (Decision Theory)
- Bài toán hồi quy (Regression):
Thay vì nhãn của mình dưới dạng class thì giá trị bây giờ là một số thực $y \in \mathbb{R}$. Xét về bài toán dự đoán hoa Iris thì $y$ có thể được chiều cao trung bình của cây hoặc là độ độc của hoa nếu vô tình ăn vào. Mô hình hồi quy khá giống so với mô hình phân loại chỉ khác biệt là ở hàm mất mát. Ở đây ta sẽ dùng hàm mất mát bậc hai (quadratic loss)
\[\tag{5} \ell_{2}(y, \hat{y}) = (y - \hat{y})^{2}\]Hàm mất mát này phạt nếu residual (tức là phần dư) của $y - \hat{y}$ lớn. Hàm rủi ro thực nghiệm nếu xài hàm mất mát $l_2$ thì sẽ bằng sai số bình phương trung bình (mean squared error) với công thức:
\[\tag{6} \text{MSE}(\theta) = \frac{1}{N} \sum_{n=1}^{N} (y_n - f(x_n; \theta))^2\]- Sự Bất định (Uncertainty)
Thật sự là vô lý khi ta dám khẳng định kết quả dự đoán của mô hình luôn luôn chính xác cho từng input đầu vào. Khác với những hàm số Toán học hay Vật lý, những mô hình máy học không có những mối quan hệ cụ thể giữa ánh xạ đầu vào và đầu ra. Điều này dẫn đến kết quả dự đoán luôn tòn tại dưới dạng một xác suất.
Trong bài toán phân loại (Classification) thì xác suất này được mô tả dưới dạng phân phối của xác suất có điều kiện như sau:
\[\tag{7} p(y = c|\boldsymbol{x}; \boldsymbol{\theta})\]