Chương 1. Trong chương này, chúng tôi xin giới thiệu tổng quan về nội dung đề tài và ý nghĩa thực tiễn của bài toán, cũng như mục tiêu, phạm vi và cấu trúc của luận văn. Kiến thức nền tảng. Trong chương này, chúng tôi sẽ trình bày những kiến thức nền tảng được sử dụng để giải quyết bài toán, tập trung chủ yếu vào nội dung của học sâu và một số phương pháp học với ít dữ liệu.
Công trình nghiên cứu liên quan. Trong chương này, chúng tôi sẽ trình bày một số nghiên cứu liên quan của bài toán nhận dạng lỗi bề mặt sản phẩm trong công nghiệp. Phần này cũng bàn luận về phương pháp học biểu diễn sẽ được áp dụng vào mô hình đề xuất của luận văn. Phương pháp đề xuất.
Trong chương này, chúng tôi sẽ mô tả phương pháp và 2 mô-đun đề xuất giúp cải thiện biểu diễn đặc trưng với ít dữ liệu để xây dựng mô hình phân loại lỗi bề mặt hiệu quả. Trong chương này, chúng tôi mô tả các tập dữ liệu được thử nghiệm, phần hiện thực mô hình đã đề xuất và các kết quả thực nghiệm. Trong chương này, chúng tôi xin tổng kết các kết quả đã đạt được trong quá trình thực hiện luận văn. Phần này cũng trình bày những hạn chế và đề xuất các giải pháp cải tiến mô hình trong tương lai.
2 KIẾN THỨC NỀN TẢNG Trong chương này, chúng tôi sẽ trình bày những kiến thức nền tảng được sử dụng để giải quyết bài toán, tập trung chủ yếu vào nội dung của học sâu và một số phương pháp học với ít dữ liệu.1 Học sâu và đặc trưng sâu .2 Mạng nơ-ron tích chập (CNN – Convolutional Neural Networks) .3 Học chuyển tiếp (Transfer learning) .4 Kiến trúc mạng VGG19 và ResNet-50 .5 Phương pháp Few-Shot Learning và mô hình Siamese. 10 CHƯƠNG 2 KIẾN THỨC NỀN TẢNG 5 2.1 Học sâu và đặc trưng sâu Đặc trưng sâu là phản hồi nhất quán của một nút hoặc lớp trong mô hình phân cấp với đầu vào cung cấp phản hồi có liên quan đến đầu ra cuối cùng của mô hình. Một đặc trưng được coi là “sâu hơn” so với một đặc trưng khác tùy thuộc vào mức độ kích hoạt sớm trong cây quyết định hoặc các bộ phân loại khác. Trong mạng nơ-ron được thiết kế để phân loại hình ảnh, nó được đào tạo trên một tập hợp các hình ảnh tự nhiên và học các bộ lọc (đặc trưng), chẳng hạn như bộ phát hiện đường viền và cạnh hình ảnh từ các lớp trước đó.
Các lớp “sâu hơn” có thể phản hồi và tạo các bộ lọc đặc trưng của riêng mình cho các mẫu phức tạp hơn ở đầu vào, chẳng hạn như kết cấu, hình dạng hoặc biến thể của các đặc trưng được xử lý trước đó. Vì vậy, mặc dù một mạng được đào tạo thông thường có các nút lọc có thể xác định một đặc điểm cụ thể chẳng hạn như khuôn mặt, chúng sẽ không thể phân biệt được sự khác biệt giữa một khuôn mặt và bất kỳ vật thể tròn nào tương tự. Tuy nhiên, phản hồi từ một lớp sâu hơn trong hệ thống phân cấp của thuật toán đóng vai trò như một bộ lọc đặc trưng mà mô hình có thể sử dụng để không chỉ phân biệt khuôn mặt với các hình ảnh không phải khuôn mặt mà còn tạo bộ phân loại mới trong quá trình phân loại.2 Mạng nơ-ron tích chập (CNN – Convolutional Neural Net- works) Convolutional Neural Network (CNN) là một kiến trúc mạng nơ-ron có khả năng nhận ra và phân loại các đặc trưng của hình ảnh trong thị giác máy tính. Bản chất dữ liệu kiểu hình ảnh là những điểm gần nhau thường có liên hệ nhiều hơn so với những điểm xa hơn.
CNN rất phù hợp với dạng bài toán này. Nó là một mạng nơ-ron nhiều lớp được thiết kế để phân tích những đầu vào thị giác và thực hiện các tác vụ như phân lớp hình ảnh, phân loại và phát hiện vật thể. CNN được sử dụng cho các ứng dụng học sâu trong lĩnh vực chăm sóc sức khỏe, chẳng hạn như phân tích hình ảnh y tế. Có hai thành phần chính đối với một CNN: • Một công cụ tích chập để phân tách những đặc trưng của hình ảnh phân tích.
• Một lớp được kết nối đầy đủ sử dụng đầu ra của tầng tích chập để dự đoán những mô tả chính xác nhất của hình ảnh Kiến trúc mạng nơ-ron cơ bản: Kiến trúc mạng nơ-ron được lấy cảm ứng từ phương thức tổ chức và chức năng của vỏ não thị giác và được thiết kế để bắt chước mô hình kết nối của các tế bào thần kinh trong não người. Các tế bào thần kinh trong CNN được chia thành một cấu trúc ba CHƯƠNG 2 KIẾN THỨC NỀN TẢNG 6 chiều, với mỗi tập hợp nơ-ron phân tích một vùng nhỏ hoặc đặc trưng của hình ảnh. Nói cách khác, mỗi nhóm tế bào thần kinh chuyên nhận dạng một phần của bức ảnh. CNN sử dụng những dự đoán từ các tầng và cho ra kết quả cuối cùng biểu diễn một vectơ của những điểm xác suất để thể hiện khả năng mà một đặc trưng cụ thể thuộc về một lớp nhất định.
Một CNN bao gồm các tầng chính: • Tầng tích chập: tạo ra một bản đồ đặc trưng để dự đoán xác suất thuộc lớp cho từng đặc trưng bằng cách áp dụng một bộ lọc quét toàn bộ hình ảnh, một vài pixel cùng lúc. • Tầng gộp: điều chỉnh lượng thông tin mà tầng tích chập tạo ra cho từng đặc trưng và duy trì những thông tin quan trọng nhất (quá trình của tầng tích chập và tầng gộp thường lặp lại nhiều lần) • Tầng input được kết nối đầy đủ: làm phẳng các đầu ra được tạo ra ở những tầng trước để chuyển chúng thành một vectơ đơn để có thể sử dụng làm đầu vào cho tầng kế tiếp. • Tầng được kết nối đầy đủ: áo dụng các trọng số lên đầu vào được tạo ra bởi phân tích đặc trưng để dự đoán nhãn chính xác. • Tầng output được kết nối đầy đủ: tạo ra những giá trị xác suất cuối cùng để xác định nhãn cho hình ảnh.
Kiến trúc của CNN là yếu tố quyết định để xác định hiệu suất và tính hiệu quả của nó. Cách cấu trúc các tầng, những phần tử nào được sử dụng trong từng tầng và cách thiết kế chúng sẽ thường ảnh hưởng đến tốc độ và độ chính xác của mạng khi thực hiện các tác vụ. Một số kiến trúc CNN phổ biến: LeNet-5 (1988), AlexNet (2012), GoogleNet (2014), VGGNet (2014),.3 Học chuyển tiếp (Transfer learning) Một quan niệm sai lầm phổ biến trong học sâu là nếu không có lượng dữ liệu đủ lớn thì không thể tạo ra các mô hình học sâu hiệu quả. Mặc dù dữ liệu đóng vai trò quan trọng trong việc huấn luyện các mạng, nhưng ý tưởng về transfer learning đã làm giảm bớt nhu cầu về dữ liệu.1 cho thấy sự khác biệt giữa phương pháp học máy truyền thống và cách tiếp cận học sâu dựa vào transfer learning.
Transfer learning là việc ứng dụng kỹ năng/tri thức học được từ vấn đề này (source domain - Ds) với ứng dụng này (source task - Ts) sang vấn đề khác (target domain - Dt) với ứng dụng khác (target task - Tt) có liên quan. Transfer learning giúp cải thiện việc học hàm ft cho ứng dụng Tt trên miền Dt. Transfer learning là quá trình lấy một mô hình được huấn luyện trước pre-trained model (các trọng số và tham số của một mạng được huấn luyện trên một tập dữ liệu lớn) và tinh chỉnh CHƯƠNG 2 KIẾN THỨC NỀN TẢNG 7 Hình 2.1: So sánh giữa học máy truyền thống và transfer learning (fine-tuning) mô hình với tập dữ liệu nhỏ. Ý tưởng là pre-trained model sẽ hoạt động như một bộ trích xuất đặc trưng.
Thông thường, lớp cuối cùng của mạng bằng bộ phân lớp phù hợp (tùy thuộc vào số lớp của bài toán).4 Kiến trúc mạng VGG19 và ResNet-50 2.1 VGG19 Simonyan và Zisserman trong [1] của Đại học Oxford đã tạo ra CNN 19 tầng (16 tầng tích chập và 3 tầng được kết nối đầy đủ), sử dụng bộ lọc 3x3 với sải bước và đệm là 1, cùng với các tầng gộp tối đa với sải bước 2, được gọi là mô hình VGG19 (đặt theo tên nhóm Visual Geometry Group của Đại học Oxford). So với AlexNet, VGG19 là một mạng tích chập sâu hơn với nhiều tầng hơn. Để giảm số lượng thông số trong các mạng sâu, nó sử dụng những bộ lọc 3x3 trong tất cả các tầng tích chập và được sử dụng tốt nhất với tỷ lệ lỗi 7. Mô hình VGG19 là một trong những nghiên cứu có ảnh hưởng nhất vì nó củng cố quan điểm rằng CNN phải có một mạng các lớp sâu để thể hiện phân cấp của dữ liệu trực quan có thể hoạt động.
Sâu và đơn giản. Mô hình VGG19 với tổng cộng 138 triệu tham số được huấn luyện trên một tập con của cơ sở dữ liệu ImageNet. VGG19 được huấn luyện trên hơn một triệu hình ảnh với 1000 vật thể khác nhau, ví dụ bàn phím, chuột, bút chì và nhiều loài động vật. Kết quả là, mô hình đã học được một lượng biểu diễn đặc trưng phong phú cho nhiều loại hình ảnh.
Hàm ReLU được sử dụng làm hàm kích hoạt. Với x là biến độc lập, hàm có công thức như sau: 0x với x < 0 ReLU(x) = xx với x ≤ 0 = max (0, x) CHƯƠNG 2 KIẾN THỨC NỀN TẢNG 8 Hình 2.2: Biểu diễn kiến trúc mạng của VGG19 (conv = tích chập, FC = kết nối đầy đủ) So với các hàm kích hoạt khác (tanh và sigmoid), ReLU có những ưu điểm sau: Đối với các hàm tuyến tính, ReLU thể hiện rõ hơn, đặc biệt là trong các mạng học sâu; đối với các hàm phi tuyến, vì gradient của ReLU không thay đổi trong khoảng không âm nên không xảy ra vấn đề gradient biến mất, điều này giữ cho tốc độ hội tụ của mô hình ở trạng thái ổn định.2 ResNet-50 ResNet [2] là kiến trúc được sử dụng phổ biến nhất ở thời điểm hiện tại. ResNet cũng là kiến trúc sớm nhất áp dụng batch normalization. Mặc dù là một mạng rất sâu khi có số lượng layer lên tới 152 nhưng nhờ áp dụng những kỹ thuật đặc biệt kích thước của ResNet50 chỉ khoảng 26 triệu tham số.
Các kiến trúc trước đó thường tăng độ chính xác bằng cách tăng độ sâu của mạng CNN. Tuy nhiên, các thí nghiệm đã chỉ ra rằng, ở một số điểm, độ chính xác của mô hình sẽ bão hòa hoặc thậm chí giảm đi khi mô hình trở nên quá sâu. Để giải quyết vấn đề này, nhóm nghiên cứu của Microsoft đã áp dụng kết nối tắt trên ResNet, giúp mô hình duy trì hiệu suất tốt ngay cả khi có nhiều tầng.