Chuẩn và metric¶
Chuẩn đo độ lớn của một vector; metric đo khoảng cách giữa hai vector. File này bao quát các chuẩn L1, L2, và L-infinity, khoảng cách Euclid và cosine, và lý do tại sao việc chọn đúng hàm khoảng cách là then chốt cho kNN, phân cụm, và truy xuất trong ML.
-
Chúng ta biết các vector có độ lớn và hướng. Nhưng làm thế nào để thực sự đo "lớn đến mức nào" của một vector đơn lẻ, hay "xa nhau đến mức nào" giữa hai vector? Đây là lúc chuẩn (norm) và metric xuất hiện.
-
Với các vô hướng, ta biết rằng 10 > 5, vì giá trị của chúng định lượng chúng, nhưng làm sao ta định lượng một vector? Đó là chuẩn, nó đo kích thước của một vector đơn lẻ.
-
Chuẩn quen thuộc nhất là chuẩn Euclid (L2), chỉ là công thức độ lớn mà ta đã biết:
- Nhưng có những cách khác để đo kích thước. Hãy tưởng tượng bạn đang ở một thành phố với lưới đường phố dạng lưới. Bạn không thể đi chéo xuyên qua các tòa nhà, nên "độ dài" của hành trình là tổng số khối phố đi dọc theo mỗi con đường. Đây là chuẩn Manhattan (L1):
- Hoặc bạn có thể chỉ quan tâm đến thành phần lớn nhất duy nhất, bỏ qua phần còn lại. Đây là chuẩn Max (L-infinity):
- Cả ba đều là trường hợp đặc biệt của chuẩn Lp tổng quát:
-
Đặt \(p = 2\) cho chuẩn Euclid, \(p = 1\) cho chuẩn Manhattan, và khi \(p \to \infty\) bạn có chuẩn Max. Khi \(p\) tăng lên, thành phần lớn nhất đóng góp ngày càng nhiều, cho đến khi cuối cùng chỉ nó mới quan trọng.
-
Mọi chuẩn phải tuân theo ba quy tắc:
- Không âm: \(\|\mathbf{v}\| \geq 0\), và \(\|\mathbf{v}\| = 0\) chỉ khi \(\mathbf{v} = \mathbf{0}\). Kích thước không bao giờ âm, và chỉ có vector không mới có kích thước bằng không.
- Co giãn: \(\|c\mathbf{v}\| = |c| \cdot \|\mathbf{v}\|\). Nhân đôi một vector sẽ nhân đôi kích thước của nó.
- Bất đẳng thức tam giác: \(\|\mathbf{u} + \mathbf{v}\| \leq \|\mathbf{u}\| + \|\mathbf{v}\|\). Đường tắt không bao giờ dài hơn đi đường vòng.
-
Giờ, một metric đo khoảng cách giữa hai vector. Hãy nghĩ về nó như một câu hỏi: "hai điểm này cách nhau bao xa?"
-
Cách đơn giản nhất để có một metric là dùng một chuẩn lên hiệu: \(d(\mathbf{u}, \mathbf{v}) = \|\mathbf{u} - \mathbf{v}\|\). Trừ hai vector cho nhau, rồi đo kích thước của phần còn lại.
-
Dùng chuẩn Euclid, ta có khoảng cách Euclid quen thuộc:
-
Dùng chuẩn Manhattan cho khoảng cách Manhattan, tổng hiệu dọc theo mỗi trục, giống như đếm các khối phố giữa hai vị trí.
-
Mọi metric phải tuân theo bốn quy tắc:
- Không âm: \(d(\mathbf{u}, \mathbf{v}) \geq 0\). Khoảng cách không bao giờ âm.
- Tính đồng nhất: \(d(\mathbf{u}, \mathbf{v}) = 0\) khi và chỉ khi \(\mathbf{u} = \mathbf{v}\). Khoảng cách không nghĩa là cùng một điểm.
- Đối xứng: \(d(\mathbf{u}, \mathbf{v}) = d(\mathbf{v}, \mathbf{u})\). Khoảng cách từ A đến B bằng với từ B đến A.
- Bất đẳng thức tam giác: \(d(\mathbf{u}, \mathbf{w}) \leq d(\mathbf{u}, \mathbf{v}) + d(\mathbf{v}, \mathbf{w})\). Đi thẳng không bao giờ dài hơn đi đường vòng.
-
Vậy mối quan hệ giữa hai khái niệm này là gì? Một chuẩn đo một vector, một metric đo khoảng hở giữa hai vector. Mọi chuẩn tự nhiên tạo ra một metric (bằng cách đo hiệu), nhưng không phải mọi metric đều bắt nguồn từ một chuẩn.
-
Ví dụ, khoảng cách Hamming đếm số vị trí mà hai vector khác nhau. Nó là một metric hợp lệ, nhưng không bắt nguồn từ bất kỳ chuẩn nào.
-
Trong ML, việc chọn đúng chuẩn hoặc metric là quan trọng.
-
Khoảng cách L2 bình phương mỗi hiệu trước khi cộng, nên một hiệu lớn duy nhất sẽ chi phối kết quả.
-
Khoảng cách L1 cộng các hiệu tuyệt đối, đối xử với mỗi hiệu như nhau. Một hiệu lớn duy nhất có ảnh hưởng nhỏ hơn so với L2.
Bài tập lập trình (dùng CoLab hoặc notebook)¶
-
Tính các chuẩn L1 và L2 của cùng một vector. Thử thay đổi các giá trị và chú ý xem chuẩn nào nhạy cảm nhất với các thành phần lớn so với nhiều thành phần nhỏ. Sau đó thử tính chuẩn Lp cho các giá trị p tăng dần (ví dụ 1, 2, 5, 10, 50, 100) và quan sát nó hội tụ về giá trị L-infinity.
-
Tính khoảng cách Euclid và Manhattan giữa hai vector. Thử di chuyển các vector lại gần hoặc xa nhau hơn và quan sát từng khoảng cách phản ứng khác nhau như thế nào.