Courses
Mạng nơ-ron tích chập (CNN) cung cấp năng lực cho một số khả năng AI ấn tượng nhất hiện nay, từ nhận diện khuôn mặt trên điện thoại thông minh đến phát hiện khối u trong ảnh chụp y khoa.
Trong hướng dẫn này, tôi trình bày CNN là gì, cách chúng hoạt động, các thành phần chính, chiến lược chống overfitting, và các framework phổ biến nhất để xây dựng chúng.
Để thực hành học sâu, hãy xem khóa học Giới thiệu Học sâu với Python của DataCamp.
TL;DR
- Mạng nơ-ron tích chập (CNN) là một kiến trúc học sâu được thiết kế cho các tác vụ như phân loại ảnh, phát hiện đối tượng và phân đoạn.
- CNN có bốn thành phần chính: các tầng tích chập (trích xuất đặc trưng), hàm kích hoạt như ReLU (phi tuyến), các tầng pooling (giảm chiều), và các tầng kết nối đầy đủ (phân loại).
- Thiết kế của chúng lấy cảm hứng từ cấu trúc phân cấp của vỏ não thị giác người.
- Overfitting là thách thức lớn; các kỹ thuật như dropout, batch normalization, tăng cường dữ liệu và early stopping giúp giảm thiểu.
- TensorFlow, PyTorch và Keras là các framework phổ biến nhất để xây dựng CNN.
Mạng nơ-ron tích chập (CNN) là gì?
Mạng nơ-ron tích chập (CNN), còn gọi là ConvNet, là một loại thuật toán học sâu chuyên biệt, chủ yếu được thiết kế cho các tác vụ đòi hỏi nhận dạng đối tượng, bao gồm phân loại, phát hiện và phân đoạn ảnh. CNN được sử dụng trong nhiều kịch bản thực tế như xe tự hành, hệ thống camera an ninh, và nhiều lĩnh vực khác.
Tầm quan trọng của CNN
Có nhiều lý do khiến CNN quan trọng trong thế giới hiện đại, như nêu dưới đây:
- CNN khác với các thuật toán học máy cổ điển như SVM và cây quyết định nhờ khả năng tự động trích xuất đặc trưng ở quy mô lớn, tránh cần kỹ thuật đặc trưng thủ công và nhờ đó nâng cao hiệu quả.
- Các tầng tích chập mang lại cho CNN đặc tính bất biến theo phép tịnh tiến, giúp chúng nhận diện và trích xuất mẫu và đặc trưng từ dữ liệu bất kể biến thiên về vị trí, hướng, tỉ lệ hay tịnh tiến.
- Nhiều kiến trúc CNN tiền huấn luyện, bao gồm VGG-16, ResNet50, Inceptionv3 và EfficientNet, đã thể hiện hiệu năng hàng đầu. Những mô hình này có thể được điều chỉnh cho tác vụ mới với lượng dữ liệu tương đối ít thông qua quy trình gọi là fine-tuning.
- Vượt ra ngoài tác vụ phân loại ảnh, CNN rất linh hoạt và có thể áp dụng cho nhiều lĩnh vực khác như xử lý ngôn ngữ tự nhiên, phân tích chuỗi thời gian và nhận dạng giọng nói.
Nguồn cảm hứng phía sau CNN và các điểm tương đồng với hệ thị giác người
Mạng nơ-ron tích chập lấy cảm hứng từ kiến trúc phân lớp của vỏ não thị giác người, và dưới đây là vài điểm tương đồng và khác biệt then chốt:

