Bối cảnh và vấn đề nghiên cứu

Trong xu thế phát triển của cuộc Cách mạng Công nghiệp 4.0, trí tuệ nhân tạo (AI) và học máy (Machine Learning) đã trở thành các công cụ quan trọng, hỗ trợ tự động hóa từ những tác vụ đơn giản thường nhật cho đến các công việc phức tạp như phân tích dữ liệu và dự báo. Học máy được phân chia thành hai nhóm phương pháp nền tảng chính: học có giám sát (Supervised Learning) và học không giám sát (Unsupervised Learning). Trong khi các nghiên cứu khóa trước tại Khoa Hệ thống Thông tin Kinh tế (Trường Đại học Kinh tế – Đại học Huế) chủ yếu tiếp cận theo hướng học có giám sát, tác giả Ngô Trần Hoàng Lâm đã lựa chọn hướng tiếp cận học không giám sát nhằm so sánh, đánh giá sự tương đồng và khác biệt về cơ chế cũng như hiệu năng giữa hai phương pháp này.

Bên cạnh đó, bài toán nhận dạng ký tự quang học nói chung và nhận diện chữ số nói riêng luôn là một chủ đề nhận được sự quan tâm lớn. Trong khi bài toán nhận dạng chữ in đã đạt được độ chính xác cao và được thương mại hóa rộng rãi, bài toán nhận dạng chữ viết tay vẫn tồn tại nhiều thách thức do sự đa dạng trong phong cách viết, nét chữ và độ biến dạng của từng cá nhân. Việc nhận dạng chính xác chữ số viết tay có giá trị ứng dụng thực tiễn cao trong các lĩnh vực như: nhận dạng biển số xe, số hóa bảng điểm, xử lý chứng từ hàng hóa và tự động phân loại mã bưu chính trên phong bì thư. Xuất phát từ bối cảnh đó, khóa luận tập trung nghiên cứu đề tài: "Phương pháp phân cụm KMeans và ứng dụng vào bài toán nhận diện chữ số viết tay".

Mục tiêu nghiên cứu:

  1. Tìm hiểu những lý thuyết cơ bản về học máy.
  2. Nắm vững thuật toán hồi quy Logistic (Logistic Regression) trong học có giám sát và thuật toán phân cụm KMeans trong học không giám sát.
  3. Xây dựng chương trình thử nghiệm nhận dạng chữ số viết tay trên môi trường GNU Octave/Matlab.
  4. So sánh kết quả thực nghiệm giữa thuật toán phân cụm KMeans và thuật toán Logistic Regression trên cùng một bộ dữ liệu.

Đối tượng và phạm vi nghiên cứu:

  • Đối tượng nghiên cứu: Bài toán phân cụm dữ liệu và thuật toán KMeans; bài toán hồi quy tuyến tính và phi tuyến; bài toán phân lớp nhị phân và phân lớp đa lớp (Multiclass Classification); tập mẫu chữ số viết tay trích xuất từ cơ sở dữ liệu chuẩn MNIST.
  • Phạm vi nghiên cứu: Các thuật toán tối ưu hóa trong học có giám sát; các giải thuật phân cụm trong học không giám sát; kỹ thuật lập trình và thực thi mô hình học máy trên nền tảng Octave/Matlab.

Cơ sở lý thuyết và phương pháp nghiên cứu

Khóa luận thiết lập nền tảng lý thuyết trên hai trụ cột của học máy: học không giám sát với trọng tâm là phân cụm dữ liệu, và học có giám sát với mô hình hồi quy Logistic.

1. Khung lý thuyết và mô hình toán học

Thuật toán phân cụm KMeans: KMeans là thuật toán học không giám sát dựa trên phân vùng (Partitioning Method), nhằm chia $n$ quan sát đa chiều thành $K$ cụm rời rạc ($S = {S_1, S_2, \dots, S_K}$) sao cho tổng bình phương khoảng cách giữa các điểm dữ liệu đến trọng tâm cụm tương ứng là nhỏ nhất. Mục tiêu tối ưu hóa được phát biểu bằng công thức:

