[SWE học A.I] Phần 3: Machine Learning Classification

[SWE học A.I] Phần 3: Machine Learning Classification
Bài viết là bài thứ 3 trong 3 bài tại series SWE Học A.I

Phân Loại (Classification)

Phân loại là một ứng dụng quan trọng của học máy (machine learning), trong đó chúng ta xem xét một tập hợp các đầu vào, so sánh mỗi đầu vào với một danh sách các lớp (hoặc danh mục) có thể có, và gán mỗi đầu vào vào lớp có khả năng cao nhất.

Quá trình này được gọi là phân loại hoặc phân danh mục, và được thực hiện bởi một bộ phân loại (classifier). Chúng ta có thể sử dụng các lớp để thực hiện các tác vụ đa dạng như nhận diện từ ngữ mà ai đó nói qua điện thoại, xác định loài động vật xuất hiện trong ảnh, hoặc đánh giá một trái cây đã chín hay chưa.

Một cách phổ biến để huấn luyện một bộ phân loại là sử dụng học có giám sát (supervised learning). bắt đầu bằng việc thu thập một tập hợp các mẫu dữ liệu mà chúng ta muốn phân loại, gọi là tập huấn luyện (training set). Đồng thời, chúng ta chuẩn bị một danh sách các lớp hoặc danh mục, chẳng hạn như các loài động vật có thể xuất hiện trong ảnh hoặc thể loại nhạc được gán cho một mẫu âm thanh. Sau đó, chúng ta xem xét từng mẫu trong tập huấn luyện và quyết định lớp nào nên được gán cho mẫu đó. Đây được gọi là nhãn (label) của mẫu.

IDẢnh (mô tả)Đặc trưng (Features)Nhãn (Label)
1Ảnh con vật có lông, 4 chân[lông: có, chân: 4, bay: không, sủa: có]Chó
2Ảnh con vật có cánh, biết bay[lông: không, chân: 2, bay: có, sủa: không]Chim
3Ảnh con vật có lông, 4 chân[lông: có, chân: 4, bay: không, sủa: không]Mèo
4Ảnh con vật có mai cứng[lông: không, chân: 4, bay: không, sủa: không]Rùa

Tiếp theo, chúng ta cung cấp từng mẫu cho máy tính, từng mẫu một, nhưng không cung cấp nhãn. Máy tính xử lý mẫu và đưa ra dự đoán về lớp mà mẫu đó nên được gán. Sau đó, chúng ta so sánh dự đoán của máy tính với nhãn của chúng ta. Nếu dự đoán của bộ phân loại không khớp với nhãn, chúng ta điều chỉnh bộ phân loại một chút để nó có khả năng dự đoán đúng lớp nếu gặp lại mẫu này.

image 2 - quochung.cyou PTIT
[SWE học A.I] Phần 3: Machine Learning Classification 25

Quá trình này được gọi là huấn luyện (training), và chúng ta nói rằng hệ thống đang học (learning). Chúng ta lặp lại quá trình này nhiều lần, thường với hàng nghìn hoặc thậm chí hàng triệu mẫu, được tái sử dụng nhiều lần. Mục tiêu là cải thiện dần thuật toán cho đến khi các dự đoán của nó khớp với nhãn của chúng ta đủ thường xuyên để chúng ta cảm thấy nó sẵn sàng được áp dụng vào thực tế, nơi nó sẽ phân loại chính xác các mẫu mới mà nó chưa từng thấy. Khi đó, chúng ta kiểm tra bộ phân loại với dữ liệu mới để xem nó hoạt động tốt như thế nào và liệu nó đã sẵn sàng để sử dụng thực tế hay chưa.

Phân loại hai phần (Binary Classification)

Để bắt đầu, giả sử dữ liệu đầu vào chỉ thuộc về hai lớp khác nhau. Việc sử dụng hai lớp giúp đơn giản hóa việc thảo luận về phân loại mà không bỏ sót bất kỳ điểm cốt lõi nào. Vì chỉ có hai nhãn (hoặc lớp) khả thi cho mỗi đầu vào, chúng ta gọi đây là phân loại nhị phân (binary classification).