Minh hoạ sự tương ứng giữa các vùng liên quan đến vỏ não thị giác sơ cấp và các tầng trong mạng nơ-ron tích chập (nguồn)
- Kiến trúc phân cấp: Cả CNN và vỏ não thị giác đều có cấu trúc phân cấp, với các đặc trưng đơn giản được trích xuất ở những tầng đầu và đặc trưng phức tạp hơn được xây dựng ở tầng sâu. Điều này cho phép biểu diễn ngày càng tinh vi của đầu vào thị giác.
- Kết nối cục bộ: Tế bào thần kinh trong vỏ não thị giác chỉ kết nối với một vùng cục bộ của đầu vào, không phải toàn bộ trường thị giác. Tương tự, neuron trong một tầng CNN chỉ kết nối với một vùng cục bộ của khối đầu vào thông qua phép tích chập. Kết nối cục bộ giúp tăng hiệu quả.
- Bất biến theo tịnh tiến: Tế bào thần kinh ở vỏ não thị giác có thể phát hiện đặc trưng bất kể vị trí của chúng trong trường thị giác. Các tầng pooling trong CNN cung cấp một mức độ bất biến theo tịnh tiến bằng cách tóm lược các đặc trưng cục bộ.
- Nhiều bản đồ đặc trưng: Ở mỗi giai đoạn xử lý thị giác, có nhiều bản đồ đặc trưng khác nhau được trích xuất. CNN mô phỏng điều này thông qua nhiều bộ lọc trong mỗi tầng tích chập.
- Tính phi tuyến: Tế bào thần kinh trong vỏ não thị giác thể hiện tính đáp ứng phi tuyến. CNN đạt được phi tuyến nhờ các hàm kích hoạt như ReLU áp dụng sau mỗi phép tích chập.
CNN mô phỏng hệ thị giác người nhưng đơn giản hơn, thiếu các cơ chế phản hồi phức tạp và dựa vào học có giám sát thay vì không giám sát, song vẫn thúc đẩy tiến bộ trong thị giác máy tính bất chấp những khác biệt này.
Các thành phần chính của CNN
Mạng nơ-ron tích chập gồm bốn phần chính.
Vậy CNN học với những phần đó như thế nào?
Chúng giúp CNN mô phỏng cách não người hoạt động để nhận diện mẫu và đặc trưng trong ảnh:
- Các tầng tích chập
- Hàm tuyến tính chỉnh lưu (gọi tắt là ReLU)
- Các tầng pooling
- Các tầng kết nối đầy đủ
Phần này đi sâu vào định nghĩa từng thành phần thông qua ví dụ phân loại một chữ số viết tay.

Kiến trúc CNN áp dụng cho nhận dạng chữ số (nguồn)
Các tầng tích chập
Đây là khối xây dựng đầu tiên của CNN. Như tên gọi, tác vụ toán học chính là tích chập, tức áp dụng một cửa sổ trượt lên ma trận điểm ảnh biểu diễn một bức ảnh. Hàm trượt áp dụng lên ma trận gọi là kernel hay filter, và hai thuật ngữ này dùng thay thế cho nhau.
Trong tầng tích chập, nhiều bộ lọc cùng kích thước được áp dụng, và mỗi bộ lọc được dùng để nhận diện một mẫu cụ thể từ ảnh, như độ cong của chữ số, các cạnh, hình dạng tổng thể của chữ số, v.v.
Nói đơn giản, ở tầng tích chập, chúng ta dùng các lưới nhỏ (gọi là filter hay kernel) di chuyển trên ảnh. Mỗi lưới nhỏ như một kính lúp mini tìm các mẫu cụ thể trong ảnh, như đường thẳng, đường cong hay hình dạng. Khi di chuyển trên ảnh, nó tạo ra một lưới mới làm nổi bật nơi tìm thấy các mẫu đó.
Ví dụ, một bộ lọc có thể giỏi tìm đường thẳng, bộ khác tìm đường cong, v.v. Bằng cách dùng nhiều bộ lọc khác nhau, CNN có thể nắm bắt tốt các mẫu đa dạng cấu thành bức ảnh.
Hãy xét ảnh thang xám 32x32 của một chữ số viết tay. Các giá trị trong ma trận được cho nhằm minh hoạ.

Minh hoạ ảnh đầu vào và biểu diễn điểm ảnh
Cũng xét kernel dùng cho tích chập. Đó là ma trận kích thước 3x3. Trọng số của từng phần tử kernel được hiển thị trong lưới. Trọng số 0 thể hiện bằng ô đen và 1 bằng ô trắng.
Chúng ta có phải tự tìm các trọng số này không?
Trong thực tế, trọng số của các kernel được xác định trong quá trình huấn luyện mạng nơ-ron.
Dùng hai ma trận này, ta có thể thực hiện phép tích chập bằng cách áp dụng tích vô hướng, và tiến hành như sau:
- Áp kernel từ góc trên bên trái sang bên phải.
- Nhân từng phần tử tương ứng.
- Cộng các giá trị tích lại.
- Giá trị thu được tương ứng với giá trị đầu tiên (góc trên bên trái) trong ma trận sau tích chập.
- Di chuyển kernel xuống dưới theo kích thước bước trượt.
- Lặp lại bước 1 đến 5 cho đến khi bao phủ hết ma trận ảnh.
Kích thước ma trận sau tích chập phụ thuộc vào kích thước bước trượt. Bước trượt càng lớn, kích thước càng nhỏ.

