Ra mắt hai series mới cực hot Trí tuệ nhân tạo A đến ZPython công cụ không thể thiếu khi nghiên cứu Data science, Machine learning.

Lý thuyết toán ma trận sử dụng trong các thuật toán Machine Learning

Machine learning là một tập hợp rất nhiều các thuật toán khác nhau và nó có liên hệ rất mật thiết với toán học, đặc biệt là toán cao cấp. Chúng ta ai đã mài đũng quần trên giảng đường đại học đều không còn xa lạ với Đại số tuyến tính và đây cũng là kiến thức nền tảng của rất nhiều các thuật toán sẽ được giới thiệu trong Machine Learning.

1. Một số khái niệm cơ bản

1.1 Vô hướng (Scalar)

Scalar (mathematics), an element of a field, which is used to define a vector space, usually the field of real numbers

Một đại lượng vô hướng là một phần tử của một trường được sử dụng để xác định một không gian vector, thông thường ở đây là trường số thực.

Wiki

Tóm lại đại lượng vô hướng (Scalar) là một số bất kì thuộc tập số nào đó. Khi định nghĩa một số ta phải chỉ rõ tập số mà nó thuộc vào. Ví dụ, $n$ là số tự nhiên sẽ được kí hiệu: $n \in \mathbb{N}$, hoặc $r$ là số thực sẽ được kí hiệu: $r \in \mathbb{R}$. Một số thường có thể định nghĩa được bằng một kiểu dữ liệu nguyên thủy của các ngôn ngữ lập trình. Như số tự nhiên có thể là kiểu int, số thực có thể là kiểu float trong Python.

1.2 Véc tơ (Vector)

Vector là 1 mảng của các đại lượng vô hướng tương tự như mảng 1 chiều trong các ngôn ngữ lập trình. Các phần tử trong vector được đánh địa chỉ và có thể truy cập nó qua các địa chỉ tương ứng của nó. Trong toán học, một vector có thể là vector cột nếu các nó được biểu diễn dạng cột, hoặc có thể là vector hàng nếu nó được biểu diễn dưới dạng cột của các phần tử.

Một véc-tơ cột có dạng như sau:

$$x = \begin{bmatrix} x_1 \cr x_2 \cr \vdots \cr x_n \end{bmatrix}$$ ​
Một véc-tơ hàng có dạng như sau:

$$x = \begin{bmatrix} x_1 & x_2 & \cdots & x_n \end{bmatrix}$$

Trong đó, $x_1$, $x_2$, …, $x_n$ là các phần tử thứ 1, thứ 2, … thứ n của vector.

1.3 Ma trận (Matrix)

Ma trận trên trường K là một bảng liệt kê các số như: số thực, số phức hay một hàm số,... được sắp xếp theo một trật tự nhất định gốm có m dòng và n cột

$A = \begin{bmatrix} a_{11} & a_{12} & \cdots & a_{1n} \\ a_{21} & a_{22} & \cdots & a_{2n} \\ \vdots& \vdots & \ddots & \vdots \\ a_{m1} & a_{m2} & \cdots & a_{mn}
\end{bmatrix}$

Trong đó $a_{ij}$ là phần tử dòng i cột j, phần tử này có thể là số thực hoặc số phức. Ma trận này được ký hiệu là $A = (a_{ij})_{mxn} \in \mathbb{R}^{m \times n}$

Như vậy véc tơ là trường hợp đặc biệt của ma trận:

  • m = 1 chúng ta có ma trận $A = (a_{ij})_{1xn}$ là véc tơ hàng.
  • n = 1 chúng ta có ma trận $A = (a_{ij})_{mx1}$ là véc tơ cột.

Ma trận tương ứng với mảng 2 chiều trong các ngôn ngữ lập trình. Véc tơ tương ứng với mảng 1 chiều.

1.4 Ten-xơ (Tensor)

Ten-xơ là một mảng đa chiều, nó là trường hợp tổng quát khi biểu diễn trường số đa chiều. Như vậy, ma trận, véc tơ và vô hướng chỉ là những trường hợp cụ thể của ten-xơ:

  • Ma trận là ten-xơ 2 chiều.
  • Véc tơ là ten-xơ 1 chiều.
  • Vô hướng là ten-xơ 0 chiều.

Các phần tử trong ten-xơ được xác định bằng các chỉ số trên từng chiều của ten-xơ, ví dụ một ten-xơ 3 chiều $A = (a_{ijk})_{mxnxp}$ khi đó phần tử $a_{ijk}$ sẽ ở hàng i, cột j và mặt phẳng k.

2. Một số ma trận đặc biệt

2.1 Ma trận không

Ma trận không là ma trận mà các phần tử bên trong đều bằng 0, $a_{ij} = 0, \forall{i,j}$. Ma trận không được ký hiệu là $\varnothing$