Nhóm kỹ thuật đầu tiên mà chúng ta sẽ xem xét được gọi chung là phương pháp ranh giới (boundary methods). Ý tưởng đằng sau các phương pháp này là chúng ta có thể quan sát các mẫu đầu vào được vẽ trên mặt phẳng và tìm một đường thẳng hoặc đường cong chia không gian sao cho tất cả các mẫu thuộc một nhãn nằm ở một bên của đường cong (hoặc ranh giới), và tất cả các mẫu thuộc nhãn kia nằm ở bên còn lại.

Giả sử chúng ta là nông dân trồng táo. Mỗi quả táo có thể là táo ngọt hoặc táo chua. Nếu chúng ta đo trọng lượng và đường kính của mỗi quả táo, ta có thể phân loại được loại của chúng. Giả sử rằng một chuyên gia nếm thử có thể phân biệt chính xác táo ngọt và táo chua – công việc của máy phân loại là mô phỏng khả năng đó. Với dữ liệu huấn luyện về trọng lượng và đường kính, chúng ta có thể vẽ điểm dữ liệu trên mặt phẳng và tìm một đường (thẳng hoặc cong) để phân chia hai loại táo. Mỗi điểm mới nằm về phía nào thì được gán nhãn tương ứng

image 4 - quochung.cyou PTIT
[SWE học A.I] Phần 3: Machine Learning Classification 26

Khi có táo mới (chưa biết vị), chúng ta chỉ cần xem nó nằm ở bên nào của đường thẳng khi được vẽ trên biểu đồ. Những quả nằm ở phía “ngọt” sẽ được gán lớp “táo ngọt”, và những quả ở phía “chua” sẽ được gán lớp “táo chua”

Khi phân chia như vậy, chúng ta gọi các phần trên mặt phẳng là vùng quyết định (decision regions) hoặc miền, và đường phân chia là ranh giới quyết định (decision boundaries).

Phân loại Đa lớp (Multiclass Classification)

Phân loại nhị phân (binary classification) thường đơn giản và nhanh hơn so với phân loại đa lớp (multiclass classification). Tuy nhiên, trong thực tế, phần lớn dữ liệu có nhiều hơn hai lớp.

May mắn thay, thay vì xây dựng một mô hình phân loại đa lớp phức tạp, chúng ta có thể tạo ra một tập hợp các bộ phân loại nhị phân và kết hợp kết quả của chúng để đưa ra câu trả lời đa lớp.

Một-chọi-tất-cả (One-versus-Rest)

Phương pháp này còn được gọi là Một-chọi-tất-cả (OvR), Một-chọi-hết (OvA), Một-đối-kháng-tất-cả (OAA) hoặc phương pháp liên quan nhị phân (binary relevance method). Giả sử chúng ta có năm lớp dữ liệu, được đặt tên từ A đến E. Thay vì xây dựng một bộ phân loại đa lớp phức tạp để gán một trong năm nhãn này, chúng ta sẽ tạo ra năm bộ phân loại nhị phân đơn giản hơn, mỗi bộ tập trung vào một lớp cụ thể, được đặt tên từ A đến E.

  • Bộ phân loại A xác định liệu một mẫu dữ liệu có thuộc lớp A hay không. Vì đây là bộ phân loại nhị phân, nó tạo ra một ranh giới quyết định (decision boundary) chia không gian dữ liệu thành hai vùng: lớp A và tất cả các lớp còn lại (B, C, D, E). Tên gọi “Một-chọi-tất-cả” bắt nguồn từ đây: lớp A là “một”, còn các lớp B đến E là “tất cả”.
  • Tương tự, Bộ phân loại B xác định liệu mẫu thuộc lớp B hay không, Bộ phân loại C kiểm tra lớp C, và cứ thế cho đến lớp E.
image 5 - quochung.cyou PTIT
[SWE học A.I] Phần 3: Machine Learning Classification 27

Các vùng quyết định của năm bộ phân loại nhị phân. Màu sắc từ tím đến hồng thể hiện xác suất tăng dần rằng một điểm thuộc vào lớp tương ứng.