$$\arg\min_S \sum_{i=1}^{K} \sum_{x \in S_i} |x - \mu_i|^2$$

Trong đó $\mu_i$ là giá trị trung bình (trọng tâm) của các điểm dữ liệu trong cụm $S_i$. Khoảng cách giữa điểm dữ liệu $x^{(j)}$ và trọng tâm $\mu_k$ được đo bằng khoảng cách Euclidean:

$$E = \sum_{j=1}^{m} \sum_{k=1}^{K} |x^{(j)} - \mu_k|^2$$

Thuật toán thực thi thông qua 4 bước tuần hoàn:

  1. Khởi tạo: Chọn ngẫu nhiên $K$ điểm làm trọng tâm ban đầu $\mu_1, \mu_2, \dots, \mu_K$.
  2. Gán cụm: Gán mỗi điểm dữ liệu $x^{(i)}$ vào cụm có trọng tâm gần nhất: $$c^{(i)} = \arg\min_k |x^{(i)} - \mu_k|^2$$
  3. Cập nhật trọng tâm: Tính toán lại vị trí trọng tâm cho từng cụm dựa trên trung bình cộng tọa độ các điểm thuộc cụm: $$\mu_k = \frac{1}{|S_k|} \sum_{x \in S_k} x$$
  4. Điều kiện dừng: Lặp lại bước 2 và bước 3 cho đến khi vị trí các trọng tâm không đổi hoặc đạt số vòng lặp tối đa.

Ngoài ra, văn bản phân tích ba biến thể liên quan của KMeans:

  • K-medians: Sử dụng trung vị thay vì trung bình cộng và tính theo khoảng cách Manhattan, giảm độ nhạy với dữ liệu ngoại lai.
  • K-medoids (PAM - Partitioning Around Medoids): Chọn chính điểm dữ liệu thực tế làm trọng tâm cụm, tăng độ bền vững trước nhiễu.
  • Fuzzy C-means (Phân cụm mờ): Cho phép một điểm dữ liệu thuộc về nhiều cụm với các mức độ thành viên (membership degree) khác nhau.

Mô hình Hồi quy Logistic (Logistic Regression) và Kỹ thuật One-vs-All: Logistic Regression được sử dụng làm mô hình đối chứng. Mô hình áp dụng hàm Sigmoid để ánh xạ giá trị đầu ra về khoảng xác suất $[0, 1]$:

$$g(z) = \frac{1}{1 + e^{-z}}, \quad \text{với } z = \theta^T x$$

Để đảm bảo khả năng hội tụ đến cực tiểu toàn cục duy nhất, khóa luận xây dựng hàm chi phí lồi (Convex Cost Function) dựa trên hàm hợp lý cực đại:

$$J(\theta) = -\frac{1}{m} \sum_{i=1}^{m} \left[ y^{(i)} \log(h_\theta(x^{(i)})) + (1 - y^{(i)}) \log(1 - h_\theta(x^{(i)})) \right]$$

Để giải quyết hiện tượng quá phù hợp (Overfitting), kỹ thuật chuẩn hóa (Regularization) thêm tham số $\lambda$ được đưa vào:

$$J(\theta) = -\frac{1}{m} \sum_{i=1}^{m} \left[ y^{(i)} \log(h_\theta(x^{(i)})) + (1 - y^{(i)}) \log(1 - h_\theta(x^{(i)})) \right] + \frac{\lambda}{2m} \sum_{j=1}^{n} \theta_j^2$$

