HCMTRƯỜNG ĐẠI HỌC BÁCH KHOA ---VÕ ĐẠI DƯƠNG PHÂN LỚP DỮ LIỆU CHUỖI THỜI GIAN DỰA VÀO MỘT TỔ HỢP BỘ PHÂN LỚP 1-NN VỚI CÁC ĐỘ ĐO KHOẢNG CÁCH KHÁC NHAU... TÊN ĐỀ TÀI: PHÂN LỚP DỮ LIỆU CHUỖ
Trang 1ĐẠI HỌC QUỐC GIA TP HCM
TRƯỜNG ĐẠI HỌC BÁCH KHOA
-VÕ ĐẠI DƯƠNG
PHÂN LỚP DỮ LIỆU CHUỖI THỜI GIAN DỰA VÀO MỘT TỔ HỢP BỘ PHÂN LỚP 1-NN VỚI CÁC ĐỘ ĐO KHOẢNG CÁCH KHÁC NHAU
Trang 2CÔNG TRÌNH ĐƯỢC HOÀN THÀNH TẠI TRƯỜNG ĐẠI HỌC BÁCH KHOA - ĐHQG - HCM
Cán bộ hướng dẫn khoa học: PGS.TS Dương Tuấn Anh
Cán bộ chấm nhận xét 1: PGS.TS Võ Thị Ngọc Châu
Cán bộ chấm nhận xét 2: TS Dương Ngọc Hiếu
Luận văn thạc sĩ được bảo vệ tại Trường Đại học Bách Khoa, ĐHQG Tp HCMngày 21 tháng 07 năm 2022
Thành phần Hội đồng đánh giá luận văn thạc sĩ gồm:
(Ghi rõ họ, tên, học hàm, học vị của Hội đồng chấm bảo vệ luận văn thạc sĩ)
1 PGS.TS Huỳnh Tường Nguyên - Chủ tịch
2 TS Nguyễn Tiến Thịnh - Thư ký
3 PGS.TS Võ Thị Ngọc Châu - Phản biện 1
4 TS Dương Ngọc Hiếu - Phản biện 2
5 TS Lê Văn Quốc Anh - Ủy viên
Xác nhận của Chủ tịch Hội đồng đánh giá LV và Trưởng Khoa quản lý chuyên ngànhsau khi luận văn đã được sửa chữa (nếu có)
TRƯỞNG KHOA CHỦ TỊCH HỘI ĐỒNG KHOA HỌC & KỸ THUẬT MÁY TÍNH
Trang 3ĐẠI HỌC QUỐC GIA TP HCM CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM TRƯỜNG ĐẠI HỌC BÁCH KHOA Độc lập - Tự do - Hạnh phúc
-
-NHIỆM VỤ LUẬN VĂN THẠC SĨ
Họ tên học viên: VÕ ĐẠI DƯƠNG MSHV: 1970585
Ngày, tháng, năm sinh: 01/08/1990 Nơi sinh: Ninh Thuận
Chuyên ngành: Khoa học máy tính Mã số: 8.48.01.01
I TÊN ĐỀ TÀI:
PHÂN LỚP DỮ LIỆU CHUỖI THỜI GIAN DỰA VÀO MỘT TỔ HỢP BỘ PHÂNLỚP 1-NN VỚI CÁC ĐỘ ĐO KHOẢNG CÁCH KHÁC NHAU VÀ CÔNG NGHỆGPU (TIME SERIES DATA CLASSIFICATION BASED ON A COMBINATION OF1-NN CLASSIFIERS WITH DIFFERENT DISTANCE METRICS AND GPUTECHNOLOGY)
II NHIỆM VỤ VÀ NỘI DUNG:
Đề xuất, nghiên cứu, thực hiện, đánh giá “Phân lớp dữ liệu chuỗi thời gian dựa vào
một tổ hợp bộ phân lớp 1-NN với các độ đo khoảng cách khác nhau và công nghệ
GPU”
III NGÀY GIAO NHIỆM VỤ: 08/09/2021
IV NGÀY HOÀN THÀNH NHIỆM VỤ: 10/06/2022
V CÁN BỘ HƯỚNG DẪN: PGS TS Dương Tuấn Anh
Tp HCM, ngày tháng năm 2022
PGS TS Dương Tuấn Anh
TRƯỞNG KHOA KHOA HỌC & KỸ THUẬT MÁY TÍNH
Trang 4LỜI CẢM ƠN
Lời đầu tiên, tôi muốn gửi lời cảm ơn chân thành đến PGS.TS Dương TuấnAnh, người đã định hướng, hỗ trợ, hướng dẫn tôi trong suốt quá trình hoàn thiện luậnvăn này và cũng là người truyền lửa để cho tôi có rất nhiều cảm hứng trong con đườnghọc tập và nghiên cứu hiện tại
Tôi cũng xin gửi lời cảm ơn đến tất cả các giảng viên bộ môn Khoa học máytính đã luôn sẵn lòng giúp đỡ và hỗ trợ tôi, cũng như đảm bảo môi trường học tập vànghiên cứu trong suốt thời gian học thạc sĩ
Cuối cùng, tôi bày tỏ lòng biết ơn sâu sắc đến gia đình và bạn bè đã hỗ trợ, cổ
vũ tôi trong suốt quá trình học tập và thực hiện luận văn này
Xin chân thành cảm ơn
Tp Hồ Chí Minh, tháng 6 năm 2022
Võ Đại Dương
Trang 5TÓM TẮT
Việc nghiên cứu và ứng dụng kỹ thuật phân lớp dữ liệu chuỗi thời gian hiện nayđang được thu hút nhiều sự chú ý của các nhà nghiên cứu dữ liệu Với sự phát triểnnhanh về công nghệ, dữ liệu chuỗi thời gian được thu thập bởi rất nhiều thiết bị Việckhai phá dữ liệu chuỗi thời gian mang lại lợi ích hữu hiệu trải dài nhiều lĩnh vực nhưkhai phá dữ liệu, thống kê, học máy, xử lý tín hiệu, v.v…
Có nhiều phương pháp phân lớp dữ liệu chuỗi thời gian, chúng tôi chọn cáchtiếp cận phương pháp phân lớp dữ liệu chuỗi thời gian dựa vào độ đo khoảng cách
Nhiều đánh giá được thực hiện cho thấy rằng bộ phân lớp 1-lân cận gần nhất (1-NN)
là một trong những bộ phân lớp tốt nhất được sử dụng cho dữ liệu chuỗi thời gian Các
công trình đi trước sử dụng phương pháp phân lớp chuỗi thời gian dựa vào tổ hợp bộ
phân lớp 1-NN với các độ đo khoảng cách khác nhau đã cho độ chính xác khá tốt, tuy
nhiên chưa tối ưu tốc độ thực thi của bộ phân lớp Với mục tiêu là tăng độ chính xácphân lớp và thời gian thực thi, dựa trên công trình đi trước của Phạm Minh Trí (2020)
[1], [2], chúng tôi đề xuất một cách tiếp cận là xây dựng một tổ hợp bộ phân lớp 1-NN
với các độ đo khoảng cách khác nhau được bổ sung thêm một độ đo thành phần, kết hợp với việc ứng dụng công nghệ GPU.
Chúng tôi đã tiến hành thực nghiệm 14 tập dữ liệu mẫu từ website UCR cho đềxuất này và kết quả cho thấy độ chính xác phân lớp tốt hơn và thời gian thực thi cũngnhanh hơn so với tổ hợp bộ phân lớp trong công trình của Phạm Minh Trí Kết quả thuđược là độ chính xác phân lớp của tổ hợp bộ phân lớp đạt trung bình 92% và thời gianphân lớp của tổ hợp bộ phân lớp sử dụng công nghệ GPU nhanh hơn trung bình 48 lần
so với tổ hợp bộ phân lớp thực thi trên CPU
Trang 6The research and application of time series data classification techniques havebeen attracting the attention of data researchers With the rapid development oftechnology, time series data has been collected by many devices Time series datamining will bring benefits to many areas, such as data mining, statistics, machinelearning, signal processing, etc…
There are many methods of time series data classification We choose theapproach to time series data classification method based on distance measures Many
evaluations have been made showing that the one nearest neighbor (1-NN) is one of the best classifiers used for time series data Previous works used the method of Time
series data classification based on a combination of 1-NN classifiers with different distance metrics showed a good accuracy, but hasn’t improved the classification time.
With the objectives to improve the classification accuracy and time, based on theprevious work of Pham Minh Tri (2020) [1], [2], we suggest an approach that
implements a Time series data classification based on a combination of 1-NN
classifiers with different distance metrics with an additional distance metric and the application of GPU technology.
We experimented on 14 sample data sets from the UCR website for thisproposal and the results showed that the classification accuracy and time were betterthan the ensemble of classifiers in the work of Pham Minh Tri The results are that theclassification accuracy of the ensemble of classifiers is average 92% and theclassification time of the ensemble of classifiers running on GPU is on average 48times faster than the ensemble of classifiers running on CPU
Trang 7LỜI CAM ĐOAN
Trong luận văn này, bất kỳ công thức, ý tưởng, nghiên cứu hay phân tích nào đãmượn bên thứ ba được chú thích nguồn dẫn trong mục tài liệu tham khảo theo quyềncủa tác giả
Tôi cam đoan rằng, ngoài các tài liệu tham khảo được trích dẫn, toàn bộ nộidung khác (bao gồm lý luận, công thức, hình ảnh, …) là thành quả nghiên cứu của tôidưới sự hướng dẫn của PGS.TS Dương Tuấn Anh
Tôi khẳng định rằng, toàn bộ các nội dung tìm hiểu đều được chứng thực từ cácnguồn tin cậy Các số liệu dẫn chứng và đánh giá hoàn toàn trung thực, tuyệt đốikhông gian lận hoặc phóng đại
Nếu có bất kỳ sự gian lận nào, tôi xin hoàn toàn chịu trách nghiệm về luận vănnày
Tp Hồ Chí Minh, tháng 6 năm 2022
Võ Đại Dương
Trang 82.5 Đánh giá độ chính xác của bộ phân lớp - kiểm tra chéo k-phần 15
2.6.1 Mô hình lập trình CUDA 162.6.2 Kiến trúc tính toán GPU 17
CHƯƠNG 3: CÁC CÔNG TRÌNH LIÊN QUAN 19
3.1 Phân lớp dữ liệu chuỗi thời gian dựa vào tổ hợp bộ phân lớp 193.2 Độ đo xoắn thời gian động cải tiến (DDTW) 203.3 Kỹ thuật tính chặn dưới của Keogh 203.4 Công trình của Phạm Minh Trí 233.5 Độ đo khoảng cách Hệ Số Nén (CRD) 26
CHƯƠNG 4: PHƯƠNG PHÁP PHÂN LỚP ĐỀ XUẤT 29
4.2 Phân lớp dữ liệu với tổ hợp bộ phân lớp 1-NN với các độ đo khoảng cách khác
CHƯƠNG 5: THỰC NGHIỆM VÀ ĐÁNH GIÁ 33
5.1 Cấu hình hệ thống sử dụng trong thực nghiệm 33
Trang 95.2 Các phương pháp và các bộ dữ liệu thực nghiệm 33
6.1 Những kết quả đạt được của luận văn 476.2 Những khó khăn trong quá trình thực hiện luận văn 476.3 Hướng phát triển trong tương lai 48
Trang 10DANH MỤC HÌNH
Hình 2.1: Một lân cận gần nhất của mẫu thử X 7Hình 2.2: Tổ hợp bộ phân lớp [8] 8Hình 2.3: Biên độ hai chuỗi thời gian với độ đo Euclid 9Hình 2.4: So sánh độ đo DTW với Euclid [12] 10Hình 2.5: Ma trận xoắn chuỗi thời gian A và B [13] 11Hình 2.6: Độ đo xoắn thời gian động với ràng buộc dải Sakoe-Chiba [14] 12Hình 2.7: Ràng buộc toàn cục của độ đo xoắn thời gian động 13Hình 2.8: Kiểm tra chéo k-phần với k = 4 [15] 15Hình 2.9: Sự phân cấp của các luồng, các khối luồng và các lưới khối
trong CUDA, cùng với các không gian bộ nhớ tương ứng [16] 16Hình 2.10: Kiến trúc tính toán Fermi GPU [16] 18Hình 3.1: Mô tả đường bao U và L của chuỗi Q [20] 21Hình 3.2: Mô tả kỹ thuật chặn dưới của Keogh [20] 22Hình 3.3: Quy trình tổng quan của hệ thống do Phạm Minh Trí đề xuất
Hình 3.4: Sơ đồ kiểm tra chéo k-phần của tổ hợp các độ đo khoảng cách
Hình 3.5: Ba chuỗi thời gian Q, C và R trong đó Q và C trông giống
nhau; C và R trông khác nhau [7] 27Hình 4.1: Tổng quan hệ thống 29Hình 4.2: Kiểm tra chéo k-phần tổ hợp bộ phân lớp 1-NN với các độ đo
khoảng cách khác nhau sử dụng công nghệ GPU 31Hình 4.3: Phương pháp Song song mặt đầu sóng [23] 32Hình 5.1: Hình chụp của một con cá và biểu diễn thành chuỗi thời gian
Trang 11Hình 5.2: Biểu diễn ba lớp của dữ liệu CBF 37Hình 5.3: Ví dụ về bốn nhóm lớp của bộ dữ liệu Trace 38Hình 5.4: Tỉ lệ lỗi phân lớp trên bộ dữ liệu ArrowHead 39Hình 5.5: Thời gian phân lớp trên bộ dữ liệu ArrowHead 39Hình 5.6: Tỉ lệ lỗi phân lớp trên bộ dữ liệu Beef 40Hình 5.7: Thời gian phân lớp trên bộ dữ liệu Beef 41Hình 5.8: Tỉ lệ lỗi phân lớp trên bộ dữ liệu CBF 41Hình 5.9: Thời gian phân lớp trên tập dữ liệu CBF 42Hình 5.10: Tỉ lệ lỗi phân lớp trên bộ dữ liệu Trace 43Hình 5.11: Thời gian phân lớp trên bộ dữ liệu Trace 43Hình 5.12: Tỉ lệ lỗi của bộ phân lớp trên bộ dữ liệu ECGFiveDays 44Hình 5.13: Thời gian phân lớp trên tập dữ liệu ECGFiveDays 44
Trang 12DANH MỤC BẢNG
Bảng 5.1: Thông số kỹ thuật của card đồ họa Nvidia GTX 960 [24] 33Bảng 5.2: Ký hiệu các bộ dữ liệu 35Bảng 5.3: Thông tin các bộ dữ liệu được sử dụng trong thực nghiệm 35Bảng 5.4: Thông tin các bộ dữ liệu được sử dụng trong thực nghiệm (tiếp
Trang 13CHƯƠNG 1 GIỚI THIỆU ĐỀ TÀI
Trong chương này, chúng tôi sẽ trình bày các vấn đề mà đề tài tập trung nghiêncứu, các động cơ để thực hiện, mục tiêu cụ thể của đề tài Ngoài ra, chúng tôi sẽ mô tảcác kết quả đạt được trong quá trình nghiên cứu, khảo sát nội dung của đề tài
Nhiều công trình nghiên cứu đã cải thiện độ chính xác của phương pháp phânlớp chuỗi thời gian Các nhà nghiên cứu trong lĩnh vực khai phá dữ liệu chuỗi thời
gian đồng thuận rằng “bộ phân lớp một lân cận gần nhất là rất khó đánh bại” [3] Ding và các cộng sự (2008) [4] bằng thực nghiệm đã cho thấy giải thuật 1-lân cận gần
nhất (1-NN) kết hợp với độ đo DTW với kích thước cửa sổ xoắn được thiết lập thông
qua kiểm tra chéo đã được chấp nhận là tiêu chuẩn vàng một cách rộng rãi Trong côngtrình của Lines và các cộng sự (2015) [5], các tác giả đã dựa vào nghiên cứu của Ding
và các cộng sự (2008) và tìm ra rằng tổ hợp bộ phân lớp 1-NN với các độ đo khoảng
cách đàn hồi (elastic distance measure) khác nhau cho ra kết quả chính xác hơn bộ
phân lớp đơn lẻ sử dụng độ đo DTW
Lines và các cộng sự tạo ra tổ hợp các bộ phân lớp 1-NN với bảy độ đo khoảng
cách đàn hồi như sau: Dynamic Time Warping (DTW), Weighted Dynamic TimeWarping (WDTW), Longest Common Subsequence (LCS), Edit Distance with RealPenalty (EDRP), Time Warping Edit Distance (TWED) và Move-Split-Merge (MSM)
Được gợi cảm hứng từ công trình của Lines và các cộng sự, năm 2020, Phạm
Minh Trí [1], [2] đề xuất một phương pháp phân lớp chuỗi thời gian dựa vào tổ hợp bộ
phân lớp 1-NN với các độ đo khoảng cách khác nhau bao gồm các độ đo khoảng cách đàn hồi (elastic) và các độ đo khoảng cách không đàn hồi (non-elastic) Phạm Minh
Trang 14DDTW, DTW với cận dưới LB_Keogh (CDTW), độ đo Euclid và độ đo Bất biến với
Độ Phức tạp (CID) Kết quả thực nghiệm trên 14 bộ dữ liệu mẫu cho thấy phươngpháp phân lớp mà Trí đề xuất đã đạt được hiệu quả phân lớp khá tốt
Tuy nhiên nghiên cứu của Phạm Minh Trí (2020) cũng như nhiều công trìnhnghiên cứu đi trước khác chưa tối ưu tốc độ thực thi cho tổ hợp bộ phân lớp Chuỗithời gian là dữ liệu có số chiều lớn gây tốn kém nhiều chi phí trong việc xử lý và lưutrữ Ngoài hướng tiếp cận thu giảm số chiều mà vẫn giữ được các đặc trưng quantrọng, còn có hướng tiếp cận sử dụng sức mạnh xử lý song song của phần cứng nhưGPU (graphics processing unit) để tăng tốc tổ hợp bộ phân lớp
Tính toán bằng GPU đang được áp dụng rộng rãi trong các ứng dụng thôngthường cũng như tính toán hiệu suất cao [6] Mục tiêu của đề tài này là nghiên cứu
chuyển đổi các phần của phương pháp phân lớp chuỗi thời gian sử dụng tổ hợp bộ
phân lớp 1-NN với các độ đo khác nhau từ chạy tuần tự sang chạy song song với mô hình tính toán song song CUDA (Compute Unified Device Architecture) trên GPU của
Nvidia
Đề tài này hướng tới việc sử dụng sức mạnh trong tính toán song song của GPU
để tăng tốc độ của phương pháp gốc đang tốn nhiều thời gian để thực thi Bên cạnh đó,
đề tài bổ sung thêm một độ đo khoảng cách mới để tăng thêm sự đa dạng của tổ hợp
bộ phân lớp Đề tài sẽ so sánh: (1) độ chính xác của phương pháp khi có thêm độ đomới và (2) thời gian thực thi của phương pháp khi chạy trên GPU
Từ những kết quả đạt được, chúng ta sẽ biết được khả năng tăng tốc khi xử lýbằng GPU có tốt hơn hay không và tốt hơn bao nhiêu lần so với xử lý bằng CPU Điềunày có ý nghĩa quan trọng khi lượng dữ liệu hiện nay ngày càng lớn, cũng như sứcmạnh của GPU cũng ngày càng được nâng cao
1.2 Mục tiêu
Chúng tôi thực hiện đề tài này nhằm đánh giá hiệu năng của tổ hợp bộ phân lớp
đề xuất khi thực thi trên GPU với các tiêu chí: (1) độ chính xác phân lớp và (2) đánhgiá thời gian thực thi trong việc phân lớp chuỗi thời gian cho bài toán phân lớp chuỗithời gian, với các vấn đề chính như sau:
- Thêm vào tổ hợp bộ phân lớp mà Phạm Minh Trí đề xuất một bộ phân lớp
1-NN với một độ đo khoảng cách không đàn hồi mới: Độ đo hệ số nén
(Compression Rate Distance) (Vinh & Anh, 2015 [7])
Trang 15- Sử dụng sức mạnh xử lý song song của GPU để tăng tốc tổ hợp bộ phân lớp.
1.3 Phạm vi nghiên cứu
Phạm vi của đề tài này là đề xuất, nghiên cứu, hiện thực, đánh giá “Phân lớp dữ
liệu chuỗi thời gian dựa vào một tổ hợp bộ phân lớp 1-NN với các độ đo khoảng cách
khác nhau và công nghệ GPU” Kết quả này là tiền đề cho việc nghiên cứu tăng độchính xác cũng như thời gian phân lớp đối với dữ liệu chuỗi thời gian
1.4 Những kết quả đạt được
Sau thời gian nghiên cứu và hiện thực, chúng tôi đạt được các kết quả như sau:
‐ Hiểu rõ độ đo xoắn thời gian động DTW thuần tuý và DTW với kỹ thuật tínhchặn dưới LB_Keogh
‐ Hiểu rõ độ đo DDTW, một biến thể của độ đo DTW
‐ Hiểu rõ độ đo bất biến với độ phức tạp CID
‐ Hiểu rõ độ đo khoảng cách Hệ Số Nén CRD
‐ Nắm được giải thuật k-lân cận gần nhất (k-NN) dùng cho bài toán phân lớp dữ
liệu chuỗi thời gian
‐ Hiện thực thành công tổ hợp bộ phân lớp 1-NN với các độ đo khoảng cách: ED,
DTW, DTW với kỹ thuật tính chặn dưới LB_Keogh, DDTW, CID, CRD trênGPU
‐ So sánh độ chính xác của tổ hợp bộ phân lớp 1-NN với các độ đo khoảng cách:
ED, DTW, DTW với kỹ thuật tính chặn dưới LB_Keogh, DDTW, CID, CRD,
tổ hợp bộ phân lớp 1-NN với các độ đo khoảng cách trên không bao gồm độ đo CRD Kết quả thực nghiệm cho thấy tổ hợp bộ phân lớp 1-NN với các độ đo bao gồm độ đo CRD có độ chính xác cao hơn tổ hợp bộ phân lớp 1-NN với các
độ đo khoảng cách không bao gồm độ đo CRD
‐ So sánh thời gian xử lý của tổ hợp bộ phân lớp 1-NN với các độ đo khoảng
cách: ED, DTW, DTW với kỹ thuật tính chặn dưới LB_Keogh, DDTW, CID,
CRD trên GPU và tổ hợp bộ phân lớp 1-NN các độ đo khoảng cách: ED, DTW,
DTW với kỹ thuật tính chặn dưới LB_Keogh, DDTW, CID, CRD trên CPU.Kết quả cho thấy thời gian xử lý của tổ hợp bộ phân lớp trên GPU nhanh hơntrên CPU trung bình 48 lần
Trang 16Như vậy, về cơ bản chúng tôi đã đáp ứng được yêu cầu của đề tài đặt ra Chúngtôi sẽ trình bày chi tiết trong các phần sau.
1.5 Cấu trúc của luận văn
Tổ chức các thành phần còn lại của luận văn gồm các phần như sau:
Chương 2 là các cơ sở lý thuyết mà chúng tôi sử dụng trong luận văn này, baogồm các lý thuyết cơ bản về chuỗi thời gian, các phương pháp phân lớp dữ liệu chuỗithời gian, lý thuyết về các độ đo khoảng cách của chuỗi thời gian và lý thuyết về lậptrình CUDA trên GPU
Chương 3 giới thiệu các công trình nghiên cứu liên quan Các công trình nàytrình bày về các kỹ thuật phân lớp, tổ hợp bộ phân lớp, các độ đo khoảng cách trong
dữ liệu chuỗi thời gian, từ cơ sở này đề xuất phương pháp nhằm tăng độ chính xácphân lớp trong việc phân lớp dữ liệu chuỗi thời gian
Chương 4 bao gồm các nội dung chi tiết cho việc thiết kế và hiện thực tổ hợp
bộ phân lớp 1-NN với các độ đo khoảng cách khác nhau.
Chương 5 của đề tài này sẽ trình bày các kết quả thực nghiệm đạt được trongquá trình nghiên cứu, qua đó đánh giá được độ chính xác và thời gian thực thi củaphương pháp phân lớp đề xuất
Chương 6 là một số kết luận, đóng góp của đề tài và hướng phát triển trongtương lai của đề tài
Trang 17CHƯƠNG 2
CƠ SỞ LÝ THUYẾT
Chương này trình bày cơ sở lý thuyết về chuỗi thời gian, các thành phần củachuỗi thời gian, các độ đo khoảng cách sử dụng cho dữ liệu chuỗi thời gian, các kỹthuật ràng buộc, các phương pháp phân lớp chuỗi chuỗi thời gian, các tiêu chí đánh giá
độ chính xác trong kỹ thuật phân lớp
2.1 Chuỗi thời gian
Một chuỗi thời gian (time series) là một chuỗi các điểm dữ liệu có thứ tự, mỗi
điểm biểu diễn một giá trị là số thực được đo tại những thời điểm cách đều nhau.Chuỗi thời gian được sử dụng trong xác suất thống kê, tài chính, nhận dạng mẫu, dựđoán thời tiết, v.v… và được sử dụng nhiều trong các lĩnh vực khoa học ứng dụng và
kỹ thuật
Chuỗi thời gian thường được giả định là được sinh ra tại những thời điểm cách
đều nhau, do đó được gọi là chuỗi thời gian thông thường (regular time series) Một
chuỗi thời gian bất quy tắc (irregular time series) là một chuỗi các điểm dữ liệu có thứ
tự nhưng không được đo tại các thời điểm cách đều nhau
Có vô số cách thể hiện một chuỗi thời gian Tuy nhiên, khi chúng ta quan sátchuỗi thời gian, chúng ta nhận thấy rằng dữ liệu chuỗi thời gian thường chia thành bốn
dạng phổ biến đó là xu hướng (trend), chu kỳ (cyclical), mùa (seasonal) và bất quy tắc
(irregular)
2.2 Phân lớp dữ liệu
2.2.1 Khái niệm phân lớp dữ liệu
Phân lớp dữ liệu là giải thuật xác định một mẫu dữ liệu thuộc vào lớp nào trongmột tập các lớp thông qua việc phân tích các thuộc tính quan trọng của mẫu dữ liệu đó.Một số bộ phân lớp làm việc bằng cách so sánh khoảng cách giữa các mẫu với nhau
Một giải thuật hiện thực phân lớp dữ liệu được gọi là một bộ phân lớp (classifier) Quá trình xây dựng một bộ phân lớp gồm có hai bước: huấn luyện (training) và phân lớp (classification).
Trang 18Trong bước huấn luyện, chúng ta tiến hành xây dựng bộ phân lớp (classifier) bằng cách phân tích dữ liệu huấn luyện với các mẫu (sample) và nhãn (label) tương ứng Mỗi mẫu dữ liệu được biểu diễn bởi một vector thuộc tính Một mẫu dữ liệu X
được biểu diễn 𝑋 = 𝑥 với n là số thuộc tính của dữ liệu Bước này xem như
1, 𝑥
2, , 𝑥𝑛
là quá trình học của một hàm ánh xạ: 𝑦 = 𝑓(𝑥) với y là nhãn của lớp được dự đoán
của mẫu X.
Tại bước phân lớp, bộ phân lớp sẽ được sử dụng để thực hiện gán nhãn lớp cho
các mẫu trong tập kiểm thử (test set).
Trong lĩnh vực khai phá dữ liệu, phân lớp là một kỹ thuật rất phổ biến và có tầmquan trọng, nó thường là bước cuối cùng trong một tiến trình khai phá
Việc phân lớp dữ liệu chuỗi thời gian có thể được thực hiện trên các phương
pháp phân lớp truyền thống khá phổ biến như: phân lớp với k-lân cận gần nhất (k-Nearest Neighbor), phân lớp với máy véc-tơ hỗ trợ (Support Vector Machine - SVM), phân lớp với cây quyết định (Decision Tree), phân lớp với mạng nơ-ron
(Neural Network), …
2.2.2 Giải thuật phân lớp k-NN
Giải thuật k-lân cận gần nhất (k-Nearest Neighbor - k-NN) là giải thuật học có
giám sát (supervised-learning) đơn giản nhất có thể được áp dụng trong phân lớp dữ
liệu Bộ phân lớp sử dụng giải thuật lân cận gần nhất sử dụng một vài hay toàn bộ mẫutrong tập huấn luyện để phân lớp một mẫu thử
Đối với giải thuật k-NN thì một đối tượng sẽ được phân lớp theo lớp chiếm đa
số trong k lân cận gần với nó nhất, trong đó k là một số nguyên dương chọn trước khi thực hiện giải thuật Việc chọn giá trị k này liên quan đến kết quả phân lớp, nếu k quá nhỏ thì kết quả có khả năng ảnh hưởng bởi nhiễu, nếu k lớn thì nhiều phần tử lân cận
sẽ có thể từ các lớp khác Khi huấn luyện, thuật toán này không học được điều gì từ dữliệu huấn luyện, mọi tính toán được thực hiện trong bước phân lớp
Trang 19Hình 2.1: Một lân cận gần nhất của mẫu thử X
Trong hình 2.1 là tập dữ liệu có 3 lớp: dấu (+), dấu (x) và dấu (*), một mẫu thử
X sẽ thuộc về một trong 3 lớp nếu khoảng cách từ mẫu thử X đến lớp đó là gần nhất.
Giải thuật k-NN tìm thấy một lân cận gần nhất của mẫu thử X là lớp (*), như vậy mẫu thử X thuộc về lớp (*).
Giải thuật k-NN được thực hiện qua một số bước như sau:
1 Xác định giá trị tham số k (số lân cận gần nhất).
2 Tính toán khoảng cách giữa chuỗi thời gian 𝑄 = {𝑞 trong tập kiểm
4 Lấy tất cả các lớp của k lân cận gần nhất đã xác định
5 Dựa vào lớp đa số của các lân cận gần nhất để xác định lớp cho chuỗi thời gian
Q.
Giải thuật k-NN sẽ có chi phí tính toán cao khi số mẫu của tập dữ liệu lớn.
2.2.3 Tổ hợp bộ phân lớp
Một tổ hợp bộ phân lớp (ensemble of classifiers) là một tập các bộ phân lớp
được kết hợp lại để cùng nhau phân lớp các mẫu mới Một tổ hợp bộ phân lớp thườngchính xác hơn bộ bộ phân lớp riêng lẻ cấu thành nó [8] Tổ hợp bộ phân lớp là mộtcách để bù trừ điểm yếu trong từng bộ phân lớp thành phần Mỗi bộ phân lớp thành
Trang 20phần được gọi là một chuyên gia vì nó phân lớp chính xác hơn các bộ phân lớp kháctrên một số mẫu cụ thể.
Đóng gói (bagging), cải thiện (boosting) và rừng ngẫu nhiên (random forests)
là các phương pháp tổ hợp phổ biến có thể được sử dụng trong các bài toán phân lớpcũng như dự đoán (Hình 2.2)
Hình 2.2: Tổ hợp bộ phân lớp [8]
Một tổ hợp bao gồm k bộ phân lớp thành phần𝑀 Tập huấn luyện D
1, 𝑀
2, , 𝑀𝑘
ban đầu được sử dụng để tạo ra k tập huấn luyện, 𝐷 , trong đó
1, 𝐷
2, , 𝐷
𝑖được sử dụng để huấn luyện bộ phân lớp Một trong các phương pháp
𝑖
để tạo ra k tập huấn luyện từ một tập huấn luyện D ban đầu là lấy mẫu con
(sub-sampling) Cơ chế bỏ phiếu được sử dụng để kết hợp kết quả phân lớp của các bộphân lớp thành phần: với một mẫu thử mới, từng bộ phân lớp thành phần bỏ phiếubằng cách trả về kết quả phân lớp, tổ hợp bộ phân lớp trả về kết quả phân lớp dựa vàokết quả bỏ phiếu của các bộ phân lớp thành phần
2.3 Các độ đo tương tự
Các độ đo khoảng cách (distance measures) được sử dụng để tính khoảng cách
và dùng để xác định độ khác biệt giữa các chuỗi thời gian, tuỳ vào đặc điểm của chuỗithời gian và miền ứng dụng mà có độ đo tương ứng phù hợp
cách Euclid giữa hai chuỗi A và B được tính theo công thức như sau:
Trang 21𝐸𝐷(𝐴,𝐵) =
Hình 2.3: Biên độ hai chuỗi thời gian với độ đo Euclid
Hình 2.3 là một ví dụ về biên độ của hai chuỗi thời gian khi áp dụng độ đokhoảng cách Euclid
Độ đo Euclid chỉ có thể tính nếu n = m Nó đơn giản, hiệu quả và vì vậy độ đo
khoảng cách Euclid trở thành phổ biến trong nhiều tác vụ khai phá dữ liệu Tuy nhiên,bên cạnh việc yêu cầu rằng hai chuỗi thời gian có độ dài bằng nhau, độ đo Euclid còn
có nhược điểm khác là rất nhạy với nhiễu, không thích hợp với dữ liệu có độ co giãnbiên độ khác nhau
2.3.2 Độ đo xoắn thời gian động (Dynamic Time Warping - DTW)
Hai chuỗi thời gian có hình dạng giống nhau nhưng bị lệch pha một khoảngthời gian nào đó thì việc tính khoảng cách giữa hai chuỗi thời gian này bằng cách sửdụng độ đo Euclid thì khoảng cách Euclid giữa chúng lớn một cách vô lý Vì vậynhược điểm này được khắc phục một cách tương đối bằng độ đo DTW Độ đo DTWđược cộng đồng xử lý giọng nói giới thiệu bởi Itakura [9] vào năm 1975 và đượcSakoe-Chiba [10] cải tiến năm 1978, sau đó được đưa vào ứng dụng trong xử lý chuỗithời gian do nhóm tác giả Berndt và Clifford [11] giới thiệu vào năm 1994
Điểm khác biệt giữa độ đo khoảng cách Euclid và độ đo xoắn thời gian động làvới độ đo khoảng cách Euclid chỉ có thể tính khoảng cách giữa hai chuỗi thời gian có
độ dài bằng nhau bằng cách tính từng cặp điểm (điểm thứ i của chuỗi thứ nhất so với điểm thứ i so với chuỗi thứ hai) thì độ đo xoắn thời gian động có thể đo được khoảng
cách giữa hai chuỗi thời gian có độ dài khác nhau (hay có biên độ dao động khácnhau)
Trang 22Với độ đo DTW, một điểm dữ liệu của chuỗi thời gian này có thể ánh xạ vớinhiều điểm của chuỗi thời gian khác, các ánh xạ này không thẳng hàng.
Hình 2.4: So sánh độ đo DTW với Euclid [12]
Độ đo xoắn thời gian có nhược điểm so với độ đo Euclid là thời gian tính toánchậm hơn rất nhiều
Cho hai chuỗi thời gian 𝐴 = 𝑎 và , để tính khoảng
cách DTW giữa A và B, chúng ta cần xây dựng một ma trận xoắn𝑄(𝐴, 𝐵)của A và B,
có kích thước m x n, với phần tử𝑄 là khoảng cách giữa hai điểm và
𝑖, 𝑏
𝑗) = (𝑎
𝑖 − 𝑏
𝑗)2
Đường xoắn (warping path) W là tập hợp các giá trị của ma trận thể hiện
khoảng cách giữa hai điểm A và B thể hiện ánh xạ giữa A và B Giả sử rằng đường xoắn W có K giá trị, khi đó độ đo DTW giữa A và B là đường xoắn có tổng khoảng
cách tích lũy nhỏ nhất và được tính toán theo công thức:
𝐷𝑇𝑊(𝐴,𝐵) =
Tổng khoảng cách tích lũy nhỏ nhất có thể tính bằng phương pháp quy hoạchđộng với công thức truy hồi:
δ(𝑖, 𝑗) = 𝑑(𝑎
𝑖, 𝑏
𝑗) + 𝑚𝑖𝑛{δ(𝑖 − 1, 𝑗), δ(𝑖 − 1, 𝑗 − 1), δ(𝑖, 𝑗 − 1)}Trong đó δ(𝑖, 𝑗) là tổng khoảng cách tích lũy tại ô thứ 𝑖, 𝑗 của ma trận Q,
là khoảng cách giữa hai điểm và
Trang 23Hình 2.5: Ma trận xoắn chuỗi thời gian A và B [13]
Đường xoắn W cần thoả mãn các điều kiện như sau:
- Điều kiện biên: 𝑤 và đảm bảo rằng đường xoắn bắt
1= (1, 1) 𝑤
𝑘 = (𝑛, 𝑚)đầu từ điểm đầu tiên và kết thúc ở điểm cuối cùng của hai chuỗi đang đượctính khoảng cách
- Tính liên tục: cho 𝑤 và thì và
𝑘= (𝑎, 𝑏) 𝑤
𝑘−1= (𝑎', 𝑏') (𝑎 − 𝑎') (𝑏 − 𝑏')phải bé hơn hoặc bằng 1 Điều này đảm bảo rằng các bước trong đường đi
W là từ một phần tử trong ma trận Q đến một phần tử liền kề với phần tử
này
- Tính đơn điệu tăng: 𝑤 và thì và
𝑘= (𝑎, 𝑏) 𝑤
𝑘−1= (𝑎', 𝑏') (𝑎 − 𝑎')luôn lớn hơn hoặc bằng 0 Điều này đảm bảo rằng chỉ mục của cặp(𝑏 − 𝑏')
điểm trong bước sau chỉ có thể bằng hoặc lớn hơn chỉ mục của cặp điểmtrong bước trước
Độ đo DTW linh hoạt hơn so với độ đo Euclid trong việc tính toán độtương tự giữa hai chuỗi có độ dài bất kỳ Mặc dù thích hợp hơn cho dữ liệudạng chuỗi hơn độ đo Euclid nhưng DTW lại có độ phức tạp tính toán cao
hơn là O(m.n) với m, n là độ dài của hai chuỗi so với O(n) ở độ đo Euclid với n là độ dài của hai chuỗi được so sánh Độ đo Euclid là trường hợp đặc biệt của độ đo DTW khi đường đi xoắn W thoả mãn điều kiện là phần tử thứ
Trang 24k trong đường đi xoắn 𝑤 thì i = j = k và hai chuỗi cần tính toán
𝑘 = (𝑖, 𝑗)khoảng cách có độ dài bằng nhau
Để đảm bảo đường xoắn không đi chệch hướng quá xa so với đường
chéo của ma trận Q thì người ta đã đưa ra một số ràng buộc mang ý nghĩa toàn cục Ràng buộc này được định nghĩa một tập con của ma trận xoắn
(warping matrix) cho phép đường xoắn di chuyển mở rộng và được gọi là
một cửa sổ xoắn (warping window) Mục đích của các ràng buộc này nhằm
tăng tốc tính toán khoảng cách DTW vì làm giảm không gian tìm kiếmđường xoắn và ngăn trường hợp một phần nhỏ của chuỗi này ánh xạ vàophần lớn hơn tương ứng của chuỗi khác
- Ràng buộc dải Sakoe-Chiba: Ràng buộc Sakoe-Chiba [10] được đề xuất bởi
Sakoe và Chiba năm 1978 định nghĩa đường xoắn hợp lệ như sau:
Hình 2.6: Độ đo xoắn thời gian động với ràng buộc dải Sakoe-Chiba [14]
- Ràng buộc hình bình hành Itakura: Ràng buộc này được đề xuất bởi Itakura
năm 1975 cũng định nghĩa đường xoắn hợp lệ được ràng buộc trong một tậpcon của ma trận xoắn của hai chuỗi thời gian theo dạng hình bình hành Chođiểm 𝑖𝑡ℎ và điểm 𝑗𝑡ℎtương ứng của hai chuỗi A, B thì ràng buộc Itakura phát
Trang 25biểu rằng điểm 𝑗𝑡ℎ phải được định nghĩa bởi một hàm biến thiên thời giantheo𝑖𝑡ℎ:
𝑗𝑡ℎ = ω(𝑖𝑡ℎ)Với một số điều kiện biên:ω(1) = 1, ω(𝑛) = 𝑚và điều kiện liêntục:
ω(𝑖 + 1) − ω(𝑖) = 0, 1, 2 𝑣ớ𝑖 (ω(𝑖) ≠ ω(𝑖 − 1)) = 1, 2 𝑣ớ𝑖 (ω(𝑖) ≠ ω(𝑖 − 1))
Hình 2.7: Ràng buộc toàn cục của độ đo xoắn thời gian động
Hình 2.7 là một ví dụ về ràng buộc hình bình hành Itakura của độ đoxoắn thời gian động
Chú ý: Độ đo xoắn thời gian động được xếp vào loại độ đo có tính đàn hồi (elastic distance) trong khi độ đo Euclid được xếp vào loại độ đo không đàn hồi
(non-elastic)
2.3.3 Độ đo Complexity-invariant Distance (CID)
Batista và các cộng sự [3] đã đề xuất độ đo bất biến với độ phức tạp
( Complexity-invariant Distance) sử dụng sự khác nhau về độ phức tạp giữa hai chuỗithời gian như một hệ số điều chỉnh và áp dụng lên độ đo khoảng cách hiện tại Nó phụ
thuộc vào tính bất biến (invariance) được yêu cầu của từng lĩnh vực Trong nhiều năm
qua, đã có nhiều nghiên cứu đề xuất các phương pháp và độ đo khoảng cách nhằm tìm
ra sự tương tự giữa các chuỗi thời gian, tuy nhiên cộng đồng khoa học còn chưa quan
tâm đến độ đo bất biến phức tạp (complex invariance).
Trang 26Vấn đề nằm ở chỗ, đối với các lĩnh vực khác nhau, các lớp có sự phức tạp khácnhau và cặp hai phần tử phức tạp trông có vẻ giống nhau dưới con mắt nhìn của conngười nhưng chúng lại nằm ở lớp khác nhau Tiêu biểu là ngành sinh học, ví dụ nhưloài dơi thuộc lớp thú có vú chứ không phải là thuộc họ chim dù nó có thể bay.
Cho hai chuỗi thời gian Q và C, độ đo CID được tính theo công thức sau:
𝐶𝐼𝐷(𝑄, 𝐶) = 𝐸𝐷(𝑄, 𝐶) × 𝐶𝐹(𝑄, 𝐶)Với:
là độ đo Euclid𝐸𝐷(𝑄, 𝐶)
là hệ số điều chỉnh độ bất biến phức tạp được định nghĩa:
𝐶𝐹(𝑄, 𝐶)
𝐶𝐹(𝑄, 𝐶) = 𝑚𝑎𝑥(𝐶𝐸(𝑄),𝐶𝐸(𝐶))𝑚𝑖𝑛(𝐶𝐸(𝑄),𝐶𝐸(𝐶))
Và 𝐶𝐸(𝑇)là ước lượng độ phức tạp của chuỗi thời gian T, diễn tả sự khác biệt
về độ phức tạp của các chuỗi thời gian được so sánh và được tính theo công thức:
Hệ số điều chỉnh độ bất biến phức tạp của một chuỗi thời gian có cách tính khá
đơn giản, dễ dàng với độ phức tạp O(n) và dễ dàng áp dụng vào các độ đo khoảng
cách
2.4 Chuẩn hóa dữ liệu
Việc quan trọng trước khi tiến hành phân lớp dữ liệu là quá trình chuẩn hóa dữliệu, tức là việc chúng ta đưa thuộc tính về một trọng số bằng nhau và ngăn chặnnhững thuộc tính với miền giá trị lớn khỏi ảnh hưởng tới những thuộc tính với miềngiá trị nhỏ Ở đây, hai kỹ thuật chuẩn hoá dữ liệu như sau:
Chuẩn hoá lớn nhất - nhỏ nhất (min-max normalization): phương pháp này dựa
trên giá trị lớn nhất và nhỏ nhất của chuỗi thời gian để ánh xạ những giá trị của chuỗinày sang các giá trị thuộc một miền xác định lớn nhất - nhỏ nhất mới Chúng ta sẽ quy
ước miền giá trị mới là [0,1] Với phương pháp này vẫn bảo tồn được mối quan hệ của
những giá trị ban đầu
Giả sử chúng ta có dữ liệu chuỗi thời gian A Công thức chuẩn hóa như sau:
𝑛𝑒𝑤_𝑚𝑖𝑛) + 𝐴
𝑛𝑒𝑤_𝑚𝑖𝑛
Trang 27Chuẩn hoá trung bình zero (z-score normalization): phương pháp này dựa trên giá trị trung bình (mean) và độ lệch chuẩn (standard deviation).
Giả sử chúng ta có chuỗi 𝐴 = 𝑎 có chiều dài n được biến đổi thành
1, 𝑎
2, , 𝑎𝑛những giá trị của chuỗi 𝐴' = 𝑎' cũng có chiều dài n dựa trên giá trị trung
1, 𝑎'
2, , 𝑎'𝑛
bình (mean) và giá trị độ lệch chuẩn của chuỗi A Phương pháp này có lợi khi những
phần tử có nhiễu làm cho phương pháp min-max không áp dụng được
2.5 Đánh giá độ chính xác của bộ phân lớp - kiểm tra chéo k-phần
Kiểm tra chéo (cross-validation) là phương pháp mà trong đó mỗi mẫu được sử
dụng một số lần giống nhau trong quá trình huấn luyện và chỉ một lần trong quá trình
kiểm thử Trong phương pháp kiểm tra chéo k-phần (k-fold cross-validation), tập dữ liệu được chia thành k tập con với số lượng mẫu bằng nhau Trong mỗi lần thực
nghiệm, một tập con được sử dụng trong quá trình kiểm thử và các tập con còn lại
được sử dụng trong quá trình huấn luyện Quá trình này được thực hiện k lần vì vậy
mỗi tập con chỉ được sử dụng trong quá trình kiểm thử duy nhất một lần Độ chính xáccủa bộ phân lớp được tính bằng cách lấy trung bình của các độ chính xác có được sau
k lần thực nghiệm.
Hình 2.8: Kiểm tra chéo k-phần với k = 4 [15]
Hình 2.8 mô tả phương pháp kiểm tra chéo k-phần với𝑘 = 4
Trang 282.6 Bộ xử lý đồ họa (GPU)
2.6.1 Mô hình lập trình CUDA
CUDA (Compute Unified Device Architecture) là một kiến trúc dành cho tính
toán song song mà phần cứng và phần mềm cùng làm việc cho phép các bộ xử lý đồhọa NVIDIA thực thi các phần mềm được viết bằng C, C++ và các ngôn ngữ khác
Một chương trình CUDA được tổ chức thành một chương trình chạy trên máy
chính (host program), bao gồm một hoặc nhiều luồng (thread) chạy tuần tự trên CPU
của máy chính, và một hoặc nhiều nhân song song (parallel kernel) thích hợp cho việc thực thi trên một GPU tính toán song song (parallel computing GPU) Một nhân thực thi một chương trình tuần tự trên một tập các luồng song song hạng nhẹ (lightweight
parallel threads) Nhân là các hàm được định nghĩa bởi lập trình viên mà có thể được
thực thi N lần một cách song song bởi N luồng CUDA khác nhau.
Hình 2.9: Sự phân cấp của các luồng, các khối luồng và các lưới khối trong CUDA,
cùng với các không gian bộ nhớ tương ứng [16]
Hình 2.9 nói lên rằng các lập trình viên hoặc trình biên dịch sẽ tổ chức các
luồng thành các lưới (grids) gồm các khối luồng (thread blocks) Các luồng tạo thành
Trang 29một khối luồng có thể đồng bộ (synchronize) với nhau thông qua các rào chắn (barriers) và giao tiếp (communicate) thông qua một bộ nhớ chia sẻ tốc độ cao được
bố trí theo từng khối Các luồng có thể được tổ chức thành các khối luồng một chiều,hai chiều hoặc ba chiều Số lượng luồng trong mỗi khối luồng được chỉ định bởi lậptrình viên, và lên tới 1024 trong GTX 480 GPU Mỗi lưới có thể chứa rất nhiều khốiluồng với khả năng thực thi song song, trong khi các lưới khác nhau thực thi tuần tựtrên GPU
Các GPUs chứa nhiều loại bộ nhớ khác nhau cho các mục đích khác nhau Các
luồng thuộc các khối khác nhau trong cùng một lưới có thể cộng tác (coordinate) với nhau thông qua các thao tác đơn nguyên (atomic operations) trên không gian bộ nhớ toàn cục được chia sẻ bởi tất cả các luồng Các lưới nhân (kernel grids) có thể đồng bộ
với nhau thông qua các rào chắn toàn cục và làm việc với nhau thông qua bộ nhớ chia
sẻ toàn cục CUDA yêu cầu các khối luồng là độc lập, điều này làm cho chương trình
linh động hơn khi có thể chạy được trên các GPU với số lượng lõi (core) và luồng khác nhau Khối luồng hiện thực cơ chế song song hóa dữ liệu (data parallelism) ở
dạng thô với khả năng mở rộng được (bằng việc chương trình có thể chạy được trênnhiều loại GPU khác nhau), trong khi các luồng hạng nhẹ tạo nên mỗi khối luồng chophép sự song song hóa dữ liệu ở dạng mịn
2.6.2 Kiến trúc tính toán GPU
Để mô tả kiến trúc tính toán GPU, hình 2.10 thể hiện kiến trúc tính toán Fermi
đời thứ 3 được cài đặt 16 bộ xử lý dòng đa nhân (streaming multiprocessors - SMs),
mỗi bộ xử lý có 32 nhân CUDA, với tổng cộng 512 nhân Khi một khối được gán cho
một SM, các luồng trong khối được chia thành các đơn vị gồm 32 luồng gọi là các sợi
(warps) Một sợi là một đơn vị cơ bản trong bộ lập lịch luồng của GPU và tất cả 32luồng trong cùng một sợi thực thi cùng một lệnh trên SM Dạng xử lý song song này
được gọi là một lệnh nhiều dữ liệu (Single Instruction Multiple Data - SIMD) và nó
giảm chi phí để lấy và giải mã lệnh Bộ lập lịch làm việc GigaThread phân bổ các khốiluồng vào các bộ xử lý dòng đa nhân còn khả năng xử lý, cân bằng số lượng công việcmột cách linh động trên GPU, và thực thi nhiều tác vụ song song khi khả thi Mỗi bộ
xử lý dòng đa nhân thực thi lên tới 1.536 luồng đồng thời để giảm các tác vụ tải dữliệu có thời gian chờ lâu từ bộ nhớ DRAM Khi mỗi khối luồng hoàn thành việc thực
Trang 30nó chiếm giữ, bộ lập lịch làm việc phân công khối luồng mới vào bộ xử lý dòng đanhân đó.
Hình 2.10: Kiến trúc tính toán Fermi GPU [16]
Bộ giao tiếp với máy chính PCIe kết nối GPU và bộ nhớ DRAM của nó vớiCPU và bộ nhớ hệ thống của máy chính Sự cộng tác CPU+GPU và các tác vụ truyềntải dữ liệu sử dụng bộ giao tiếp PCIe hai chiều Các luồng của bộ xử lý dòng đa nhântruy cập bộ nhớ hệ thống thông qua bộ giao tiếp PCIe, và các luồng của CPU truy cập
bộ nhớ DRAM của GPU thông qua cổng PCIe
Kiến trúc GPU cân bằng sức mạnh tính toán song song của nó với các bộ điềukhiển bộ nhớ DRAM song song được thiết kế cho băng thông bộ nhớ cao GPU Fermitrong hình 2.10 có 6 bộ giao tiếp DRAM GDDR5 tốc độ cao, mỗi bộ có độ rộng 64 bit
Trang 31CHƯƠNG 3 CÁC CÔNG TRÌNH LIÊN QUAN
Ở chương này, chúng tôi trình bày các công trình về các kỹ thuật phân lớp, các
độ đo khoảng cách trong chuỗi thời gian, từ cơ sở này đề xuất phương pháp nhằm tăng
độ chính xác phân lớp trong việc phân lớp chuỗi thời gian
3.1 Phân lớp dữ liệu chuỗi thời gian dựa vào tổ hợp bộ phân lớp
Lines và các cộng sự [5], nhóm tác giả đã đề xuất phương pháp phân lớp dữ liệuchuỗi thời gian dựa vào tổ hợp bộ phân lớp với độ đo khoảng cách khác nhau đã tiếnhành kiểm chứng, đánh giá hai giả thuyết: (1) Kiểm chứng giả thuyết rằng có sự khácnhau về độ chính giữa các bộ phân lớp lân cận gần nhất sử dụng các độ đo khác nhau.(2) Kiểm chứng giả thuyết rằng việc kết hợp các độ đo với tổ hợp các bộ phân lớp sẽđạt được độ chính xác tốt nhất Các tác giả đã tiến hành các kiểm chứng trên nhiều bộ
dữ liệu mẫu và rút ra các kết luận như sau: Thứ nhất, không có sự khác biệt đáng kể về
độ chính xác giữa các bộ phân lớp sử dụng độ đo khoảng cách đàn hồi trên các tập dữliệu Thứ hai, có sự vượt trội đáng kể về độ chính xác của tổ hợp bộ phân lớp so với bộphân lớp riêng lẻ Như vậy, đối với dữ liệu chuỗi thời gian, để tăng độ chính xác của
bộ phân lớp thì chúng ta có thể kết hợp nhiều bộ phân lớp yếu để tạo một tổ hợp bộ
phân lớp mạnh hơn Lines và các cộng sự đã hiện thực tổ hợp các bộ phân lớp k-NN
với bảy độ đo khoảng cách đàn hồi như sau: Dynamic Time Warping (DTW),Weighted Dynamic Time Warping (WDTW), Longest Common Subsequence (LCS),Edit Distance with Real Penalty (EDRP), Time Warping Edit Distance (TWED) vàMove-Split-Merge (MSM)
Pawlovsky và các cộng sự [17] đã giới thiệu tổ hợp bộ phân lớp k-NN với các
độ đo khoảng cách khác nhau và ứng dụng của phương pháp này vào bộ dữ liệu chẩn
đoán về bệnh tim mạch (heart disease) Tác giả đã đề xuất việc sử dụng tổ hợp bộ phân
lớp k-NN với nhiều nhiều độ đo khoảng cách khác nhau như: Euclid, Manhattan, Chebyshev, Sorensen, Canberra và Mahalanobis cho phương pháp phân loại k-NN để tăng độ chính xác phân lớp đối với dữ liệu chẩn đoán về bệnh tim mạch Tác giả đã
tiến hành thực nghiệm trên hai cấu hình: (1) sử dụng tổ hợp ba độ đo khoảng cách là
Trang 32Euclid, Manhattan, Chebyshev, Sorensen, Canberra và Mahalanobis Kết quả cho thấy
tổ hợp bộ phân lớp đề xuất đạt độ chính xác trung bình gần 85% đối với bất cứ cấuhình nào trên tập dữ liệu nhịp tim UCI Cleveland [18]
3.2 Độ đo xoắn thời gian động cải tiến (DDTW)
Tác giả Keogh và Pazzani [19] năm 2001 đã đề xuất một cải tiến của độ đoxoắn thời gian động (DTW) được gọi là Derivative Dynamic Time Warping (DDTW).Với độ đo này, đầu tiên sẽ biến đổi chuỗi thời gian thành một chuỗi có khác biệt thứ
tự Mục tiêu của DDTW là giới thiệu một biện pháp tránh các điểm kỳ dị, trong đómột điểm trên một chuỗi có thể ánh xạ vào một phần lớn của chuỗi thời gian khác tạonên kết quả sai lệch
Cho một chuỗi thời gian 𝐴 = 𝑎 , được biến đổi thành chuỗi thời gian
1, 𝑎
2, , 𝑎𝑛
khi a được định nghĩa là trung bình của các giá trị độ dốc , a,
Độ đo DDTW được thiết kế để giảm nhiễu có thể ảnh hưởng xấu đến độ đoxoắn thời gian động (DTW) và cũng được sử dụng cùng với DTW để tính toán độtương tự giữa các chuỗi
3.3 Kỹ thuật tính chặn dưới của Keogh
Việc tính toán DTW cho kết quả tính toán chính xác hơn so với độ đo Euclidnhưng đòi hỏi thời gian thực thi khá lớn Vì vậy, cộng đồng nghiên cứu đã phát triển
kỹ thuật tính chặn dưới hiệu quả để có thể giảm tải bớt không gian tìm kiếm bằng cáchloại bỏ những chuỗi không phù hợp càng sớm càng tốt Mục tiêu của kỹ thuật này là
để tăng tốc độ tính toán và để tạo một ràng buộc chặn dưới tương đối, tức là mộtphương pháp có thể xấp xỉ khoảng cách DTW một cách gần nhất Để giới thiệu kỹthuật chặn dưới này, chúng tôi trình bày một kỹ thuật chặn dưới hiện nay được sử dụngphổ biến là của Keogh năm 2002 [20]
Keogh và các cộng sự đã phát triển một kỹ thuật tính chặn dưới dựa trên ýtưởng của ràng buộc toàn cục mà tiêu biểu là hai trường hợp ràng buộc dảiSakoe-Chiba và hình bình hành Itakura Ràng buộc toàn cục mà Keogh sử dụng chođường xoắn 𝑤 sao cho với r được định nghĩa là phạm
𝑘= (𝑖, 𝑗)
𝑘 𝑗 − 𝑟 ≤ 𝑖 ≤ 𝑗 + 𝑟