Để phân loại một mẫu mới, chúng ta chạy mẫu đó qua cả năm bộ phân loại nhị phân, mỗi bộ trả về xác suất mẫu thuộc vào lớp tương ứng. Lớp có xác suất cao nhất sẽ được gán cho mẫu.

image 6 - quochung.cyou PTIT
[SWE học A.I] Phần 3: Machine Learning Classification 28

Trong ví dụ này, bốn bộ phân loại đầu tiên trả về xác suất thấp, trong khi bộ phân loại cho lớp E gán xác suất cao hơn, do đó mẫu được dự đoán thuộc lớp E.

Giả sử bạn cần phân loại ảnh thành năm loài: chó, mèo, chim, cá và thỏ. Thay vì xây dựng một mô hình phân loại phức tạp, bạn tạo năm bộ phân loại nhị phân:

  • Bộ phân loại “chó” xác định liệu ảnh có phải là chó hay không (tức là chó so với mèo, chim, cá, thỏ).
  • Tương tự cho các loài còn lại.

Khi một ảnh mới được đưa vào, mỗi bộ phân loại sẽ trả về một xác suất. Giả sử xác suất là:

  • Chó: 0.1
  • Mèo: 0.3
  • Chim: 0.15
  • Cá: 0.05
  • Thỏ: 0.7

Ảnh sẽ được gán nhãn là “thỏ” vì xác suất cao nhất là 0.7.

chart - quochung.cyou PTIT
[SWE học A.I] Phần 3: Machine Learning Classification 29

Ưu điểm và nhược điểm

Tuy nhiên, với phần cứng hỗ trợ xử lý song song, thời gian có thể được tối ưu tương đương với thời gian của một bộ phân loại.

Ưu điểm:

  • Khái niệm đơn giản, dễ hiểu.
  • Tốc độ xử lý nhanh, đặc biệt khi có thể chạy song song các bộ phân loại trên phần cứng phù hợp.

Nhược điểm:

  • Cần huấn luyện năm bộ phân loại thay vì một.
  • Mỗi mẫu phải được chạy qua năm bộ phân loại để xác định lớp, điều này có thể tốn thời gian khi số lớp lớn hoặc ranh giới phân loại phức tạp.

Một-chọi-một (One-versus-One)

Phương pháp thứ hai, Một-chọi-một (OvO), sử dụng nhiều bộ phân loại nhị phân so với ý tưởng OvR. Ý tưởng chính là xem xét từng cặp lớp trong dữ liệu và xây dựng một bộ phân loại nhị phân cho cặp lớp đó. Vì số lượng cặp lớp tăng nhanh khi số lớp tăng, số lượng bộ phân loại cũng tăng đáng kể. Để đơn giản, hãy xét ví dụ với bốn lớp (A, B, C, D)

image 7 - quochung.cyou PTIT
[SWE học A.I] Phần 3: Machine Learning Classification 30

Quy trình như sau:

  1. Bộ phân loại A-B: Được huấn luyện chỉ với dữ liệu từ lớp A và B, bỏ qua các mẫu không thuộc A hoặc B. Bộ phân loại này tạo ranh giới phân tách giữa A và B, gán mọi điểm dữ liệu vào A hoặc B, ngay cả khi điểm đó thuộc lớp khác.
  2. Tiếp tục xây dựng các bộ phân loại cho các cặp khác: A-C, A-D, B-C, B-D, và C-D. Kết quả là sáu bộ phân loại nhị phân, mỗi bộ xác định mẫu thuộc vào một trong hai lớp cụ thể.
image 9 - quochung.cyou PTIT
[SWE học A.I] Phần 3: Machine Learning Classification 31

Hàng trên: Bộ phân loại cho A-B, A-C, A-D. Hàng giữa: Bộ phân loại cho B-C, B-D. Hàng dưới: Bộ phân loại cho C-D.