Để phân loại 10 chữ số (từ 0 đến 9), tác giả triển khai chiến lược One-vs-All (một-với-tất-cả), biến đổi bài toán đa lớp thành 10 bài toán phân loại nhị phân riêng biệt. Mỗi lớp $k \in {1, \dots, 10}$ được huấn luyện một vectơ tham số $\theta^{(k)}$ riêng; nhãn dự đoán cho mẫu mới là nhãn có giá trị hàm giả thiết lớn nhất.

2. Phương pháp nghiên cứu thực tế và Nguồn dữ liệu

  • Phương pháp giải tích toán học: Chứng minh và thiết lập các hàm chi phí có tính chất lồi ngặt nhằm tránh việc thuật toán bị kẹt tại các điểm cực tiểu cục bộ.
  • Phương pháp thực nghiệm và lập trình: Tác giả tự lập trình toàn bộ thuật toán trên nền tảng GNU Octave/Matlab thông qua tệp mã nguồn Kmeans_mnist.m, không sử dụng các hộp công cụ (toolbox) dựng sẵn nhằm kiểm soát chi tiết quá trình tính toán ma trận, thời gian thực thi và cơ chế hội tụ.
  • Nguồn dữ liệu: Tập dữ liệu chuẩn MNIST (Modified National Institute of Standards and Technology database) do LeCun, Cortes và Burges cung cấp. Tác giả trích xuất một tập con gồm 5.000 mẫu chữ số viết tay từ 250 người viết khác nhau, phân bổ đồng đều tuyệt đối với 500 mẫu cho mỗi chữ số từ 0 đến 9. Mỗi mẫu là một ảnh xám (grayscale) kích thước $20 \times 20$ pixel, chuẩn hóa độ sáng từ 0 đến 255 và được làm phẳng (flatten) thành một vectơ hàng $1 \times 400$. Ma trận dữ liệu đầu vào $X$ có kích thước $5000 \times 400$ và vectơ nhãn $y$ có kích thước $5000 \times 1$ (nhãn 1 đến 9 đại diện cho chữ số 1–9, nhãn 10 đại diện cho chữ số 0).

Nội dung chính theo từng chương

Chương 1. Giới thiệu về Học máy

Chương này cung cấp bức tranh toàn cảnh về trí tuệ nhân tạo và các phân ngành của học máy. Tác giả hệ thống hóa 4 hướng tiếp cận lịch sử của AI (Hành động như người, Suy nghĩ như người, Suy nghĩ hợp lý, Hành động hợp lý), phân biệt rõ hai trường phái Supervised Learning và Unsupervised Learning.

Trọng tâm của chương tập trung phân tích 4 nhóm phương pháp phân cụm chính:

  1. Dựa trên mật độ (Density-Based): DBSCAN, OPTICS.
  2. Dựa trên phân cấp (Hierarchical-Based): CURE, BIRCH (tiếp cận kết tụ Agglomerative hoặc chia rẽ Divisive).
  3. Dựa trên phân vùng (Partitioning): KMeans, CLARANS.
  4. Dựa trên lưới (Grid-Based): STING, CLIQUE, WaveCluster.

Phần toán học của chương đi sâu phân tích thuật toán KMeans, độ phức tạp tính toán $O(K \cdot n \cdot d \cdot l)$ (với $l$ là số vòng lặp), các ưu nhược điểm cốt lõi và các biến thể mở rộng (Kmedians, Kmedoids, Fuzzy C-means). Tiếp theo, chương trình bày chi tiết thuật toán Logistic Regression, cấu trúc hàm Sigmoid, đường ranh giới quyết định (Decision Boundary tuyến tính và phi tuyến), thuật toán tối ưu hóa Gradient Descent, kỹ thuật One-vs-All cho phân lớp đa lớp, và kỹ thuật Regularization chống Overfitting.

Chương 2. Bài toán nhận diện chữ số viết tay với thuật toán phân cụm KMeans