Áp dụng phép tích chập với bước trượt 1 và kernel 3x3
Một tên gọi khác liên quan đến kernel trong tài liệu là bộ dò đặc trưng vì các trọng số có thể được tinh chỉnh để phát hiện các đặc trưng cụ thể trong ảnh đầu vào.
Chẳng hạn:
- Kernel trung bình lân cận có thể dùng để làm mờ ảnh đầu vào.
- Kernel trừ lân cận được dùng để phát hiện biên.
Số tầng tích chập càng nhiều, khả năng phát hiện các đặc trưng trừu tượng càng tốt.
Hàm kích hoạt
Một hàm kích hoạt ReLU được áp dụng sau mỗi phép tích chập. Hàm này giúp mạng học các quan hệ phi tuyến giữa các đặc trưng trong ảnh, nhờ đó mạng vững vàng hơn khi nhận diện các mẫu khác nhau. Nó cũng giúp giảm vấn đề tiêu biến gradient.
Tầng pooling
Mục tiêu của tầng pooling là rút ra các đặc trưng quan trọng nhất từ ma trận sau tích chập. Điều này được thực hiện bằng cách áp dụng các phép tổng hợp, giúp giảm kích thước bản đồ đặc trưng (ma trận sau tích chập), từ đó giảm bộ nhớ dùng khi huấn luyện mạng. Pooling cũng hữu ích để giảm overfitting.
Những hàm tổng hợp phổ biến có thể áp dụng gồm:
- Max pooling, lấy giá trị lớn nhất của bản đồ đặc trưng
- Sum pooling, tương ứng với tổng tất cả giá trị của bản đồ đặc trưng
- Average pooling, là giá trị trung bình của tất cả giá trị.
Dưới đây là minh hoạ cho từng ví dụ trước đó:

Áp dụng max pooling với bước trượt 2 và bộ lọc 2x2
Ngoài ra, kích thước bản đồ đặc trưng sẽ nhỏ dần khi áp dụng hàm pooling.
Tầng pooling cuối cùng sẽ làm phẳng bản đồ đặc trưng để có thể được xử lý bởi tầng kết nối đầy đủ.
Các tầng kết nối đầy đủ
Những tầng này nằm ở phần cuối của mạng nơ-ron tích chập, và đầu vào của chúng là ma trận một chiều đã được làm phẳng do tầng pooling cuối tạo ra. Hàm kích hoạt ReLU được áp dụng để tạo phi tuyến.
Cuối cùng, một tầng dự đoán softmax được dùng để tạo ra giá trị xác suất cho từng nhãn đầu ra có thể, và nhãn cuối cùng được dự đoán là nhãn có điểm xác suất cao nhất.
Overfitting và Regularization trong CNN
Overfitting là một thách thức phổ biến trong các mô hình học máy và các dự án học sâu với CNN. Nó xảy ra khi mô hình học quá kỹ dữ liệu huấn luyện (“học thuộc lòng”), bao gồm cả nhiễu và ngoại lai. Việc học như vậy dẫn đến mô hình hoạt động tốt trên dữ liệu huấn luyện nhưng kém trên dữ liệu mới, chưa thấy.
Điều này có thể quan sát khi mô hình đạt độ chính xác cao hơn đáng kể trên dữ liệu huấn luyện so với dữ liệu xác thực hoặc kiểm thử, và hình minh hoạ dưới đây cho thấy điều đó:

Underfitting so với Overfitting
Các mô hình học sâu, đặc biệt là CNN, đặc biệt dễ bị overfitting do khả năng biểu diễn phức tạp cao và khả năng học các mẫu chi tiết trong dữ liệu quy mô lớn.
Nhiều kỹ thuật regularization có thể áp dụng để giảm overfitting trong CNN, một số được minh hoạ dưới đây:

