Convolutional neural network: Khái niệm, cấu trúc, cách xây dựng

Thủy Nguyễn 26/10/2024

Convolutional neural network (CNN) đóng vai trò quan trọng trong lĩnh vực trí tuệ nhân tạo, hỗ trợ xử lý hình ảnh, nhận diện khuôn mặt, phân loại đối tượng và phân đoạn ảnh. Cùng Bizfly tìm hiểu về khái niệm, các thành phần chính và cách xây dựng Convolutional neural network hiệu quả. 

Convolutional neural network là gì?

Convolutional neural network (CNN) hay còn gọi là mạng nơ-ron tích chập. Đây là một mạng nơ-ron truyền thẳng được thiết kế để nhận dạng và phân loại hình ảnh, video, ngôn ngữ tự nhiên. 

CNN được sử dụng trong lĩnh vực Computer Vision (hay thị giác máy tính) và xử lý hình ảnh, nhận diện vật thể. Convolutional neural network được ứng dụng nhiều trong các ngành chế tạo xe tự lái, hệ thống camera… Bên cạnh đó, nó cũng góp mặt trong lĩnh vực học sâu (deep learning) để tạo ra các hệ thống phân loại, dự đoán với độ chính xác cao. 

Convolutional neural network (CNN) hay còn gọi là mạng nơ-ron tích chập
Convolutional neural network (CNN) hay còn gọi là mạng nơ-ron tích chập

Các thành phần chính của Convolutional neural network

Mạng nơ-ron tích chập được tạo thành từ 4 phần chính giúp CNN mô phỏng cách hoạt động của não người nhằm nhận dạng các mẫu hình và đặc điểm trong hình ảnh.

Các lớp tích chập

Đây là khối xây dựng đầu tiên của CNN. Như tên gọi của nó, nhiệm vụ toán học chính được thực hiện được gọi là tích chập, là ứng dụng của hàm cửa sổ trượt vào ma trận các điểm ảnh biểu diễn một hình ảnh. Hàm trượt được áp dụng cho ma trận được gọi là hạt nhân hoặc bộ lọc và cả hai đều có thể được sử dụng thay thế cho nhau.

Trong lớp tích chập, một số bộ lọc có kích thước bằng nhau được áp dụng và mỗi bộ lọc được dùng để nhận dạng một mẫu cụ thể từ hình ảnh, chẳng hạn như độ cong của các chữ số, các cạnh, toàn bộ hình dạng của các chữ số,...

Hiểu đơn giản hơn, trong lớp tích chập, chúng ta sử dụng các lưới nhỏ (gọi là bộ lọc hoặc hạt nhân) di chuyển trên hình ảnh. Mỗi lưới nhỏ giống như một kính lúp mini tìm kiếm các mẫu cụ thể trong ảnh, như đường thẳng, đường cong hoặc 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 này.

ReLU

Một hàm kích hoạt ReLU được áp dụng sau mỗi phép toán tích chập. Hàm này giúp mạng học được mối quan hệ phi tuyến tính giữa các đặc điểm trong hình ảnh, do đó làm cho mạng mạnh mẽ hơn để xác định các mẫu khác nhau. Nó cũng giúp giảm thiểu các vấn đề về độ dốc biến mất.

Các lớp gộp lại

Mục tiêu của lớp pooling là kéo các đặc điểm quan trọng nhất từ ​​ma trận phức tạp. Điều này được thực hiện bằng cách áp dụng một số hoạt động tổng hợp, làm giảm chiều của bản đồ đặc điểm (ma trận phức tạp), do đó làm giảm bộ nhớ được sử dụng trong khi đào tạo mạng. Pooling cũng có liên quan để giảm thiểu tình trạng quá khớp.

Các hàm tổng hợp phổ biến nhất có thể áp dụng là:

  • Tổng hợp tối đa, là giá trị tối đa của bản đồ tính năng
  • Tổng hợp tương ứng với tổng của tất cả các giá trị của bản đồ đặc điểm
  • Tổng hợp trung bình là giá trị trung bình của tất cả các giá trị.

Ngoài ra, kích thước của bản đồ đặc điểm sẽ trở nên nhỏ hơn khi hàm gộp được áp dụng. Lớp gộp cuối cùng làm phẳng bản đồ đặc điểm của nó để nó có thể được xử lý bởi lớp được kết nối đầy đủ.

Các lớp được kết nối đầy đủ

Các lớp này nằm trong lớp cuối cùng của mạng nơ-ron tích chập và đầu vào của chúng tương ứng với ma trận một chiều phẳng được tạo ra bởi lớp gộp cuối cùng. Các hàm kích hoạt ReLU được áp dụng cho chúng để phi tuyến tính.

Cuối cùng, một lớp dự đoán softmax được sử dụng để tạo ra các giá trị xác suất cho mỗi nhãn đầu ra có thể có và nhãn cuối cùng được dự đoán là nhãn có điểm xác suất cao nhất.

Các thành phần chính của Convolutional neural network
Các thành phần chính của Convolutional neural network

Vai trò của Convolutional neural network

Ngày nay, Convolutional neural network đóng vai trò quan trọng trong nhiều lĩnh vực bởi:

  • Nó có khả năng tự động trích xuất các tính năng ở quy mô lớn, bỏ qua nhu cầu thiết kế tính năng thủ công giúp nâng cao hiệu quả.

  • Các lớp tích chập cung cấp cho CNN các đặc tính bất biến khi dịch chuyển. Nhờ đó, nó có khả năng xác định và trích xuất các mẫu và đặc điểm từ dữ liệu bất kể sự thay đổi về vị trí, hướng, tỷ lệ.
  • CNN có thể ứng dụng trong nhiều lĩnh vự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.

Cách xây dựng Convolutional neural network hiệu quả