Chương 2 mô tả quy trình chuyển đổi bài toán nhận dạng ảnh sang bài toán phân cụm không gian vector 400 chiều. Tác giả trình bày cấu trúc tập dữ liệu MNIST $5000 \times 400$, cách thức ánh xạ nhãn lớp, và quy trình áp dụng KMeans với số cụm ban đầu $K \ge 10$. Cơ chế lặp cập nhật trọng tâm dựa trên khoảng cách Euclidean được thiết lập với điều kiện dừng rõ ràng.

Chương cũng trình bày chi tiết quy trình đối chứng bằng mô hình Logistic Regression thông qua ma trận tham số $\Theta \in \mathbb{R}^{10 \times 401}$. Đồng thời, tác giả tổng thuật các công trình nghiên cứu tiền nhiệm liên quan:

  • Michael P. Perrone và Scott D. Connell (2000): Ứng dụng KMeans kết hợp mô hình Markov ẩn (HMM) cho bài toán nhận dạng chữ viết tay với từ vựng 30.000 từ, đạt tỷ lệ lỗi 8%.
  • Sajjad Pourmohammad và cộng sự (2013): Đề xuất hệ thống kết hợp biến đổi Affine, PCA, KMeans, LDA và phân loại Bayes trên tập MNIST, đạt tỷ lệ lỗi 3%.
  • Rejean Plamondon và Sargur N. Srihari (2000): Nghiên cứu tổng quan về các phương pháp nhận dạng ký tự viết tay trực tuyến (online) và ngoại tuyến (offline).
  • Hoàng Thị Ly Na (2019): Sử dụng Gradient Descent nhận dạng 5.000 mẫu MNIST với 500 vòng lặp, $\alpha = 3$, $\lambda = 0.01$, đạt độ chính xác 93%.
  • Mai Phương Đông (2019): Ứng dụng thuật toán tối ưu hóa quasi-Newton BFGS trên dữ liệu chữ viết tay, đạt độ chính xác 93,84% trên chữ số và 76% trên chữ cái.

Chương 3. Thí nghiệm và kết quả

Chương 3 trình bày các kịch bản thực nghiệm trên phần mềm Octave với mã nguồn Kmeans_mnist.m. Tác giả cố định tham số số vòng lặp tối đa max_iters = 100 và thực hiện 7 lượt thử nghiệm độc lập tương ứng với các giá trị số lượng trọng tâm $K$ tăng dần: $K \in {10, 20, 50, 100, 150, 200, 250}$. Tác giả tích hợp module đo lường thời gian thực thi (timestamps) tại cửa sổ dòng lệnh (Command Window) để đánh giá tốc độ xử lý và sự hội tụ của thuật toán.


Kết quả và đóng góp

1. Kết quả thực nghiệm chính

Khóa luận ghi nhận kết quả thực nghiệm của thuật toán phân cụm KMeans khi thay đổi số lượng cụm $K$ và so sánh với mô hình học có giám sát:

Phương pháp / Mô hình Tham số thiết lập Số mẫu dữ liệu Độ chính xác (%)
KMeans ($K = 10$) max_iters = 100, $K = 10$ 5.000 mẫu MNIST 58,14%
KMeans ($K = 20 \dots 250$) max_iters = 100, tăng dần $K$ 5.000 mẫu MNIST Tăng dần theo số lượng $K$
Logistic Regression (One-vs-All) $\Theta \in \mathbb{R}^{10 \times 401}$, Regularization 5.000 mẫu MNIST Đạt độ chính xác cao đối chứng
Gradient Descent (Hoàng Thị Ly Na, 2019) Vòng lặp = 500, $\alpha = 3, \lambda = 0.01$ 5.000 mẫu MNIST 93,00%
Thuật toán BFGS (Mai Phương Đông, 2019) Tối ưu hóa ma trận Hessian 5.000 mẫu MNIST 93,84% (chữ số), 76,00% (chữ cái)

