Không gian vector¶
Không gian vector tạo nên sân chơi toán học nơi học máy sinh sống. File này bao quát phép cộng vector, phép nhân vô hướng, các tiên đề đóng, không gian con, và lý do tại sao hầu như mọi thứ trong AI đều được biểu diễn dưới dạng vector.
-
Hãy hình dung một Không gian Vector như một kiểu sân chơi cụ thể nơi các đối tượng toán học cư ngụ, và mỗi đối tượng được gọi là một vector.
-
Không gian vector được định nghĩa chính thức là một tập hợp các vector có thể cộng và nhân vô hướng với nhau mà không bị "ra khỏi" không gian.
-
Một ví dụ phản diện hữu ích: các số nguyên \(\mathbb{Z}\) không phải là một không gian vector trên trường số thực, bởi vì khi nhân \(3\) với \(0.5\) ta được \(1.5\), nằm ngoài tập hợp. Phần "mà không bị ra khỏi không gian" trong định nghĩa đang thực sự phát huy tác dụng.
-
Để có trực giác hình học trong học máy (ML), ta luôn hình dung vector như một điểm trong không gian Euclid, được biểu diễn bởi tọa độ của nó.
-
Vector \(\mathbf{a}\) (được ký hiệu toán học bằng các chữ cái thường in đậm) có \(n\) tọa độ, mỗi tọa độ biểu diễn một vị trí dọc theo một trục.
-
Các vector trong không gian vector tuân theo một bộ quy tắc rất cụ thể, không thể phá vỡ:
-
Phép cộng vector (kết hợp): Bạn có thể lấy bất kỳ hai vector nào và kết hợp chúng để tạo ra một vector mới. Hãy tưởng tượng các vector như những chỉ dẫn di chuyển. Nếu vector A nghĩa là "đi 3 bước về phía trước" và vector B nghĩa là "đi 2 bước sang phải," cộng chúng lại (A + B) tạo ra một chỉ dẫn duy nhất mới: "đi 3 bước về phía trước và 2 bước sang phải."
-
Phép nhân vô hướng (co giãn): Bạn có thể lấy bất kỳ vector nào và co giãn nó bằng một số thông thường (một "vô hướng"). Bạn có thể kéo dài, thu nhỏ, hoặc đảo ngược nó. Nếu vector A là "đi 3 bước về phía trước," nhân nó với 2 sẽ thành "đi 6 bước về phía trước." Nhân nó với -1 sẽ lật nó hoàn toàn thành "đi 3 bước về phía sau."
-
-
Số chiều của một không gian vector là số lượng hướng độc lập mà nó chứa. \(\mathbb{R}^2\) có 2 chiều (cần 2 tọa độ), trong khi \(\mathbf{a}\) ở trên nằm trong \(\mathbb{R}^3\).
-
Chẳng hạn, ta có thể biểu diễn bất kỳ đối tượng nào, ví dụ một con người, dưới dạng một vector, với \(h_1\) = chiều cao tính bằng cm, \(h_2\) = cân nặng tính bằng kg, \(h_3\) = tuổi.
-
Giờ ta đã tạo ra một không gian vector với một vector biểu diễn một con người.
-
Ta có thể biểu diễn nhiều người, và xem họ gần nhau hay xa nhau như thế nào!
-
Ta có thể thêm nhiều đặc trưng hơn, tạo ra một biểu diễn phong phú về một con người, thường được gọi là các vector đặc trưng trong ML.
-
Bạn càng có nhiều đặc trưng độc đáo và có ý nghĩa, vector đặc trưng càng mô tả được nhiều, một yếu tố quan trọng cần ghi nhớ.
-
Vượt quá 3 chiều, các vector trở nên rất khó quan sát trực quan, tạo cảm hứng cho một lĩnh vực toán học gọi là Đại số tuyến tính.
-
Giờ thì, Đại số tuyến tính là môn học về các vector, không gian vector và các ánh xạ giữa các vector.
-
Ta biểu diễn hầu như mọi thứ trong AI/ML dưới dạng vector, khiến đại số tuyến tính trở thành nền tảng của lĩnh vực này.
-
Phép cộng vector có thể thực hiện bằng cách đặt một vector lên đuôi của vector kia một cách trực quan, rồi vẽ từ gốc tọa độ đến điểm cuối.
-
Với hai vector \(\mathbf{a} = (a_1, a_2)\) và \(\mathbf{b} = (b_1, b_2)\): \(\mathbf{a} + \mathbf{b} = (a_1 + b_1, a_2 + b_2)\)
-
Các vector cũng có thể được trừ, với mọi quy tắc cộng đều áp dụng tương tự.
-
Nhân một vector với một vô hướng sẽ co giãn vector theo hệ số đó theo cùng một hướng.
-
Với một vô hướng \(c\) và vector \(\mathbf{v} = (v_1, v_2)\): \(c\mathbf{v} = (cv_1, cv_2)\)
-
Tính đóng với phép cộng: Nếu bạn cộng bất kỳ hai vector nào từ không gian vector, kết quả cũng là một vector nằm trong cùng không gian đó: Nếu \(\mathbf{u} \in V\) và \(\mathbf{v} \in V\), thì \(\mathbf{u} + \mathbf{v} \in V\)
-
Tính đóng với phép nhân vô hướng: Nếu bạn nhân bất kỳ vector nào từ không gian vector với một vô hướng, kết quả là một vector nằm trong cùng không gian đó: Nếu \(\mathbf{v} \in V\) và \(c \in F\), thì \(c\mathbf{v} \in V\)
-
Tính giao hoán của phép cộng: Với mọi hai vector \(\mathbf{u}\) và \(\mathbf{v}\): \(\mathbf{u} + \mathbf{v} = \mathbf{v} + \mathbf{u}\)
-
Cả hai đường đi qua hình bình hành đều đến cùng một điểm.
-
(Vector không): Tồn tại một vector \(\mathbf{0}\) sao cho với mọi vector \(\mathbf{v}\): \(\mathbf{v} + \mathbf{0} = \mathbf{v}\)
- Phần tử đối của phép cộng: Với mọi vector \(\mathbf{v}\), tồn tại một vector \(-\mathbf{v}\) sao cho: \(\mathbf{v} + (-\mathbf{v}) = \mathbf{0}\)
- Tính phân phối 1: Với mọi vô hướng \(c\) và các vector \(\mathbf{u}\), \(\mathbf{v}\): \(c(\mathbf{u} + \mathbf{v}) = c\mathbf{u} + c\mathbf{v}\)
-
Co giãn tổng (vàng) cho kết quả giống hệt với việc cộng các vector đã được co giãn.
-
Tính phân phối 2: Với mọi vô hướng \(c\), \(d\) và vector \(\mathbf{v}\): \((c + d)\mathbf{v} = c\mathbf{v} + d\mathbf{v}\)
-
Tính kết hợp: Với mọi vô hướng \(c\), \(d\) và vector \(\mathbf{v}\): \((cd)\mathbf{v} = c(d\mathbf{v})\)
-
Phần tử đơn vị: Với mọi vector \(\mathbf{v}\): \(1\mathbf{v} = \mathbf{v}\), với \(1\) là phần tử đơn vị nhân trong trường các vô hướng.
-
Một số ví dụ về không gian vector:
-
\(\mathbb{R}^n\) (không gian n chiều): tất cả các số thực trong một không gian n chiều, ví dụ vector [1,4,3000...phần tử thứ n], cộng hai điểm hoặc co giãn một điểm, và bạn vẫn hạ cánh ở đâu đó trên mặt phẳng.
-
Ảnh xám: một ảnh \(28 \times 28\) chỉ là 784 cường độ điểm ảnh, tức là một vector trong \(\mathbb{R}^{784}\). Cộng hai ảnh (pha trộn) hoặc co giãn một ảnh (làm sáng) cho ra một ảnh khác cùng kích thước.
-
Tín hiệu âm thanh: một đoạn ghi 1 giây được lấy mẫu ở 44.1kHz là một vector với 44.100 phần tử. Trộn hai đoạn với nhau chỉ đơn giản là phép cộng vector.
-
Đa thức: cộng hai đa thức hoặc co giãn một đa thức bằng một số cho ra một đa thức khác, vì vậy chúng cũng tạo thành một không gian vector. Các vector không nhất thiết phải trông giống những mũi tên!
-
-
Một không gian con chỉ là một sân chơi nhỏ hơn bên trong sân chơi lớn hơn. Hãy tưởng tượng không gian 3D như một căn phòng. Một tờ giấy phẳng xuyên qua tâm căn phòng là một không gian con, và một sợi dây thẳng xuyên qua tâm cũng vậy.
-
Yêu cầu then chốt là không gian con phải đi qua gốc tọa độ. Nếu bạn dời tờ giấy đó ra khỏi tâm, nó ngừng là một không gian con vì vector không không còn nằm trên đó nữa.
-
Tất cả các quy tắc tương tự từ không gian vector (cộng, co giãn, tính đóng) vẫn hoạt động bên trong một không gian con. Bạn có thể cộng hoặc co giãn các vector bên trong nó mà không bao giờ "rơi ra" vào không gian lớn hơn.
-
Một đường thẳng đi qua gốc tọa độ là một không gian con 1 chiều, một mặt phẳng đi qua gốc tọa độ là một không gian con 2 chiều, và toàn bộ không gian là một không gian con của chính nó.
-
Trong ML, các không gian con xuất hiện một cách tự nhiên. Dữ liệu nhiều chiều thường có cấu trúc nằm trên một không gian con ít chiều hơn. Các kỹ thuật như PCA tìm ra không gian con đó để ta có thể làm việc với dữ liệu hiệu quả hơn.
Bài tập lập trình (dùng CoLab hoặc notebook)¶
-
Chạy code để xác minh tính phân phối, sau đó sửa đổi và thử nghiệm với các quy tắc khác!
-
Chạy code để trực quan hóa các vector khác nhau, sau đó sửa đổi các giá trị cho các tọa độ khác nhau để hiểu mỗi trục ảnh hưởng đến vị trí như thế nào.
import jax.numpy as jnp import matplotlib.pyplot as plt # Thử thay đổi các vector này! a = jnp.array([3, 2, 4]) b = jnp.array([1, 4, 2]) c = jnp.array([4, 1, 3]) fig = plt.figure() ax = fig.add_subplot(111, projection="3d") for vec, name, color in [(a, "a", "red"), (b, "b", "blue"), (c, "c", "green")]: ax.quiver(0, 0, 0, *vec, color=color, arrow_length_ratio=0.1, linewidth=2, label=name) lim = int(jnp.abs(jnp.stack([a, b, c])).max()) + 1 ax.set_xlim([0, lim]); ax.set_ylim([0, lim]); ax.set_zlim([0, lim]) ax.set_xlabel("X"); ax.set_ylabel("Y"); ax.set_zlabel("Z") ax.legend() plt.show()
Khám phá thêm (Một số ký hiệu toán học cần biết)¶
| Ký hiệu | Ý nghĩa | Ví dụ |
|---|---|---|
| ∈ | là một phần tử của | x ∈ A: x thuộc tập A |
| ∉ | không là phần tử của | x ∉ A |
| ⊂ | là tập con thực sự của | A ⊂ B |
| ⊆ | là tập con (hoặc bằng) của | A ⊆ B |
| ∪ | hợp | A ∪ B: phần tử thuộc A hoặc B |
| ∩ | giao | A ∩ B: phần tử thuộc cả A và B |
| ∅ | tập rỗng | A = ∅ |
| ℝ | số thực | x ∈ ℝ |
| ℤ | số nguyên | -2, -1, 0, 1, 2 |
| ℕ | số tự nhiên | 1, 2, 3, ... |
| ℚ | số hữu tỷ | phân số như 1/2 |
| ⇒ | kéo theo | x > 2 ⇒ x > 1 |
| ⇔ | nếu và chỉ nếu | x = 2 ⇔ x² = 4, với các điều kiện bổ sung |
| ∀ | với mọi | ∀x ∈ ℝ |
| ∃ | tồn tại | ∃x sao cho x² = 4 |
| ¬ | không | ¬P: không P |
| ∧ | và | P ∧ Q |
| ∨ | hoặc | P ∨ Q |
| ∴ | do đó | x = 2, ∴ x² = 4 |