Để phân loại một mẫu mới, chúng ta chạy mẫu qua cả sáu bộ phân loại. Mỗi bộ phân loại “bỏ phiếu” cho một trong hai lớp, và lớp nhận được nhiều phiếu nhất sẽ là nhãn dự đoán.

  • Hàng trên: Các phiếu là A, A, A.
  • Hàng giữa: Các phiếu là C, B.
  • Hàng dưới: Phiếu là C.

Kết quả: Lớp A nhận 3 phiếu, B nhận 1, C nhận 2, D nhận 0. Do đó, mẫu được dự đoán thuộc lớp A.

image 8 - quochung.cyou PTIT
[SWE học A.I] Phần 3: Machine Learning Classification 32

Ưu điểm và nhược điểm

  • Ưu điểm:
    • Cung cấp cái nhìn rõ ràng hơn về cách mẫu được đánh giá qua từng cặp lớp, tăng tính minh bạch và khả năng giải thích (explainability).
    • Hữu ích khi các lớp có sự chồng lấn phức tạp, giúp con người dễ hiểu kết quả hơn.
  • Nhược điểm:
    • Số lượng bộ phân loại tăng nhanh theo số lớp. Ví dụ:
      • 4 lớp: 6 bộ phân loại.
      • 5 lớp: 10 bộ phân loại.
      • 20 lớp: 190 bộ phân loại.
      • 30 lớp: 435 bộ phân loại.
image 10 - quochung.cyou PTIT
[SWE học A.I] Phần 3: Machine Learning Classification 33

Phân cụm (Clustering)

Phân cụm có nhãn

Phân cụm là một phương pháp giúp tổ chức dữ liệu thành các nhóm tương tự nhau. Chúng ta đã biết rằng một cách để phân loại các mẫu dữ liệu mới là chia không gian thành các vùng khác nhau, sau đó kiểm tra xem một điểm thuộc vùng nào. Tuy nhiên, một cách tiếp cận khác là nhóm chính dữ liệu huấn luyện thành các cụm (clusters), tức là các tập hợp có đặc điểm tương đồng. Nếu dữ liệu của chúng ta có nhãn (labels), làm thế nào để sử dụng nhãn này để tạo các cụm?

image 11 - quochung.cyou PTIT
[SWE học A.I] Phần 3: Machine Learning Classification 34

Dữ liệu có năm nhãn khác nhau, được biểu thị bằng màu sắc. Với các nhóm tách biệt rõ ràng, chúng ta có thể tạo cụm bằng cách vẽ một đường bao quanh mỗi tập hợp điểm, như ở hình giữa. Nếu mở rộng các đường này cho đến khi chúng giao nhau, sao cho mỗi điểm trên lưới được gán màu theo cụm gần nhất, chúng ta có thể bao phủ toàn bộ không gian như ở hình bên phải.

Phân cụm không nhãn

Phương pháp trên yêu cầu dữ liệu có nhãn. Nhưng nếu dữ liệu không có nhãn thì sao? Trong trường hợp này, chúng ta có thể tự động nhóm dữ liệu không nhãn thành các cụm và áp dụng kỹ thuật vừa mô tả. Đây là một dạng học không giám sát (unsupervised learning), nơi dữ liệu không có nhãn sẵn.

Khi sử dụng thuật toán để tự động tạo cụm từ dữ liệu không nhãn, chúng ta cần chỉ định số lượng cụm mong muốn, thường được ký hiệu bằng chữ k (một ký hiệu tùy ý, không mang ý nghĩa cụ thể). Giá trị k là một siêu tham số (hyperparameter), tức là giá trị chúng ta chọn trước khi huấn luyện hệ thống.

Giá trị k quyết định thuật toán sẽ chia dữ liệu thành bao nhiêu vùng (hay bao nhiêu lớp). Vì thuật toán sử dụng trung bình hình học (geometric means) của các nhóm điểm để tạo cụm, nó được gọi là phân cụm k-means.

Ưu và nhược điểm của việc chọn k

