Chuyển đến phần nội dung
center-gradient-cover-bg
right-gradient-cover-bg
background gradient desk
Bài viết

Convolutional neural network là gì? Cấu trúc cốt lõi của CNN

Tháng Tư 27, 2025

Chia sẻ với:

Convolutional neural network (CNN) là một loại mạng nơ-ron nhân tạo có khả năng xử lý và phân tích dữ liệu hình ảnh, âm thanh và tín hiệu trong không gian 3 chiều cực kỳ hiệu quả. Trong bài viết này, FPT.AI sẽ trình bày chi tiết về cơ chế hoạt động của CNNs, từ các tầng cơ bản như Convolutional Layer, Pooling Layer, đến các Fully-connected Layers. Bên cạnh đó, bài viết cũng sẽ giới thiệu các loại CNNs nổi bật, cùng với những ứng dụng thực tế mà công nghệ này mang lại.

Convolutional neural network là gì?

CNNs là một dạng của neural networks (mạng nơ-ron), một phần của Machine Learning và là cơ sở của Deep Learning. Chúng bao gồm các tầng node, chứa một tầng đầu vào, một hoặc nhiều tầng ẩn và một tầng đầu ra. Mỗi node kết nối với node khác và có trọng số và ngưỡng liên quan. Nếu đầu ra của bất kỳ node nào vượt quá giá trị ngưỡng xác định, node đó được kích hoạt, gửi dữ liệu đến tầng tiếp theo của mạng. Ngược lại, không có dữ liệu nào được chuyển tiếp đến tầng tiếp theo của mạng.

Convolutional neural network
Kiến trúc của Convolutional Neural Network

Khác với Recurrent Neural Network thường được sử dụng cho xử lý ngôn ngữ tự nhiên (Natural Language Processing) và nhận diện giọng nói tự động (Automatic Speech Recognition), Convolutional neural network (CNNs) được thiết kế cho các tác vụ phân loại hình ảnh và nhận dạng đối tượng trong không gian 3 chiều.

Convolutional neural network tận dụng các nguyên tắc từ đại số tuyến tính, cụ thể là phép nhân ma trận, để xác định các mẫu trong một hình ảnh, khắc phục hạn chế về thời gian khi xác định đối tượng trong hình ảnh của các phương pháp trích xuất đặc trưng thủ công. Tuy nhiên, CNNs yêu cầu tài nguyên tính toán lớn, thường cần sử dụng GPU để huấn luyện mô hình.

Convolutional Neural
Convolutional neural network (CNNs) được thiết kế cho các tác vụ phân loại hình ảnh và nhận dạng đối tượng trong không gian 3 chiều

Cơ chế hoạt động của Convolutional neural network là gì?

Convolutional neural network (CNNs) là một loại Neural Networks đặc biệt, nổi bật với khả năng xử lý dữ liệu hình ảnh, giọng nói, và tín hiệu âm thanh cực kỳ hiệu quả. Chúng có ba loại tầng chính, mỗi tầng đóng vai trò quan trọng trong việc phân tích và nhận diện dữ liệu:

  1. Convolutional Layer (Tầng tích chập)
  2. Pooling Layer (Tầng gộp)
  3. Fully-connected (FC) Layer (Tầng kết nối đầy đủ)

Convolutional Layer là tầng đầu tiên trong mạng CNN. Tầng này sử dụng filters để quét qua hình ảnh đầu vào và phát hiện các đặc trưng cơ bản, chẳng hạn như màu sắc, cạnh, hoặc các hình dạng đơn giản. Sau đó, các Pooling Layers có nhiệm vụ giảm kích thước dữ liệu, giúp giảm độ phức tạp và tăng hiệu quả tính toán.

Tầng cuối cùng là Fully-connected (FC) Layer, nơi các đặc trưng đã được phát hiện sẽ được phân tích và phân loại để đưa ra kết quả cuối cùng.

