Thực hành máy học: Phân loại hình ảnh

Giới thiệu Mạng nơ-ron tích chập

Một bước đột phá trong việc xây dựng các mô hình để phân loại hình ảnh đi kèm với khám phá rằng một mạng nơron tích chập (CNN) có thể được dùng để trích xuất dần các đại diện cấp cao hơn và cao hơn của nội dung hình ảnh. Thay vì xử lý trước dữ liệu để lấy các tính năng như hoạ tiết và hình dạng, CNN chỉ lấy dữ liệu pixel thô của hình ảnh làm dữ liệu đầu vào và

Để bắt đầu, CNN sẽ nhận một bản đồ tính năng đầu vào: một ma trận 3 chiều trong đó kích thước của 2 chiều đầu tiên tương ứng với chiều dài và chiều rộng của hình ảnh tính bằng pixel. Kích thước thứ ba là 3 (tương ứng với 3 kênh của một hình ảnh màu: đỏ, xanh lá cây và xanh lam). CNN bao gồm một ngăn xếp các mô-đun, mỗi mô-đun thực hiện ba thao tác.

1. Tích chập

Chương trình tích luỹ trích xuất các ô của bản đồ tính năng đầu vào và áp dụng các bộ lọc để tính toán các tính năng mới, tạo bản đồ tính năng đầu ra hoặc tính năng tích hợp (có thể có kích thước và chiều sâu khác với bản đồ tính năng đầu vào). Chuyển đổi được xác định bởi hai tham số:

  • Kích thước của các ô được trích xuất (thường là 3x3 hoặc 5x5 pixel).
  • Chiều sâu của bản đồ tính năng đầu ra, tương ứng với số lượng bộ lọc được áp dụng.

Trong quá trình tích chập, các bộ lọc (có cùng kích thước với kích thước ô) thả hiệu quả trên lưới bản đồ tính năng đầu vào theo chiều ngang và chiều dọc, mỗi pixel một lần, trích xuất từng ô tương ứng (xem Hình 3).

Chuyển đổi 3x3 qua bản đồ tính năng 4x4Hình 3. Phép tích 3x3 của chiều sâu 1 được thực hiện trên bản đồ tính năng đầu vào 5x5, cũng có độ sâu 1. Có thể có chín vị trí 3x3 để trích xuất các ô từ bản đồ tính năng 5x5, vì vậy, tích chập này tạo ra một bản đồ tính năng đầu ra 3x3.

Đối với mỗi cặp ô xếp lọc, CNN sẽ thực hiện phép nhân theo phần tử của ma trận bộ lọc và ma trận ô, sau đó tính tất cả các phần tử của ma trận thu được để nhận một giá trị duy nhất. Sau đó, mỗi giá trị kết quả này cho mỗi cặp tilen của bộ lọc sẽ được xuất ra trong ma trận tính năng tích hợp (xem Hình 4a và 4b).

Bản đồ tính năng 5x5 và tích chập 3x3 Hình 4a. Trái: Bản đồ tính năng đầu vào 5x5 (độ sâu 1). Phải: tích chập 3x3 (độ sâu 1).

Hình 4b. Trái: Phép tích chập 3x3 được thực hiện trên bản đồ tính năng đầu vào 5x5. Phải: tính năng thu được. Nhấp vào một giá trị trong bản đồ tính năng đầu ra để xem cách tính.

Trong quá trình huấn luyện, CNN "learns" các giá trị tối ưu cho ma trận bộ lọc cho phép nó trích xuất các tính năng có ý nghĩa (kết cấu, cạnh, hình dạng) từ bản đồ tính năng nhập. Khi số lượng bộ lọc (chiều sâu bản đồ tính năng đầu ra) áp dụng cho đầu vào tăng lên, số lượng tính năng mà CNN có thể trích xuất cũng tăng lên. Tuy nhiên, sự đánh đổi là các bộ lọc sẽ soạn phần lớn tài nguyên mà CNN mở, vì vậy, thời gian huấn luyện cũng tăng lên khi thêm nhiều bộ lọc. Ngoài ra, mỗi bộ lọc được thêm vào mạng cung cấp ít giá trị gia tăng hơn so với bộ lọc trước đó, vì vậy các kỹ sư muốn xây dựng các mạng sử dụng số lượng bộ lọc tối thiểu cần thiết để trích xuất các tính năng cần thiết để phân loại hình ảnh chính xác.