Việc tự do chọn giá trị k vừa là lợi thế vừa là thách thức.

  • Lợi thế: Nếu chúng ta biết trước số lượng cụm cần thiết, chúng ta có thể chỉ định và thuật toán sẽ tạo ra kết quả phù hợp. Tuy nhiên, máy tính không biết ranh giới cụm nên dù chia thành k phần, kết quả có thể không đúng như kỳ vọng. Nếu dữ liệu tách biệt tốt, với các nhóm cách xa nhau, kết quả thường khớp với dự đoán. Nhưng nếu ranh giới cụm mờ hoặc chồng lấn, kết quả có thể bất ngờ.
  • Thách thức: Nếu không biết số lượng cụm phù hợp, việc chọn k quá thấp sẽ không tách biệt dữ liệu hiệu quả, còn chọn k quá cao sẽ khiến các điểm dữ liệu tương tự bị phân vào các lớp khác nhau.
image 12 - quochung.cyou PTIT
[SWE học A.I] Phần 3: Machine Learning Classification 35

Với 200 điểm không nhãn, được sắp xếp rõ ràng thành năm nhóm.

Bây giờ, với các k khác nhau, ta có:

image 13 - quochung.cyou PTIT
[SWE học A.I] Phần 3: Machine Learning Classification 36

Không ngạc nhiên khi k = 5 cho kết quả tốt nhất trong ví dụ này, vì ranh giới cụm dễ nhận thấy. Tuy nhiên, với dữ liệu phức tạp hơn, đặc biệt khi có hơn hai hoặc ba chiều, việc xác định số cụm tối ưu trước đó gần như bất khả thi.

Tối ưu hóa giá trị k

May mắn thay, chúng ta có thể huấn luyện mô hình phân cụm nhiều lần với các giá trị k khác nhau. Bằng cách đo lường chất lượng kết quả, quá trình điều chỉnh siêu tham số (hyperparameter tuning) giúp tự động tìm giá trị k tốt nhất. Nhược điểm là quá trình này tốn tài nguyên tính toán và thời gian. Do đó, việc trực quan hóa dữ liệu trước khi phân cụm rất hữu ích. Nếu chọn được giá trị k tối ưu hoặc một phạm vi giá trị khả thi ngay từ đầu, chúng ta có thể tiết kiệm thời gian và công sức.

Giả lập luồng hoạt động

Thuật toán k-means hoạt động theo các bước sau:

  1. Khởi tạo: Chọn ngẫu nhiên k điểm làm tâm cụm (centroids).
  2. Gán cụm: Gán mỗi điểm dữ liệu vào cụm có tâm gần nhất, dựa trên khoảng cách Euclidean: \(d(x, c) = \sqrt{\sum_{i=1}^{n} (x_i – c_i)^2}\)
  3. Cập nhật tâm cụm: Tính lại tâm cụm bằng trung bình của các điểm trong mỗi cụm: \(c_j = \frac{1}{n_j} \sum_{i=1}^{n_j} x_i\)
  4. Lặp lại: Lặp bước 2 và 3 cho đến khi tâm cụm không thay đổi hoặc đạt số lần lặp tối đa.

Hãy tưởng tượng bạn là chủ một quán cà phê và có dữ liệu về 10 khách hàng, được biểu thị bằng hai thông tin:

  • Số tiền chi tiêu (nghìn đồng) mỗi lần ghé quán.
  • Số lần ghé quán mỗi tháng.

Dữ liệu không có nhãn, nghĩa là bạn không biết trước khách hàng thuộc nhóm nào (như khách VIP, khách thường, v.v.). Mục tiêu là dùng k-means để chia 10 khách này thành 4 cụm dựa trên thói quen của họ.

Dữ liệu mẫu

Dưới đây là 10 điểm dữ liệu (mỗi điểm là một khách hàng):

Khách hàngChi tiêu (nghìn đồng)Số lần ghé quán
A502
B603
C551
D20010
E22012
F21011
G1005
H1106
I3003
J3104

Giả lập chạy thuật toán k-means với k = 4

Bước 1: Khởi tạo tâm cụm