Khi dữ liệu hình ảnh đi qua các tầng trong mạng CNN, mỗi tầng sẽ dần nhận diện các đặc trưng phức tạp hơn. Các tầng đầu tiên sẽ nhận diện những đặc trưng cơ bản, như cạnh hoặc màu sắc, trong khi các tầng sau sẽ nhận diện các hình dạng lớn hơn, rồi dần dần kết hợp chúng để nhận diện toàn bộ đối tượng trong hình ảnh.

Convolutional Neural Network là gì
Cơ chế hoạt động của Convolutional neural network

Convolutional layer

Convolutional Layer là nơi thực hiện hầu hết các phép tính quan trọng trong CNNs. Để hiểu cách thức hoạt động của nó, ta cần ba thành phần chính: dữ liệu đầu vào, bộ lọc (filter) và feature map.

Giả sử dữ liệu đầu vào là một hình ảnh màu, nó sẽ được biểu diễn dưới dạng một ma trận các pixel trong không gian ba chiều (3D), với ba chiều tương ứng là chiều cao, chiều rộng và độ sâu (tương ứng với RGB trong hình ảnh).

Convolutional neural network (CNN)
Cách dữ liệu đầu vào được biểu diễn

Feature detector (còn gọi là kernel hoặc filter) là một ma trận trọng số hai chiều (2D) giúp phát hiện các đặc trưng trong hình ảnh. Khi filter này di chuyển qua các receptive fields (vùng cảm nhận) của hình ảnh, nó sẽ kiểm tra xem các đặc trưng cần tìm có xuất hiện hay không. Quá trình này được gọi là convolution.

Recurrent neural network
Quá trình Convolution với 3×3 filter

Feature detector thường có kích thước nhỏ, ví dụ như ma trận 3×3, và nó xác định kích thước của receptive field. Khi filter này di chuyển qua hình ảnh, một tích vô hướng (dot product) được tính giữa các giá trị pixel trong vùng quét và filter. Kết quả này sẽ được đưa vào một mảng đầu ra. Sau đó, filter dịch chuyển theo một khoảng cách xác định (gọi là stride) và quá trình được lặp lại cho đến khi filter đã quét qua toàn bộ hình ảnh.

Convolutional Neural network architecture
Feature detector

Feature map (hay activation map hoặc convolved feature) chính là kết quả của chuỗi các phép tính tích vô hướng giữa pixel đầu vào và filter.

Một điểm quan trọng là các trọng số trong feature detector không thay đổi khi nó di chuyển qua hình ảnh, đây được gọi là parameter sharing. Trong quá trình huấn luyện, trọng số sẽ được điều chỉnh thông qua backpropagation và gradient descent.

Có ba hyperparameters quan trọng ảnh hưởng đến kích thước của đầu ra và cần được thiết lập trước khi huấn luyện Neural Network:

  1. Số lượng filters: Quyết định độ sâu của đầu ra. Ví dụ, nếu sử dụng ba filters, sẽ tạo ra ba feature maps, và độ sâu của đầu ra là ba.
  2. Stride: Là bước di chuyển của kernel trên ma trận đầu vào, xác định khoảng cách giữa các lần quét. Stride lớn sẽ tạo ra đầu ra nhỏ hơn.
  3. Zero-padding: Được sử dụng khi kích thước của filter không khớp với kích thước của hình ảnh đầu vào. Padding có thể giúp tạo ra đầu ra lớn hơn hoặc giữ nguyên kích thước đầu ra. Có ba loại padding:
    • Valid padding: Không sử dụng padding, dẫn đến một số phép tính bị bỏ qua.
    • Same padding: Đảm bảo rằng đầu ra có cùng kích thước với đầu vào.
    • Full padding: Thêm số không vào biên của đầu vào, làm tăng kích thước đầu ra.

Sau mỗi phép toán convolution, CNN sẽ áp dụng một phép biến đổi ReLU (Rectified Linear Unit) lên feature map, giúp đưa tính phi tuyến tính vào mô hình và cải thiện khả năng học của mạng nơ-ron.

Convolutional Neural Network là gì
Valid padding, Same padding và Full padding