2. RELU

Sau mỗi phép tích chập, CNN sẽ áp dụng phép biến đổi Đơn vị tuyến tính chỉnh sửa (ReLU) cho tính năng được tích chập để giới thiệu tính phi tuyến tính vào mô hình. Hàm ReLU, \(F(x)=max(0,x)\), trả về x cho tất cả giá trị của x > 0 và trả về 0 cho tất cả giá trị của x ≤ 0.

3. Tổng hợp

Sau khi ReLU thực hiện một bước gộp, trong đó CNN sẽ giảm tần số lấy mẫu tính năng được kết hợp (để tiết kiệm thời gian xử lý), giúp giảm số lượng kích thước của bản đồ tính năng, trong khi vẫn giữ nguyên thông tin tính năng quan trọng nhất. Một thuật toán phổ biến dùng cho quy trình này được gọi là áp dụng tối đa.

Tính năng gộp nhóm tối đa hoạt động theo cách tương tự như quá trình chuyển đổi. Chúng tôi trượt trên bản đồ tính năng và trích xuất các thẻ thông tin có kích thước cụ thể. Đối với mỗi ô, giá trị tối đa được xuất ra bản đồ tính năng mới và tất cả giá trị khác bị loại bỏ. Hoạt động gộp tối đa có hai thông số:

  • Kích thước của bộ lọc gộp tối đa (thường là 2x2 pixel)
  • Sọc: khoảng cách, tính bằng pixel, phân tách từng ô đã trích xuất. Không giống như tích chập, trong đó các bộ lọc trượt trên pixel bản đồ tính năng theo pixel, trong nhóm gộp tối đa, sải bước xác định vị trí mà mỗi thẻ thông tin được trích xuất. Đối với bộ lọc 2x2, bước 2 sẽ chỉ định rằng thao tác gộp tối đa sẽ trích xuất tất cả ô 2x2 không chồng chéo khỏi bản đồ tính năng (xem Hình 5).

Ảnh động của nhóm tối đa trên bản đồ tính năng 4x4 với bộ lọc 2x2 và sải chân là
2

Hình 5. Trái: Nhóm tối đa được thực hiện trên bản đồ tính năng 4x4 với bộ lọc 2x2 và sải chân là 2. Right (Phải): kết quả của thao tác gộp tối đa. Xin lưu ý rằng bản đồ tính năng thu được hiện có kích thước 2x2, chỉ giữ lại giá trị tối đa của mỗi ô.

Các lớp kết nối đầy đủ

Ở cuối mạng nơ-ron tích chập là một hoặc nhiều lớp được kết nối đầy đủ (khi hai lớp được &kết hợp;" mọi nút trong lớp đầu tiên được kết nối với mọi nút trong lớp thứ hai). Công việc của họ là tiến hành phân loại dựa trên các tính năng được trích xuất từ các lượt chuyển đổi. Thông thường, lớp cuối cùng được kết nối hoàn toàn chứa hàm kích hoạt mềm maxmax, sẽ tạo ra giá trị xác suất từ 0 đến 1 cho mỗi nhãn phân loại mà mô hình đang cố gắng dự đoán.

Hình 6 minh hoạ cấu trúc hai đầu của mạng nơron tích chập.

Sơ đồ hai đầu của mạng nơron tích chập, hiển thị đầu vào, hai mô-đun tích chập và hai lớp được kết nối hoàn toàn để phân loại

Hình 6. CNN hiển thị ở đây chứa hai mô-đun tích chập (chập + ReLU + pool) để trích xuất tính năng và hai lớp kết nối đầy đủ để phân loại. Các CNN khác có thể chứa số lượng lớn hơn hoặc nhỏ hơn các mô-đun tích chập và các lớp lớn hơn hoặc ít được kết nối hơn. Các kỹ sư thường thử nghiệm để tìm ra cấu hình tạo ra kết quả tốt nhất cho mô hình của họ.