Hình 4. 8. Mô hình của mạng nơ-ron tích chập
Định nghĩa:
Nói về việc thuật toán học sâu (deep learning) phá vỡ một rào cản công nghệ mới, thì đều dính dáng tới các Mạng Nơ-ron Tích chập (Convolutional Neural
Networks). Còn được gọi là CNNs hay ConvNets, chúng là những hòn đá tảng trong
lĩnh vực mạng nơ-ron học sâu. Chúng có thể học được cách phân loại các hình ảnh thậm chí còn tốt hơn con người trong một số trường hợp.
Convolutional Neural Networks tương đồng với mạng Neural Networks thông thường, bao gồm nhiều neuron với mục đích học được các tham số (weights và biases). Mạng này có:
o Đầu vào: Những bức ảnh dưới dạng Pixel
Quá trình mạng nhận diện một ảnh (Inference):
o Ảnh sẽ được chuyển về dưới dạng ma trận các pixel
o Ma trận của ảnh khi đi qua các lớp ẩn (hidden layer) sẽ được trích xuất đặc trưng cũng như biến đối phi tuyến thành ma trận kích thước nhỏ hơn nhưng chứa đựng nhiều đặc trưng của bức ảnh hơn.
o Sau khi ma trận của ảnh được biến đổi, nó được đưa qua lớp cuối cùng là một layer các nơ-ron, mỗi nơ-ron này đặc trưng cho xác suất ảnh đưa vào.
Tại sao lại cần dùng Convolutional Neural Network?
Nhược điểm của mạng kết nối đầy đủ (Fully Connected Network):
o Dễ bị Overfit do lượng tham số cần học quá lớn và data quá nhỏ;
o Mạng không phân loại được cùng một đối tượng nhưng ở vị trí khác nhau trong ảnh.
Ưu điểm của mạng Convolutional Neural Networks:
o Lượng tham số ít hơn nhiều so với mạng kết nối đầy đủ. Các lớp tích chập (CONV), các lớp Pooling giúp trích xuất đặc trưng của ảnh khiến ma trận ảnh đi qua mỗi lớp nhỏ dần đi, vì thế lượng tham số cần học cũng giảm theo.
o Có tính kháng dịch chuyển. Vì loại đi những dữ liệu thừa có ảnh hưởng đến vị trí của đối tượng nên mạng nhận diện chính xác một đối tượng nằm ở các vị trí khác nhau trong một ảnh.
Bộ lọc:
Vector/ Ma trận trượt trên ma trận khác để trích xuất các dữ liệu đặc trưng, loại bỏ những dữ liệu không cần thiết. Bộ lọc có rất nhiều tên khác nhau: Kernel, Filter, Window Mask, Filter Mask.
Lớp tích chập (Conv Layer):
Mục tiêu của các lớp tích chập là trích chọn các đặc trưng của ảnh đầu vào.
Hình 4. 10. Ví dụ của Conv Layer
Ảnh đầu vào được cho qua một bộ lọc chạy dọc bức ảnh. Bộ lọc có kích thước là (3x3 hoặc 5x5) và áp dụng phép tích vô hướng để tính toán, cho ra một giá trị duy nhất. Đầu ra của phép tích chập là một tập các giá trị ảnh được gọi là mạng đặc trưng (features map).
ReLU Layer:
ReLU layer áp dụng các kích hoạt (Activation Function) max(0,x) lên đầu ra của Conv Layer, có tác dụng đưa các giá trị âm về thành 0. Layer này không thay đổi kích thước của ảnh và không có thêm bất kì tham số nào.
Mục đích của lớp ReLu là đưa ảnh một mức ngưỡng, ở đây là 0. Để loại bỏ các giá trị âm không cần thiết mà có thể sẽ ảnh hưởng cho việc tính toán ở các layer sau đó.
Pooling:
Tầng pooling (hay còn gọi subsampling hoặc downsample) là một trong những thành phần tính toán chính trong cấu trúc Convolutional Neural Networks. Xét về mặt toán học pooling thực chất là quá trình tính toán trên ma trận trong đó mục tiêu sau khi tính toán là giảm kích thước ma trận nhưng vẫn làm nổi bật lên được đặc trưng có trong ma trận đầu vào. Trong Convolutional Neural Networks toán tử pooling được thực hiện độc lập trên mỗi kênh màu của ma trận ảnh đầu vào.
o Max-Pooling: Là một dạng filter trả về giá trị lớn nhất của phần tử trong ma trận mà filter đang trượt qua.
Hình 4. 11. Max-pooling
o Average-Pooling: Là một dạng filter trả về giá trị trung bình của các phần tử trong ma trận mà filter đang trượt qua.
Hình 4. 12. Average-Pooling
Fully Connected:
Fully-connected là cách kết nối các neural ở hai tầng với nhau trong đó tầng
sau kết nối đẩy đủ với các neural ở tầng trước nó. Thường thì sau các lớp
thì sẽ là 2 lớp Fully connected, 1 layer để tập hợp các feature layer mà ta đã tìm ra, chuyển đổi dữ liệu từ 3D, hoặc 2D thành 1D, tức chỉ còn là 1 vector. Còn 1 layer nữa là output, số neuron của layer này phụ thuộc vào số output mà ta muốn tìm ra. Đây cũng là dạng kết nối thường thấy ở ANN, trong Convolutional Neural Networks tầng này thường được sử dụng ở các tầng phía cuối của kiến trúc mạng.