Tại mức thiết lập cơ bản $K = 10$, thuật toán phân cụm KMeans chỉ đạt độ chính xác 58,14%. Tác giả giải thích nguyên nhân là do 10 trọng tâm là quá ít để bao quát được sự đa dạng về phong cách viết của 250 người khác nhau (ví dụ: các biến thể viết khác nhau của cùng chữ số 3, 4 hoặc 7). Khi tăng dần giá trị $K$ ($K = 20, 50, 100, 150, 200, 250$), độ chính xác nhận diện tăng lên rõ rệt.

2. Đóng góp của đề tài

  • Làm rõ ranh giới hoạt động và hiệu năng thực tế giữa học có giám sát (Logistic Regression) và học không giám sát (KMeans) trên cùng bài toán nhận diện mẫu ảnh số hóa.
  • Phân tích hiện tượng đánh đổi trong thuật toán KMeans: việc tăng số lượng cụm $K$ giúp tăng độ chính xác phân loại nhưng làm suy giảm bản chất gom nhóm tự nhiên ban đầu của thuật toán.
  • Xây dựng hoàn chỉnh chương trình xử lý ma trận và thuật toán học máy trực tiếp trên môi trường mã nguồn mở GNU Octave mà không phụ thuộc vào các thư viện đóng gói sẵn.

Hạn chế và hướng nghiên cứu tiếp

1. Hạn chế

  • Phụ thuộc vào khởi tạo trọng tâm: Khởi tạo ngẫu nhiên các trọng tâm $K$ ban đầu dẫn đến độ biến thiên kết quả giữa các lần chạy và có nguy cơ rơi vào điểm cực tiểu cục bộ.
  • Sự đánh đổi tham số cụm: Thuật toán đòi hỏi số lượng $K$ lớn để cải thiện độ chính xác nhận diện chữ số, làm mờ nhạt ranh giới giữa phân cụm không giám sát và bài toán ghi nhớ dữ liệu.
  • Độ nhạy của hàm khoảng cách: Khoảng cách Euclidean trong không gian 400 chiều nhạy cảm với nhiễu, điểm dị biệt và khó mô tả tốt các cụm dữ liệu phi tuyến tính hoặc không có dạng hình cầu.
  • Giới hạn vòng lặp: Việc cố định max_iters = 100 có thể khiến thuật toán dừng trước khi hoàn toàn hội tụ ở các giá trị $K$ lớn.

2. Hướng phát triển

  • Tích hợp các kỹ thuật tiền xử lý và giảm chiều không gian đặc trưng như phân tích thành phần chính (PCA) hoặc biến đổi Affine (xoay, co giãn nét chữ) nhằm giảm tải tính toán.
  • Áp dụng các giải thuật khởi tạo trọng tâm tối ưu (như KMeans++) hoặc chuyển sang các mô hình kết hợp (Hybrid Models) để tăng tốc độ hội tụ.
  • Mở rộng thử nghiệm trên toàn bộ 70.000 mẫu của bộ dữ liệu MNIST đầy đủ thay vì tập mẫu con 5.000 ảnh.

Giá trị tham khảo

Khóa luận là tài liệu tham khảo hữu ích cho sinh viên các ngành Hệ thống Thông tin Quản lý, Tin học Kinh tế, Khoa học Dữ liệu và Công nghệ Thông tin đang nghiên cứu nhập môn học máy.

Các nội dung có giá trị tham khảo chuyên sâu bao gồm:

  • Quy trình biểu diễn, chuyển đổi dữ liệu ảnh ma trận $20 \times 20$ sang không gian vectơ 400 chiều để huấn luyện mô hình.
  • Các bước chứng minh toán học và lập trình hàm chi phí lồi, kỹ thuật Regularization và cơ chế phân loại đa lớp One-vs-All.
  • Cách thiết lập kịch bản thực nghiệm, đo thời gian chạy và đánh giá ảnh hưởng của tham số siêu cấu hình ($K$, số vòng lặp) trên công cụ GNU Octave/Matlab.

