Đề tài này sẽ hiện thực bài toán phân lớp dữ liệu chuỗi thời gian sử dụng giải thuật phân lớp có thời gian thực thi tùy chọn dựa trên motif.. Tuy nhiên trong hầu hết các ứng dụng thực t
GIỚI THIỆU
Phát biểu vấn đề
Chuỗi dữ liệu thời gian là tập hợp các quan sát dữ liệu được ghi lại theo thứ tự thời gian Cấu trúc dữ liệu này thường có nhiều chiều, bao gồm chiều thời gian, khi dữ liệu được theo dõi và ghi lại tại các thời điểm cụ thể Tuy nhiên, để đơn giản hóa quá trình lưu trữ và giảm độ phức tạp, dữ liệu thường được đo theo chu kỳ đều đặn Do đó, chỉ cần lưu lại thứ tự các giá trị dữ liệu theo trình tự thời gian, dưới dạng X = , trong đó x i là dữ liệu được đo tại thời điểm thứ i.
Hình 1-1 Đường biễu diễn dữ liệu chuỗi thời gian
Trong các ứng dụng thực tế, dữ liệu chuỗi thời gian rất đa dạng, điển hình là dữ liệu theo dõi biến động giá chứng khoán, dữ liệu điện tâm đồ, dữ liệu mực nước sông hay dữ liệu truy cập trang web của người dùng Đặc điểm chung của các dữ liệu này là khối lượng lớn, được đo và lưu trữ trong thời gian dài, dẫn đến chi phí lưu trữ và khai phá tốn kém Việc sử dụng các công cụ khai phá dữ liệu trên nền tảng máy tính đã thu hút sự quan tâm, nghiên cứu và ứng dụng rộng rãi trong nhiều lĩnh vực trong những năm gần đây.
Một số vấn đề khi nghiên cứu chuỗi thời gian:
Một trong những đặc trưng của chuỗi thời gian là dữ liệu rất lớn Ví dụ khi đo đạc dữ liệu điện tâm đồ trong 1 giờ khoảng 1 Gigabyte Đây là một trong những vấn đề thách thức trong quá trình phân tích, tính toán và xử lý dữ liệu chuỗi thời gian trong việc tạo ra kết quả được chính xác trong thời gian hợp lý
Phụ thuộc yếu tố chủ quan
Trong thực tế, các kết quả dữ liệu chuỗi thời gian thu được chịu ảnh hưởng yếu tố chủ quan của người đo dữ liệu, điều kiện và các công cụ đo…
Dữ liệu không đồng nhất
Quá trình thu thập dữ liệu chuỗi thời gian được đo trên những định dạng khác nhau, số lượng và tần số lấy mẫu không đồng nhất cũng ảnh hưởng đến tính toàn vẹn của dữ liệu Thêm vào đó quá trình đo đạc không chính xác do nhiễu, thiếu một vài giá trị hay dữ liệu không sạch
Tập hợp dữ liệu chuỗi thời gian liên quan đến một lĩnh vực hoặc một bài toán ứng dụng thường có kích thước rất lớn Tuy nhiên, tập hợp dữ liệu này thường có mối liên hệ chặt chẽ với nhau Dựa trên những mối liên hệ đó, người ta thường thống kê và phân loại dữ liệu thành một số lớp với một số đặc trưng nhất định Ví dụ, dữ liệu giá chứng khoán có thể phân loại thành các lớp: ổn định, tăng trưởng đều, không ổn định,
… Nhu cầu đặt ra là dùng dữ liệu thống kê trong quá khứ để phân loại dữ liệu hiện tại hoặc tương lai Việc phân loại này có ý nghĩa rất lớn trong nhiều lĩnh vực như: dự đoán tình trạng giá một chứng khoán, dự đoán kiểu thời tiết, … Hình 1-2 minh họa cơ sở dữ liệu thống kê có hai lớp dữ liệu và yêu cầu phân loại mẫu dữ liệu O thuộc lớp nào trong hai lớp đó
Hình 1-2 Bài toán phân lớp dữ liệu chuỗi thời gian
Bài toán phân lớp (classification) dữ liệu chuỗi thời gian được đặt ra để giải quyết vấn đề trên Phân lớp là quá trình học có giám sát bao gồm hai giai đoạn: huấn luyện và kiểm tra Giai đoạn huấn luyện sẽ thực hiện việc học dựa trên tập huấn luyện Giai đoạn kiểm tra sẽ thực hiện kiểm tra kết quả phân lớp cho một tập kiểm thử
Ngoài ra, có nhiều bài toán trên thực tế đòi hỏi chúng ta phải phân lớp khác nhau dựa trên tài nguyên tính toán được cấp phát Ví dụ, bài toán yêu cầu phải phân lớp tín hiệu trên đường truyền internet để xác định xem đó có phải là tín hiệu bất thường hay không, và chỉ có giới hạn trong khoảng thời gian nhất định để ta đua ra đáp án phân lớp Như vậy ta sẽ không thể đợi giải thuật chạy xong hoàn toàn để kết luận, mà sẽ phải đưa ra kết luận trong khoảng thời gian tùy chọn với một mức độ chính xác có thể chấp nhận được, khi đó một giải thuật phân lớp có thời gian thực thi tùy chọn là rất cần thiết
Tuy nhiên, khi áp dụng phân lớp trên chuỗi thời gian ta thường gặp phải nhược điểm sau: dữ liệu chuỗi thời gian có đặc điểm là rất lớn nên việc phân lớp sẽ rất tốn chi phí thời gian và tài nguyên Để khắc phục nhược điểm trên, chúng ta có thể vận dụng nhận dạng motif trên dữ liệu chuỗi thời gian để cải tiến giải thuật phân lớp dữ
Mẫu dữ liệu O liệu chuỗi thời gian có thời gian thực thi tùy chọn giúp giải thuật thực thi hữu hiệu hơn.
Mục tiêu và giới hạn đề tài
Mục tiêu nghiên cứu đề tài trên cơ sở dữ liệu chuỗi thời gian tập trung vào hai vấn đề chính:
Nghiên cứu các giải thuật nhận dạng motif trên dữ liệu chuỗi thời gian
Trong cơ sở dữ liệu chuỗi thời gian, dữ liệu thường rất lớn Vì vậy, việc nhận dạng các motif đặc trưng cho dữ liệu chuỗi thời gian và phân lớp dựa trên các motif đại diện này sẽ giúp quá trình phân lớp nhanh hơn
Ứng dụng việc nhận dạng motif để cải tiến giải thuật phân lớp dữ liệu chuỗi thời gian có thời gian thực thi tùy chọn để làm cho giải thuật này trở nên hữu hiệu hơn
Sau khi nhận dạng motif đại diện chuỗi thời gian, ta xác định thứ hạng (rank) của các dữ liệu chuỗi thời gian dựa trên motíp đại diện Sau đó chúng ta áp dụng giải thuật phân lớp có thời gian thực thi tùy chọn (anytime classification algorithm) để phân lớp tập dữ liệu chuỗi thời gian này dựa vào thứ hạng (rank) các dữ liệu chuỗi thời gian đã tính trước đó.
Tóm lược kết quả đạt được
Với những yêu cầu của đề tài, sau thời gian nghiên cứu và hiện thực, chúng tôi đã xây dựng hệ thống phân lớp dữ liệu chuỗi thời gian Hệ thống này gồm hai thành phần chính: Huấn luyện và Phân lớp Thành phần Huấn luyện cho phép người dùng nhập vào một tập huấn luyện gồm m chuỗi thời gian có chiều dài bằng nhau Thành phần Huấn luyện sẽ thực hiện việc sắp xếp tập huấn luyện Thành phần phân lớp sẽ cho phép người dùng nhập vào một chuỗi thời gian O, hệ thống sẽ sử dụng tập huấn luyện đã được sắp xếp để cho biết kết quả dự đoán lớp của O
Thành phần huấn luyện làm nhiệm vụ sắp xếp tập huấn luyện Việc sắp xếp này chia làm hai giai đoạn: giai đoạn tìm kiếm motif cho mỗi thể hiện trong tập huấn luyện và giai đoạn sắp xếp tập huấn luyện dựa trên motif của mỗi thể hiện trong tập huấn luyện Để phát hiện motif chương trình sử dụng giải thuật nhận diện motif trên dữ liệu chuỗi thời gian dựa vào điểm cực trị quan trọng Để tính khoảng cách xoắn thời gian động của tất cả các cặp chuỗi, chương trình áp dụng kỹ thuật tính chặn dưới LB_Keogh để cải thiện thời gian thực thi
Thành phần phân lớp tìm chuỗi gần nhất của chuỗi mục tiêu O trong tập huấn luyện Chương trình cũng áp dụng kỹ thuật tính chặn dưới trên để cải thiện thời gian thực thi
Trên cơ sở chương trình đã thực hiện, đề tài tiến hành thực nghiệm trên hai tập dữ liệu mẫu và so sánh kết quả khi phân lớp không sử dụng thông tin motif và khi có sử dụng thông tin motif các thể hiện trong tập huấn luyện trên cả hai giai đoạn huấn luyện và phân lớp.
- Giai đoạn huấn luyện, đề tài so sánh thời gian thực thi quá trình sắp xếp tập huấn luyện khi không sử dụng thông tin motif và khi có sử dụng thông tin motif
- Giai đoạn phân lớp, đề tài so sánh độ chính xác của giải thuật phân lớp khi sử dụng motif và khi không sử dụng motif
Như vậy, hệ thống hiện thực sẽ được trình bày trong các chương sau đã đáp ứng được những yêu cầu và nhiệm vụ của đề tài.
Cấu trúc của luận văn
Chương 2 : Cơ sở lý thuyết
Giới thiệu một số lý thuyết nền tảng được sử dụng trong đề tài bao gồm hai độ đo khoảng cách được sử dụng trong việc tìm khoảng cách trong miền dữ liệu chuỗi thời gian là khoảng cách Euclid và khoảng cách xoắn thời gian động (dynamic time warping) Chương này cũng sẽ giới thiệu giải thuật phân lớp được sử dụng chính trong đề tài là giải thuật phân lớp k Láng giềng gần nhất (k-Nearest-Neighbor)
Chương 3 : Các công trình nghiên cứu liên quan
Chương này sẽ trình bày các công trình có liên quan đến đề tài Các công trình này được trình bày trong bốn mục liên quan đến bốn chủ đề chính: ràng buộc đối với đường xoắn cho khoảng cách dynamic time warping (DTW), các kỹ thuật tăng tốc trong việc tính DTW, giải thuật phân lớp có thời gian thực thi tùy chọn và giải thuật tìm kiếm Motif trên dữ liệu chuỗi thời gian
Chương 4 : Giải quyết vấn đề và thực nghiệm
Chương này tập trung vào cải thiện thời gian thực thi của giải thuật phân lớp có thời gian thực thi tùy chọn bằng cách sử dụng thông tin motif của chuỗi thời gian Kế tiếp trình bày kết quả thực nghiệm trên hai tập dữ liệu TwoPat và Clustered
Chương 5 : Kết luận Trình bày một số kết luận sau khi thực hiện đề tài.
CƠ SỞ LÝ THUYẾT
Độ đo khoảng cách trong miền dữ liệu chuỗi thời gian
Trong lĩnh vực chuỗi dữ liệu thời gian, nhiều độ đo khoảng cách đã được đề xuất, tuy nhiên, hai độ đo quan trọng nhất là độ đo Minkowski và độ đo Xoắn thời gian động (Dynamic Time Warping).
2.1.1 Độ đo khoảng cách Minkowski
Giả sử có hai chuỗi thời gian Q và C có chiều dài n có dạng:
C = c 1 , c 2 , …, c j , …, c n Trong phương pháp này thì khoảng cách giữa Q và C được định nghĩa như sau:
Trong đó: p = 1: Khoảng cách Manhattan p = 2: Khoảng cách Euclid p = : Max
Tuy p có thể có nhiều lựa chọn khác nhau, nhưng trong các nghiên cứu về dữ liệu chuỗi thời gian, p=2 (khoảng cách Euclid) thường được sử dụng Hình 2-1 minh họa hình ảnh trực giác của khoảng cách Euclid
Hình 2-1 Hình ảnh trực giác của khoảng cách Euclid (nguồn: [3]) Ưu điểm:
- Có khả năng sử dụng trong tất cả các bài toán tìm kiếm tương tự như phân lớp, gom cụm, so trung chuỗi con, … Đặc biệt độ đo này thích hợp khi sử dụng các phép biến đổi thu giảm số chiều
- Không thích hợp đối với dữ liệu cho hình dạng gần giống nhau nhưng lệch nhau về mặt thời gian Hình 2-2 minh họa hai chuỗi thời gian có hình dạng giống nhau nhưng lệch nhau về mặt thời gian
- Chỉ tính được đối với hai chuỗi có chiều dài bằng nhau Trong các trường hợp cần tính khoảng cách giữa hai chuỗi có chiều dài không bằng nhau thì không thể sử dụng khoảng cách Euclid
Nhằm khắc phục những nhược điểm này, độ đo khoảng cách xoắn thời gian động
Hình 2-2 Hai mẫu dữ liệu có hình dạng giống nhau nhưng lệch nhau về thời gian (nguồn:[4])
2.1.2 Độ đo xoắn thời gian động
Giả sử có hai chuỗi thời gian Q và C có chiều dài lần lượt là n và m, với:
C = c 1 , c 2 , …, c j , …, c m Để tính toán khoảng cách DTW giữa hai chuỗi trên, ta xây dựng một ma trận D kích thước m n Trong đó, phần tử D ij = d(q i , c j ) là khoảng cách giữa hai điểm q i và c j (với khoảng cách Euclid thì d(q i , c j ) = (q i - c j ) 2 ) Ma trận này được minh họa trong Hình 2-3 Đường xoắn (warping path) W là một tập các phần tử liên tục của ma trận định nghĩa một ánh xạ giữa Q và C Phần tử thứ k của W được định nghĩa là w k =(i, j) k , vì vậy ta có:
W = w 1 , w 2 , …, w k , …, w K max(n, m) K m + n + 1 Theo định nghĩa, đường xoắn tối ưu là đường xoắn cho giá trị chi phí xoắn (khoảng cách xoắn) nhỏ nhất:
Trong đó chi phí xoắn của một đường xoắn là tổng khoảng cách của các cặp điểm tương ứng với các ô nằm trên đường xoắn đó
Hình 2-3 Cách tính khoảng cách xoắn thời gian động: A) Cho hai chuỗi mục tiêu Q và C, B) Ma trận tính DTW, C) Kết quả tính DTW (nguồn:[2]) Đường xoắn tối ưu này có thể tìm được bằng cách sử dụng phương pháp quy hoạch động (dynamic programming) để tính công thức truy hồi định nghĩa khoảng cách tích lũy (cumulative distance) (i, j) như sau:
Trong đó, khoảng cách tích lũy (i, j) tại ô (i, j) của ma trận được tính bằng khoảng cách d(i, j) của ô tương ứng cộng với giá trị nhỏ nhất của khoảng cách tích lũy của các ô liền kề trước ô đó Khoảng cách xoắn thời gian động của hai chuỗi thời gian Q và C là căn bậc hai của khoảng cách tích lũy tại ô (m, n)
Khoảng cách Euclid được xem là trường hợp đặc biệt của khoảng cách DTW, trong đó các phần tử của ma trận W chỉ nhận giá trị w k = (i, j) k , i = j = k Lưu ý rằng trường hợp đặc biệt này chỉ áp dụng khi hai chuỗi có chiều dài bằng nhau do khoảng cách Euclid không xác định được đối với hai chuỗi có độ dài khác nhau.
Trong thực tế, ta không cần phải tính tất cả đường xoắn có thể, vì nhiều đường xoắn trong số đó tương ứng với những đường xoắn không hợp lý (ví dụ, một điểm trong một chuỗi điện tâm đồ ánh xạ tới toàn bộ nhịp tim trong một chuỗi điện tâm đồ khác) Thay vào đó, ta xem xét những ràng buộc sau để làm giảm số lượng đường xoắn cần phải xét trong quá trình so trùng
- Điều kiện biên: w 1 = (1, 1) và w K = (m, n), ràng buộc này yêu cầu đường xoắn phải bắt đầu và kết thúc ở hai góc đối diện của ma trận
- Tính liên tục: cho w k = (a, b), thì w k – 1 = (a’, b’) trong đó a – a’ 1 và b – b’ 1 Ràng buộc này yêu cầu đường xoắn phải di chuyển giữa những ô liền kề (kể cả những ô liền kề theo đường chéo)
- Tính đơn điệu tăng: cho w k = (a, b) thì w k – 1 = (a’, b’) với a – a’ 0 và b – b’ 0 Ràng buộc này yêu cầu các điểm trong W phải tăng đơn điệu theo thời gian
Quá trình tính khoảng cách DTW được minh họa bằng ví dụ sau: Giả sử ta có hai chuỗi thời gian:
C = (4, 6, 7, 6, 5, 4, 2, 3, 5, 6) Hai chuỗi này được biểu diễn bằng đồ thị ở Hình 2-4
Hình 2-4 Đồ thị biểu diễn hai chuỗi thời gian Để tính khoảng cách DTW giữa hai chuỗi trên, ta xây dựng ma trận tính khoảng cách tích lũy như trong Hình 2-5 Mỗi ô trong ma trận này chứa khoảng cách tích lũy của cặp điểm tương ứng
Hình 2-5 Ma trận tính DTW cho hai chuỗi thời gian
Trong ma trận ở Hình 2-5, giá trị của các ô được tính như sau:
Sau khi tính được giá trị cho tất cả các ô, ta có đường xoắn bao gồm các ô tham gia tích lũy giá trị cho ô (10, 10) Trong ví dụ trên, đường xoắn là các ô được tô xám
Vậy, khoảng cách DTW của hai chuỗi Q và C như trên là √22 ≈ 4.7 , trong khi khoảng cách Euclid là 8
Một số ưu điểm và nhược điểm của khoảng cách DTW được tóm tắt như sau: Ưu điểm:
- Khoảng cách DTW cho kết quả so trùng chính xác hơn so với khoảng cách Euclid, đặc biệt trong trường hợp tập dữ liệu nhỏ
- Khoảng cách DTW cho phép nhận dạng các mẫu có hình dạng giống nhau nhưng lệch nhau về mặt thời gian
- Khoảng cách DTW cho phép tính khoảng cách trong trường hợp hai chuỗi có chiều dài không bằng nhau
- Nhược điểm lớn nhất của khoảng cách DTW là độ phức tạp tính toán lớn
Với hai chuỗi Q và C có chiều dài lần lượt là m và n, để tính khoảng cách DTW của hai chuỗi này, ta phải xây dựng ma trận D có kích thước m n và tính khoảng cách tích lũy tương ứng với hàm (công thức 2.3) cho mọi ô trong ma trận đó Như vậy, độ phức tạp tính toán của giải thuật tính DTW sử dụng phương pháp quy hoạch động là O(mn).
Kỹ thuật phân lớp k láng giềng gần nhất
Kỹ thuật phân lớp k láng giềng gần nhất được mô tả lần đầu tiên vào đầu thập niên 1950 Đây là kỹ thuật phân lớp cho các đối tượng dữ liệu dựa trên các mẫu huấn luyện gần nó nhất K láng giềng gần nhất là một loại phương pháp học dựa trên mẫu (instance-based learning), hay phương pháp học lười (lazy learning), trong đó tất cả các tính toán được trì hoãn đến lúc phân lớp Tập huấn luyện được mô tả bao gồm n thuộc tính và nhãn lớp tương ứng của nó Mỗi đối tượng dữ liệu thể hiện một điểm trong không gian n chiều Bằng cách này, toàn bộ tập huấn luyện được lưu trữ trong một không gian mẫu n chiều Khi cho một đối tượng dữ liệu chưa được xác định lớp, giải thuật k láng giềng gần nhất tìm kiếm trong không gian mẫu để có được k mẫu huấn luyện gần với đối tượng đó nhất k mẫu huấn luyện này là k “mẫu láng giềng gần nhất” của mẫu cần phân lớp Kết quả phân lớp cho đối tượng mục tiêu là kết quả bầu cử của k mẫu láng giềng gần nhất của nó Nghĩa là nhãn lớp của đối tượng mục tiêu được xác định là lớp có nhiều mẫu xuất hiện nhất trong k mẫu láng giềng gần nhất của đối tượng mục tiêu đó Nếu k = 1 thì nhãn lớp của đối tượng mục tiêu chính là nhãn lớp của mẫu gần nó nhất Trong ví dụ ở Hình 2-6, nếu k=3, mẫu cần phân lớp (mẫu hình tròn) sẽ được xác định thuộc lớp hình tam giác Nhưng nếu k=5, mẫu cần phân lớp sẽ được xác định thuộc lớp hình vuông
Thuật toán k láng giềng gần nhất không đưa ra định nghĩa rõ ràng về phép đo độ tương tự giữa các đối tượng dữ liệu Tùy thuộc vào đặc điểm của từng loại dữ liệu, có thể sử dụng các phép đo độ tương tự khác nhau Trong trường hợp dữ liệu chuỗi thời gian, phép đo độ tương tự có thể là khoảng cách Euclid hoặc khoảng cách DTW như đã mô tả ở phần 2.1.
Với giải thuật phân lớp k láng giềng gần nhất, giai đoạn huấn luyện chỉ bao gồm việc lưu trữ các đối tượng dữ liệu trong tập huấn luyện cùng với nhãn lớp tương ứng
Việc lưu trữ này có thể bao gồm việc sắp xếp thứ tự cho tập huấn luyện
Hình 2-6 Giải thuật phân lớp k-Nearest-Neighbor.
CÁC CÔNG TRÌNH CÓ LIÊN QUAN
Ràng buộc đối với đường xoắn cho khoảng cách DTW
Tính toán DTW là quá trình tốn kém vì phải tìm đường xoắn tối ưu trong ma trận bằng quy hoạch động Tuy nhiên, đường xoắn tối ưu thường gần với đường chéo ma trận, vì thế ta có thể giới hạn phạm vi tìm đường xoắn tối ưu để giảm chi phí Ràng buộc phổ biến trong phạm vi tìm đường xoắn tối ưu là dải Sakoe-Chiba và hình bình hành Itakura Trong lĩnh vực này, ràng buộc này thường được gọi là cửa sổ xoắn.
3.1.1 Ràng buộc dải Sakoe-Chiba
Ràng buộc trên cửa sổ xoắn này được đề xuất bởi Sakoe và Chiba (1978) [6]
Ràng buộc này được mô tả như sau
Gọi đường xoắn tối ưu là tập các ô trong ma trận gióng hàng của hai chuỗi thời gian:
Trong đó w k = (i, j) k Ràng buộc dải Sakoe-Chiba (Sakoe-Chiba Band) yêu cầu |i– j| r, trong đó r là một số nguyên dương cho trước được gọi là cửa sổ xoắn
Hình 3.1.a minh họa hình dạng cửa sổ xoắn ứng với ràng buộc dải Sakoe-Chiba
3.1.2 Ràng buộc hình bình hành Itakura
Ràng buộc hình bình hành Itakura (Itakura Paralelogram) được đề xuất bởi Itakura (1975) [8] Ràng buộc hình bình hành Itakura cũng định nghĩa đường xoắn cũng bao gồm một tập các ô trong ma trận gióng hàng của hai chuỗi thời gian:
Trong đó w k = (i, j) k Ràng buộc Itakura Parallelogram yêu cầu |i – j| r, trong đó r là một hàm biến thiên theo thời gian
Hình 3-1.b minh họa hình dạng cửa sổ xoắn ứng với ràng buộc Hình bình hành Itakura
Hình 3-1 Hai loại ràng buộc đối với đường xoắn: a) Dải Sakoe-Chiba và b) Hình bình hành Itakura (nguồn: [5])
Ratanamahatana & Keogh (2004) [4] đã đề xuất dải Ratanamahatana-Keogh (dải R-K) dựa trên nhận xét rằng cửa sổ xoắn có thể có hình dạng không đồng nhất Dải R-
K được đề xuất nhằm hai mục đích: tăng tốc việc tính toán khoảng cách DTW và nâng cao độ chính xác của quá trình phân lớp vì cửa sổ xoắn là kết quả học dựa trên tập dữ liệu mẫu Hình 3-2.A trình bày một ví dụ của dải R-K khi so sánh với dải Sakoe-Chiba và Hình bình hành Itakura
Hình 3-2 Hình dạng của các loại ràng buộc cửa sổ xoắn: A) Dải R-K,B) Dải
Sakoe-Chiba, C) Hình bình hành Itakura (nguồn: [4]) Để tìm ra dải R-K cho một tập dữ liệu, Ratanamahatana và các cộng sự xem bài toán này như một bài toán tìm kiếm cổ điển Để sử dụng kỹ thuật tìm kiếm heuristic, cần phải đặc tả hướng tìm kiếm, như tìm kiếm tiến (forward), tìm kiếm lùi (backward) hay kết hợp hai hướng (bi-direction), trạng thái khởi động, hàm heuristic, các thao tác và phép kiểm tra cuối cùng Tìm kiếm tiến bắt đầu với trạng thái là dải Sakoe-Chiba có kích thước bằng 0 (khoảng cách Euclid), còn tìm kiếm lùi bắt đầu với trạng thái là dải đồng nhất có kích thước bằng cạnh lớn nhất m
Hình 3-3 Minh họa giải thuật tìm kiếm tiến sử dụng độ chính xác
Về mặt lý thuyết, ngưỡng có thể là một ô, nhưng ngưỡng này có thể gây ra tình trạng quá khớp (overfitting) Ratanamahatana và các cộng sự đề nghị ngưỡng có giá trị √ ⁄2, trong đó m là chiều dài của chuỗi dữ liệu nhập.
Các kỹ thuật tính chặn dưới cho khoảng cách DTW
Mục này giới thiệu ý nghĩa của chặn dưới cho khoảng cách DTW trong quá trình tìm kiếm tuần tự và trình bày một số chặn dưới cho khoảng cách DTW phổ biến
3.2.1 Ý nghĩa của chặn dưới Ý nghĩa của việc tính chặn dưới được Ratanamahatana và Keogh trình bày trong [5] và có thể được tóm lược như sau: Bài toán tìm kiếm tương tự sử dụng khoảng cách Euclid có độ phức tạp I/O lớn, tuy nhiên việc tìm kiếm tương tự sử dụng DTW còn có chi phí CPU lớn Độ phức tạp tính toán của DTW là O(n 2 ) với tập mẫu có chiều dài n) Một cách để giải quyết vấn đề này là sử dụng một hàm chặn dưới tính toán nhanh, giúp lược bớt những chuỗi không thể là chuỗi so trùng tốt nhất Hình 3-4 thể hiện giải thuật tìm kiếm tuần tự sử dụng chặn dưới
Algorithm Lower_Bounding_Sequential_Scan(Q) best_so_far = infinity; for all sequences in database LB_dist = lower_bound_distance(Ci, Q); if LB_dist < best_so_far true_dist = DTW(Ci, Q); if true_dist < best_so_far best_so_far = true_dist; index_of_best_match = i; end if end if end for Hình 3-4 Giải thuật tìm kiếm tuần tự sử dụng chặn dưới (nguồn:[5])
Trong giải thuật này, việc tính toán khoảng cách DTW là không cần đối với những chuỗi có chặn dưới lớn hơn khoảng cách tốt nhất hiện tại
Các chặn dưới phải thỏa mãn một số ràng buộc sau:
- Không có lỗi so trùng sót (false dismissal): giá trị của chặn dưới phải luôn luôn nhỏ hơn hoặc bằng khoảng cách thực
- Tính toán nhanh: độ phức tạp tính toán phải nhỏ hơn nhiều lần độ phức tạp tính toán của độ đo DTW nguyên thủy
- Chặn dưới chặt: giá trị của chặn dưới càng gần với khoảng cách thực càng tốt Chặn dưới có giá trị gần như bằng 0 sẽ không được sử dụng
3.2.2 Phương pháp tính chặn dưới LB_Keogh
Chặn dưới LB_Keogh được Keogh và các cộng sự đề xuất năm 2002 [2] Để tính được chặn dưới này, trước tiên các tác giả đề xuất tìm đường bao (envelope) của chuỗi thời gian dựa trên cửa sổ xoắn Và các tác giả cũng đề xuất hai cách tính đường bao dựa trên 2 loại cửa sổ xoắn phổ biến nhất là dải Sakoe-Chiba và hình bình hành Itakura
Với cửa sổ xoắn kích thước r, đường bao của chuỗi thời gian Q được tính như sau:
U và L lần lượt đại diện cho đường bao phía trên (Upper) và đường bao phía dưới (Lower) Với cửa sổ xoắn dải Sakoe-Chiba, r là một hằng số Còn với Itakura Parallelogram, r là một hàm theo biến i Lưu ý rằng, cho dù kích thước cửa sổ xoắn là một hằng số (dải Sakoe-Chiba), đường bao có thể có chiều rộng không bằng nhau Đường bao rộng hơn đối với những chuỗi thời gian thay đổi nhanh, và hẹp hơn với những chuỗi dữ liệu thay đổi chậm Hình 3-5 minh họa hình dạng của đường bao ứng với hai loại ràng buộc cửa sổ xoắn phổ biến: dải Sakoe-Chiba và hình bình hành Itakura
Hình 3-5 Đường bao ứng với hai loại ràng buộc: A) Dải Sakoe-Chiba và B) Hình bình hành Itakura (nguồn:[2])
Một tính chất hiển nhiên nhưng rất quan trọng của U và L đó là:
Với đường bao U và L được định nghĩa như trên, chặn dưới LB_Keogh được định nghĩa bằng công thức sau:
Hàm này có thể được xem là khoảng cách Euclid giữa những phần của chuỗi dữ liệu cần tính khoảng cách không rơi vào trong đường bao với phần tương ứng (thẳng hàng về mặt thời gian) gần nhất của đường bao Hình 3-6 minh họa hình ảnh trực quan của chặn dưới LB_Keogh
Hình 3-6 Hình ảnh trực quan của chặn dưới LB_Keogh (nguồn:[2])
Từ khi được công bố đến nay, đã có rất nhiều công trình nghiên cứu sử dụng chặn dưới LB_Keogh để tăng tốc quá trình tính khoảng cách DTW Ngoài các công trình của Keogh và các cộng sự, nhiều công trình của các nhóm nghiên cứu khác cũng sử
Việc tính toán khoảng cách DTW là không thể tăng tốc Vì vậy, để tăng tốc thì phải hạn chế số lần tính khoảng cách DTW Việc hạn chế này được thực hiện bằng các kỹ thuật tính chặn dưới
Giá trị chặn dưới LB_Keogh phụ thuộc vào kích thước của cửa sổ xoắn, cửa sổ xoắn càng rộng thì đường bao của chuỗi thời gian càng lớn, do đó giá trị của chuỗi mục tiêu càng dễ nằm trong đường bao này, dẫn đến giá trị chặn dưới nhỏ Do đó, chặn dưới LB_Keogh phù hợp hơn khi sử dụng với những cửa sổ xoắn có kích thước nhỏ.
Kích thước cửa sổ xoắn thường phụ thuộc vào đặc điểm của dữ liệu cần xử lý Vì vậy, nếu dữ liệu yêu cầu cửa sổ xoắn có kích thước nhỏ thì ta nên dùng kỹ thuật tính chặn dưới LB_Keogh.
Giải thuật phân lớp có thời gian thực thi tùy chọn
Giải thuật phân lớp có thời gian thực thi tùy chọn dựa trên giải thuật 1-Nearest- Neighbor Giải thuật này được ứng dụng vào bài toán phân lớp dữ liệu chuỗi thời gian bởi Ueno và các cộng sự (2006) [7] Ý tưởng chính của giải thuật là sắp xếp các chuỗi trong tập huấn luyện theo tiêu chí mức độ đóng góp của mỗi chuỗi vào việc phân lớp chính xác cho lớp dữ liệu chứa chuỗi đó Chuỗi nào đóng góp nhiều hơn vào việc phân lớp chính xác thì chuỗi đó có thứ hạng cao hơn Sau khi đã sắp xếp tập huấn luyện theo thứ tự như trên, giải thuật lần lượt tìm chuỗi gần nhất với chuỗi mục tiêu trong tập huấn luyện theo thứ tự đó Người dùng có thể yêu cầu dừng giải thuật bất cứ lúc nào và kết quả phân lớp sẽ là lớp của mẫu gần nhất với mẫu mục tiêu đến thời điểm đó
Gọi Database là tập huấn luyện gồm m mẫu Mẫu thứ i của tập huấn luyện này được truy xuất bằng Database.object(i), và nhãn lớp của mẫu thứ i này được truy xuất bằng Database.class_label(i) Hình 3-7 thể hiện giải thuật phân lớp có thời gian tùy chọn
The Anytime_Classifier algorithm initializes the best match value and class as infinity and undefined, respectively It then iterates through the classes in the database, calculating the distance between each object and the given object O If the distance is less than the best match value, the best match value and class are updated The algorithm can be interrupted at this point, and the current best match result can be returned If the user has not interrupted the algorithm, it continues to iterate through the remaining objects, updating the best match value and class as needed The algorithm returns the best match value and class when the interruption condition is met or when all objects have been processed.
Gọi Index là một hoán vị của các số nguyên từ 1 đến m, với m là kích thước của Database Cuối cùng, gọi O là đối tượng cần được phân lớp sử dụng giải thuật phân lớp láng giềng gần nhất có thời gian thực thi tùy chọn với Database là tập huấn luyện
Tại một thời điểm S, với number_of_classes(Database) S m, giải thuật sẽ bị ngắt và kết quả phân lớp cho O sẽ được ghi nhận
Trong mười dòng đầu tiên, giải thuật so sánh O với một mẫu trong mỗi lớp của tập huấn luyện và gán nhãn lớp của mẫu gần nhất với O cho O Lưu ý rằng giải thuật không được phép dừng trong giai đoạn này, tuy nhiên giai đoạn này chỉ chiếm khoảng
Giải thuật sẽ duyệt các mẫu trong tập dữ liệu theo thứ tự được định nghĩa trong hàm Index cho đến khi không còn mẫu nào để so sánh hoặc quá trình huấn luyện bị ngắt Trong quá trình này, giải thuật liên tục so sánh mẫu đầu vào O với từng mẫu trong tập dữ liệu và cập nhật kết quả phân lớp để phản ánh thông tin tích lũy được cho đến thời điểm đó.
Giải thuật không định nghĩa Index được sắp xếp như thế nào Giải thuật cũng đề nghị distance(Database.object(Index p ), O) có thể là độ đo khoảng cách bất kỳ, như khoảng cách Euclid, khoảng cách Manhattan, hay khoảng cách xoắn thời gian động, tùy theo nhu cầu của ứng dụng cũng như đặc điểm của dữ liệu
3.3.2 Sắp xếp tập huấn luyện
Với giải thuật phân lớp có thời gian thực thi tùy chọn như đã trình bày ở mục 3.3.1, có hai cách để cải tiến giải thuật: thay đổi độ đo khoảng cách và thay đổi thứ tự sắp xếp Index Tuy nhiên, Ueno và các cộng sự [7] chỉ tập trung vào việc phân tích quá trình sắp xếp tập huấn luyện
Hình 3-8 trình bày giải thuật sắp xếp tập huấn luyện Ý tưởng chính của giải thuật này như sau: giải thuật bắt đầu bằng việc tìm chuỗi xấu nhất trong tập huấn luyện (dòng 5, 6), và gán nó vào vị trí cuối cùng trong Index (dòng 7) Để đảm bảo rằng chuỗi này không được xem xét lại một lần nữa, giải thuật thay thế nó trong danh sách ban đầu bằng giá trị null (dòng 8) Sau đó, giải thuật lặp lại việc tìm chuỗi xấu nhất trong phần còn lại và gán cho chuỗi đó vị trí trống cuối cùng trong Index
Function [Index] = Order_Index(Training_Database) Index = create_vector_of_size(m);
//m is the size of Training_Database for p=0 to m–(1+number_of_classes(Training_Database)) location =find_location_of_worst_examplar(Training_Database) indexm-p = location;
Training_Database(location) = null; end for
Hình 3-8 Giải thuật sắp xếp tập huấn luyện
Giải thuật trên hoàn toàn tổng quát và rõ nghĩa, ngoại trừ việc làm thế nào để xác định chuỗi xấu nhất là chưa được trình bày Đây là một điểm mở của giải thuật, cho phép mỗi người có thể có cách định nghĩa riêng của mình về cách xác định thế nào là chuỗi xấu nhất
Lưu ý rằng, giải thuật này tìm kiếm chuỗi xấu nhất trước thay vì tìm chuỗi tốt nhất trước Điều đó có nghĩa, ta hoàn toàn có thể tìm kiếm theo chiều ngược lại, theo đó ta tìm chuỗi tốt nhất và đặt nó vào vị trí đầu tiên trong Index, sau đó tìm chuỗi tốt nhất kế tiếp và đặt nó vào vị trí trống tiếp theo Lý do chính cho quyết định chọn cách tìm chuỗi xấu nhất trước là vì việc xác định chuỗi tốt nhất là rất khó trong giai đoạn đầu của giải thuật Rất khó để đánh giá mức độ hữu dụng của một chuỗi riêng lẻ trong giai đoạn đầu của giải thuật tìm chuỗi tốt nhất trước vì ta quan tâm đến những ranh giới mang tính quyết định, được định nghĩa bằng hai (hoặc nhiều hơn) hai chuỗi thuộc các lớp khác nhau
Phần tiếp theo của mục này giới thiệu một số tiêu chí sắp xếp tập huấn luyện
Random và BestDrop là trường hợp xấu nhất và tốt nhất SimpleRank là kỹ thuật sắp xếp mà Ueno và các cộng sự [7] đã đề xuất:
- Random: Thứ tự sắp xếp được xác định một cách ngẫu nhiên
BestDrop là kỹ thuật sắp xếp tạo danh sách các mẫu lân cận, bao gồm cả những mẫu đồng loại (associates) và những mẫu khác loại (enemies) Kỹ thuật này sử dụng một hàm tính điểm có trọng số dựa trên danh sách này để sắp xếp các mẫu trong tập huấn luyện.
- SimpleRank: Ý tưởng chính của kỹ thuật sắp xếp này là gán cho mỗi mẫu một thứ hạng dựa trên sự đóng góp của nó vào việc phân lớp Thứ hạng (rank) của mỗi mẫu x được tính bằng công thức:
Trong đó, x j là mẫu nhận x là láng giềng gần nhất Ý tưởng của việc sắp xếp này là tăng thứ hạng cho những mẫu phân lớp chính xác các mẫu khác, và giảm thứ hạng nhiều hơn đối với những mẫu phân lớp sai các mẫu khác
Tại mỗi bước của thuật toán sắp xếp, mẫu dữ liệu có thứ hạng thấp nhất sẽ được gán vào vị trí trống cuối cùng và bị loại khỏi tập huấn luyện đang xét, nhằm đảm bảo thứ hạng của các mẫu dữ liệu được sắp xếp chính xác và hiệu quả nhất.
Phát hiện motif cho dữ liệu chuỗi thời gian
Phương pháp tìm kiếm mẩu lặp thường xuyên (motif) do E Keogh và các cộng sự đưa ra vào năm 2002 [1] cho chuỗi thời gian là một trong những phương pháp thường được sử dụng nhiều nhất Mục đích của phương pháp này là tìm ra những mẩu dữ liệu thường xuất hiện trong chuỗi thời gian ban đầu, từ đó đưa ra những tóm lược và phản ánh đặc trưng cho chuỗi thời gian Việc tìm kiếm các chuỗi thời gian con này thường phục vụ cho quá trình gom cụm dữ liệu (clustering), khám phá các luật kết hợp cũng như phân lớp (classification) dữ liệu Các ứng dụng tìm chuỗi con xuất hiện được áp dụng trong các lĩnh vực y khoa, điều khiển tự động, chế tạo người máy… o Chuỗi con trùng khớp (Match) : Cho một số thực dương R và một chuỗi thời gian
T, một chuỗi con C bắt đầu vị trí p và chuỗi con M bắt đầu từ vị trí q Nếu D(C,M) ≤
Cách định nghĩa chuỗi con trùng khớp như trên là rõ ràng về mặt trực giác
Nhưng cách định nghĩa này phản ánh sự khớp nhau một cách tầm thường Chúng ta sẽ quan tâm như thế nào là khớp tốt nhất (best matches) giữa các chuỗi con Và chúng ta có hai chuỗi con khớp với chuỗi con hiện có tại hai điểm bên trái và bên phải
Từ sự quan sát Hình 3-10, ta đưa ra định nghĩa khớp tầm thường như sau:
Hình 3-9 Mô phỏng phát hiện motif dữ liêu chuỗi thời gian 3 chuỗi dữ liệu con bên dưới thường xuất hiện trong chuỗi dữ liệu ban đầu ở phía trên
Hình 3-10 Mô phỏng chuỗi con trùng khớp (matching) giữa hai chuỗi con C và M Chuỗi thời gian T là đường màu đen nhỏ, chuỗi con C có hình màu đen in đậm và chuỗi M có hình màu xám
Chuỗi con trùng khớp tầm thường (trivial match) : Cho chuỗi thời gian T và một chuỗi con trùng khớp tầm thường với C nếu p=q hoặc không tồn tại chuỗi con M’ bắt đầu từ vị trí p’ mà D(C,M’)>R và q