Mạng nơ-ron tích chập (Convolution Neural Network - CNN) là một mạng nơ-ron đặt biệt của mạng nơ-ron nhiều lớp, mà trong đó có ít nhất một lớp thực hiện phép toán tích chập thay vì phép toán nhân thông thường. Mạng nơ-ron tích chập chuyên dùng trong xử lý dữ liệu trong không gian 2 chiều, đặc biệt ứng dụng hiệu quả trong lĩnh vực thị giác máy tính. Kiến trúc mạng CNN phù hợp để xử lý mạng nơ-ron số lượng nơ-ron đầu vào đồ sộ mà việc loại bỏ một vài nơ-ron ở lớp ngõ vào không làm ảnh hưởng đến độ chính xác của mô hình.
Tổng quát về mạng CNN gồm lớp tích chập đầu tiên giữa ngõ vào và các bộ lọc, sau đó đến lớp Pooling, rồi các lớp kết nối đầy đủ (Full Connected Layer – FC), cuối cùng áp dụng hàm Softmax để phân loại các ngõ ra dựa trên giá trị xác suất trong khoảng (0, 1). Kiến trúc cơ bản mạng nơ-ron CNN được mô tả như hình 2.18 bên dưới
Hình 2.18: Mô tả kiến trức cơ bản của mạng CNN
Mạng CNN có các lớp cơ bản: lớp ngõ vào (Input Layer) lưu trữ những thông tin dữ liệu đầu vào; tới lớp tích chập (Convolution Layer) thực hiện tính tích chập giữa các bộ lọc và lớp ngõ vào.
Bộ lọc (kernel) được xác định bởi: kích thước (Filter size), thường nhỏ 3x3 hoặc 5x5, …; độ sâu (Deepth) bằng với độ sâu của đầu vào, ví dụ: ảnh đầu vào là ảnh màu GRB thì độ sâu của bộ lọc là 3. Stride là bước trượt – quyết định số lượng điểm ảnh sẽ thay đổi; thông số padding – là gán các giá trị 0 dọc theo biên của ảnh, với
Stride = 1 thì sau khi gán padding, ma trận tạo ra lúc kernel kết thúc trược có kích thước bằng với ma trận đầu vào.
Bằng cách trượt bộ lọc theo chiều ngang rồi chiều dọc theo ma trận đầu vào, sẽ thu được một ma trận gọi là bản đồ đặc trưng (Feature Map) của dữ liệu ngõ vào. Mỗi bộ lọc sẽ tạo một ma trận, nên tuỳ theo số lượng ngõ ra mà chọn số lượng bộ lọc tương ứng. Sau khi có danh sách các ma trận từ các bộ lọc, sẽ được đưa qua một hàm kích hoạt – hàm kích hoạt ReLU hay được sử dụng.
Lớp Pooling – thường ở giữa các lớp tích chập, nhằm giảm kích thước của dữ liệu tuy nhiên vẫn giữ được các thuộc tính quan trọng. Ở đây, padding và bước trượt Stride giống như áp dụng trên lớp tích chập. Các hàm hay sử dụng trong lớp Pooling gồm Max Pooling, Average Pooling, Sum Pooling. Hàm Max Pooling sử dụng rộng rãi trong xử lý phân loại ảnh. Với Max Pooling sẽ tạo ra ma trận mới bởi lấy giá trị lớn nhất trong không gian cửa sổ. Hình 2.19 minh hoạ hàm Max Pooling với kích thước cửa sổ là 2x2 và bước trượt Stride = 2, một ma trận mới được tạo ra bởi lấy giá trị lớn nhất sau 4 lần trượt.
Hình 2.19: Minh hoạ hàm Max Pooling
Lớp cuối cùng của mạng tích chập là lớp kết nối đầy đủ (Fully Connected Layer), sau khi qua nhiều lớp tích chập và lớp Pooling thì mô hình đã học được nhiều đặc điểm của dữ liệu đầu vào. Tại đây, ma trận ngõ ra của lớp Pooling được làm
phẳng thành vector 1 chiều (1-D) và được đưa vào lớp kết nối như mạng nơ-ron thông thường. Áp dụng hàm kích hoạt thường sử dụng Softmax để phân loại ngõ ra.