Additional convolutional layer

Như đã đề cập trước, một Convolutional Layer có thể được thêm vào sau Convolutional Layer đầu tiên trong mạng nơ-ron. Khi có thêm các lớp như vậy, cấu trúc của CNN trở nên phân cấp, tức là các tầng sau có thể nhìn thấy các pixel trong receptive fields (vùng cảm nhận) của các tầng trước đó.

Ví dụ, giả sử chúng ta muốn xác định xem một hình ảnh có chứa xe đạp hay không. Bạn có thể hình dung xe đạp là sự kết hợp của các bộ phận như khung, tay lái, bánh xe, bàn đạp,… Mỗi bộ phận của xe đạp sẽ tạo thành một mẫu nhỏ (mẫu cấp thấp) trong neural network. Sự kết hợp của các bộ phận này tạo thành một mẫu phức tạp hơn (mẫu cấp cao), giúp nhận diện xe đạp trong hình ảnh.

Nhờ vào việc sử dụng nhiều Convolutional Layers, CNN có thể xây dựng một hệ thống phân cấp các đặc trưng, từ các chi tiết nhỏ đến các hình ảnh phức tạp, giúp mạng nơ-ron hiểu và phân tích hình ảnh một cách hiệu quả. Cuối cùng, các Convolutional Layers chuyển hình ảnh thành các giá trị số, giúp Neural Network có thể phân tích và trích xuất các mẫu quan trọng để nhận diện đối tượng.

Convolutional neural network
Sự khác nhau giữa các tầng trong Convolutional neural network

Pooling layer

Pooling Layers, hay còn gọi là downsampling, có nhiệm vụ giảm chiều dữ liệu và giảm số lượng tham số trong đầu vào. Tương tự như Convolutional Layers, Pooling Layers cũng sử dụng một filter (hoặc kernel) để quét qua toàn bộ đầu vào. Tuy nhiên, khác với Convolutional Layers, filter trong Pooling Layers không có trọng số. Thay vào đó, nó áp dụng một phép toán tổng hợp lên các giá trị trong receptive field (vùng cảm nhận) để đưa ra giá trị cho mảng đầu ra.

Có hai loại Pooling chính:

  1. Max Pooling: Khi filter di chuyển qua đầu vào, nó chọn pixel có giá trị lớn nhất trong vùng quét và đưa giá trị đó vào mảng đầu ra. Đây là phương pháp phổ biến nhất trong các mạng nơ-ron.
  2. Average Pooling: Khi filter di chuyển qua đầu vào, nó tính giá trị trung bình của các pixel trong vùng quét và đưa giá trị trung bình đó vào mảng đầu ra.

Mặc dù Pooling Layer làm giảm thông tin trong dữ liệu nhưng nó cũng giảm độ phức tạp tính toán, cải thiện hiệu suất và đặc biệt hạn chế hiện tượng overfitting.

Convolutional neural network (CNN)
Max Pooling vs Average Pooling

Fully-connected layer

Tên của Fully-connected Layer (FC Layer) đã mô tả chính xác vai trò của nó. Khác với các tầng trước trong mạng nơ-ron, nơi các giá trị pixel của hình ảnh đầu vào không được kết nối trực tiếp với tầng đầu ra, trong Fully-connected Layer, mỗi node (nút) trong tầng đầu ra sẽ kết nối trực tiếp với mỗi node trong tầng trước đó.

Tầng này chịu trách nhiệm phân loại dựa trên các đặc trưng mà mạng đã trích xuất từ các tầng trước qua các filters khác nhau. Trong khi Convolutional Layers và Pooling Layers thường sử dụng hàm kích hoạt ReLU, thì Fully-connected Layers chủ yếu sử dụng hàm kích hoạt Softmax để phân loại đầu vào, tạo ra một xác suất từ 0 đến 1 cho mỗi lớp mà nó dự đoán.

Convolutional Neural
Vai trò của các tầng trong Convolutional Neural Network

Các loại Convolutional neural network