Câu hỏi thường gặp

1. Cấu trúc và kích thước của bộ dữ liệu MNIST được tác giả sử dụng trong khóa luận như thế nào?
Tác giả sử dụng tập dữ liệu gồm 5.000 mẫu chữ số viết tay từ 250 người viết khác nhau, chia đều 500 mẫu cho mỗi chữ số từ 0 đến 9. Mỗi mẫu là ảnh xám kích thước $20 \times 20$ pixel, được chuyển đổi thành vectơ $1 \times 400$, tạo thành ma trận đầu vào $X$ kích thước $5000 \times 400$ và vectơ nhãn $y$ kích thước $5000 \times 1$.

2. Tại sao ở thử nghiệm khởi tạo $K = 10$, thuật toán phân cụm KMeans chỉ đạt độ chính xác 58,14%?
Vì mỗi chữ số viết tay có nhiều biến thể hình học và nét viết khác nhau tùy thuộc vào người viết. Việc chỉ khởi tạo 10 trọng tâm ($K = 10$) là quá nhỏ so với độ biến thiên của 5.000 mẫu dữ liệu, khiến các mẫu của cùng một chữ số nhưng có kiểu viết khác nhau bị gán sai vào các cụm lân cận.

3. Làm thế nào Logistic Regression – một mô hình phân loại nhị phân – có thể nhận diện được 10 chữ số từ 0 đến 9?
Tác giả áp dụng chiến lược One-vs-All (một-với-tất-cả), chuyển bài toán 10 lớp thành 10 bài toán phân loại nhị phân độc lập. Quá trình huấn luyện sinh ra 10 vectơ trọng số $\theta^{(k)}$ ($k = 1 \dots 10$). Khi dự đoán mẫu mới, hàm giả thiết $h_\theta^{(k)}(x)$ nào cho xác suất cao nhất thì mẫu sẽ được gán cho nhãn tương ứng.

4. Kỹ thuật Regularization trong khóa luận giải quyết vấn đề gì của Logistic Regression?
Kỹ thuật Regularization giải quyết hiện tượng quá phù hợp (Overfitting). Bằng cách cộng thêm thành phần phạt $\frac{\lambda}{2m}\sum \theta_j^2$ vào hàm chi phí, mô hình thu nhỏ độ lớn của các hệ số trọng số $\theta$, giúp hàm quyết định không quá phức tạp và có khả năng tổng quát hóa tốt hơn trên dữ liệu mới.

5. Điểm khác biệt cơ bản giữa thuật toán KMeans và biến thể Kmedoids (PAM) được trình bày trong tài liệu là gì?
Trong KMeans, trọng tâm cụm được tính bằng trung bình cộng tọa độ các điểm trong cụm (không nhất thiết là một điểm dữ liệu có thật). Ngược lại, Kmedoids chọn chính một điểm dữ liệu thực tế thuộc tập đầu vào làm trung tâm cụm, giúp mô hình bền vững hơn và ít bị ảnh hưởng bởi dữ liệu nhiễu.


Kết luận

Khóa luận tốt nghiệp của sinh viên Ngô Trần Hoàng Lâm đã hệ thống hóa cơ sở lý thuyết toán học của phương pháp phân cụm không giám sát KMeans và mô hình phân lớp có giám sát Logistic Regression. Thông qua việc tự xây dựng chương trình thử nghiệm trên môi trường GNU Octave với 5.000 mẫu chữ số viết tay MNIST, tác giả đã chứng minh mối liên hệ thực nghiệm giữa số lượng trọng tâm $K$ và độ chính xác nhận dạng, đạt 58,14% tại $K=10$ và tăng dần theo các mức phân cụm cao hơn. Đề tài cung cấp tài liệu tham khảo chi tiết về phương pháp biểu diễn dữ liệu ảnh, kỹ thuật lập trình ma trận và đánh giá hiệu năng giải thuật học máy ứng dụng.