$\varnothing = \begin{bmatrix} 0 & 0 & \cdots & 0 \cr 0 & 0 & \cdots & 0 \cr \vdots& \vdots & \ddots & \vdots \cr 0 & 0 & \cdots & 0 \end{bmatrix}$

2.2 Ma trận đơn vị

Ma trận đơn vị là ma trận vuông có các phần tử trên đường chéo từ bên trên tay trái xuống bên dưới tay phải bằng 1, còn các phần tử khác bằng 0. Ma trận đơn vị thường được ký hiệu là $I_n$ trong đó $n$ là số hàng và số cột của ma trận:

$\begin{cases} a_{ij} = 0, \forall{i \not = j} \cr a_{ij} = 1, \forall{i = j} \end{cases}$

$I_n = \begin{bmatrix} 1 & 0 & \cdots & 0 \cr 0 & 1 & \cdots & 0 \cr \vdots& \vdots & \ddots & \vdots \cr 0 & 0 & \cdots & 1 \end{bmatrix}$

2.3 Ma trận vuông

Ma trận vuông là ma trận có số hàng bằng với số cột $A = (a_{ij})_{n \times n}$, $a_{ij} \in \mathbb{R}^{n \times n}$. Trong ma trận vuông, đường chéo từ trên bên trái xuống dưới bên phải được gọi là đường chéo chính $\{a_{ij}\} \forall{i = j}$.

Ví dụ một ma trận vuông:

$A = \begin{bmatrix} 1 & 3 & -2 \cr -3 & 0 & 5 \cr -2 & 9 & 5 \end{bmatrix}$

2.4 Ma trận nghịch đảo

Cho một ma trận vuông $A = (a_{ij})_{n \times n} \in \mathbb{R}^{n \times n}$, nếu có ma trận $B = (b_{ij})_{n \times n} \in \mathbb{R}^{n \times n}$ sao cho $A \times B = I_n$ với $I_n$ là ma trận đơn vị có kích thước $n$ thì ta nói rằng:

  • Ma trận $A$ là khả nghịch.
  • Ma trận $B$ là ma trận nghịch đảo của $A$ và được thường ký hiệu là $A^{-1}$

Ma trận nghịch đảo thường được sử dụng để tìm lời giải cho phương trình tuyến tính dạng $A \times \mathbf{x} = B$ với $A = (a_{ij})_{n \times n} \in \mathbb{R}^{n \times n}$, $\mathbf{x} = [x_1 x_2 ... x_n]$ và $B = (b_{ij})_{n} = [b_1 b_2 ... b_n] \in \mathbb{R}^{n}$.

Phương trình tuyến tính này có thể viết dưới dạng chi tiết như sau:

