Chuyển đến nội dung chính

Machine Learning: Từ Đường Thẳng, Vector đến Classification - Part 2

Mở đầu

Trong hình học phổ thông, chúng ta quen thuộc với các khái niệm như đường thẳng, song song và vuông góc trên mặt giấy. Khi bước sang thế giới Machine Learning (ML), đặc biệt là bài toán Classification (Phân loại), những khái niệm này không biến mất.

Chúng được nâng cấp và mở rộng vào không gian nhiều chiều, dưới dạng các vector. Bài viết này nhằm kết nối tư duy hình học thuần túy với cách mà các thư viện Machine Learning thực sự xử lý dữ liệu.


Mọi bài toán phân loại trong Machine Learning đều có thể được mô tả như một bài toán hình học trong không gian vector nhiều chiều.
Cách nhìn bài toán phân loại dưới góc độ hình học trong bài viết này chỉ áp dụng cho các mô hình phân loại tuyến tính. Với các mô hình phi tuyến, dữ liệu thường được biến đổi sang một không gian khác trước khi áp dụng phân tách tuyến tính.

1. Vector và siêu phẳng trong bài toán phân loại

Vector là đối tượng cơ bản dùng để biểu diễn dữ liệu trong Machine Learning. Mỗi mẫu dữ liệu, sau khi được trích xuất đặc trưng, đều được xem như một vector trong không gian nhiều chiều.

Một vector chỉ đặc trưng bởi hướngđộ lớn, không gắn với vị trí cố định trong không gian. Ngược lại, một siêu phẳng (hyperplane) là một tập hợp các điểm có vị trí xác định, đóng vai trò là ranh giới quyết định trong bài toán phân loại.

Trong thực tế, mô hình học máy không trực tiếp “vẽ” siêu phẳng. Quá trình huấn luyện chỉ nhằm tìm ra:

  • một vector trọng số w
  • và một hằng số b

Hai đại lượng này xác định hoàn toàn siêu phẳng phân loại trong không gian vector.


Mọi phép giảm chiều đều dẫn đến sự mất mát thông tin.

2. Phép chiếu và sự mất mát thông tin

Trong hình học, hai đường thẳng song song trong không gian ba chiều không bao giờ cắt nhau. Tuy nhiên, khi chiếu chúng xuống một mặt phẳng hai chiều (bỏ đi một trục), hai đường thẳng này có thể trùng khít hoàn toàn.

Phép chiếu đã làm mất đi thông tin về chiều không gian bị loại bỏ, khiến các đối tượng vốn khác biệt trở nên không thể phân biệt.

Mọi phép giảm chiều đều dẫn đến sự mất mát thông tin.

Xét hai đường thẳng song song trong không gian ba chiều:

$$ \ell_1: \begin{cases} x = t \\ y = 0 \\ z = 0 \end{cases} $$ $$ \ell_2: \begin{cases} x = t \\ y = 0 \\ z = 1 \end{cases} $$

Hai đường thẳng này có cùng hướng nhưng lệch nhau theo trục z, do đó chúng không bao giờ cắt nhau trong không gian ba chiều.

Hãy tưởng tượng:
  • Không gian 3D có trục x,y,z
  • Mặt phẳng Oxy là "sàn nhà"
  • Phép chiếu xuống Oxy = đổ bóng thẳng đứng xuống sàn

Bây giờ, xét phép chiếu xuống mặt phẳng Oxy:

$$ \pi(x, y, z) = (x, y) $$

Áp dụng phép chiếu này cho mọi điểm trên hai đường thẳng, ta thu được:

$$ \pi(\ell_1) = \pi(\ell_2): \begin{cases} x = t \\ y = 0 \end{cases} $$

Hai đường thẳng khác nhau trong không gian ban đầu đã trở thành một đường thẳng duy nhất sau khi chiếu xuống mặt phẳng.