Thuật toán chọn ngẫu nhiên 4 điểm làm tâm cụm ban đầu. Giả sử các tâm cụm được chọn là:

  • Tâm 1: (50, 2) – Khách A
  • Tâm 2: (200, 10) – Khách D
  • Tâm 3: (100, 5) – Khách G
  • Tâm 4: (300, 3) – Khách I
Bước 2: Gán cụm

Mỗi khách hàng được gán vào cụm có tâm gần nhất, dựa trên khoảng cách Euclidean. Công thức khoảng cách giữa hai điểm ((x_1, y_1)) và ((x_2, y_2)) là:

[ \(d = \sqrt{(x_2 – x_1)^2 + (y_2 – y_1)^2}\) ]

Ví dụ, tính khoảng cách từ khách B (60, 3) đến Tâm 1 (50, 2):

[ \(d = \sqrt{(60 – 50)^2 + (3 – 2)^2} = \sqrt{10^2 + 1^2} = \sqrt{101} \approx 10.05\) ]

Tương tự, tính khoảng cách từ B đến các tâm còn lại và gán B vào cụm có khoảng cách nhỏ nhất. Sau khi tính toán (giả sử kết quả), các khách hàng được gán như sau:

  • Cụm 1 (Tâm: 50, 2): Khách A, B, C
  • Cụm 2 (Tâm: 200, 10): Khách D, E, F
  • Cụm 3 (Tâm: 100, 5): Khách G, H
  • Cụm 4 (Tâm: 300, 3): Khách I, J
Bước 3: Cập nhật tâm cụm

Tính lại tâm cụm bằng trung bình tọa độ của các điểm trong cụm:

  • Cụm 1 (A: 50, 2; B: 60, 3; C: 55, 1):
    • Trung bình x: ((50 + 60 + 55) / 3 = 55)
    • Trung bình y: ((2 + 3 + 1) / 3 = 2)
    • Tâm mới: (55, 2)
  • Cụm 2 (D: 200, 10; E: 220, 12; F: 210, 11):
    • Trung bình x: ((200 + 220 + 210) / 3 = 210)
    • Trung bình y: ((10 + 12 + 11) / 3 = 11)
    • Tâm mới: (210, 11)
  • Cụm 3 (G: 100, 5; H: 110, 6):
    • Trung bình x: ((100 + 110) / 2 = 105)
    • Trung bình y: ((5 + 6) / 2 = 5.5)
    • Tâm mới: (105, 5.5)
  • Cụm 4 (I: 300, 3; J: 310, 4):
    • Trung bình x: ((300 + 310) / 2 = 305)
    • Trung bình y: ((3 + 4) / 2 = 3.5)
    • Tâm mới: (305, 3.5)
Bước 4: Lặp lại

Lặp lại bước 2 và 3 với các tâm cụm mới. Giả sử sau vài lần lặp, các tâm cụm không thay đổi nữa, ta được kết quả cuối cùng:

  • Cụm 1: Khách A, B, C (khách chi tiêu ít, ghé ít)
  • Cụm 2: Khách D, E, F (khách chi tiêu nhiều, ghé thường xuyên)
  • Cụm 3: Khách G, H (khách chi tiêu trung bình, ghé trung bình)
  • Cụm 4: Khách I, J (khách chi tiêu rất nhiều, ghé ít)
Kết quả:
  • Cụm 1: Khách hàng tiết kiệm, ít ghé quán – có thể là sinh viên hoặc khách vãng lai.
  • Cụm 2: Khách VIP, chi tiêu nhiều và ghé thường xuyên – nên ưu tiên chăm sóc.
  • Cụm 3: Khách trung thành nhưng chi tiêu vừa phải – có tiềm năng tăng chi tiêu.
  • Cụm 4: Khách chi tiêu lớn nhưng hiếm ghé – có thể là khách du lịch hoặc khách đặc biệt.
chart 1 - quochung.cyou PTIT
[SWE học A.I] Phần 3: Machine Learning Classification 37
Series Navigation<< [SWE học A.I] Phần 1: Machine Learning, Supervised Learning, Unsupervised Learning và Reinforment Learning

Comments

No comments yet. Why don’t you start the discussion?

Leave a Reply