$$ \left\{ \begin{array}{c} a_{11}x_1 + a_{12}x_2 + ... + a_{1n}x_n = b_1 \cr a_{21}x_1 + a_{22}x_2 + ... + a_{2n}x_n = b_2 \cr ... \cr a_{n1}x_1 + a_{n2}x_2 + ... + a_{nn}x_n = b_n \cr \end{array} \right. $$

Để giải phương trình này ta chỉ cần tìm ma trận nghịch đảo $A^{-1}$, thật vậy:

$A^{-1} \times A \times \mathbf{x} = A^{-1} \times B \Rightarrow \mathbf{x} = A^{-1} \times B$

2.5 Ma trận chuyển vị

Ma trận chuyển vị, ký hiệu $A^T$ là ma trận được thành lập từ ma trận ban đầu bằng cách chuyển dòng thành cột và ngược lại:

$A^T = \begin{bmatrix} a_{11} & a_{12} & \cdots & a_{1m} \\ a_{21} & a_{22} & \cdots & a_{2m} \\ \vdots& \vdots & \ddots & \vdots \\ a_{n1} & a_{m2} & \cdots & a_{nm}
\end{bmatrix}$

Chú ý: Đôi khi, người ta định nghĩa véc tơ cột từ véc tơ dòng như sau:

$x = [x_1, x_2, …, x_n]^\intercal$

Ma trận đối xứng:

Nếu một ma trận bằng chính ma trận chuyển vị của nó thì ma trận đó được gọi là ma trận đối xứng.

$A = A^\intercal$ thì $A$ được gọi là ma trận đối xứng.

2.6 Ma trận liên hợp

Nếu ma trận $A = (a_{ij})_{m \times n}$, $a_{ij} \in \mathbb{C}^{m \times n}$ có các phần tử là số phức thì khi vừa thực hiện chuyển đổi hàng thành cột và lấy liên hợp phức các phần tử chúng ta được ma trận liên hợp Hermitian, được ký hiệu là $A^H$.

Nói cách khác, ta có ma trận $A = (a_{ij})_{m \times n}$, $a_{ij} \in \mathbb{C}$ thì ma trận $B = (b_{ij})_{n \times m}$, $b_{ij} \in \mathbb{C}$ là ma trận liên hợp phức nếu:

$b_{ij} = \overline{a_{ji}}, \forall{i = \overline{1,n}, j = \overline{1, m}}$

Ví dụ, ta có ma trận sau:

$A = \begin{bmatrix} 1 - 2i & 3 + 4i \cr 2 & -i \cr \end{bmatrix}$

thì ma trận liên hợp phức của A sẽ là:

$A^H = \begin{bmatrix} 1 + 2i & 2 \cr 3-4i & i \cr \end{bmatrix}$

Khi $A$ là ma trận số thực ($A \in \mathbb{R}^{m \times n}$) thì ta có $A^H = A^\intercal$.

Ma trận Hermitian:

Nếu ma trận $A = (a_{ij})_{m \times n} \in \mathbb{C}^{m \times n}$ thì ma trận A được gọi là ma trận Hermitian nếu $A^H = A$.

3. Các phép toán với ma trận

3.1 Nhân ma trận với một số

Nhân ma trận với một số (vô hướng) là cách thực hiện phép nhân từng phần tử của ma trận với số đó.

$\alpha \times A = (\alpha \times a_{ij})_{m \times n}$

$\alpha \times A = \begin{bmatrix} \alpha \times a_{11} & \alpha \times a_{12} & \cdots & \alpha \times a_{1m} \\ \alpha \times a_{21} & \alpha \times a_{22} & \cdots & \alpha \times a_{2m} \\ \vdots& \vdots & \ddots & \vdots \\ \alpha \times a_{n1} & \alpha \times a_{m2} & \cdots & \alpha \times a_{nm}
\end{bmatrix}$

Nhân ma trận với một số có những tính chất như sau:

  • Giao hoán: $\alpha \times A = A \times \alpha$
  • Tính chất kết hợp: $\alpha(\beta A) = (\alpha \beta)A$
  • Tính chất phân phối: $(\alpha + \beta) A = \alpha A + \beta A$

Ví dụ:

$A = \begin{bmatrix} 5 & 3 & 6 & -9 \\ -7 & 2 & 1 & 5 \\ 0 & -8 & 2 & -3 \\ 3 & 0 & 1 & 5
\end{bmatrix}$

Thì:

$2 \times A = \begin{bmatrix} 2 \times 5 & 2 \times 3 & 2 \times 6 & 2 \times (-9) \cr 2 \times (-7) & 2 \times 2 & 2 \times 1 & 2 \times 5 \cr 2 \times 0 & 2 \times (-8) & 2 \times 2 & 2 \times (-3) \cr 2 \times 3 & 2 \times 0 & 2 \times 1 & 2 \times 5 \end{bmatrix} = \begin{bmatrix} 10 & 6 & 12 & -18 \cr -14 & 4 & 2 & 10 \cr 0 & -16 & 4 & -6 \cr 6 & 0 & 2 & 10 \end{bmatrix}$

3.2 Phép cộng hai ma trận

Phép cộng hai trận chỉ thực hiện được khi cùng cấp, ví dụ $A = (a_{ij})_{m \times n}$ có thể cộng với $B = (b_{ij})_{m \times n}$:

$A + B = (a_{ij})_{m \times n} + (b_{ij})_{m \times n} = (a_{ij} + b_{ij})_{m \times n}$

Viết một cách chi tiết như sau:

$A + B = \begin{bmatrix} a_{11} & a_{12} & \cdots & a_{1n} \cr a_{21} & a_{22} & \cdots & a_{2n} \cr \vdots& \vdots & \ddots & \vdots \cr a_{m1} & a_{m2} & \cdots & a_{mn} \end{bmatrix} + \begin{bmatrix} b_{11} & b_{12} & \cdots & b_{1n} \cr b_{21} & b_{22} & \cdots & b_{2n} \cr \vdots& \vdots & \ddots & \vdots \cr b_{m1} & b_{m2} & \cdots & b_{mn} \end{bmatrix} = \begin{bmatrix} a_{11} + b_{11} & a_{12} + b_{12} & \cdots & a_{1n} + b_{1n} \cr a_{21} + b_{21} & a_{22} + b_{22} & \cdots & a_{2n} + b_{2n} \cr \vdots& \vdots & \ddots & \vdots \cr a_{m1} + b_{m1} & a_{m2} + b_{m2} & \cdots & a_{mn} + b_{mn} \end{bmatrix}$

Phép cộng hai ma trận có một số tính chất như sau:

  • Cộng với ma trận không bằng chính nó: $A + \varnothing = A$
  • Tính giao hoán: $A + B = B + A$
  • Tính kết hợp: $A + (B + C) = (A + B) + C$
  • Tính phân phối: $\alpha (A + B) = \alpha A + \alpha B$

3.3 Phép nhân hai ma trận

Cho hai ma trận $A = (a_{ij})_{m \times n}$ và $B = (b_{ij})_{n \times p}$. Phép nhân hai ma trận cho kết quả là một ma trận $C = (c_{ij})_{m \times p}$ với:

$$c_{ij} = \sum_{k=1}^na_{ik} \times b_{kj}, \forall{i = \overline{1,m}; j = \overline{1,p}}$$

Chú ý: Để nhân được hai ma trận thì số cột của ma trận thứ nhất phải bằng số hàng của ma trận thứ hai trong phép nhân.\

Một số tính chất của phép nhân hai ma trận:

  • Nhân ma trận với ma trận đơn vị không làm thay đổi ma trận đó: $A \times I = A$
  • Không có tính chất giao hoán trong phép nhân: $A \times B \not = B \times A$, trong nhiều trường hợp phép nhân $B \times A$ còn không tồn tại do số cột của B khác số hàng của A.
  • Tính kết hợp: $A \times (B \times C) = (A \times B) \times C$.
  • Tính phân phối: $A \times (B + C) = A \times B + A \times C$ và $(A + B) \times C = A \times C + B \times C$.
  • Chuyển vị của một tích bằng tích các chuyển vị theo thứ tự ngược lại: $(A \times B)^\intercal = B ^\intercal \times A ^\intercal$.
  • Liên hợp phức của một tích bằng tích các liên hợp phức theo thứ tự ngược lại: $(A \times B)^H = B^H \times A^H$.

4. Giải tích ma trận

4.1 Hàm đa biến số

Như chúng ta đã biết các phương trình đường thẳng $y = ax + b$ (có thể viết dạng $ax + by + c = 0$) hay phương trình mặt phẳng $ax + by + cz + d = 0$. Tổng quát hóa, một siêu mặt phẳng trong không gian n chiều có phương trình như sau:

$a_1x_1 + a_2x_2 + ... + a_nx_n + a_0 = 0$

Hàm số đa biến số là một hàm phụ thuộc vào nhiều biến số $f(\mathbf{x}) : \mathbb{R}^n \rightarrow \mathbb{R}$. Viết một các chi tiết hơn:

$(x_1, x_2, ..., x_n) \rightarrow f(x_1, x_2, ..., x_n) \in \mathbb{R}$

Ví dụ, $z = x^2 + y^2$ là một hàm số của biến $x, y$.

Trong machine learning, các vấn đề chúng ta gặp phải không chỉ có đầu ra là một số (vô hướng) mà có thể là một vector, tổng quát hơn có thể là ma trận hoặc tensor. Do đó hàm số đa biến sẽ ở dạng tổng quát hơn, còn gọi là hàm véc tơ như sau:

$f(\mathbf{x}) : \mathbb{R}^n \rightarrow \mathbb{R}^m$

Ví dụ một hàm vector có ba biến số như sau $f(x, y, z) : \mathbb{R}^3 \rightarrow \mathbb{R}^2$:

$f(x, y, z) = \begin{bmatrix} x^2 + sin(y) + xz \cr cos(x) + y^2z \end{bmatrix}$

4.2 Đạo hàm riêng

Đạo hàm riêng của một hàm nhiều biến số là đạo hàm theo biến số đó với giả thuyết các biến số khác là hằng số. Ký hiệu $f_x^{\prime}(x_0, y_0)$ hoặc $\displaystyle \frac{\partial{f(x_0, y_0)}}{\partial{x}}$, đây là đạo hàm riêng theo biến $x$, còn đạo riêng theo biến $y$ sẽ viết như sau: $f_y^{\prime}(x_0, y_0)$ hoặc $\displaystyle \frac{\partial{f(x_0, y_0)}}{\partial{y}}$.

Ví dụ: với hàm số ở phần trên ta có đạo hàm riêng theo các biến $x, y, z$ như sau:

$f(x, y, z)_x^{\prime} = \begin{bmatrix} 2x + z \cr -sin(x) \end{bmatrix}$

$f(x, y, z)_y^{\prime} = \begin{bmatrix} cos(y) \cr 2yz \end{bmatrix}$

$f(x, y, z)_z^{\prime} = \begin{bmatrix} x \cr y^2 \end{bmatrix}$


CÁC BÀI VIẾT KHÁC

FirebirD

Đam mê Toán học, Lập trình. Sở thích chia sẻ kiến thức, Phim hài, Bóng đá, Cà phê sáng với bạn bè.

Kiểu dữ liệu chuỗi và định dạng chuỗi trong Python

Thu thập và làm sạch dữ liệu khi sử dụng Linear Regression

1 Bình luận trong "Lý thuyết toán ma trận sử dụng trong các thuật toán Machine Learning"

  1. Thông

    2 months ago

    Phản hồi

    Bài viết hay!

Thêm bình luận