Mạng nơ-ron tích chập (Convolutional neural network – CNN) đã trở thành nền tảng của công nghệ thị giác máy tính (Computer Vision) hiện đại. Từ nền móng được đặt bởi Kunihiko Fukushima và Yann LeCun vào những năm 1980-1990, CNN đã không ngừng phát triển đột phá về cấu trúc và hiệu suất qua các thế hệ mô hình khác nhau. Dưới đây là tổng quan về các kiến trúc Convolutional neural network nổi bật nhất:

LeNet

LeNet-5 là một trong những kiến trúc CNN đầu tiên và quan trọng nhất, được phát triển bởi Yann LeCun vào cuối những năm 1980. Được thiết kế chủ yếu để nhận diện chữ số viết tay trên bộ dữ liệu MNIST, mô hình này có cấu trúc đơn giản gồm các lớp tích chập xen kẽ với các lớp gộp (pooling), sau đó là các lớp kết nối đầy đủ để phân loại.

Mặc dù tương đối nhỏ so với các mô hình hiện đại, LeNet đã chứng minh hiệu quả vượt trội của CNN trong việc trích xuất đặc trưng từ hình ảnh, đặt nền móng cho mọi kiến trúc CNN sau này và đánh dấu bước ngoặt quan trọng trong lịch sử thị giác máy tính.

Convolutional neural network
LeNet

AlexNet

AlexNet, được phát triển bởi Alex Krizhevsky, Ilya Sutskever và Geoffrey Hinton vào năm 2012, là mô hình CNN đầu tiên giành chiến thắng trong cuộc thi ImageNet (ILSVRC) và đánh dấu sự bùng nổ của kỷ nguyên học sâu. Cấu trúc của AlexNet gồm năm lớp tích chập xen kẽ với ba lớp gộp, sau đó là ba lớp kết nối đầy đủ. Đột phá lớn nhất của mô hình này là việc sử dụng hàm kích hoạt ReLU giúp tăng tốc độ huấn luyện đáng kể, cùng với kỹ thuật Dropout để giảm overfitting và ứng dụng GPU để tính toán hiệu quả, mở ra thời đại mới cho CNN trong nhận dạng hình ảnh.

Convolutional layer
AlexNet

VGGNet

VGGNet, được phát triển bởi nhóm nghiên cứu Visual Geometry Group tại Đại học Oxford, nổi bật với thiết kế đơn giản nhưng cực kỳ hiệu quả. Mô hình này sử dụng các bộ lọc 3×3 được xếp chồng lên nhau một cách đồng nhất, với hai phiên bản phổ biến nhất là VGG-16 và VGG-19 (có 16 và 19 lớp tích chập tương ứng).

Mặc dù VGG đạt kết quả xuất sắc trong nhận diện hình ảnh, nhưng nó cũng nổi tiếng với số lượng tham số khổng lồ (khoảng 138 triệu), làm cho mô hình trở nên nặng nề về mặt tính toán nhưng vẫn được ưa chuộng vì cấu trúc đơn giản, rõ ràng và dễ hiểu.

Cnn là gì
VGGNet

GoogLeNet (Inception)

GoogLeNet, còn được gọi là Inception v1, được phát triển bởi Google và giành chiến thắng trong cuộc thi ImageNet năm 2014. Điểm đặc biệt của mô hình này là sử dụng “Inception Modules” – một cơ chế cho phép mạng học các đặc trưng ở nhiều mức độ khác nhau bằng cách áp dụng đồng thời các bộ lọc có kích thước khác nhau trên cùng một lớp. Với tổng cộng 22 lớp (hoặc 27 lớp nếu tính cả các lớp gộp), GoogLeNet vẫn duy trì số lượng tham số ở mức thấp, giúp giảm đáng kể yêu cầu bộ nhớ và tăng tốc độ huấn luyện mà vẫn đạt được độ chính xác cao.

Convolutional Neural Network là gì
GoogLeNet (Inception)

ResNet

