[AI Blog #41] Thị Giác Máy Tính & Học Sâu Đa Phương Thức (Multimodal AI): Từ CNN, ResNet Đến Vision Transformers (ViT), Đột Phá CLIP & Tìm Kiếm Đa Phương Thức (Multimodal RAG)
![[AI Blog #41] Thị Giác Máy Tính & Học Sâu Đa Phương Thức (Multimodal AI): Từ CNN, ResNet Đến Vision Transformers (ViT), Đột Phá CLIP & Tìm Kiếm Đa Phương Thức (Multimodal RAG)](/uploads/ai-images/cover-thi-giac-may-tinh-multimodal.png)
1. Bối cảnh thực tế (Context & Problem Statement)
Trong thế giới thực, dữ liệu không chỉ tồn tại dưới dạng văn bản (Text) hay bảng biểu (Tabular):
- Thương mại điện tử (Shopee, Amazon): Người dùng chụp ảnh chiếc váy ngoài phố và tìm kiếm các sản phẩm tương tự trên app (Visual Search).
- Mạng xã hội & Video Streaming (TikTok, YouTube): Hệ thống kiểm duyệt tự động phát hiện nội dung độc hại kết hợp cả hình ảnh, phụ đề văn bản và âm thanh.
- Y tế & Chẩn đoán hình ảnh: Mô hình AI phân tích ảnh chụp X-quang / MRI và tự động sinh báo cáo chẩn đoán bằng văn bản y khoa.
Trong suốt 1 thập kỷ (2012–2020), Mạng nơ-ron tích chập (CNN - Convolutional Neural Networks) là vị vua tuyệt đối của thị giác máy tính nhờ hai giả định hình học mạnh mẽ: Tính cục bộ (Locality) và Tính bất biến tịnh tiến (Translation Equivariance).
Tuy nhiên, từ năm 2020 trở lại đây, ranh giới giữa Thị giác máy tính (CV) và Xử lý ngôn ngữ tự nhiên (NLP) đã bị xóa nhòa hoàn toàn:
- Vision Transformer (ViT - Google, 2020): Chứng minh rằng không cần đến phép tích chập, kiến trúc Transformer thuần túy vẫn có thể xử lý hình ảnh vượt trội hơn CNN khi có đủ dữ liệu lớn.
- OpenAI CLIP (2021): Đột phá đưa Hình ảnh và Ngôn ngữ tự nhiên vào Chung một không gian biểu diễn hình học (Shared Latent Space), mở ra kỷ nguyên của Multimodal AI, Diffusion Models (Stable Diffusion) và Multimodal RAG.
2. Các Khái Niệm & Cơ Chế Cốt Lõi
2.1. Bản Chất Toán Học Của Phép Tích Chập & Đột Phá ResNet
- Phép tích chập (2D Convolution): Trượt một ma trận trọng số nhỏ (Kernel/Filter kích thước , ví dụ ) qua toàn bộ ma trận điểm ảnh (Image Matrix):
- Inductive Bias của CNN: Giả định rằng các điểm ảnh nằm gần nhau có mối liên hệ mật thiết (Locality) và một đặc trưng (như góc cạnh) nếu xuất hiện ở góc trái thì cũng có ý nghĩa tương tự ở góc phải (Translation Invariance).
- Vấn đề suy thoái mạng sâu (Degradation Problem): Khi xếp chồng các lớp tích chập lên độ sâu tầng, độ chính xác của mạng bị bão hòa và sụt giảm nghiêm trọng (không phải do Overfitting mà do việc tối ưu hóa đạo hàm qua quá nhiều tầng phi tuyến gặp bế tắc).
- Đột phá Residual Connections trong ResNet (He et al., 2015):
- Thay vì bắt mạng học hàm ánh xạ trực tiếp , ResNet bắt các tầng học phần dư (Residual Mapping): .
- Đầu ra được cộng thêm đường tắt (Skip / Shortcut Connection):
- Ý nghĩa toán học cốt tử: Khi lan truyền ngược (Backpropagation), đạo hàm theo đầu vào luôn có thêm số hạng : Dù có bị triệt tiêu về , gradient vẫn luôn truyền ngược nguyên vẹn qua đường tắt , cho phép huấn luyện thành công các mạng sâu hàng trăm tầng (ResNet-50, ResNet-152).
CONVOLUTIONAL LAYER (CNN gốc): RESIDUAL BLOCK (ResNet):
Input (x) ---> [ Conv -> ReLU -> Conv ] ---> Output Input (x) ----------------+ (Skip Connection)
| |
v |
[ Conv -> ReLU -> Conv ] |
| |
v v
[ Add (+) ] <---------------+
|
Output H(x) = F(x) + x
2.2. Vision Transformer (ViT - "An Image is Worth 16x16 Words")
Nghiên cứu của Google (Dosovitskiy et al., 2020) đặt câu hỏi: Liệu ta có thể áp dụng kiến trúc Transformer tiêu chuẩn của NLP trực tiếp cho hình ảnh mà không cần sửa đổi?
- Quy trình xử lý ảnh trong ViT:
- Chia mảnh ảnh (Patch Extraction): Chia bức ảnh kích thước thành một chuỗi mảnh ảnh nhỏ không chồng lấn, kích thước mỗi mảnh là (chuẩn là pixels):
- Linear Projection: Trải phẳng mỗi mảnh ảnh thành vector và nhân với ma trận chiếu để đưa về số chiều ẩn của Transformer (Patch Embeddings).
- Token đặc biệt
[CLS]: Thêm một token học được[CLS]vào đầu chuỗi (đại diện cho toàn bộ bức ảnh phục vụ phân loại). - Mã hóa vị trí 1D (Position Embeddings): Cộng thêm vector vị trí vào từng token để mô hình biết mảnh ảnh nào nằm ở góc trên, mảnh nào ở góc dưới.
- Transformer Encoder: Đưa toàn bộ chuỗi tokens qua các tầng Multi-Head Self-Attention tiêu chuẩn.
💡 Sự đánh đổi về Inductive Bias:
CNN có sẵn "kiến thức hình học" (Locality), nên học rất tốt với tập dữ liệu nhỏ. ViT hoàn toàn không có kiến thức tiên nghiệm về không gian 2D, nó phải tự học mối quan hệ giữa các mảnh ảnh từ đầu thông qua Self-Attention.
Khi huấn luyện trên dữ liệu nhỏ (ImageNet-1K), ViT kém hơn ResNet. Nhưng khi huấn luyện trên tập dữ liệu khổng lồ (JFT-300M ảnh), ViT vượt trội hoàn toàn và không bị bão hòa năng lực học!
[Bức ảnh 224x224]
|
v (Cắt thành 196 mảnh 16x16)
[Patch 1] [Patch 2] ... [Patch 196]
|
v (Linear Projection + Position Embeddings)
[[CLS] Token] [Token 1] [Token 2] ... [Token 196]
|
v
+-----------------------------------------------------------------------------------+
| STANDARD TRANSFORMER ENCODER (Multi-Head Self-Attention + MLP + LayerNorm) |
+-----------------------------------------------------------------------------------+
|
v
[Vector đại diện tại vị trí [CLS]] ---> [MLP Head] ---> [Phân loại: "Chó" / "Mèo"]
2.3. Đột Phá Đa Phương Thức: OpenAI CLIP (Contrastive Language-Image Pretraining)
Trước CLIP, các mô hình thị giác chỉ có thể phân loại một danh sách nhãn cố định (ví dụ 1000 lớp của ImageNet). Nếu muốn nhận diện một loài hoa mới, ta bắt buộc phải thu thập thêm dữ liệu và huấn luyện lại tầng cuối cùng (Fine-tune).
CLIP giải quyết bài toán bằng cách học sự tương đồng giữa Ảnh và Văn bản tự do trên quy mô 400 triệu cặp (Image, Text) cào từ Internet:
- Kiến trúc hai tháp (Dual-Tower Architecture):
- Image Encoder: Nhận ảnh , xuất ra vector chuẩn hóa (dùng ViT hoặc ResNet).
- Text Encoder: Nhận văn bản mô tả , xuất ra vector chuẩn hóa (dùng Transformer).
- Hàm mất mát Tương phản Đối xứng (Symmetric InfoNCE Loss):
- Với một batch gồm cặp ảnh - văn bản thực tế :
- Ma trận tích vô hướng độ tương đồng có kích thước :
- Mục tiêu tối ưu hóa:
- Kéo gần (Maximize) cặp đúng nằm trên đường chéo chính ().
- Đẩy xa (Minimize) cặp sai nằm ngoài đường chéo ().
TEXT ENCODER
"A photo of a dog" "A red sports car" ... "A plate of pasta"
(T1) (T2) (TN)
| | |
IMAGE ENCODER v v v
[Ảnh Con Chó (I1)] ---> [ T1 . I1 (MAX!) ] [ T2 . I1 (min) ] ... [ TN . I1 (min) ]
[Ảnh Chiếc Xe (I2)] ---> [ T1 . I2 (min) ] [ T2 . I2 (MAX!) ] ... [ TN . I2 (min) ]
... ... ... ...
[Ảnh Dĩa Mì (IN)] ---> [ T1 . IN (min) ] [ T2 . IN (min) ] ... [ TN . IN (MAX!) ]
2.4. Cơ Chế Phân Loại Không Cần Huấn Luyện Lại (Zero-Shot Classification)
Làm thế nào CLIP phân loại được một bức ảnh thành 3 loài động vật mà không cần huấn luyện lại?
- Lấy danh sách các lớp:
["dog", "cat", "plane"]. - Tạo các câu gợi ý (Prompt Engineering):
["A photo of a dog", "A photo of a cat", "A photo of a plane"]. - Đưa 3 câu văn bản qua Text Encoder Thu được 3 vector: .
- Đưa bức ảnh cần phân loại qua Image Encoder Thu được vector .
- Tính tích vô hướng giữa với cả 3 vector văn bản Lớp nào có điểm số cosine cao nhất chính là nhãn dự đoán!
3. Các Bảng Markdown So Sánh Chi Tiết
📊 Bảng 1: So Sánh Toàn Diện: CNN (ResNet) vs. Vision Transformer (ViT) vs. Swin Transformer
| Tiêu chí kỹ thuật | CNN (ResNet-50 / ConvNeXt) | Vision Transformer (ViT gốc) | Swin Transformer (Hierarchical ViT) |
|---|---|---|---|
| Cơ chế tính toán cốt lõi | Phép tích chập trượt (Sliding Kernel) | Global Self-Attention trên toàn bộ patches | Shifted Window Self-Attention (Cục bộ + Dịch chuyển) |
| Inductive Bias | Rất mạnh (Locality & Translation Equivariance) | Rất yếu (Phải tự học quan hệ không gian từ dữ liệu) | Vừa phải (Giữ cấu trúc phân cấp đa tầng của ảnh) |
| Độ phức tạp tính toán | Tuyến tính theo độ phân giải | Bậc hai (Khó xử lý ảnh độ phân giải cao) | Tuyến tính nhờ cơ chế chia cửa sổ |
| Yêu cầu dữ liệu huấn luyện | Hiệu quả cao ngay cả trên tập dữ liệu nhỏ ( ảnh) | Bắt buộc tập dữ liệu khổng lồ ( ảnh) | Tốt trên cả tập dữ liệu vừa và lớn |
| Trường hợp sử dụng tối ưu | Thiết bị nhúng (Edge AI, Camera giao thông, Mobile) | Mô hình nền tảng thị giác (Vision Foundation Models) | Object Detection, Semantic Segmentation (Cần đặc trưng đa tỉ lệ) |
📊 Bảng 2: So Sánh Các Kiến Trúc Học Sâu Đa Phương Thức (Multimodal Fusion)
| Chiến lược Fusion | Cơ chế hoạt động | Điểm mạnh | Điểm yếu | Mô hình tiêu biểu |
|---|---|---|---|---|
| Early Fusion (Hợp nhất sớm) | Ghép nối trực tiếp các pixel ảnh và text tokens ngay tại tầng đầu vào | Mô hình học được tương tác vi mô giữa từ và điểm ảnh | Chi phí tính toán bùng nổ, không thể index trước | VisualBERT, ViLBERT |
| Late / Contrastive Fusion (Hợp nhất trễ - Dual-Tower) | Hai tháp riêng biệt, chỉ tính tích vô hướng ở tầng cuối cùng | Siêu tốc, vector có thể tính toán trước và nạp vào Vector DB | Không hiểu được các chi tiết quan hệ vị trí quá phức tạp | OpenAI CLIP, SigLIP, ALIGN |
| Cross-Attention Fusion (Hợp nhất sâu có điều kiện) | Dùng các vector ảnh làm Key/Value cho các tầng Attention của LLM | Năng lực suy luận và lập luận thị giác vượt trội | Nặng nề, chi phí suy luận cao | GPT-4V, LLaVA, Flamingo, Claude 3.5 Sonnet |
📊 Bảng 3: 4 Bài Toán Thị Giác Máy Tính Cốt Lõi Trong Thực Tế
| Bài toán | Câu hỏi cần giải quyết | Đầu ra của mô hình | Độ phức tạp | Mô hình tiêu biểu |
|---|---|---|---|---|
| Image Classification | "Bức ảnh này chứa vật gì?" | Nhãn danh mục duy nhất (Label) | Thấp nhất | ResNet, ViT, EfficientNet |
| Object Detection | "Vật đó nằm ở vị trí nào trong ảnh?" | Nhãn danh mục + Khung bao (Bounding Box ) | Trung bình | YOLO (v8/v10), Faster R-CNN, DETR |
| Semantic Segmentation | "Từng điểm ảnh (Pixel) thuộc danh mục nào?" | Ma trận mặt nạ phân loại từng pixel (Pixel-level mask) | Cao | U-Net, DeepLabV3, SegFormer |
| Instance Segmentation | "Từng điểm ảnh thuộc về đối tượng cá thể cụ thể nào?" | Phân biệt riêng biệt từng cá thể cùng loại (Xe 1 vs Xe 2) | Cao nhất | Mask R-CNN, Segment Anything (SAM) |
4. Best Practices & Xây Dựng Hệ Thống Multimodal RAG (Pro-Tips)
💡 Kiến Trúc Tìm Kiếm Hình Ảnh Bằng Văn Bản (Visual Search Engine)
Để xây dựng tính năng tìm kiếm sản phẩm bằng ngôn ngữ tự nhiên trên sàn E-commerce:
- Ngoại tuyến (Offline Indexing Pipeline):
- Chạy toàn bộ ảnh sản phẩm qua CLIP Image Encoder Thu được các vector nhúng -chiều.
- Lưu trữ các vector này vào Vector Database (như Milvus / Qdrant) với thuật toán chỉ mục HNSW.
- Trực tuyến (Online Query Pipeline):
- Người dùng gõ: "Váy hoa nhí vintage màu vàng dự tiệc".
- Đưa câu truy vấn qua CLIP Text Encoder Thu được vector văn bản ().
- Thực hiện phép tìm kiếm Cosine Similarity Search trên Vector DB Trả về Top 20 hình ảnh sản phẩm tương đồng nhất trong vòng !
OFFLINE PIPELINE:
[10,000,000 Ảnh Sản Phẩm] ---> [CLIP Image Encoder] ---> [Vector Database (HNSW Index)]
ONLINE PIPELINE:
[User Search: "Váy hoa vintage"] ---> [CLIP Text Encoder] ---> Vector Query (q)
|
v (ANN Cosine Search < 10ms)
[Top 20 Ảnh Sản Phẩm Phù Hợp Nhất]
💡 Khắc Phục Hiện Tượng "Modality Gap" Trong Không Gian Vector CLIP
- Hiện tượng Modality Gap: Trong không gian vector của CLIP, các vector hình ảnh và vector văn bản thường bị phân tách thành hai cụm tách biệt nhau trên mặt cầu hình học, tạo ra một khoảng cách cố định giữa hai phương thức.
- Giải pháp khắc phục: Khi fine-tune CLIP trên tập dữ liệu chuyên ngành (ví dụ: Thời trang hoặc Y tế), hãy chuẩn hóa vector bằng cách trừ đi vector dịch chuyển trung bình (Centering / Mean Shift Normalization) để đưa hai phân phối ảnh và text về trùng khít tâm tọa độ.
5. Góc Ôn Luyện Phỏng Vấn (Interview Corner)
❓ Câu hỏi 1: Tại sao mạng ResNet lại sử dụng đường tắt Skip Connection ()? Phân tích cơ chế toán học giúp Skip Connection giải quyết triệt để vấn đề biến mất đạo hàm (Vanishing Gradient) khi huấn luyện các mạng nơ-ron sâu hàng trăm tầng.
- Gợi ý trả lời:
- Vấn đề của mạng thuần (Plain Network):
- Trong mạng truyền thẳng thông thường , khi tính đạo hàm theo quy tắc chuỗi qua tầng: .
- Nếu các ma trận trọng số có giá trị riêng nhỏ hơn , việc nhân liên tiếp hàng chục ma trận sẽ khiến gradient suy giảm theo hàm mũ về , làm các tầng đầu tiên ngừng học hoàn toàn.
- Cơ chế toán học của ResNet Skip Connection:
- ResNet định nghĩa cấu trúc: .
- Khai triển đệ quy từ tầng đến tầng sâu :
- Khi tính đạo hàm của hàm mất mát tại tầng ngược về tầng :
- Kết luận then chốt:
- Biểu thức đạo hàm luôn chứa ma trận đơn vị (số hạng ).
- Dù thành phần đạo hàm phi tuyến có bị triệt tiêu về đi chăng nữa, gradient vẫn luôn được truyền trực tiếp nguyên vẹn ngược về tầng thông qua đường tắt mà không hề bị suy giảm, cho phép huấn luyện thành công các mạng có độ sâu không giới hạn.
- Vấn đề của mạng thuần (Plain Network):
❓ Câu hỏi 2: Vision Transformer (ViT) biến đổi một bức ảnh thành chuỗi đầu vào cho Transformer như thế nào? So sánh Inductive Bias giữa CNN và ViT, và giải thích tại sao ViT lại đòi hỏi tập dữ liệu huấn luyện lớn hơn nhiều so với CNN để đạt hiệu quả cao.
- Gợi ý trả lời:
- Cơ chế biến đổi ảnh của ViT:
- Cắt ảnh kích thước thành mảnh nhỏ có kích thước (thường là ).
- Trải phẳng mỗi mảnh thành vector kích thước và nhân với ma trận chiếu tuyến tính để chuyển thành vector nhúng có số chiều (Patch Embedding).
- Ghép thêm token học được
[CLS]vào đầu chuỗi và cộng thêm vector vị trí học được 1D Position Embedding vào từng token trước khi đưa vào Transformer Encoder.
- So sánh Inductive Bias:
- CNN có Inductive Bias rất mạnh: Phép tích chập mang sẵn 2 giả định hình học bất biến:
- Locality: Các pixel cạnh nhau có quan hệ mật thiết.
- Translation Equivariance: Một đặc trưng dịch chuyển vị trí thì đặc trưng đầu ra cũng dịch chuyển tương ứng.
- ViT hầu như không có Inductive Bias về không gian 2D: Cơ chế Self-Attention đối xử với 196 mảnh ảnh như một tập hợp các token trừu tượng. Mối quan hệ giữa mảnh ảnh góc trên và góc dưới phải được mô hình tự học hoàn toàn từ đầu thông qua dữ liệu.
- CNN có Inductive Bias rất mạnh: Phép tích chập mang sẵn 2 giả định hình học bất biến:
- Hậu quả về dữ liệu huấn luyện:
- Nhờ có sẵn giả định hình học, CNN học rất nhanh và tổng quát hóa tốt trên tập dữ liệu nhỏ (vài chục nghìn đến 1 triệu ảnh của ImageNet).
- ViT không có giả định nào hỗ trợ nên rất dễ bị Overfitting trên tập dữ liệu nhỏ. Nhưng khi được huấn luyện trên tập dữ liệu khổng lồ (hàng trăm triệu ảnh), ViT không bị giới hạn bởi các giả định cục bộ của CNN, cho phép nó tự do học các mối tương quan toàn cục phức tạp hơn nhiều và đạt độ chính xác vượt trội hoàn toàn.
- Cơ chế biến đổi ảnh của ViT:
❓ Câu hỏi 3: Giải thích nguyên lý của hàm mất mát Tương phản (Contrastive Loss) trong mô hình OpenAI CLIP. Làm thế nào CLIP thực hiện được khả năng phân loại Zero-Shot (Zero-Shot Classification) mà không cần huấn luyện lại bất kỳ trọng số nào?
- Gợi ý trả lời:
- Hàm mất mát Contrastive Loss trong CLIP:
- Trong một batch gồm cặp ảnh - văn bản thực tế, mục tiêu của CLIP là tối đa hóa độ tương đồng cosine của cặp đúng trên đường chéo chính và tối thiểu hóa độ tương đồng của cặp sai nằm ngoài đường chéo.
- Hàm mất mát là trung bình cộng của 2 hàm mất mát Cross-Entropy đối xứng (Dự đoán Text tương ứng cho mỗi Ảnh VÀ Dự đoán Ảnh tương ứng cho mỗi Text):
- Cơ chế thực hiện Zero-Shot Classification:
- Khi cần phân loại ảnh vào lớp mới chưa từng thấy (ví dụ:
xe_tai,xe_bus,xe_con): - Ta biến đổi tên lớp thành câu văn bản mô tả tự nhiên thông qua kỹ thuật Prompt Engineering: "Một bức ảnh chụp xe tải", "Một bức ảnh chụp xe bus", "Một bức ảnh chụp xe con".
- Đưa câu văn bản này qua Text Encoder của CLIP để tạo ra vector biểu diễn văn bản: .
- Đưa bức ảnh cần dự đoán qua Image Encoder của CLIP để tạo ra vector hình ảnh .
- Tính độ tương đồng cosine giữa vector ảnh và cả vector văn bản. Áp dụng hàm Softmax để tính xác suất, lớp nào có điểm số tương đồng cao nhất sẽ là kết quả dự đoán cuối cùng mà hoàn toàn không cần một dòng code huấn luyện hay cập nhật trọng số nào.
- Khi cần phân loại ảnh vào lớp mới chưa từng thấy (ví dụ:
- Hàm mất mát Contrastive Loss trong CLIP:
6. Tóm Tắt Ghi Nhớ Nhanh (Key Takeaways)
- ResNet giải quyết vấn đề suy thoái mạng sâu nhờ Skip Connection (), đảm bảo dòng chảy gradient luôn được cộng thêm số hạng .
- Vision Transformer (ViT) chia ảnh thành các mảnh pixels, loại bỏ phép tích chập và mở ra khả năng mở rộng quy mô khổng lồ trên Big Data.
- OpenAI CLIP hợp nhất Ảnh và Ngôn ngữ vào Chung một không gian vector đa phương thức nhờ hàm mất mát đối xứng Contrastive InfoNCE Loss.
- Zero-Shot Classification của CLIP hoạt động bằng cách so sánh vector ảnh với các vector văn bản được sinh ra từ Prompt Engineering.
- Multimodal RAG cho phép tìm kiếm hình ảnh bằng văn bản tự nhiên với tốc độ bằng cách kết hợp CLIP Encoders + Vector Database (HNSW).