Cnn Là Gì

CNN (Convolutional Neural Network) là một trong những mô hình Deep Learning tiên tiến. Nó giúp cho chúng ta xây dựng các hệ thống thông minh với độ chính xác cao. CNN được sử dụng rộng rãi trong việc nhận dạng các object trong ảnh, cho phép nhận diện khuôn mặt người dùng, phát triển xe hơi tự lái hay drone giao hàng tự động.

Tìm hiểu Convolutional là gì?

Convolutional hay tích chập là một phép nhân từng phần tử trong một ma trận để tạo ra một ma trận mới, gọi là Convoled feature. Điều này giúp nhận dạng các đặc trưng chính trong ảnh. Một convolutional layer sử dụng các filter đã được học để lấy ra những thông tin chính xác nhất từ ảnh, không cần chọn các feature trước.

Cấu trúc mạng CNN

Mạng CNN được xây dựng từ các lớp Convolution và sử dụng các hàm non-linear activation như ReLU và tanh để kích hoạt các trọng số trong các node. Mỗi lớp sau khi thông qua các hàm kích hoạt sẽ tạo ra các thông tin trừu tượng hơn cho các lớp tiếp theo. Mạng CNN sử dụng các ý tưởng cơ bản như trường tiếp nhận cục bộ (local receptive field), trọng số chia sẻ (shared weights) và lớp tổng hợp (pooling) để tạo nên cấu trúc mạng.

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

Trong mạng CNN, chúng ta chỉ kết nối các neuron đầu vào trong một vùng nhỏ của các neuron đầu ra, gọi là trường tiếp nhận cục bộ. Việc này giúp chọn ra những vùng ảnh có giá trị nhất cho việc đánh giá phân lớp. Mỗi trường tiếp nhận cục bộ sẽ có một filter (kernel) tương ứng để học một trọng số và một neuron ẩn để học một bias.

Trọng số chia sẻ (shared weights and bias)

Trọng số của mỗi filter phải giống nhau trong một convolutional layer. Tất cả các neuron trong một lớp ẩn sẽ phát hiện chính xác feature tương tự chỉ ở các vị trí khác nhau trong ảnh đầu vào. Quan hệ giữa số lượng feature map với số lượng tham số giúp giảm tối đa số lượng tham số trong mạng CNN.

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

Lớp pooling thường được sử dụng ngay sau lớp convolutional để đơn giản hóa thông tin đầu ra và giảm số lượng neuron. Quy trình pooling phổ biến nhất là max-pooling, chọn giá trị lớn nhất trong vùng đầu vào 2×2. Việc này giúp giảm bớt sự phức tạp của mạng và tạo ra các feature map cung cấp thông tin trừu tượng hơn cho các lớp tiếp theo.

Đó là lý do tại sao CNNs cho ra mô hình với độ chính xác rất cao, giống như cách con người nhận biết các vật thể trong tự nhiên. Mạng CNN có thể được tối ưu bằng cách chọn số convolution layer, kích thước filter, kích thước pooling và thực hiện nhiều lần train test để chọn ra các tham số tốt nhất.

Hy vọng với bài viết này các bạn đã hiểu thêm về CNN – cách xây dựng mạng Neural Convolutional và ứng dụng của nó trong việc nhận dạng và phân lớp ảnh.