Luận văn này nghiên cứu việc áp dụng phương pháp Support Vector Machine để phát hiện bất thường cho chuỗi dữ liệu thời gian, mà cụ thể là phương pháp SVM một lớp.. Nhìn chung, các phương
Trang 1LUẬN VĂN THẠC SĨ
PHÁT HIỆN BẤT THƯỜNG DỮ LIỆU CHUỖI THỜI GIAN SỬ DỤNG SUPPORT VECTOR MACHINE
Chuyên ngành: Khoa học máy tính
VÕ ĐÌNH QUANG
TP HỒ CHÍ MINH, tháng 1 năm 2011
Trang 2Cán bộ hướng dẫn khoa học: T.S Quản Thành Thơ
Cán bộ chấm nhận xét 1: TS Phạm Văn Chung
Cán bộ chấm nhận xét 2: PGS TS Dương Tuấn Anh
Luận văn thạc sĩ được bảo vệ tại Trường Đại học Bách Khoa, ĐHQG Tp HCM ngày 27 tháng 01 năm 2011 Thành phần Hội đồng đánh giá luận văn thạc sĩ gồm: 1 PGS TS Đỗ Phúc
2 TS Bùi Hoàng Thắng
3 TS Quản Thành Thơ
4 PGS TS Dương Tuấn Anh
5 TS Phạm Văn Chung
Xác nhận của Chủ tịch Hội đồng đánh giá LV và Bộ môn quản lý chuyên ngành sau khi luận văn đã được sữa chữa (nếu có)
Chủ tịch Hội đồng đánh giá LV Bộ môn quản lý chuyên ngành
Trang 3TRƯỜNG ĐH BÁCH KHOA TP HCM CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM PHÒNG ĐÀO TẠO SĐH Độc lập – Tự do – Hạnh phúc
Tp HCM ngày 27 tháng 01 năm 2011
NHIỆM VỤ LUẬN VĂN THẠC SĨ
Họ tên học viên: Võ Đình Quang Phái: Nam Ngày, tháng, năm sinh: 29/03/1984 Nơi sinh: Nghệ An Chuyên ngành: Khoa học máy tính MSHV: 00708207
I- TÊN ĐỀ TÀI:
PHÁT HIỆN BẤT THƯỜNG DỮ LIỆU CHUỖI THỜI GIAN SỬ DỤNG SUPPORT VECTOR MACHINE
II- NHIỆM VỤ VÀ NỘI DUNG:
- Tìm hiểu phương pháp phát hiện bất thường cho dữ liệu chuỗi thời gian của các
tác giả J Ma và S.Perkins
- Nghiên cứu đề nghị phương pháp cải tiến cho phương pháp phát hiện bất
thường của J Ma và S Perkins
III- NGÀY GIAO NHIỆM VỤ: 25/01/2010
IV- NGÀY HOÀN THÀNH NHIỆM VỤ: 02/12/2010
V- CÁN BỘ HƯỚNG DẪN:
TS Quản Thành Thơ
QL CHUYÊN NGÀNH
Trang 4LỜI CAM ĐOAN
Tôi cam đoan rằng, ngoại trừ các kết quả tham khảo từ các công trình nghiên cứu khác như đã ghi rõ trong luận văn, các công việc trình bày trong luận văn này là do chính tôi thực hiện và chưa có phần nội dung của luận văn này được nộp để lấy một bằng cấp ở trường này hoặc trường khác
Ngày 01 tháng 12 năm 2010
Võ Đình Quang
Trang 5LỜI CẢM ƠN
Tôi xin gửi lời cảm ơn chân thành và sâu sắc nhất đến TS Quản Thành Thơ, người thầy đã tận tình hướng dẫn và tạo mọi điều kiện để tôi có thể hoàn thành tốt luận văn này
Tôi xin cảm ơn gia đình đã động viên và tạo mọi điều kiện tốt nhất có thể để tôi tiếp tục theo đuổi việc học tập nghiên cứu Tôi trân trọng dành tặng những thành quả này cho cha, mẹ Nhờ công lao dưỡng dục của cha, mẹ mà con mới có được thành quả của ngày hôm nay
Trang 6TÓM TẮT LUẬN VĂN
Phát hiện bất thường cho dữ liệu chuỗi thời gian là một ứng dụng có tính thực tế cao Phát hiện bất thường cho dữ liệu chuỗi thời gian sử dụng Support Vector Machine (SVM) là một phương pháp có tốc độ phát hiện nhanh
Luận văn này nghiên cứu việc áp dụng phương pháp Support Vector Machine để phát hiện bất thường cho chuỗi dữ liệu thời gian, mà cụ thể là phương pháp SVM một lớp Luận văn nghiên cứu nhằm cải tiến phương pháp phát hiện bất thường của
J Ma và S Perkins bằng việc áp dụng phương pháp thu giảm số chiều APCA, và tìm kiếm tham số tốt nhất trong tập tham số của phương pháp SVM một lớp Nghiên cứu thực nghiệm cho thấy việc áp dụng phương pháp thu giảm số chiều APCA không đạt hiệu quả tốt trên nhiều tập dữ liệu, và việc tìm kiếm tham số đòi hỏi lựa chọn tập dữ liệu huấn luyện cẩn thận thì kết quả phân loại mới đạt hiệu quả tốt
Trang 7MỤC LỤC
CHƯƠNG 1 GIỚI THIỆU ĐỀ TÀI 1
1.1 Dữ liệu chuỗi thời gian 1
1.2 Phát hiện bất thường cho dữ liệu chuỗi thời gian 1
1.3 Nội dung và giới hạn đề tài 4
1.4 Tóm tắt kết quả đã đạt được 4
1.5 Cấu trúc của luận văn 5
CHƯƠNG 2 NHỮNG CÔNG TRÌNH LIÊN QUAN 6
2.1 Phát hiện bất thường với Support Vector Machine một lớp 6
2.1.1 Phương pháp Support Vector Machine một lớp 6
2.1.2 Phát hiện bất thường với SVM một lớp 6
2.2 Phát hiện bất thường dữ liệu chuỗi thời gian với SVM một lớp 6
2.3 Rời rạc hóa và biểu diễn dữ liệu chuỗi thời gian 7
2.3.1 Phương pháp biến đối Furier rời rạc (DFT) 8
2.3.2 Phương pháp biến đổi Wavelet rời rạc (DWT) 8
2.3.3 Phương pháp phân rã giá trị riêng (SVD) 9
2.3.4 Phương pháp xấp xỉ gộp từng đoạn (PAA) 10
2.3.5 Phương pháp xấp xỉ từng đoạn thích nghi (APCA) 10
2.3.6 Phương pháp xấp xỉ tuyến tính từng đoạn (PLA) 11
2.3.7 Phương pháp xấp xỉ gộp kí hiệu hóa (SAX) 12
2.3.8 Phương pháp cây hậu tố (Suffix Tree) 12
2.3.9 Phương pháp vector lượng tử (VQ) 13
2.4 Kết luận 13
CHƯƠNG 3 CƠ SỞ LÝ THUYẾT NỀN TẢNG 14
3.1 Biểu diễn dữ liệu chuỗi thời gian 14
3.2 Phát hiện bất thường dữ liệu chuỗi thời gian với SVM một lớp 14
3.2.1 Vector hóa dữ liệu chuỗi thời gian 15
Trang 83.2.2 Phương pháp SVM một lớp 16
3.2.3 Phát hiện bất thường 18
3.2.4 Lựa chọn tham số 20
CHƯƠNG 4 HỆ THỐNG PHÁT HIỆN BẤT THƯỜNG 22
4.1 Giới thiệu 22
4.2 Quy trình thực hiện 22
4.3 Lựa chọn tham số 24
4.4 Thu giảm số chiều dữ liệu 25
4.5 Vector hóa dữ liệu 27
4.6 Phát hiện bất thường 27
CHƯƠNG 5 THỰC NGHIỆM 29
5.1 Các tiêu chuẩn thực nghiệm 29
5.2 Đánh giá kết quả thực nghiệm 29
5.2.1 Áp dụng phương pháp APCA vào phát hiện bất thường 30
5.2.2 Áp dụng phương pháp chiếu dữ liệu 32
5.2.3 Lựa chọn tham số 34
5.3 Kết luận 36
CHƯƠNG 6 KẾT LUẬN 37
6.1 Tổng kết 37
6.2 Những đóng góp của luận văn 37
6.3 Hướng phát triển 38
Trang 9chiếu với kích thước nhúng E=3 16
Hình 3.2: Áp dụng phương pháp SVM một lớp trong thực tế 16 Hình 4.1: Quy trình thực hiện của hệ thống 23
Trang 10DANH SÁCH CÁC BẢNG
Bảng 5.1.Bảng so sánh độ chính xác (R) và thời gian (T) theo giây giữa
phương pháp không sử dụng APCA và sử dụng APCA ở kích
thước thu giảm còn lại là 800, 400 31
Bảng 5.2.Bảng so sánh độ chính xác(R) và thời gian (T) theo giây khi sử
dụng chiếu và không sử dụng chiếu lên không gian con vuông góc
với đường chéo đơn vị 33
Bảng 5.3.Bảng so sánh độ chính xác (R) của phương pháp phát hiện bất
thường với các tham số thu được từ 2 phương pháp lựa chọn tham
số 35
Trang 11CHƯƠNG 1 GIỚI THIỆU ĐỀ TÀI
1.1 Dữ liệu chuỗi thời gian
Dữ liệu chuỗi thời gian xuất hiện trong nhiều ứng dụng, các công trình nghiên cứu,
và ngày càng được quan tâm hơn
Dữ liệu chuỗi thời gian là tập hợp các quan sát tuần tự theo thời gian Dữ liệu có thể
có hai hay nhiều chiều, và có một chiều là chiều thời gian Trong thực tế, có rất nhiều dữ liệu có yếu tố thời gian như dữ liệu chứng khoán, điện tâm đồ, mức độ rung động của cầu, … Dữ liệu thời gian thường rất lớn, và có thể chứa nhiều nhiễu Trong thực tế, nhiều ứng dụng đặt ra cho chuỗi dữ liệu thời gian như gom cụm, phân loại, phát hiện bất thường… Trong đó, phát hiện bất thường cho một chuỗi dữ liệu thời gian có rất nhiều ứng dụng thực tế Trong một bệnh viện, phát hiện được bất thường khi theo dõi chuỗi dữ liệu điện tâm đồ một cách tự động rất có hữu ích
Từ một chuỗi dữ liệu chứng khoán, tài chính rất lớn, phát hiện ra những điểm bất thường có thể sẽ giúp ích cho việc dự báo, ứng phó với các sự cố Việc theo dõi rung động và phát hiện bất thường nhằm chuẩn đoán hỏng hóc cho các hệ thống máy móc, cầu đường cũng là những ứng dụng thực tế…
1.2 Phát hiện bất thường cho dữ liệu chuỗi thời gian
Dữ liệu thời gian được gọi là bất thường khi nó chênh lệch (hay khác biệt) với dữ liệu “trung bình” Nó có thể là một điểm bất thường hay một đoạn bất thường
Nghiên cứu phương pháp để phát hiện bất thường trong dữ liệu chuỗi thời gian hiện đang được quan tâm và nghiên cứu rất nhiều Việc phát hiện bất thường trong chuỗi
dữ liệu thời gian có thể được xem như việc phân loại chuỗi dữ liệu thời gian Dữ liệu chuỗi thời gian sau khi được rời rạc hóa sẽ được phân vào một trong hai loại:
dữ liệu bình thường, và dữ liệu bất thường Dữ liệu bất thường đôi khi còn được xem là các điểm ngoại vi (outlier) Việc phân loại dữ liệu này có thể liên quan đến việc xem xét độ tương tự của các mẩu dữ liệu thời gian đã được rời rạc hóa này Dữ
Trang 12liệu thời gian thường rất lớn, trước khi phân loại dữ liệu, dữ liệu rời rạc hóa có thể được thu giảm số chiều để làm tăng tốc độ, nhưng sẽ giảm đi độ chính xác của việc phân loại
Nhiều phương pháp phát hiện bất thường đã được đưa ra Một số phương pháp giả định đã có mô hình lý thuyết chính xác của bài toán (phương pháp sử dụng mạng neural do R Kozma, M Kitamura, M Sakuma, và Y Yokoyama đề nghị [3]), hay giả định biết trước điều kiện bất thường (phương pháp xác định lỗi do R Isermann
đề nghị [18], phương pháp phát hiện bất thường sử dụng mạng neural của C M Bishop [4], hay phương pháp sử dụng mạng cấp phát tài nguyên có xác xuất của S Roberts và L Tarassenko [5]) Tuy nhiên các điều kiện giả định này thường không
có thực trong các bài toán thực tế C Shahabi, X Tian, và W Zhao đề nghị phương pháp phát hiện hướng chuyển dịch tín hiệu dựa trên tín hiệu wavelet [19] Nhưng phương pháp này không thể phát hiện được các mẩu bất thường ngắn lẫn trong tín hiệu bình thường Mingwei Leng, Xinsheng Lai, Guolv Tan, và Xiaohui Xu đã đề nghị một phương pháp biểu diễn chuỗi thời gian sử dụng các điểm quan trọng (key point) để phân đoạn, sau đó đo độ bất thường dựa vào độ tương tự giữa các mẫu D Dasgupta và S Forrest lấy ý tưởng từ hệ miễn dịch, đề nghị phương pháp sử dụng giải thuật phủ định lựa chọn (negative-selection) để phát hiện bất thường cho chuỗi thời gian [2] E Keogh và các cộng sự đã đề nghị phương pháp TARZAN năm
2002 [20], dựa trên việc chuyển dữ liệu về chuỗi ký tự Tuy nhiên việc mã hóa chuỗi thời gian theo cách này có thể làm mất các điểm có ý nghĩa trong dữ liệu ban đầu Một số phương pháp khác như sử dụng Support vector machines (SVM) phân loại một lớp (của các tác giả B Scholkopf, R.C Williamson, A.J Smola, J Shawe-Taylor, và J Platt [6], và sau đó là J Ma và S Perkins [1]), hay sử dụng quy hoạch tuyến tính (do các tác giả C Campbell và K P Bennett để nghị [11]) thì xem các điểm bất thường như các điểm ngoại biên của sự phân bố dữ liệu Ý tưởng này có nền tảng lý thuyết khá tốt Trong các phương pháp sử dụng SVM này thì phương pháp của các tác giả J Ma và S Perkins là phương pháp chạy tương đối nhanh, độ chính xác khá cao
Trang 13Nhìn chung, các phương pháp bất thường trên đều trên cơ sở bắt đầu từ “chuẩn hóa”
dữ liệu chuỗi thời gian (biến đổi dữ liệu sang một dạng thích hợp, chẳng hạn sử dụng các phương pháp thu giảm số chiều) và phân đoạn dữ liệu, sau đó phân loại dữ liệu Các đoạn dữ liệu chuỗi thời gian này sẽ được phân vào 2 loại: dữ liệu bình thường, và dữ liệu bất thường (dữ liệu mới lạ, hay dữ liệu ngoại biên)
Và hiện nay, phương pháp SVM được xem là một phương pháp tốt, có tốc độ cao
để phân loại dữ liệu so với các phương pháp khác Phương pháp SVM tỏ ra hiệu quả hơn so với các phương pháp như phân loại dựa trên xác xuất Bayes (đòi hỏi dữ liệu huấn luyện rất lớn), sử dụng mạng neural (khá phức tạp, nhạy cảm với dữ liệu),
sử dụng cây quyết định (dựa trên lý thuyết xác suất và lý thuyết thông tin, cũng đòi hỏi dữ liệu huấn luyện rất lớn) Tuy nhiên phương pháp SVM chỉ áp dụng cho dữ liệu vector
Do đó, một phương pháp có thể tốt để phát hiện bất thường cho dữ liệu chuỗi thời gian là “chuẩn hóa” và vector hóa dữ liệu sau đó áp dụng phương pháp SVM để phân loại dữ liệu thành 2 nhóm: một nhóm dữ liệu bình thường, và nhóm dữ liệu bất thường
Hình 1.1: Đường cong biểu diễn dữ liệu chuỗi thời gian và chuỗi thời gian có chứa
bất thường x 2 (t)
Trang 141.3 Nội dung và giới hạn đề tài
Phương pháp sử dụng SVM để phát hiện bất thường cho dữ liệu chuỗi thời gian đã được một số tác giả nghiên cứu và đề nghị (như phần trước đã nêu)
Phương pháp phát hiện bất thường do J Ma và S Perkins đề nghị là một phương pháp đáng chú ý Phương pháp này dùng cửa sổ trượt phân dữ liệu thành từng đoạn
có kích thước bằng nhau (bằng số chiều của vector trong không gian pha – phase space) rồi vector hóa đoạn đó, rồi áp dụng phương pháp SVM một lớp để xác định các điểm ngoại biên Sau đó, giải thuật lần lượt thay đổi kích thước đoạn (hay số chiều của vector) theo những giá trị định trước, rồi tổng hợp kết quả phân loại ngoại biên lại để xác định điểm ngoại biên thực sự Đây là một phương pháp khá tốt, mặc
dù vẫn còn có một vài hạn chế
Phương pháp của các tác giả J Ma và S Perkins giả định dữ liệu đã được rời rạc hóa Vì vậy, với dữ liệu chuỗi thời gian tương tự (analog), trước khi áp dụng phương pháp này, cần được rời rạc hóa
Phương pháp của tác giả này chưa sử dụng các phương pháp tìm tham số tối ưu cho phương pháp SVM với tập dữ liệu xác định nên chưa đạt độ chính xác cao Ta có thể áp dụng phương pháp tìm tham số tối ưu cho phương pháp SVM Với những tham số tối ưu này, việc phát hiện bất thường sẽ đạt độ chính xác cao hơn
Ngoài ra, phương pháp của các tác giả này chỉ đề cập đến việc phân loại cho dữ liệu 1D (dữ liệu chuỗi thời gian chỉ có 2 chiều, một chiều là chiều thời gian) Do đó, khi
áp dụng phương pháp này cho dữ liệu nhiều chiều hơn, cần phải có một số thay đổi nhỏ khi sử dụng
Do đó, mục tiêu của đề tài này là nghiên cứu và đưa ra một cải tiến như đã nói ở trên có thể làm tăng hiệu năng của phương pháp do các tác giả J Ma và S Perkins
đề nghị
1.4 Tóm tắt kết quả đã đạt được
Với những yêu cầu của luận văn, sau thời gian nghiên cứu và thực hiện, tôi đã hiện thực một hệ thống phát hiện bất thường sử dụng Support Vector Machine đơn giản
Trang 15Hệ thống này áp dụng phương pháp phát hiện bất thường của J Ma và S Perkins cho dữ liệu chuỗi thời gian nhiều chiều (không kể chiều thời gian)
Hệ thống sử dụng thư việc Support Vector Machine SVM.NET, phiên bản NET do Matthew Johnson chuyển đổi từ phiên bản thư viện libSVM 2.89 của Chih-Chung Chang and Chih-Jen Lin
Khi phát hiện bất thường, hệ thống có thể được chỉ định để áp dụng phương pháp thu giảm số chiều APCA cho tập dữ liệu chuỗi thời gian nhiều chiều (không kể chiều thời gian) trước khi tìm kiếm bất thường Hệ thống cũng hỗ trợ tìm kiếm tham
số tương đối tốt cho phương pháp Support Vector Machine ứng với tập huấn luyện xác định
1.5 Cấu trúc của luận văn
Phần còn lại của luận văn được tổ chức theo cấu trúc sau:
Chương 2 trình bày tổng quan về các công trình liên quan Các công trình này nghiên cứu về các phương pháp rời rạc hóa và thu giảm số chiều cho dữ liệu chuỗi thời gian Ngoài ra, còn có công trình nghiên cứu về việc áp dụng phương pháp Support Vector Machine trong việc phát hiện bất thường cho dữ liệu vector và dữ liệu chuỗi thời gian
Chương 3 trình bày các cơ sở lý thuyết được sử dụng trong luận văn: biểu diễn chuỗi dữ liệu, vector hóa dữ liệu chuỗi thời gian, phương pháp sử dụng Support Vector Machine một lớp để phát hiện bất thường cho dữ liệu chuỗi thời gian, và phương pháp tìm kiếm tham số tối ưu cục bộ cho phương pháp SVM một lớp
Chương 4 trình bày hệ thống phát hiện bất thường cho dữ liệu chuỗi thời gian sử dụng SVM một lớp, bao gồm quy trình thực hiện và những phần chính trong hệ thống: vector hóa dữ liệu, thu giảm số chiều, lựa chọn tham số và phát hiện bất thường cho dữ liệu
Chương 5 sẽ trình bày về các kết quả thực nghiệm và đánh giá các kết quả đó
Chương 6 là kết luận sau khi thực hiện luận văn
Trang 16CHƯƠNG 2 NHỮNG CÔNG TRÌNH LIÊN QUAN
2.1 Phát hiện bất thường với Support Vector Machine một lớp
2.1.1 Phương pháp Support Vector Machine một lớp
Phương pháp Support Vector Machine (SVM) một lớp được các tác giả B Scholkopf, A Smola, R C Williamson và P L Bartlett đưa ra vào năm 2000 [21] Đây là một phương pháp SVM mới, cho phép phân loại dữ liệu theo “biên mềm”,
có khả năng chịu đựng nhiễu (lỗi)
2.1.2 Phát hiện bất thường với SVM một lớp
Các tác giả B Scholkopf, R C Williamson, J Shawe-Taylor và J Platt đề nghị phương pháp sử dụng SVM một lớp để phát hiện bất thường cho dữ liệu vào năm
2000 [6]
Dữ liệu ban đầu là một tập các vector Phương pháp SVM một lớp được sử dụng để phân tập dữ liệu ra thành 2 phần: Một phần nhỏ chứa phần lớn dữ liệu, được xem là bình thường, và phần còn lại chứa một số ít dữ liệu được coi là bất thường
Phương pháp này có tốc độ, và độ chính xác khá cao, nhưng đòi hỏi phải xác định kernel và tham số v thích hợp với loại dữ liệu tương ứng
Ngoài ra, phương pháp này chỉ có thể áp dụng cho dữ liệu dạng vector, nên không thể áp dụng trực tiếp lên dữ liệu chuỗi thời gian
2.2 Phát hiện bất thường dữ liệu chuỗi thời gian với SVM một
Trang 17đã vector hóa sẽ mất tính phân bố đồng nhất và độc lập (independent and identically distributed – i.i.d) Điều này có thể dẫn đến đánh mất một số thuộc tính cho kết quả bất thường phát hiện được như biên hiệu suất đúng xấp xỉ xác suất (PAC performance bound) Tuy nhiên việc áp dụng SVM một lớp phát hiện bất thường trên dữ liệu vector hóa này không bị ảnh hưởng, do phương pháp SVM một lớp không dựa trên giả thiết dữ liệu phân bố đồng nhất và độc lập
Ngoài ra, đối với một số loại dữ liệu có tần số thấp, các vector sau khi vector hóa sẽ
có xu hướng phân bố quanh đường chéo đơn vị Khi đó, kết quả phát hiện bất thường sẽ thiên về những điểm dữ liệu thời gian có giá trị cách biệt lớn (đặc biệt lớn hay đặc biệt nhỏ) Mặc dù các điểm này không phải luôn luôn là giá trị bất thường
Vì thế, các tác giả đề nghị chiếu dữ liệu đã vector hóa lên không gian con vuông góc với vector đường chéo đơn vị Việc này cũng tương tự như áp dụng bộ lọc cho phép băng tần cao lên dữ liệu thời gian (nhưng không cần xác định tham số như đối với bộ lọc thực sự)
Dữ liệu chuỗi thời gian sẽ được vector hóa theo nhiều kích thước nhúng khác nhau Sau đó sử dụng SVM một lớp để phát hiện ra các điểm ngoại vi ở từng kích thước nhúng rồi kết hợp các kết quả này lại để ra được kết quả cuối cùng
Phương pháp phát hiện bất thường này có ưu điểm là tốc độ và độ chính xác cao khi
đã xác định được tham số thích hợp cho SVM một lớp ứng với dữ liệu cụ thể
Tuy nhiên, các tác giả chưa đưa ra một phương pháp xác định tham số thích hợp cho SVM một lớp Bên cạnh đó, các tác giả cũng chưa đưa ra phương pháp chọn các kích thước nhúng thích hợp để tránh phát hiện sai mà vẫn giữ được tốc độ phát hiện
2.3 Rời rạc hóa và biểu diễn dữ liệu chuỗi thời gian
Dữ liệu chuỗi thời gian thường rất lớn dẫn đến chi phí cao trong việc xử lý trên dữ liệu thô Do đó, các công trình về chuỗi thời gian cố gắng biểu diễn chuỗi dữ liệu dưới dạng khác nhằm thu giảm kích thước dữ liệu và nâng cao hiệu năng tính toán,
xử lý Ngoài ra, dữ liệu chuỗi thời gian cũng có thể được rời rạc hóa và mã hóa
Trang 18thành các chuỗi bit hay chuỗi kí tự để dễ dàng sử dụng các kỹ thuật nén, khai phá
dữ liệu trên dữ liệu chuỗi bit, hay chuỗi kí tự
Bên cạnh đó, biễu diễn dữ liệu chuỗi thời gian ở một dạng thích hợp có thể giúp ích cho việc phát hiện bất thường dữ liệu chuỗi thời gian Dữ liệu chuỗi thời gian được biến đổi, biểu diễn ở một dạng thích hợp có thể giúp phát bất thường hiện nhanh, chính xác hơn khi áp dụng phương pháp phát hiện bất thường với SVM Tuy nhiên, việc lựa chọn được dạng biểu diễn thích hợp là rất khó
Phương pháp thu giảm số chiều là phương pháp biểu diễn dữ liệu chuỗi thời gian ở một dạng nén Phương pháp này cho phép chuỗi n chiều X = {x1, x2, …, xn} có thể được biểu diễn và lưu trữ thành chuỗi k chiều Y = {y1, y2, …, yk}, với k < n Từ chuỗi Y, ta có thể khôi phục lại chuỗi n chiều X ban đầu Như vậy, thay vì tính toán trên chuỗi n chiều X, ta chỉ cần tính toán trên chuỗi k chiều Y
2.3.1 Phương pháp biến đối Furier rời rạc (DFT)
Phương pháp biến đổi Furier rời rạc (Discrete Fourier Transform – DFT) do R Agrawal và cộng sự đề nghị năm 1993 Trong phương pháp này, đường dữ liệu ban đầu được biểu diễn bởi các đường cơ bản, những đường cơ bản trong trường hợp này là đường sin và cosin
Phương pháp này có khả năng nén và chịu nhiễu tốt, và có thể so sánh gián tiếp 2 chuỗi X, Y thông qua 2 chuỗi đã được biến đổi Xf, Yf, do D(X, Y) ≥ αD(Xf, Yf), trong đó α là hằng số Tuy nhiên, phương pháp này khó giải quyết khi các đường biểu diễn có chiều dài khác nhau Phương pháp này có độ phức tạp O(nlgn), với n là
số lượng điểm
2.3.2 Phương pháp biến đổi Wavelet rời rạc (DWT)
Phương pháp biến đổi Wavelet rời rạc (Discrete Walet Transform – DWT) do K Chan và cộng sự đề nghị năm 1999 Phương pháp này biểu diễn chuỗi thời gian thành các đường Haar cơ bản Đường Haar được định nghĩa theo công thức:
Trang 19Trong đó:
Phương pháp này có độ phức tạp tuyến tính, khả năng khử nhiễu cao, thíc hợp với những dữ liệu tĩnh, ít thay đổi do đường Haar cũng không thay đổi liên tục Tuy nhiên, phương pháp này đòi hỏi chiều dài chuỗi dữ liệu ban đầu vào chuỗi truy vẫn phải là một số lũy thừa của 2
2.3.3 Phương pháp phân rã giá trị riêng (SVD)
Phương pháp phân rã giá trị riêng (Singular Value Decomposition – SVD) do F Korn và cộng sự đề xuất năm 1997 Phương pháp này biểu diễn chuỗi thời gian thành các đường eigenwave Việc xác định đường eigenwave dựa vào giá trị riêng
và vector riêng của ma trận Dm×n với m là tập các chuỗi thời gian, n là số chiều Mỗi tập dữ liệu khác nhau có các đường eigenwave khác nhau
Phương pháp này cho phép thấy được hình dạng dữ liệu, và hỗ trợ truy vẫn ngẫu nhiên Tuy nhiên, độ phức tạp của giải thuật này cao, và phải chạy lại giải thuật khi chỉnh sửa tập dữ liệu
Trang 20Hình 2.1: Các phương pháp biểu diễn dữ liệu DFT, DWT, SVD
2.3.4 Phương pháp xấp xỉ gộp từng đoạn (PAA)
Phương pháp xấp xỉ gộp từng đoạn (Piecewise Aggregate Approximation – PAA)
do E Keogh và cộng sự đề nghị năm 2000 Phương pháp này tuần tự xấp xỉ k giá trị liền kề nhau thành cùng một giá trị bằng trung bình cộng của k điểm đó Kết quả cuối cùng là một đường có dạng bậc thang
Phương pháp này có thời gian tính toán nhanh, hỗ trợ dạng truy vẫn có chiều dài khác nhau Tuy nhiên, phương pháp này khó xây dựng lại chuỗi ban đầu và sinh lỗi lớn Ngoài ra, phương pháp này không quan tâm đến những điểm đặc biệt(điểm giá trị nhỏ nhất, lớn nhất, …) trong từng đoạn xấp xỉ
2.3.5 Phương pháp xấp xỉ từng đoạn thích nghi (APCA)
Phương pháp xấp xỉ từng đoạn thích nghi (Adaptive Piecewise Constant Approximation – APCA) do E Keogh và cộng sự đề xuất năm 2001 Tương tự phương pháp PAA, APCA xấp xỉ dữ liệu thành những đoạn thẳng nằm ngang Tuy
Trang 21nhiên, khác với PAA là các đoạn có kích thước bằng nhau, phương pháp này xấp xỉ thành những đoạn có kích thước khác nhau Những thời điểm giá trị dao động nhiều được biểu diễn bởi những phân đoạn dữ liệu ngắn, những thời điểm giá trị ít dao động được biểu diễn bởi những phân đoạn dài
Phương pháp này có tỉ lệ nén cao hơn phương pháp PAA, tỉ lệ lỗi khi xây dựng lại
dữ liệu gốc thấp hơn phương pháp PAA Độ phức tạp của giải thuật này là O(nlogn)
2.3.6 Phương pháp xấp xỉ tuyến tính từng đoạn (PLA)
Phương pháp xấp xỉ tuyến tính từng đoạng (Piecewise Linear Approximation – PLA) do E Keogh và cộng sự đề nghị năm 1999 Phương pháp này biểu diễn chuỗi
dữ liệu ban đầu thành các đoạn thẳng tuyến tính, có thể rời nhau hay liên tục
Phương pháp này có tính trực quan, tỉ lệ lỗi thấp khi xây dựng lại dữ liệu ban đầu Giải thuật tìm các chuỗi đoạn thẳng có thể được thực hiện trong thời gian tuyến tính
Ban đầu, phương pháp này chỉ hiệu quả với dữ liệu offline Nhưng đến 2001, E Keogh và cộng sự đã đề nghị giải thuật phân đoạn cho dữ liệu trực tuyến (online)
sử dụng phương pháp PLA và cửa sổ trượt có hiệu năng tương tương với giải thuật cho dữ liệu offline
Trang 22Hình 2.2: Các phương pháp biểu diễn dữ liệu APCA, PAA, PLA
2.3.7 Phương pháp xấp xỉ gộp kí hiệu hóa (SAX)
Phương pháp xấp xỉ gộp kí hiệu hóa (Symbolic Aggregate approXimation) do J Lin
và cộng sự đề xuất năm 2003 Dữ liệu ban đầu được chia thành từng đoạn theo phương pháp PAA Sau đó dựa trên giá trị trung bình cộng của từng đoạn, ta sẽ biểu diễn đặc trưng của đoạn thành các kí tự Chuỗi dữ liệu ban đầu được rời rạc và mã hóa thành chuỗi ký tự
Phương pháp này hữu dụng trên tập dữ liệu lớn Tuy nhiên, phương pháp này lựa chọn điểm ngắt để biểu diễn đặc trưng dựa trên phân phối Gauss Tuy nhiên, không phải tất cả dữ liệu đều có phân phối Gauss, do đó, cần phải huấn luyện dữ liệu để tìm các điểm ngắt thích hợp
2.3.8 Phương pháp cây hậu tố (Suffix Tree)
Phương pháp sử dụng cây hậu tố được S Park và cộng sự đề nghị năm 2000 Phương pháp này rời rạc dữ liệu dựa vào sự phân loại dữ liệu Sau đó dùng cây hậu
tố để đánh chỉ mục Park đã đưa ra 3 phương pháp phân loại dữ liệu dựa trên:
Trang 23- Khoảng cách phân loại bằng nhau (Equal Length Interval Categorization)
- Giá trị hỗn độn thông tin lớn nhất (Maximum-Entropy Categorization)
- Nhát cắt nhỏ nhất (Minimum-Cut Categorization)
2.3.9 Phương pháp vector lượng tử (VQ)
Phương pháp vector lượng tử (Vector Quantization – VQ) do V Megalooikonomou
và cộng sự đề xuất năm 2005 Phương pháp này rút trích đặc trưng của chuỗi bằng vector lượng tử, mỗi phần tử của vector là từ mã (codeword) Tập các từ mã là sách
mã (codebook) Bài báo sử dụng giải thuật GLA (Generalized Lloyd Algorithm) nhằm huấn luyện dữ liệu, tìm ra những từ mã đặc trưng của dữ liệu, sau đó tính khoảng cách dựa trên các thông tin của từ mã như khoảng cách từ mã, chuỗi con từ
mã chung dài nhất, tần số xuất hiện của từ mã, …
Phương pháp này hỗ trợ đa phân giải Tuy nhiên thời gian huấn luyện dữ liệu lớn và
bị ảnh hưởng bởi nhiễu cao
2.4 Kết luận
Phương pháp SVM một lớp cho phép phát hiện bất thường cho một tập dữ liệu vector Vì thế, không thể trực tiếp áp dụng phương pháp SVM một lớp để phát hiện bất thường cho dữ liệu chuỗi thời gian
Trước khi áp dụng phương pháp SVM một lớp cho việc phát hiện bất thường, dữ liệu chuỗi thời gian cần được biến đổi thành dữ liệu vector
Ngoài ra, dữ liệu chuỗi thời gian thường rất lớn, nên trước khi tìm kiếm bất thường cho dữ liệu này, ta có thể áp dụng một số phương pháp thu giảm số chiều mà không làm mất những điểm dữ liệu bất thường mong muốn Như vậy, tốc độ phát hiện sẽ được cải thiện Tuy nhiên, ta còn cần nghiên cứu thêm để lựa chọn phương pháp thu giảm số chiều thích hợp Nếu thu giảm số chiều không thích hợp có thể dẫn đến bỏ sót các điểm bất thường hoặc xác định thừa các điểm bất thường
Trang 24CHƯƠNG 3 CƠ SỞ LÝ THUYẾT NỀN TẢNG
3.1 Biểu diễn dữ liệu chuỗi thời gian
Dữ liệu chuỗi thời gian ban đầu là một chuỗi các điểm (một hay nhiều chiều) được quan sát theo thời gian Tập các điểm này thường rất lớn, nên nếu tìm kiếm bất thường trực tiếp lên chuỗi dữ liệu này có thể tốn nhiều thời gian Nếu có thể thu giảm số chiều và biễu diễn dữ liệu chuỗi thời gian mà không làm mất đi các điểm, mẩu (đoạn) dữ liệu bất thường thì có thể giúp tìm kiếm bất thường nhanh hơn Tuy nhiên, việc lựa chọn một dạng biễu diễn thích hợp cho một dữ liệu cụ thể là rất khó khăn Nếu lựa chọn dạng biểu diễn không thích hợp, có thể làm mất các điểm, mẩu bất thường trên dữ liệu
Quá trình biến đổi dữ liệu thời gian về một dạng thích hợp cũng ảnh hưởng đến tốc
độ phát hiện bất thường cho dữ liệu Nếu phương pháp biến đổi quá phức tạp, thời gian phát hiện bất thường sẽ tăng đáng kể
Do chưa có phương pháp xác định dạng biểu diễn thích hợp cho dữ liệu chuỗi thời gian, nên ở đây tôi sẽ sử dụng thử một phương pháp biểu diễn bất kỳ để thu giảm số chiều cho dữ liệu Cụ thể, phương pháp xấp xỉ từng đoạn thích nghi (APCA) sẽ được sử dụng
3.2 Phát hiện bất thường dữ liệu chuỗi thời gian với SVM một
Trang 25đổi vào không gian chiếu (chiếu lên không gian con vuông góc với vector đường chéo đơn vị)
3.2.1 Vector hóa dữ liệu chuỗi thời gian
Phương pháp SVM một lớp chỉ có thể áp dụng trực tiếp lên dữ liệu vector để phát hiện bất thường Do đó, dữ liệu chuỗi thời gian ban đầu cần phải được vector hóa trước khi sử dụng phương pháp
Các tác giả J Ma và S Perkins đã đề nghị phương pháp vector hóa bằng cách đưa
dữ liệu chuỗi thời gian vào không gian pha sử dụng nhúng trễ thời gian
Giả sử chúng ta có dữ liệu chuỗi thời gian x(t), t=1 N Khi đó, kết quả của việc vector hóa một điểm dữ liệu này vào không gian E chiều sẽ là:
Các tác giả đề nghị chiếu dữ liệu đã vector hóa vào không gian con vuông góc với vector đường chéo đơn vị 1 Tuy nhiên tùy thuộc loại dữ liệu, có thể chiếu dữ liệu lên một vector khác Tuy không phải mọi dữ liệu đề có tính chất này, tuy nhiên phương pháp chuẩn hóa này rất hữu dụng trong nhiều bài toán thực tế Không gian
Trang 26các vector sau khi đã được chiếu này được gọi là không gian pha chiếu Hình 3.1
minh họa dữ liệu chuỗi thời gian x(t) và tập vector trong không gian pha chiếu với kích thước nhúng E=3
Hình 3.1: Chuỗi dữ liệu thời gian và những vector trong không gian pha chiếu với