Phép chiếu đã loại bỏ chiều z, và cùng với nó là thông tin dùng để phân biệt hai đối tượng ban đầu. Phép chiếu không phải là phép một-một, nên thông tin đã mất không thể được phục hồi.

Trong Machine Learning, mỗi chiều không gian tương ứng với một đặc trưng (feature). Khi bỏ qua một đặc trưng quan trọng, các điểm dữ liệu vốn tách biệt trong không gian ban đầu có thể chồng lấn lên nhau trong không gian biểu diễn.

Dữ liệu chồng lấn không phải lúc nào cũng đồng nghĩa với việc thiếu feature. Trong nhiều trường hợp, bản thân bài toán không thể phân tách tuyến tính, dù dữ liệu đã được biểu diễn đầy đủ.

Đây là một trong những nguyên nhân phổ biến khiến bài toán phân loại tuyến tính thất bại, dù thuật toán được sử dụng hoàn toàn chính xác.


Quyết định phân loại được thực hiện thông qua tích vô hướng giữa vector dữ liệu và vector trọng số.

3. Tích vô hướng và quyết định phân loại

Trong Machine Learning, việc xác định một điểm dữ liệu thuộc về lớp nào được thực hiện thông qua phép tính tích vô hướng giữa vector dữ liệu và vector trọng số của mô hình.

Với một mẫu dữ liệu x và vector trọng số w, mô hình tính giá trị:

$$ \text{score} = w \cdot x + b $$

Dấu của giá trị score quyết định kết quả phân loại:

  • score > 0: điểm dữ liệu nằm về một phía của ranh giới phân loại
  • score < 0: điểm dữ liệu nằm về phía còn lại
  • score = 0: điểm dữ liệu nằm ngay trên ranh giới phân loại

Ở đây, tích vô hướng không nhằm đo khoảng cách, mà nhằm xác định điểm dữ liệu nằm về phía nào của ranh giới.


Vector, phương của đường phân loại và một hiểu nhầm thường gặp

Cần lưu ý rằng đường thẳng (hay siêu phẳng) không có hướng theo nghĩa mũi tên. Trên một đường thẳng, ta có thể đi theo hai chiều ngược nhau, và không có chiều nào được ưu tiên một cách tự nhiên.

Tuy nhiên, mỗi đường thẳng vẫn có một phương, tức là cách nó nghiêng trong không gian. Hai vector ngược chiều nhau nhưng cùng phương đều có thể xem là vector chỉ phương của cùng một đường thẳng.

Ngược lại, vector thì luôn có hướng. Điều này dẫn tới một điểm quan trọng trong bài toán phân loại:

Vector trọng số \( w \) không nằm dọc theo đường phân loại.


Vector pháp tuyến là gì?

Xét đường phân loại trong mặt phẳng:

$$ w_1 x + w_2 y + b = 0 $$

Vector \( w = (w_1, w_2) \) được gọi là vector pháp tuyến của đường thẳng này.

Vector pháp tuyến là vector:

  • vuông góc với đường phân loại,
  • xác định cách đường phân chia không gian thành hai phía.

Một cách trực quan, có thể hình dung:

  • đường phân loại giống như một bức tường,
  • vector pháp tuyến \( w \) là mũi tên vuông góc vào bức tường đó.

Trong hình minh họa:

  • Đường thẳng là ranh giới phân loại,
  • Vector \( w \) vuông góc với đường,
  • Hướng của \( w \) quyết định phía nào có score > 0.

Vì sao tích vô hướng quyết định phân loại?

Giá trị \( w \cdot x \) đo mức độ cùng hướng giữa vector dữ liệu \( x \) và vector pháp tuyến \( w \).

  • Nếu \( x \) nằm về phía mà \( w \) chỉ tới → tích vô hướng dương
  • Nếu \( x \) nằm về phía ngược lại → tích vô hướng âm

Hằng số \( b \) cho phép dịch chuyển ranh giới phân loại, tránh việc siêu phẳng bị ép phải đi qua gốc tọa độ.

Do đó, phép tính

$$ w \cdot x + b $$

