MỞ ĐẦU Phân loại dữ liệu một lớp (one-class classification) là một nhánh thuộc lớp bài toán phân loại (classification), học có giám sát. Ngày càng nhiều nghiên cứu về nhánh bài toán này vì khả năng áp dụng thực tiễn cao. Có nhiều cách tiếp cận và bài toán sinh ra từ lớp bài toán này. Các khảo sát mới đây đã cho một bức tranh tóm tắt các các nghiên cứu nổi bật về nhóm bài toán này như Hình 1.1: Các mốc nghiên cứu về one-class classification qua thời gian [1] Trên thực tế hiện nay, không nhiều bài toán có đủ dữ liệu cho toàn bộ các lớp.
Một số lĩnh vực đặc thù trong công nghiệp còn chỉ có dữ liệu cho sản phẩm hoàn thiện mà họ đã sản xuất ra, làm sao với các ảnh chụp mà cho biết được sự bất thường ở sản phẩm nào là điều rất khó khăn. Hướng nghiên cứu về one-class classification sẽ giải quyết được vấn đề này. One-class classification là bài toán mà dữ liệu yêu cầu ban đầu để huấn luyện mô hình chỉ cần tập trung vào 1 lớp. Ngày càng nhiều nghiên cứu về 2 nhánh bài toán phân loại dữ liệu một lớp thuộc lớp bài toán phân lớp này vì khả năng áp dụng thực tiễn cao.
Có nhiều cách tiếp cận và bài toán sinh ra từ lớp bài toán này. Trong những năm gần đây (từ 2017), các phương pháp dựa trên học sâu được quan tâm hơn hẳn. Học sâu đã cho thấy được kết quả rất ấn tượng và luôn dẫn đầu về độ chính xác cho các bài toán phân loại về xử lý hình ảnh và ngôn ngữ tự nhiên. Tuy nhiên, kết quả cho các bài toán one-class classification vẫn còn hạn chế.
Đã có nhiều nghiên cứu sử dụng học sâu để giải quyết lớp bài toán này và cho được các kết quả tiềm năng nhưng vẫn còn một số hạn chế cần cải thiện thêm. Hạn chế đầu tiên là độ chính xác chưa thực sự cao như các lớp bài toán đầy đủ nhãn và dữ liệu cho mỗi lớp. Hạn chế nữa là cũng như các tất cả mạng học sâu nói chung thì việc giải thích kết quả đưa ra từ học sâu là rất khó khăn. Giải thích được kết quả từ mô hình là rất cần thiết trong thực tế vì đảm bảo được tính an toàn, bảo mật và tối ưu hiệu năng.
Do vậy, phần luận văn sắp tới sẽ được định hướng nghiên cứu về áp dụng học sâu vào bài toán one-class classification thiên về hướng giải thích được kết quả. Bên cạnh đó, luận văn cũng sẽ ứng dụng giải thuật đã nghiên cứu vào một ứng dụng để chứng minh tính thực tiễn của nó. Đóng góp chính của luận văn có thể được liệt kê như sau: • Tổng hợp các phương pháp đã có cho bài toán phát hiện bất thường với dữ liệu một lớp đã và đang được áp dụng. • Đề xuất hướng xử lý có tính khả thi cao, hiệu quả đối với dạng bài toán này trong thực tế • So sánh với các phương pháp trước đây trên các tập dữ liệu chuẩn thực tế thì mô hình được đề xuất đều cho kết quả tốt hơn hẳn.
Hai tập dữ liệu nổi tiếng thực tiễn hiện tại đang được dùng để đánh giá bài toán này là MVTec AD [4] và BeanTech AD [5]. 3 Chương 2 GIỚI THIỆU 2.1 Tổng quan về bài toán Trong thời đại hiện nay, việc xử lý dữ liệu không chỉ đơn thuần là để làm báo cáo, trích lọc thông tin mà còn là các bài toán yêu cầu cao về hiện thực các bài toán về nhận dạng hình ảnh, âm thanh, phân loại thuộc tính, phát hiện bất thường, v. thay thế hoặc thậm chí cần tốt hơn con người. Đại đa số các thuật toán nói chung và thuận toán về phân loại nói riêng hiện tại cần một lượng lớn dữ liệu đã được gán nhãn sẵn.
Mục đích là để dạy cho các mô hình có thể học được các đặc trưng từ dữ liệu đó, để làm sao mà khi có dữ liệu mới vào thì nó sẽ phân loại đúng phân lớp mà ta cần. Bài toàn phân loại nhị phân (binary classification) được cho là miền nghiên cứu rộng rãi nhất của phân nhóm học mấy có giám sát, ít nhất là với việc ứng dụng của nó đối với các loại dữ liệu không phải là hình ảnh. Cho một ví dụ, trong các mô hình phát hiện thư rác hoặc độc hại, dữ liệu cho mỗi lớp được giới hạn ở mức khá, mỗi trường hợp cụ thể đều chắc chắn là một biến thể của thư điện tử. Tùy nhiên, một vấn đề thú vị được mở ra nếu ta cố gắng ứng dụng các kinh nghiệm có được này với phân loại hình ảnh.
Ta có thể có hàng nghìn, hàng triệu tấm hình về xe hơi mà ta muốn mô hình có thể nhận dạng được vị trí của chúng, nhưng nếu trường hợp tấm hình không có xe hơi thì sao? Không quá khó để ta nhân ra rằng là không gióng như dữ liệu về bài toán thư điện tử rác, số lượng trường hợp mà không chứa xe hơi là vô cùng lớn, gần như là vô 4 tận. Do vậy mà ta cần giải quyết bài toán là chỉ với những dữ liệu về xe hơi mà ta có, ta có thể huấn luyện mô hình để nó biết rằng dữ liệu đó đang có chứa xe hơi hay là không. Luôn nhớ điều kiện là ta chỉ có 1 lớp dữ liệu, cụ thể ở trường hợp này thì ta không có dữ liệu về những trường hợp không có xe hơi khác, nó là vô vàng trường hợp, chứa núi, rừng, sông biển, xe đạp, xe máy, máy bay, v. Thách thức này chúng ta sẽ cùng thảo luận cách xử lý trong bài nghiên cứu này.2 Học máy và bài toán phân loại dữ liệu Như chúng ta đã biết, Học Máy (Machine Learning) là một nhánh của lĩnh vực trí tuệ nhân tạo (AI) và khoa học dữ liệu.
Học Máy tập trung sử dụng dữ liệu và các giải thuật để bắt chước cách học của con người, làm sao để mà dần nâng cao độ chính xác của mô hình bằng hoặc thậm chí vượt hơn khả năng của con người. Học máy bao gồm 3 nhánh lớn: • Supervised learning (học có giám sát): ở nhánh này ta sẽ cần có dữ liệu đầu vào được đánh nhãn sẵn thuộc các lớp cụ thể. • Unsupervised learning (học không giám sát): khác với học có giám sát, nhánh này dữ liệu sẽ hoàn toàn không được gán nhãn, mô hình sẽ dùng thuật toán, tiêu chí phù hợp để cho ra kết quả đầu ra. • Semi-supervised learning (học bán giám sát): Cuối cùng, đây là nhánh ’lai’ giữa 2 nhánh bên trên, ta sẽ có bộ dữ liệu gồm cả đã gán nhãn và chưa gán nhãn, mà thông thường số lượng nhãn được gãn sẵn sẽ ít hơn.
Phân loại dữ liệu và hồi quy là hai nhánh con lớn của Supervised learning. Các giải thuật dùng trong phân loại dữ liệu được dùng để xác định lớp (class) mà các mẫu quan sát mới thuộc về trên cơ sở các đặc trưng đã biết từ tập huấn luyện. Trong phân loại dữ liệu, mô hình được học từ tập dữ liệu nhất định sau đó mới phân loại dữ liệu mới vào số lớp hoặc nhóm phù hợp. Chẳng hạn như bài toán đánh giá một email cụ thể có là spam hay không, ta có thể đánh số là 0 và 1 tương ứng cho là có spam và 5 không spam.
Không giống như hồi quy (đầu ra là một số thực), đầu ra của Phân loại dữ liệu là một lớp cụ thể (như 0 hoặc 1 ở ví dụ trước đó). Phân loại dữ liệu một lớp là một trường hợp khác của phân loại dữ liệu, lúc này mặc dù dữ liệu ta có được là toàn bộ đều được gán nhãn nhưng nó chỉ hoàn toàn thuộc về một lớp hoặc nhóm nào đó. Lấy ví dụ như phân loại bài toán có hay không vết dơ trên mặt bàn. Dữ liệu ta có được sẽ là toàn bộ hình ảnh là mặt bàn rất đẹp và được xác định là đều không có vết dơ nào cả.
Nhiệm vụ của chúng ta sẽ là giúp cho máy học biết được đây là hình ảnh của bàn bình thường, còn nếu chứa thêm vết nào lạ trên đó đều là có vết dơ cả. Các phương pháp phân loại dữ liệu truyền thống (như Decision Tree, SVM, KNN, v.) đều yêu cầu có dữ liệu ở cả bên mặt bàn bị dơ. Do đó cách tiếp cận trước đây là cố gắng thu thập, tạo thêm hình ảnh các mặt bàn bị dơ càng nhiều càng tốt. Tuy vậy thì độ chính xác khi kiểm thử trên dữ liệu mặt bàn bình thường mới và bị dơ mới thì cho độ chính xác không cao.
Lý do chính đến từ việc ta không thể thu thập, tạo được hết tất cả các dạng mặt bàn bị dơ, có rất nhiều khía cạnh làm dơ mặt bàn (có thể cả bị thủng, bị lỗi màu, v. Do vậy từ những năm 2017, phương pháp dựa trên học sâu (Deep Learning, Mạng nơ-ron nhân tạo) được nghiên cứu nhiều hơn về sự nỗi trội của các giải thuật này (tham khảo thêm Hình 1.3 Mục tiêu và phạm vi nghiên cứu Mục tiêu nghiên cứu Đề tài tập trung nghiên cứu ba phần chính là lớp bài toán one-class classification (phân loại một lớp), mạng học sâu và ứng dụng vào bài toán phát hiện bất thường. Đề tài này mang tính ứng dụng cao vì: • Dữ liệu thực tế không được gán nhãn đầy đủ các lớp và đa số chỉ có được dữ liệu nhãn bình thường, không có hoặc có rất ít dữ liệu cho nhóm bất thường. • Cho được kết quả đầu ra xác định được vị trí bất thường, đây cũng là điểm mới vì không phải giải thuật nào cũng cho được hình ảnh trực quan như vậy.
6 Giới hạn nghiên cứu Đề tài tập trung nghiên cứu lớp bài toán one-class classification, áp dụng các mạng học sâu có thể giải thích được kết quả vào các bài toán phát hiện bất thường trong lĩnh vực xử lý hình ảnh. Trong giai đoạn luận văn, đề tài sẽ điều chỉnh thử nghiệm với nhiều tham số khác nhau để đạt độ chính xác tốt nhất với bài toán phát hiện bất thường. Các số liệu được thu thập từ năm 2010 và các kĩ thuật được cải tiến từ 2021. Thực nghiệm Triển khai mô hình với sự hỗ trợ từ các thư viện Pytorch, TensorFlow, Pandas, v.
Các nghiên cứu và ứng dụng của đề tài này đều mới xuất hiện và nghiên cứu trong những năm gần đây cho thấy sự quan tâm, ý nghĩa và tính thực tiễn của đề tài rất cao.4 Các nền tảng Mạng nơ-ron nhân tạo Các thuật toán về mạng nơ-ron (neural networks) thường được biết đến là mạng nơ- ron nhân tạo (artificial neural networks - ANNs) hoặc các mạng nơ-ron được mô phỏng (similated neural networks - SNNs).