7 chiến lược giảm overfitting trong CNN
- Dropout: Bao gồm việc ngẫu nhiên bỏ một số neuron trong quá trình huấn luyện, buộc các neuron còn lại học các đặc trưng mới từ dữ liệu đầu vào.
- Batch normalization: Giảm overfitting ở mức độ nhất định bằng cách chuẩn hoá tầng đầu vào thông qua điều chỉnh và co giãn các kích hoạt. Cách tiếp cận này cũng giúp tăng tốc và ổn định quá trình huấn luyện.
- Các tầng pooling: Có thể dùng để giảm kích thước không gian của ảnh đầu vào nhằm cung cấp cho mô hình một dạng biểu diễn trừu tượng, do đó giảm nguy cơ overfitting.
- Early stopping: Liên tục theo dõi hiệu năng của mô hình trên dữ liệu xác thực trong quá trình huấn luyện và dừng huấn luyện khi lỗi xác thực không còn cải thiện.
- Tiêm nhiễu: Quá trình này là thêm nhiễu vào đầu vào hoặc đầu ra của các tầng ẩn trong quá trình huấn luyện để làm mô hình vững hơn và tránh khả năng khái quát kém.
- Regularization L1 và L2: Cả L1 và L2 đều thêm một hình phạt vào hàm mất mát dựa trên độ lớn của trọng số. Cụ thể, L1 khuyến khích trọng số thưa, dẫn đến chọn lọc đặc trưng tốt hơn. Ngược lại, L2 (còn gọi là weight decay) khuyến khích trọng số nhỏ, ngăn chúng ảnh hưởng quá mức đến dự đoán.
- Tăng cường dữ liệu: Quá trình tăng kích thước và đa dạng bộ dữ liệu huấn luyện một cách nhân tạo bằng cách áp dụng các biến đổi ngẫu nhiên như xoay, co giãn, lật hay cắt xén lên ảnh đầu vào.
Ứng dụng thực tiễn của CNN
Mạng nơ-ron tích chập đã cách mạng hóa lĩnh vực thị giác máy tính, dẫn đến những tiến bộ đáng kể trong nhiều ứng dụng đời thực. Dưới đây là một vài ví dụ về cách chúng được áp dụng.