ResNet (Residual Network), được giới thiệu bởi nhóm nghiên cứu Microsoft vào năm 2015, đã giải quyết vấn đề nan giải trong việc huấn luyện mạng neuron cực kỳ sâu – vanishing gradient (suy giảm đạo hàm). Bí quyết thành công của ResNet nằm ở việc sử dụng “skip connections” (kết nối tắt), cho phép thông tin đi qua một số lớp mà không bị suy giảm, giúp mạng học được cách tổng quát hoá các biểu diễn tốt hơn.

Với nhiều phiên bản từ ResNet-18 đến ResNet-152, mô hình này đã giành chiến thắng ấn tượng trong cuộc thi ImageNet 2015 với độ lỗi chỉ 3,57% – thấp hơn cả khả năng nhận diện của con người, đánh dấu một bước tiến vượt bậc trong lĩnh vực thị giác máy tính.

Convolutional Neural
ResNet-18

Mối quan hệ giữa Convolutional neural network và Computer Vision

Convolutional neural network cung cấp sức mạnh cho các tác vụ nhận dạng hình ảnh và Computer Vision – một nhánh của trí tuệ nhân tạo (AI), giúp máy tính lấy thông tin có ý nghĩa từ thông tin từ các hình ảnh, video và các đầu vào trực quan khác. Dựa trên thông tin đó, hệ thống có thể thực hiện các hành động hoặc đưa ra quyết định.

Một điểm quan trọng cần phân biệt là, trong khi nhận dạng hình ảnh chỉ đơn giản là nhận diện các đối tượng trong hình ảnh, thì Computer Vision còn có thể phân tích và đưa ra các kết luận có ý nghĩa từ các hình ảnh đó. Một số ứng dụng phổ biến của Computer Vision ngày nay bao gồm:

  • Marketing: Trên các nền tảng mạng xã hội, AI có thể giúp nhận diện và gợi ý các thẻ tên bạn bè trong hình ảnh đã được đăng lên, giúp người dùng dễ dàng gắn thẻ bạn bè trong album ảnh.
  • Y tế (Healthcare): Computer Vision được tích hợp vào công nghệ X-quang, hỗ trợ bác sĩ trong việc phát hiện và chẩn đoán các khối u ung thư, nâng cao khả năng phát hiện sớm bệnh lý.
  • Bán lẻ (Retail): Công nghệ tìm kiếm bằng hình ảnh (Visual Search) đã được áp dụng trên một số nền tảng thương mại điện tử, giúp người mua tìm thấy các sản phẩm tương tự hoặc phù hợp với những gì họ đang tìm kiếm, chẳng hạn như tìm đồ quần áo bổ sung cho bộ sưu tập cá nhân.
  • Ô tô (Automotive): Mặc dù xe hơi tự lái chưa hoàn toàn phổ biến, nhưng các công nghệ cơ bản đã được áp dụng trong ô tô để cải thiện an toàn, như tính năng phát hiện vạch làn đường giúp cảnh báo tài xế khi có nguy cơ rời khỏi làn đường.
Convolutional Neural
Convolutional neural network cung cấp sức mạnh cho các tác vụ nhận dạng hình ảnh và Computer Vision

Tóm lại, Convolutional neural network (CNNs) đã và đang đóng một vai trò quan trọng trong nhận diện và phân tích dữ liệu trực quan. Các kiến trúc CNNs như LeNet, AlexNet, VGGNet, và ResNet đã chứng minh hiệu quả vượt trội trong việc giải quyết các vấn đề về nhận diện hình ảnh. Với khả năng mạnh mẽ và tính linh hoạt, CNNs hiện đang là nền tảng không thể thiếu trong các ứng dụng như thị giác máy tính, y tế, marketing và nhiều lĩnh vực khác.

Bài viết liên quan

Cập nhật mọi tin tức mới nhất về công nghệ AI

Đăng ký nhận bản tin của FPT.AI để được phủ sóng mọi xu hướng công nghệ, câu chuyện thành công và phân tích của chuyên gia.