Chương 1 trình bày kết quả nghiên cứu tổng quan về tình hình nghiên cứu. Chương 2 trình bày các đề xuất bộ dữ liệu ảnh đã được gắn nhãn về ảnh người cùng với các trạng thái đeo khẩu trang, lựa chọn mô hình, huấn luyện và đánh giá kết quả huấn luyện mô hình. Chương 3 trình bày ứng dụng mô hình để xây dựng phần mềm cảnh báo các trạng thái đeo khẩu trang của người. NGHIÊN CỨU TỔNG QUAN I.
Bài toán phân loại ảnh Bài toán phân loại ảnh là một bài toán trong lĩnh vực Computer Vision, trong đó mục tiêu là phân loại các ảnh vào các nhóm khác nhau dựa trên nội dung của chúng. Bài toán này yêu cầu mô hình có khả năng nhận diện và phân loại ảnh dựa trên các đặc trưng và thông tin được trích xuất từ ảnh, ví dụ như màu sắc, hình dạng, kích thước, vv. Tức là, Phân loại ảnh là gán nhãn cho một ảnh từ một bộ danh mục ảnh. Nghĩa là, phân tích một ảnh đầu vào và trả về một nhãn cho ảnh (Nhãn từ một tập các danh mục được xác định trước).
Các giai đoạn phân loại ảnh bằng kỹ thuật ML/DL Để giải quyết bài toán này, có thể sử dụng các kỹ thuật và công cụ như: - Mạng neural: Các mô hình mạng neural đa lớp (như Convolutional Neural Network - CNN) là công cụ phổ biến trong việc giải quyết bài toán phân loại ảnh. Các mạng neural này được huấn luyện trên các tập dữ liệu lớn để học các đặc trưng của ảnh và sử dụng chúng để phân loại các ảnh mới. - Feature extraction: Kỹ thuật trích xuất đặc trưng có thể được sử dụng để trích xuất các đặc trưng từ các ảnh và sử dụng chúng để huấn luyện các mô hình phân loại khác nhau, chẳng hạn như k-means hoặc SVM. - Transfer learning: Kỹ thuật này sử dụng các mô hình đã được huấn luyện trên các tập dữ liệu khác và sử dụng chúng để giải quyết các bài toán phân loại ảnh khác.
Chẳng 7 hạn như sử dụng các mô hình đã được huấn luyện trên ImageNet để giải quyết các bài toán phân loại ảnh khác. - Augmentation: Kỹ thuật tăng cường dữ liệu (data augmentation) là cách tạo ra thêm các dữ liệu mới từ các dữ liệu đã có bằng cách thay đổi một số thuộc tính như độ sáng, tăng giảm kích thước, xoay, lật ảnh, vv. Từ đó, tăng độ đa dạng cho các ảnh trong tập huấn luyện, giúp mô hình có khả năng khái quát hóa tốt hơn trên các ảnh mới. - Kỹ thuật ensemble: sử dụng để kết hợp các mô hình dự đoán khác nhau để đạt được kết quả tốt hơn so với việc sử dụng một mô hình duy nhất.
Kỹ thuật ensemble thường được sử dụng trong các bài toán phức tạp, mà một mô hình duy nhất không thể đạt được kết quả tốt nhất. Có nhiều cách để áp dụng kỹ thuật ensemble, nhưng phương pháp phổ biến nhất là kết hợp các dự đoán của các mô hình con bằng cách tính trung bình hoặc trọng số trung bình của các dự đoán đó. Trong kỹ thuật này, mỗi mô hình con được huấn luyện trên một tập dữ liệu con khác nhau, hoặc sử dụng các kỹ thuật khác nhau để huấn luyện. Phân loại ảnh bằng kỹ thuật Deep Learning 2.
Khái niệm về Deep Learning Deep Learning (học sâu) có thể xem là một lĩnh vực con của Machine Learning (học máy). Trong đó, các chương trình máy tính sẽ học và cải thiện chính nó thông qua các thuật toán. Deep Learning được xây dựng dựa trên các nơ-ron nhân tạo để bắt chước khả năng tư duy và suy nghĩ của bộ não con người. Mạng nơ-ron nhân tạo trong Deep Learning được xây dựng để mô phỏng khả năng tư duy của bộ não con người.
Một mạng nơ-ron bao gồm nhiều lớp (layer) khác nhau, số lượng layer càng nhiều thì mạng sẽ càng “sâu”. Trong mỗi layer là các nút mạng (node) và được liên kết với những lớp liền kề khác. Mỗi kết nối giữa các node sẽ có một trọng số tương ứng, trọng số càng cao thì ảnh hưởng của kết nối này đến mạng nơ-ron càng lớn. Mỗi nơ-ron sẽ có một hàm kích hoạt có nhiệm vụ “chuẩn hoá” đầu ra từ nơ-ron này.
Dữ liệu đưa vào mạng nơ-ron sẽ đi qua tất cả layer và trả về kết quả ở layer cuối cùng, gọi là output layer. Trong quá trình huấn luyện mô hình mạng nơ-ron, các trọng số sẽ được thay đổi và nhiệm vụ của mô hình là tìm ra bộ giá trị của trọng số sao cho phán đoán là tốt nhất. Các hệ thống Deep Learning yêu cầu phần cứng phải rất mạnh để có thể xử lý được lượng dữ liệu lớn và thực hiện các phép tính phức tạp. Mạng nơ ron tích chập (CNN) 2.
Nơ ron sinh học Neural Network sinh học: gồm các Neuron được kết nối với nhau thông qua dendrites và neuron. Bộ não của người có khoảng 10 tỷ neuron, mỗi Neuron kết nối với khoảng 8 10. Trong đó, Cell body của Neuron gọi là soma, các đầu vào dendrite và đầu ra axon để kết các soma. Các Neuron nhận xung điện từ nơron khác thông qua dendrite và nếu xung điện đủ mạnh nó sẽ truyền đến các Neuron khác, mục đích là để truyền “bản tin” Hình 2.
Minh họa 01 Nơ ron sinh học Hình 3. Minh họa mạng Nơ ron nhân tạo 2.2 Nơ ron nhân tạo Một Nơ ron nhân tạo có cấu trúc như sau - Đầu vào X: x1, x2,…,xm và 1 gọi là bias. Và, gọi là vector đặc trưng X - Trọng số tương ứng: w1, w2,…, wm và w0 và gọi là vec tơ trọng số W - Mỗi một vec tơ X kết nối với Neuron được kết hợp với vector W - Đầu ra là hàm tổng của tích các trọng số và đầu vào tương ứng rồi áp một hàm kích hoạt 9 Mỗi Neuron nhân tạo gọi là Perceptron. Perceptron được dùng xây dựng: Các mạng Nơ ron nhân tạo và dùng để xây dựng c khối (block) của Machine Learning, Deep Learning 1 𝒘 0 𝒙 1 𝒘 1 𝒚 𝒙 𝒘 2 2 𝒘 𝒙 m m Inputs Weights Sum Non-Linearity Output Hình 4.
Cấu trúc của một Nơ ron nhân tạo Trong đó, hàm kích hoạt có nhiệm vụ: - Tác dụng của hàm kích hoạt: Tạo ra tính phi tuyến trong mạng - Tính phi tuyến cho phép tính gần đúng các hàm phức tạp Hàm kích hoạt (Non-Linear) 𝑚 𝒚 = 𝑔(𝑤 + 𝑖=1 𝑥𝑖𝑤𝑖 ) 0 Output Bia (Dự đoán) s 2.3 Cấu trúc của của mạng CNN - Chức năng của mạng neural tích chập (CNN) là trích chọn các đặc trưng của ảnh. Thông thường gồm các layer sau: + Convolutional layer (CONV) + Activation Layer (sử dụng các hàm kích hoạt) + Pooling Layer (POOL) + Fully Connected Layer (FC) + Batch Normalization Layer (BN) + Dropout Layer (DO) 10 - Tùy theo từng bài toán có các model khác nhau và sử dụng các layer khác nhau. - Ký hiệu lưu đồ mạng CNN bằng dạng Text + Ví dụ 1: INPUT CONV RELU FC + Ví dụ 2: INPUT CONV RELU POOL CONV RELU POOL FC Hình 5. Cấu tạo của mạng CNN a) Lớp tích chập: - Chức năng của lớp tích chập: Tạo ra bản đồ kích hoạt/đặc trưng (feature map/ activation map) để làm đầu vào cho các lớp sau.
Sử dụng mặc nạ thường gọi kernel, fifter, mask là ma trận kích thước: 3 x 3, 4 x 4, … Mặc nạ di chuyển trên ảnh và thao tác tích chập (nhân các pixel của ảnh và phần tử mặc nạ cùng vị trí rồi lấy tổng). Quá trình trên lặp lại đối với mỗi điểm ảnh trong ảnh gốc. Ảnh đầu ra có cùng kích thước với ảnh đầu vào - Nếu quá trình di chuyển “nhảy cóc” một giá trị s nào đó thì ảnh đầu ra có kích thước giảm so với ảnh đầu vào và gọi là stride = s. Ở các lề của ảnh thiếu các pixel để tạo nên lân cận nên thêm p pixel ở lề và gọi là Padding = p.
Nếu gọi p số pixel thêm vào lề, s là giá trị Stride, m x n là kích thước ảnh đầu vào, k x k là kích thước mặc nạ thì kích thước ảnh sau khi tích chập là: b) Lớp kích hoạt - Sau mỗi lớp CONV, áp dụng hàm kích hoạt: ReLU, ELU, Leaky ReLU, Tanh, sigmoid…Hàm kích hoạt (Activation Function) thực hiện ngay sau khi tích chập. Kích thước dữ liệu đầu ra của Activation layer có cùng kích thước dữ liệu đầu vào. Mục đích tăng tính phi tuyến của mạng - Các hàm kích hoạt thông dụng: 11 + Hàm kích hoạt đơn giản nhất là hàm Step: + Hàm ReLU: + Leak ReLU: + Tanh: + Sigmoid: 12 c) Lớp Pooling - Pooling layer thường được dùng giữa các convolutional layer, để giảm kích thước dữ liệu (downsampling) nhưng vẫn giữ được các thuộc tính quan trọng. Thực hiện: - Gọi pooling layer kích thước K x K; Đầu vào pooling layer có kích thước H x W xD - Tách ra làm D ma trận kích thước H x W.
Vì thế, với mỗi ma trận sử dụng mặc nạ kích thước K x K để tìm maximum hoặc average của dữ liệu trong vùng nó đang được áp dụng. Nên, đầu ra có D ma trận kích thước K x K d) Lớp kết nối đầy đủ - Đầu ra Pooling layer có D ma trận kích thước K x K. Dữ liệu này được làm phẳng thành vector có kích thước D x K x K và trở thành đầu vào Full Conected Layer. Mỗi phần tử của vector sẽ là đầu vào được kết nối với tất cả neuron của Full Conected Layer - Trong mô hình mạng CNN, các Full Connected Layer thường ở cuối mạng và được dùng để tối ưu hóa mục tiêu của mạng Hình 6.
Cấu trúc lớp kết nối đầy đủ - Đầu ra của Full Connected Layer được áp dụng các hàm Sigmod hoặc Softmax để dự đoán nhãn của ảnh đầu vào Sigmod() 𝒚 Softmax() 2.4 Một số thuật ngữ đối với mạng CNN 13 - Epoch: một công đoạn hoàn tất việc đưa toàn bộ dữ liệu để training - Mini - batch: Khi dữ liệu quá lớn, không thể đưa hết tất cả tập dữ liệu vào để huấn luyện được, thường phải chia nhỏ tập dữ liệu ra thành các nhóm dữ liệu có kích thước nhỏ hơn và gọi là Mini-Batch - Batch Normalization: Được sử dụng để chuẩn hóa các kích hoạt đầu vào trước khi chuyển vào lớp tiếp theo trong mạng. Tác dụng, giảm số lượng epoch để trainning và ổn định khi thực hiện nhiều lần quá trình training. - Underfitting: + Một thuật toán được cho là Underfitting khi nó không thể nắm bắt được xu hướng cơ bản của dữ liệu, nghĩa là mô hình không đủ “phù hợp” với dữ liệu.