Một số ứng dụng thực tiễn của CNN
- Phân loại ảnh: CNN được dùng để phân loại ảnh, trong đó ảnh được gán vào các danh mục định sẵn. Một ứng dụng là sắp xếp ảnh tự động trên các nền tảng mạng xã hội.
- Phát hiện đối tượng: CNN có thể xác định và định vị nhiều đối tượng trong một bức ảnh. Khả năng này rất quan trọng trong các kịch bản quét kệ hàng bán lẻ để xác định mặt hàng hết hàng.
- Nhận diện khuôn mặt: đây cũng là một trong những ngành ứng dụng chính của CNN. Ví dụ, công nghệ này có thể tích hợp vào hệ thống an ninh để kiểm soát truy cập hiệu quả dựa trên đặc trưng khuôn mặt.
Để triển khai thực hành, Hướng dẫn CNN với TensorFlow của chúng tôi dạy cách xây dựng và triển khai CNN trong Python với TensorFlow 2.
Các kiến trúc CNN phổ biến
Qua nhiều năm, các nhà nghiên cứu đã phát triển những kiến trúc CNN ngày càng mạnh. Dưới đây là một số kiến trúc có ảnh hưởng nhất:
- LeNet-5 (1998): Một trong những CNN đầu tiên, thiết kế cho nhận dạng chữ số viết tay.
- AlexNet (2012): Thắng cuộc thi ImageNet và phổ biến hoá CNN sâu với huấn luyện bằng GPU.
- VGGNet (2014): Cho thấy mạng sâu hơn với bộ lọc 3x3 nhỏ cải thiện độ chính xác.
- GoogLeNet/Inception (2014): Giới thiệu mô-đun inception với kích thước bộ lọc song song để trích xuất đặc trưng đa tỉ lệ.
- ResNet (2015): Giới thiệu kết nối tắt (skip connection), cho phép huấn luyện mạng trên 100+ tầng.
- EfficientNet (2019): Dùng scaling tổng hợp để cân bằng độ sâu, độ rộng và độ phân giải mạng.
- ConvNeXt (2022): Thiết kế CNN hiện đại cạnh tranh với Vision Transformer.
Dù Vision Transformer (ViT) đã nổi lên như lựa chọn mạnh kể từ 2020, CNN vẫn được dùng rộng rãi nhờ hiệu quả, yêu cầu dữ liệu thấp hơn và độ chín trong môi trường sản xuất.
Framework học sâu cho CNN
Sự phát triển nhanh của học sâu chủ yếu nhờ các framework mạnh như TensorFlow, PyTorch và Keras, giúp việc huấn luyện CNN và các mô hình học sâu khác trở nên dễ dàng hơn.
Hãy điểm qua ngắn gọn từng framework.
TensorFlow
TensorFlow là framework học sâu mã nguồn mở do Google phát triển và phát hành năm 2015. Nó cung cấp một loạt công cụ cho phát triển và triển khai học máy. Giới thiệu về Mạng nơ-ron Sâu của chúng tôi cung cấp hướng dẫn đầy đủ để hiểu mạng nơ-ron sâu và tầm quan trọng của chúng trong thế giới AI học sâu hiện đại, cùng các triển khai thực tế trong TensorFlow.
Keras
Keras là framework mạng nơ-ron cấp cao trong Python, cho phép thử nghiệm và phát triển nhanh. Nó là mã nguồn mở và là API cấp cao chính thức của TensorFlow (từ phiên bản 2.0), giúp tinh gọn phát triển mô hình trong hệ sinh thái TensorFlow. Khóa học Xử lý ảnh với Keras trong Python của chúng tôi dạy cách phân tích ảnh bằng Keras với Python bằng cách xây dựng, huấn luyện và đánh giá CNN.
PyTorch
Phát hành bởi Meta (trước đây là Facebook) AI Research năm 2017, PyTorch là framework học sâu đa dụng, nổi tiếng với đồ thị tính toán động, cú pháp đậm chất Python và cộng đồng nghiên cứu mạnh. Nếu bạn muốn tìm hiểu xử lý ngôn ngữ tự nhiên, NLP với PyTorch: Hướng dẫn Toàn diện của chúng tôi là điểm khởi đầu tuyệt vời.
Mỗi dự án đều khác nhau, nên quyết định phụ thuộc vào những đặc điểm quan trọng nhất cho trường hợp sử dụng cụ thể. Để hỗ trợ ra quyết định tốt hơn, bảng sau cung cấp so sánh ngắn giữa các framework này, làm nổi bật các tính năng độc đáo.
Tensorflow | Pytorch | Keras | |
Cấp độ API | Cả hai (Cao và Thấp) | Thấp | Cao |
Kiến trúc | Không dễ dùng | Cú pháp đậm chất Python, trực quan | Đơn giản, súc tích, dễ đọc |
Tập dữ liệu | Tập lớn, hiệu năng cao | Tập lớn, hiệu năng cao | Tập nhỏ hơn |
Gỡ lỗi | Khó gỡ lỗi | Khả năng gỡ lỗi tốt | Mạng đơn giản nên thường ít cần gỡ lỗi |
Mô hình tiền huấn luyện? | Có | Có | Có |
Độ phổ biến | Phổ biến thứ hai trong ba cái | Được dùng rộng rãi nhất cho nghiên cứu và ngày càng nhiều trong sản xuất | Tích hợp vào TensorFlow như API cấp cao chính thức |
Tốc độ | Nhanh, hiệu năng cao | Nhanh, hiệu năng cao | Tương tự TensorFlow (chạy trên backend TF) |
Viết bằng | C++, CUDA, Python | C++, Python | Python |
Bảng so sánh giữa Tensorflow, Pytorch và Keras (nguồn)
Kết luận
Bài viết này đã cung cấp cái nhìn tổng quan đầy đủ về CNN trong học sâu, cùng vai trò quan trọng của chúng trong các tác vụ nhận dạng và phân loại ảnh.
Bài viết bắt đầu bằng việc nêu bật cảm hứng từ hệ thị giác người cho thiết kế của CNN rồi khám phá các thành phần chính cho phép các mạng này học và đưa ra dự đoán.
Vấn đề overfitting được thừa nhận là một thách thức đáng kể đối với khả năng khái quát của CNN. Để giảm thiểu, bài viết đã liệt kê nhiều chiến lược phù hợp nhằm giảm overfitting và cải thiện hiệu năng tổng thể của CNN.
Cuối cùng, một số framework CNN học sâu quan trọng đã được nhắc tới, cùng các tính năng độc đáo của từng cái và cách chúng so sánh với nhau.
Háo hức khám phá sâu hơn thế giới AI và học máy? Nâng tầm chuyên môn của bạn bằng cách ghi danh khóa học Học sâu với PyTorch ngay hôm nay.
Nhà khoa học dữ liệu đa tài, yêu thích chia sẻ kiến thức và đóng góp cho cộng đồng, Zoumana là người sáng tạo nội dung trên YouTube và là cây bút công nghệ hàng đầu trên Medium. Anh yêu thích thuyết trình, lập trình và giảng dạy. Zoumana có hai bằng thạc sĩ: một về khoa học máy tính chuyên sâu Học máy tại Paris, Pháp, và một về Khoa học dữ liệu tại Texas Tech University, Hoa Kỳ. Anh bắt đầu sự nghiệp với vai trò Nhà phát triển phần mềm tại Groupe OPEN ở Pháp, sau đó chuyển sang IBM làm Tư vấn Học máy, nơi anh phát triển các giải pháp AI đầu-cuối cho các công ty bảo hiểm. Zoumana gia nhập Axionable, startup Trí tuệ nhân tạo Bền vững đầu tiên có trụ sở tại Paris và Montreal. Tại đây, anh làm Nhà khoa học dữ liệu và triển khai các sản phẩm AI, chủ yếu là các bài toán NLP, cho khách hàng tại Pháp, Montreal, Singapore và Thụy Sĩ. Ngoài ra, 5% thời gian của anh được dành cho Nghiên cứu và Phát triển. Hiện tại, anh làm việc với vai trò Nhà khoa học dữ liệu cao cấp tại IFC - Nhóm Ngân hàng Thế giới.
Câu hỏi thường gặp về CNN
Sự khác biệt giữa CNN và mạng nơ-ron thông thường là gì?
Một mạng nơ-ron thông thường (kết nối đầy đủ) nối mọi neuron với mọi neuron ở tầng kế tiếp, điều này trở nên tốn kém tính toán với dữ liệu ảnh. CNN dùng các tầng tích chập áp dụng các bộ lọc nhỏ lên các vùng cục bộ của đầu vào, giúp giảm mạnh số tham số trong khi vẫn giữ quan hệ không gian. Điều này khiến CNN hiệu quả và hiệu lực hơn nhiều cho các tác vụ liên quan đến ảnh.
Những kiến trúc CNN phổ biến nhất là gì?
Các kiến trúc CNN có ảnh hưởng nhất bao gồm LeNet-5 (1998), AlexNet (2012), VGGNet (2014), ResNet (2015) và EfficientNet (2019). Gần đây hơn, ConvNeXt (2022) hiện đại hóa cách tiếp cận CNN để cạnh tranh với Vision Transformer. Mỗi kiến trúc đều giới thiệu những đổi mới then chốt như kết nối tắt (ResNet) hay scaling tổng hợp (EfficientNet).
CNN có còn phù hợp vào năm 2026 không?
Có, CNN vẫn rất phù hợp vào năm 2026. Dù Vision Transformer (ViT) đã trở nên phổ biến cho một số tác vụ, CNN vẫn được ưa chuộng trong nhiều môi trường sản xuất nhờ hiệu quả tính toán, hiệu năng tốt với dữ liệu huấn luyện hạn chế và các quy trình triển khai đã trưởng thành. Các kiến trúc hiện đại như ConvNeXt cho thấy CNN có thể sánh với transformer khi dùng kỹ thuật huấn luyện cập nhật.
Tôi nên chọn TensorFlow, PyTorch hay Keras để xây dựng CNN?
PyTorch là lựa chọn phổ biến nhất cho nghiên cứu và thử nghiệm nhanh nhờ cú pháp đậm chất Python và đồ thị tính toán động. TensorFlow vượt trội trong triển khai sản xuất với các công cụ như TensorFlow Serving và TensorFlow Lite cho thiết bị di động. Keras, nay tích hợp làm API cấp cao chính thức của TensorFlow, lý tưởng cho người mới bắt đầu muốn xây dựng và huấn luyện CNN với ít mã.
Mục đích của các tầng pooling trong CNN là gì?
Các tầng pooling giảm kích thước không gian (chiều cao và chiều rộng) của bản đồ đặc trưng trong khi vẫn giữ thông tin quan trọng nhất. Điều này phục vụ ba mục đích: giảm chi phí tính toán nhờ giảm số tham số, cung cấp một mức độ bất biến theo tịnh tiến (khả năng nhận diện đặc trưng bất kể vị trí chính xác), và giúp ngăn overfitting bằng cách cung cấp biểu diễn trừu tượng của đầu vào.