Convolutional neural network sử dụng 3 ý tưởng sau để xây dựng dữ liệu hình ảnh, cụ thể là: 

Trường tiếp nhận cục bộ (Local receptive field)

Trong hệ thống mạng CNN, trường tiếp nhận cục bộ (local receptive field) đề cập đến phạm vi không gian trên ảnh đầu vào mà mỗi nơ-ron trong tầng convolutional kết nối. 

Các nơ-ron trong tầng này chỉ kết nối với một phần nhỏ của hình ảnh đầu vào chứ không kết nối toàn bộ, đây là trường tiếp nhận cục bộ của nơ-ron. 

Từ đó, các nơ-ron xử lý lần lượt, chi tiết từng phần nhỏ nhằm tập trung vào việc nhận diện  các đặc trưng cục bộ. Giả sử như cạnh, góc hoặc texture trong ảnh một cách hiệu quả.

Nhờ việc áp dụng trường tiếp nhận cục bộ, giúp mạng Convolutional neural network trở nên hiệu quả hơn, giảm độ phức tạp tính toán. 

Trọng số chia sẻ (Shared weight and bias)

Trọng số chia sẻ hầu hết được áp dụng cho các bộ lọc (filters) sử dụng trong tầng convolutional của hệ thống mạng. Cốt lõi là các nơ-ron trong cùng một tầng cần sử dụng một bộ lọc để thực hiện phép tích chập trên đầu  vào.

Với mỗi bộ lọc được áp dụng lên một vùng ảnh đầu vào, tất cả các nơ-ron trong cùng một tầng sẽ sử dụng cùng một bộ lọc để tính toán đầu ra. Từ đó, số lượng trọng số cần học sẽ giảm đáng kể, tiết kiệm bộ nhớ và nâng cao tính hiệu quả cho mô hình.

Việc chia sẻ trọng số giúp mô hình trở nên bất biến về mặt hình thức. Điều này sẽ giúp tăng khả năng nhận diện các đặc trưng vật lý một cách không phụ thuộc vào vị trí hay góc độ đối tượng. 

Lớp tổng hợp (Pooling layer)

Lớp này là một phần quan trọng của kiến trúc CNN. Nền tảng được dùng để giảm kích thước cho bản đồ đặc trưng (Feature map) tạo ra bởi tầng convolutional.

Lớp tổng hợp này thường được sử dụng sau mỗi tầng convolutional nhằm giảm chiều dài của dữ liệu, giảm độ phức tạp tính toán và tạo ra tính bất biến đổi của dữ liệu đầu vào.

Hiện có hai loại Pooling layer được sử dụng rộng rãi trong CNN:  

  • Max Pooling: Là giá trị lớn nhất trong một vùng cụ thể của Feature map được chọn để tạo ra Feature map mới với kích thước giảm xuống.
  • Average Pooling: Đây là giá trị trung bình của một vùng cụ thể của Feature map được lấy để tạo ra Feature map mới.
Cách xây dựng Convolutional neural network hiệu quả
Cách xây dựng Convolutional neural network hiệu quả

Cách chọn tham số cho Convolutional neural network

Để chọn tham số cho CNN, cần xác định quy trình cụ thể để điều chỉnh và tối ưu hóa hiệu suất của mô hình, bạn nên lưu ý đến số lượng các yếu tố sau đây: Filter size, pooling size, số convolution và số lần train test, cụ thể:

  • Convolution layer: Giả sử, lớp này có số lượng lớn hơn,chương trình chạy của bạn sẽ càng được cải thiện. Sử dụng layer với số lượng nhiều có thể giúp các tác động được giảm một cách đáng kể. Trong đa phần các trường hợp, chỉ cần khoảng 3 đến 5 lớp là bạn sẽ thu về kết quả như mong đợi. 
  • Filter size: Thông thường, các filter size sẽ có kích thước là 3×3 hoặc 5×5. 
  • Pooling size: Với các hình ảnh thông thường, bạn nên sử dụng loại kích thước 2×2. Nếu đầu vào xuất hiện dạng hình ảnh lớn hơn thì bạn nên chuyển sang dùng loại 4×4. 
  • Train test: Càng thực hiện nhiều lần train test, bạn càng có nhiều khả năng thu được các parameter tốt nhất, giúp mô hình “thông minh” và hiệu quả hơn.
Cách chọn tham số cho Convolutional neural network
Cách chọn tham số cho Convolutional neural network

Ứng dụng thực tế của  Convolutional neural network

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 thực tế. Dưới đây là ứng dụng thực tế của Convolutional neural network.

  • Phân loại hình ảnh: Mạng nơ-ron tích chập được sử dụng để phân loại hình ảnh, trong đó hình ảnh được gán vào các danh mục được xác định trước. Một ứng dụng của kịch bản như vậy là tổ chức ảnh tự động trên các nền tảng truyền thô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 hình ảnh. Khả năng này rất quan trọng trong nhiều tình huống quét kệ hàng trong bán lẻ để xác định các mặt hàng hết hàng.
  • Nhận dạng khuôn mặt: Đây cũng là một trong những ngành công nghiệp chính ứng dụng CNN. Ví dụ, công nghệ này có thể được nhúng vào hệ thống an ninh để kiểm soát hiệu quả việc ra vào dựa trên các đặc điểm khuôn mặt.

Hy vọng qua bài viết trên của Bizfly, bạn đã hiểu rõ Convolutional neural network là gì, tầm quan trọng và cách xây dựng Convolutional neural network hiệu quả. Đồng thời, bạn biết cách chọn tham số CNN phù hợp để phát triển dự án của mình

Chia sẻ bài viết

Nhận ngay tin tức mới nhất từ Bizfly

Nhận ngay tin tức mới nhất từ Bizfly