Lập trình AI

Nhật ký tự học AI bài 1.3 – Ma trận (Matrix)

Bài này thì cần nắm được ma trận là gì, biết thực hiện các phép tính trong ma trận, hiểu được ý nghĩa của chúng trong các mô hình AI. Bài này tôi chưa cần biết ma trận thực sự hoạt động thế nào trong AI, cứ nắm cơ bản trước thôi.

Ma trận

Định nghĩa

Một ma trận A cấp m x n là một bảng số gồm có m dòng và n cột. Các phần tử của A là những số thực tùy ý:

A=(a11a12a1na21a22a2nam1am2amn)A = \begin{pmatrix} 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{pmatrix}

Ví dụ ma trận A (2×3):

A=[123456]A = \begin{bmatrix} 1 & 2 & 3 \\ 4 & 5 & 6 \end{bmatrix}

Các phép tính trong ma trận

Cộng và Trừ Ma trận

Đây là phép tính trực quan nhất. Bạn chỉ cần thực hiện phép tính với các số ở cùng vị trí.

  • Điều kiện: Hai ma trận phải có cùng kích thước (cùng số hàng, cùng số cột).
  • Cách tính: Vị trí nào đi với vị trí đó.
[1234]+[5678]=[1+52+63+74+8]=[681012]\begin{bmatrix} 1 & 2 \\ 3 & 4 \end{bmatrix} + \begin{bmatrix} 5 & 6 \\ 7 & 8 \end{bmatrix} = \begin{bmatrix} 1+5 & 2+6 \\ 3+7 & 4+8 \end{bmatrix} = \begin{bmatrix} 6 & 8 \\ 10 & 12 \end{bmatrix}
[9876][5432]=[95847362]=[4444]\begin{bmatrix} 9 & 8 \\ 7 & 6 \end{bmatrix} – \begin{bmatrix} 5 & 4 \\ 3 & 2 \end{bmatrix} = \begin{bmatrix} 9-5 & 8-4 \\ 7-3 & 6-2 \end{bmatrix} = \begin{bmatrix} 4 & 4 \\ 4 & 4 \end{bmatrix}

Tính toán thì dễ rồi, nhưng nó có ý nghĩa gì?

Nhân với một số (Vô hướng)

Muốn nhân ma trận A với một số k (ví dụ: 2, 5, -1…). Rất đơn giản: Hãy nhân số đó vào tất cả các phần tử bên trong ma trận.

3[2145]=[323(1)3435]=[631215]3 \cdot \begin{bmatrix} 2 & -1 \\ 4 & 5 \end{bmatrix} = \begin{bmatrix} 3 \cdot 2 & 3 \cdot (-1) \\ 3 \cdot 4 & 3 \cdot 5 \end{bmatrix} = \begin{bmatrix} 6 & -3 \\ 12 & 15 \end{bmatrix}

Nhân hai Ma trận

Điều kiện: Số Cột của ma trận trước phải bằng số Hàng của ma trận sau, nếu khác không nhân được. (A m x n nhân được với B n x p)

Cách tính: Lấy toàn bộ Hàng của ma trận trước nhân trượt (tích vô hướng) với Cột của ma trận sau.

A×B=[12080150110][0.60.40.30.7]=[1200.6+800.31200.4+800.71500.6+1100.31500.4+1100.7]=[96104123137]A \times B = \begin{bmatrix} 120 & 80 \\ 150 & 110 \end{bmatrix} \begin{bmatrix} 0.6 & 0.4 \\ 0.3 & 0.7 \end{bmatrix} = \begin{bmatrix} 120\cdot0.6 + 80\cdot0.3 & 120\cdot0.4 + 80\cdot0.7 \\ 150\cdot0.6 + 110\cdot0.3 & 150\cdot0.4 + 110\cdot0.7 \end{bmatrix} = \begin{bmatrix} 96 & 104 \\ 123 & 137 \end{bmatrix}

Chuyển vị (Transpose)

Ký hiệu là A^T. Đơn giản là biến Hàng thành CộtCột thành Hàng. Trục quay là đường chéo chính.

A=[12080150110]A = \begin{bmatrix} 120 & 80 \\ 150 & 110 \end{bmatrix}
AT=[12015080110]A^T = \begin{bmatrix} 120 & 150 \\ 80 & 110 \end{bmatrix}

Ứng dụng ma trận trong các Model AI

Lý thuyết về ma trận và các phép tính bên trên thì dễ hiểu, và ứng dụng của nó được sử dụng cực kỳ rộng rãi, từ game, đồ họa, khoa học máy tính, mạng, học sâu, kinh doanh ..v..v.. Trong AI thì nó đảm nhiều chức năng, đọc qua cũng biết sơ sơ chứ chưa thực sự hiểu. Bảng sau do anh Grok tổng hợp giúp 😁:

Ứng dụngMa trận đại diện cho gì?Ví dụ cụ thểMô hình / Kỹ thuật liên quan
Dữ liệu đầu vàoTập hợp nhiều mẫu (samples)X (mẫu × đặc trưng)Hầu hết mọi mô hình ML
Trọng số (Weights)Các kết nối giữa neuronW¹, W², … trong neural networkMọi mạng nơ-ron (MLP, CNN, Transformer, LLM)
Forward propagationPhép nhân ma trận + biasZ = X @ W + bToàn bộ quá trình dự đoán của neural network
Attention MechanismQuery, Key, Value matricesQ, K, V → Attention = softmax(QKᵀ/√d) VTransformer, BERT, GPT, LLaMA, Grok, mọi LLM
Ảnh & Computer VisionMa trận pixel (ảnh xám) hoặc tensor (ảnh màu)Ảnh 224×224×3 (RGB)CNN, Vision Transformer, YOLO, Stable Diffusion
Embedding / Word RepresentationMa trận từ vựng → vectorMa trận Embedding 50,000 × 768 (vocab × dim)Word2Vec → BERT → GPT → mọi mô hình ngôn ngữ
PCA / Giảm chiều dữ liệuMa trận hiệp phương sai + phân tích giá trị riêngSVD, Eigen decompositionPCA, Truncated SVD, t-SNE (gián tiếp)
Ma trận nhầm lẫn (Confusion Matrix)Đánh giá phân loại đa lớpHàng = thực tế, cột = dự đoánĐánh giá model classification
Graph Neural Network (GNN)Ma trận kề (Adjacency matrix)Aij = 1 nếu có cạnh giữa node i và jGNN, GraphSAGE, GAT, recommendation system
Convolution (trong CNN)Ma trận kernel/filter nhân trượt trên ảnh3×3 filterAlexNet → ResNet → EfficientNet → YOLO
State trong RNN/LSTM/GRUẨn trạng thái là vector, nhưng cập nhật bằng ma trậnhₜ = tanh(W_h h₍t-1₎ + W_x xₜ)RNN, LSTM (dù ngày nay ít dùng hơn Transformer)

Tại sao ma trận lại ứng dụng nhiều tới vậy, lý do chính có 3 điểm:

  1. Vector hóa & Tính toán song song Thay vì dùng vòng lặp for rất chậm → nhân ma trận một lần → GPU/TPU tăng tốc hàng nghìn lần.
  2. Biểu diễn tuyến tính rất mạnh Hầu hết các biến đổi trong AI (projection, attention, convolution, embedding…) đều là phép biến đổi tuyến tính → biểu diễn bằng ma trận.
  3. Toàn bộ neural network chỉ là chuỗi nhân ma trận + hàm phi tuyến Công thức cơ bản nhất của deep learning:

Related Posts

Leave A Reply

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *