Chương 2 : CƠ SỞ LÝ THUYẾT
2.5. Mạng nơ ron tích chập Convolutional Neural Network
2.5.1. Khái niệm
Mạng nơ ron tích chập là một trong những mạng truyền thẳng đặc biệt. Mạng nơ ron tích chập là một mơ hình học sâu phổ biến và tiên tiến nhất hiện nay. Hầu hết các hệ thống nhận diện và xử lý ảnh hiện nay đều sử dụng mạng nơ ron tích chập vì tốc độ xử lý nhanh và độ chính xác cao. Trong mạng nơ ron truyền thống, các tầng được coi là một chiều, thì trong mạng nơ ron tích chập, các tầng được coi là 3 chiều, gồm: Chiều cao, chiều rộng và chiều sâu. Mạng nơ ron tích chập có hai khái niệm quan trọng: Kết nối cục bộ và chia sẻ tham số. Những khái niệm này góp phần giảm số lượng trọng số cần được huấn luyện, do đó tăng nhanh được tốc độ tính tốn.[1]
2.5.2. Mơ hình mạng nơ rơn tích chập
Có ba tầng chính để xây dựng kiến trúc cho một mạng nơ ron tích chập: Tầng tích chập (Convolulion Layer) ; tầng gộp (Pooling Layer); tầng được kết nối đầy đủ (Fully- connected Layer). Ở các mạng nơ ron tích chập, tầng kết nối đầy đủ giống như các mạng nơ ron thơng thường, và tầng chập thực hiện tích chập nhiều lần trên tầng trước. Tầng gộp có thể làm giảm kích thước mẫu trên từng khối 2x2 của tầng trước đó. Các lớp này liên kết với nhau theo một thứ tự nhất định. Thông thường, một ảnh sẽ được lan truyền qua tầng tích chập, sau đó ma trận tính tốn được sẽ lan truyền qua tầng gộp, bộ đơi tầng tích chập và tầng gộp có thể được lặp lại nhiều lần trong mạng. Và cuối cùng được lan truyền qua tầng kết nối đầy đủ để tính xác xuất ảnh đó chứa vật thể gì.[1]
35
Hình 2.17. Kiến trúc mạng CNN 2.5.3. Tầng tích chập (Convolutional layer)
Tầng tích chập (Convolutional Layer) là lớp quan trọng nhất cũng là lớp đầu tiên của mơ hình mạng CNN. Tầng này có chức năng chính là trích xuất các đặc trưng có tính khơng gian hiệu quả của ảnh bao gồm góc cạnh, màu sắc hoặc đặc trưng phức tạp hơn như kết cấu của ảnh. Trong tầng này có 4 đối tượng chính là: ma trận đầu vào, bộ Filters (ma trận tích chập), và Receptive Field (ma trận tương ứng ) , Feature Map.
36 Tầng tích chập này nhận đầu vào là một ma trận ba chiều và một bộ Filters. Bộ Filters này sẽ trượt qua từng vị trí trên bức ảnh để tính tích chập giữa bộ Filter và phần tương ứng trên bức ảnh. Phần tương ứng này trên bức ảnh gọi là Receptive Field, tức là vùng mà một nơ ron có thể nhìn thấy để đưa ra quyết định, và ma trận cho ra bởi quá trình này được gọi là Feature Map.
Vì bộ Filter qt qua tồn bộ bức ảnh, nên những đặc trưng này có thể nằm ở vị trí bất kì trong bức ảnh, cho dù ảnh bị xốy trái/phải thì những đặc trưng này vẫn bị phát hiện. Kích thước Filter của tầng tích hầu hết đều là số lẻ, ví dụ như 3x3 , 5x5 hoặc 7x7 . Với kích thước Filter lẻ, các giá trị của Feature Map sẽ xác định một tâm điểm ở tầng phía trước.[1]
Hình 2.19. Tích chập ma trận 2.5.4. Tầng gộp
Tuy đã sử dụng các mạng được kết nối cục bộ và chia sẻ tham số, tuy nhiên số lượng tham số trong mạng nơ ron vẫn là quá lớn. So với một tập dữ liệu tương đối nhỏ, nó có thể gây ra tình trạng quá khớp. Vì vậy, mạng nơ ron nhân tạo thường chèn các tầng gộp vào mạng. Tầng gộp (Pooling Layer) sẽ giảm kích cỡ của hình ảnh ngay sau khi thực hiện tích chập, giúp giữ lại các đặc điểm, tính chất nổi bật nhất của ảnh. Điều này cho phép cải thiện thời gian tính tốn trong mạng nơ ron, đồng thời khơng làm mất đi các đặc điểm quan trọng của ảnh.
37 Tầng gộp áp dụng lấy mẫu xuống cho tầng trước bằng cách sử dụng hàm max. Tầng gộp hoạt động độc lập trên mỗi tầng trước đó. Ngồi ra, có thể đặt lượng pixel khi YOLO di chuyển cửa sổ trượt hoặc bước nhảy, như làm với tầng tích chập.
Hình 2.20. Tầng gộp
Ở hình 2.15, kích thước cửa sổ trượt là 2x2 và bước nhảy mỗi lần trượt là 2. Tại mỗi cửa sổ, hàm max (tìm giá trị lớn nhất) sẽ lấy giá trị tối đa để đại diện cho giá trị của tầng tiếp theo. Các mạng nơ ron thường sử dụng kích thước cửa sổ cùng kích thước bước nhảy trong gộp chung và sử dụng kích thước cửa sổ cùng kích thước bước nhảy là 2 trong gộp nhóm, vì nếu tăng kích cỡ cửa sổ sẽ rất dễ làm mất các đặc tính của dữ liệu. Ngồi việc gộp sử dụng hàm max, người ta có thể sử dụng các hàm khác. Ví dụ người ta có thể sử dụng hàm tính trung bình của cửa sổ trượt để tính tốn giá trị cho tầng tiếp theo, được gọi là gộp trung bình.[1]
2.5.5. Tầng kết nối đầy đủ
Tầng thứ ba là tầng kết nối đầy đủ. Tầng này giống như mạng nơ ron truyền thống: các nơ ron ở tầng trước sẽ kết nối với một nơ ron ở tầng tiếp theo và tầng cuối cùng là đầu ra. Để có thể đưa hình ảnh từ những tầng trước vào, dữ liệu phải dàn phẳng ra thành một véc tơ nhiều chiều. Cuối cùng là sử dụng hàm Softmax để thực hiện phân loại đối tượng.
38
Hình 2.21. Tầng kết nối đầy đủ 2.5.6. Vấn đề đầu vào của mạng
Với cấu trúc mạng nơ ron tích chập chặt chẽ thì u cầu đầu vào mạng cũng phải phù hợp với cấu hình mạng. Mạng nơ ron tích chập có rất nhiều cấu hình mạng nhưng số lượng cấu hình mạng mơ hình YOLO lại bị giới hạn. Hiện tại, YOLO đang hỗ trợ hai đầu vào chính là 416x416 và 608x608. Mỗi một đầu vào sẽ có một thiết kế các tầng riêng biệt phù hợp với cấu hình đầu vào. Vì thế các bức ảnh trước khi đi vào mơ hình sẽ được qua bước tiền xử lý để chỉnh sửa độ tương phản, đưa tỷ lệ của bức ảnh hiện tại về tỷ lệ phù hợp với cấu hình mạng.