chính là cách mô hình xác định phía phân loại dựa trên quan hệ hình học giữa điểm dữ liệu và vector pháp tuyến.


Liên hệ tới Support Vector Machine

Cách phân loại bằng tích vô hướng trả lời câu hỏi: Điểm dữ liệu nằm về phía nào của ranh giới?

Support Vector Machine (SVM) mở rộng thêm một câu hỏi quan trọng hơn: Điểm dữ liệu đó cách ranh giới bao xa?

Chính vì vector \( w \) là pháp tuyến của đường phân loại, khoảng cách từ một điểm tới ranh giới có thể được tính trực tiếp từ biểu thức \( w^T x + b \). Đây là nền tảng hình học dẫn tới khái niệm margin trong SVM.

Tích vô hướng quyết định phía phân loại, còn vector pháp tuyến quyết định hình dạng và độ tin cậy của ranh giới phân loại.

4. Classification trong ML.NET qua lăng kính hình học

Quá trình huấn luyện một mô hình phân loại tuyến tính có thể được hình dung qua ba bước:

  1. Gộp các đặc trưng thành một vector duy nhất.
  2. Tìm vector trọng số w và bias b.
  3. Tính tích vô hướng để đưa ra dự đoán.
Feature engineering không phải là thêm càng nhiều đặc trưng càng tốt. Mỗi chiều không gian bổ sung đều làm tăng độ phức tạp của mô hình và nguy cơ overfitting.

Kết luận

Hình học giúp chúng ta hiểu sâu hơn bản chất của bài toán phân loại. Vector là ngôn ngữ mà máy tính sử dụng để biểu diễn dữ liệu.

Feature engineering, xét đến cùng, chính là quá trình thiết kế không gian hình học nơi bài toán phân loại trở nên khả thi.

Khi mô hình thất bại, nguyên nhân thường không nằm ở thuật toán, mà nằm ở cách chúng ta đã chọn để biểu diễn thế giới bằng các vector.

Nhận xét

Bài đăng phổ biến từ blog này

[ASP.NET MVC] Authentication và Authorize

Một trong những vấn đề bảo mật cơ bản nhất là đảm bảo những người dùng hợp lệ truy cập vào hệ thống. ASP.NET đưa ra 2 khái niệm: Authentication và Authorize Authentication xác nhận bạn là ai. Ví dụ: Bạn có thể đăng nhập vào hệ thống bằng username và password hoặc bằng ssh. Authorization xác nhận những gì bạn có thể làm. Ví dụ: Bạn được phép truy cập vào website, đăng thông tin lên diễn đàn nhưng bạn không được phép truy cập vào trang mod và admin.

ASP.NET MVC: Cơ bản về Validation

Validation (chứng thực) là một tính năng quan trọng trong ASP.NET MVC và được phát triển trong một thời gian dài. Validation vắng mặt trong phiên bản đầu tiên của asp.net mvc và thật khó để tích hợp 1 framework validation của một bên thứ 3 vì không có khả năng mở rộng. ASP.NET MVC2 đã hỗ trợ framework validation do Microsoft phát triển, tên là Data Annotations. Và trong phiên bản 3, framework validation đã hỗ trợ tốt hơn việc xác thực phía máy khách, và đây là một xu hướng của việc phát triển ứng dụng web ngày nay.

Tổng hợp một số kiến thức lập trình về Amibroker

Giới thiệu về Amibroker Amibroker theo developer Tomasz Janeczko được xây dựng dựa trên ngôn ngữ C. Vì vậy bộ code Amibroker Formula Language sử dụng có syntax khá tương đồng với C, ví dụ như câu lệnh #include để import hay cách gói các object, hàm trong các block {} và kết thúc câu lệnh bằng dấu “;”. AFL trong Amibroker là ngôn ngữ xử lý mảng (an array processing language). Nó hoạt động dựa trên các mảng (các dòng/vector) số liệu, khá giống với cách hoạt động của spreadsheet trên excel.