Bài 7 — Bộ lọc ảnh Instagram và tính năng nhận diện khuôn mặt nhân các con số ra sao?
Bạn chụp một tấm ảnh, chạm vào bộ lọc "làm nét". Ảnh nét hẳn lên. Điện thoại cũng tự khoanh vuông quanh khuôn mặt bạn trước khi bấm chụp.
Quản trị viên
19 tháng 9, 2026· 6 phút đọc
Bạn chụp một tấm ảnh, chạm vào bộ lọc "làm nét". Ảnh nét hẳn lên. Điện thoại cũng tự khoanh vuông quanh khuôn mặt bạn trước khi bấm chụp.
Hai việc ấy nghe rất khác nhau, nhưng bên trong chúng là cùng một phép toán: nhân từng ô rồi cộng lại — tức phép nhân ma trận.
Ảnh là gì, dưới mắt máy tính
Một ảnh xám là một bảng số. Mỗi ô là một điểm ảnh, giá trị từ (đen) tới (trắng).
Ví dụ một vùng nhỏ có một điểm sáng ở giữa:
Nền tối (), giữa có một điểm rất sáng (). Với máy, "có một chi tiết ở đây" nghĩa là các số chênh nhau nhiều. Còn vùng phẳng — mọi số bằng nhau — thì không có gì để nhìn.
Vậy làm sao viết ra một phép tính tự động phát hiện chỗ chênh lệch?
Ý tưởng: một bảng số nhỏ chạy dọc bức ảnh
Ta dùng một bảng khác, gọi là bộ lọc (kernel):
Cách dùng: đặt bộ lọc chồng lên một vùng của ảnh, nhân từng ô tương ứng, rồi cộng tất cả lại. Kết quả là giá trị của điểm ảnh mới.
Nhìn kỹ bộ lọc: ô giữa là , bốn ô kề là , tổng bằng . Nghĩa là nó đo hiệu giữa điểm giữa và trung bình các điểm xung quanh.
Trực quan hoá
Giải bài toán mẫu
Trường hợp 1 — vùng ảnh có điểm sáng.
Nhân từng ô rồi cộng. Chỉ năm ô có hệ số khác :
Giá trị vượt xa trần , nên khi hiển thị nó bị cắt về — trắng xoá. Máy kết luận: có biên ở đây.
Trường hợp 2 — vùng ảnh phẳng.
Kết quả — đen kịt. Không có biên.
Cùng một bộ lọc, hai vùng ảnh, hai kết quả trái ngược. Trượt bộ lọc ấy qua toàn bộ bức ảnh, ta được một bức ảnh mới chỉ còn đường viền của mọi vật. Đó là bước đầu tiên trong nhận diện khuôn mặt: tìm viền mắt, viền mũi, viền cằm.
Mỗi bộ lọc khác nhau làm một việc khác nhau — làm mờ, làm nét, dò cạnh dọc, dò cạnh ngang. Và bộ lọc chỉ là chín con số.
Từ bộ lọc tới mạng nơ-ron: vẫn phép ấy
Phép "nhân từng ô rồi cộng" chính là nhân ma trận. Một lớp mạng nơ-ron cũng y hệt.
Cho ma trận trọng số và vectơ đầu vào:
Nhân theo đúng quy tắc "hàng nhân cột":
Rồi cho qua một hàm đơn giản tên ReLU, nghĩa là "cắt số âm về ":
Kết quả trở thành đầu vào của lớp tiếp theo. Lặp lại vài chục lớp như vậy — đó là Forward Propagation, đường đi của dữ liệu từ đầu vào tới câu trả lời.
Điểm đáng chú ý nhất: mỗi ô của kết quả là một tích vô hướng giữa một hàng của và vectơ — đúng phép tính ở Bài 2. Cả mạng nơ-ron khổng lồ dựng lên từ một phép tính duy nhất, lặp lại vài tỉ lần.
Và cột của nối với cái gì? Mỗi hàng của chính là một perceptron ở Bài 3. Nhân ma trận là cách chạy nhiều perceptron cùng lúc chỉ bằng một phép toán.
Vì sao phải dùng ma trận thay vì viết từng phép cộng
Câu hỏi hợp lý: sao không viết thẳng và ?
Với hai ẩn thì được. Với một lớp có nơ-ron và đầu vào thì đó là hơn 16 triệu phép nhân, viết tay không nổi.
Quan trọng hơn: card đồ hoạ (GPU) được chế tạo để làm đúng phép nhân ma trận, hàng nghìn phép cùng lúc. Viết bài toán dưới dạng ma trận không chỉ gọn trên giấy — nó là điều kiện để bài toán chạy được trên phần cứng thật.
Đó là lý do cơn sốt AI kéo theo cơn sốt chip đồ hoạ: cả ngành đang mua máy để nhân ma trận nhanh hơn.
Thử thách tự tính
Câu hỏi 1. Cho vùng ảnh
và vẫn bộ lọc . Tính giá trị đầu ra.
Câu hỏi 2. Với bộ lọc "làm mờ" mà mọi ô đều bằng , tính đầu ra cho chính vùng ảnh ở câu 1. Kết quả nói lên điều gì?
Câu hỏi 3. Cho và . Tính , rồi cho kết quả qua ReLU.
Câu hỏi 4. Vẫn ở câu 3, tính với . Vì sao kết quả này cho thấy mạng cần thêm một số hạng tự do (bias)?
Đáp án
Câu 1. . Vẫn dương và khá lớn ⇒ có biên, nhưng nhạt hơn ví dụ trong bài () vì độ chênh sáng nhỏ hơn.
Câu 2. . Điểm sáng bị kéo xuống gần mức nền — đúng nghĩa làm mờ. Cùng một vùng ảnh, đổi bộ lọc là đổi hẳn công dụng.
Câu 3. . Qua ReLU: — nơ-ron thứ hai bị "tắt".
Câu 4. . Đầu vào thì đầu ra luôn , bất kể là gì — mạng không bao giờ biểu diễn nổi một hàm có giá trị khác tại gốc. Thêm vectơ bias và tính thì hết ràng buộc ấy. Đây đúng là vai trò của hằng số trong hàm ở Bài 3.
Lời kết
Ba từ nghe rất khác nhau — "bộ lọc ảnh", "nhận diện khuôn mặt", "mạng nơ-ron" — hoá ra cùng quy về một phép: nhân rồi cộng.
Phép nhân ma trận thường bị dạy như một thao tác cơ học, và học sinh hay hỏi "học cái này để làm gì". Câu trả lời khá thẳng: nó là phép toán được thực hiện nhiều lần nhất trên các máy tính hiện đại. Mỗi khi bạn mở camera, mỗi khi ChatGPT trả lời một chữ, hàng tỉ phép nhân ma trận vừa chạy.
Bài 8 — bài cuối của series — sẽ khép lại bằng câu hỏi mà mọi người dùng ChatGPT đều tò mò: nó chọn từ tiếp theo như thế nào, và vì sao câu trả lời là hàm mũ với logarit của Toán 11.
Muốn luyện chắc phần ma trận và phép nhân ma trận, thầy cô và các bạn có thể dựng bộ đề riêng trên Grade: chấm tự động ngay khi nộp kèm lời giải chi tiết từng câu. Dùng thử miễn phí tại đây.
Bắt đầu học cùng Grade
Luyện tập, kiểm tra trình độ và theo dõi tiến độ học tập đa môn — trên web và điện thoại.