2 Cơ sở lý thuyết
2.2 Convolutional Neural Network (CNN)
2.2.2 Định nghĩa Convolutional Neural Network (CNN)
Convolutional Neural Network là một dạng cấu trúc mới của mạng neuron nhân tạo trong việc xử lý thị giác máy tính. Một mạng ANN thông thường không thể thể hiện các dữ liệu thuộc dạng hình ảnh. Chính sự liên kết quá đầy đủ (fully-connected) đã tạo nên những hạn chế trên. Dữ liệu hình ảnh có kích thước khá lớn, một tấm ảnh xám có kích thước 32x32 pixel sẽ cho ra vector đặc trưng có 1024 chiều, còn đối với ảnh màu cùng kích thước thì có 1024x3 chiều. Điều này có thể hiểu sẽ cần tới 3072 trọng số cho một neuron cho một lớp ẩn (Hidden Layer) kế tiếp. Số trọng số sẽ còn nhân gấp nhiều lần hơn nữa nếu số lượng neuron trong lớp ẩn tăng lên.
2.2. Convolutional Neural Network (CNN)
Mà như thế là quá nhiều so với mô hình chỉ nhận dạng kích thước 32x32 pixel, còn đối với ảnh có kích thước lớn hơn thì cần phải tiêu tốn nhiều thời gian và tài nguyên để lưu trữ và xử lý dữ liệu.
Một vấn đề khác nữa là việc liên kết đầy đủ (fully-connected) tất cả các điểm ảnh vào 1 neuron là dư thừa, vì điểm ảnh chỉ có quan hệ phụ thuộc vào những điểm ảnh gần nó. Vì thế Convolutional Neural Network ra đời nhằm giải quyết các vấn đề trên. Thay vì tất cả các điểm ảnh nối với một neuron thì chỉ có một phần cục bộ điểm ảnh trong ảnh được kết nối. Khi đó mô hình sẽ học được đặc trưng điểm ảnh để phân loại hiệu quả hơn.
Hình 2.10: Minh họa kiến trúc của một CNN
Không chỉ tốt trong các bài toán thị giác, Convolutional Neural Network còn thích hợp cho việc xử lý ngôn ngữ tự nhiên khi kết hợp chuyển đổi dữ liệu hình ảnh sang dạng văn bản, sau đó xét các mối quan hệ để chỉnh sửa văn bản sao cho phù hợp nhất.