1. Trang chủ
  2. » Tất cả

Phát hiện các cặp motif với chiều dài khác nhau trên chuỗi thời gian sử dụng thuật toán skimp

108 4 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 108
Dung lượng 8,22 MB

Nội dung

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH LUẬN VĂN THẠC SĨ ĐOÀN VĂN THANH PHONG PHÁT HIỆN CÁC CẶP MOTIF VỚI CHIỀU DÀI KHÁC NHAU TRÊN CHUỖI THỜI GIAN SỬ DỤNG THUẬT TỐN SKIMP NGÀNH: KHOA HỌC MÁY TÍNH Tp Hồ Chí Minh, tháng 11/2022 o BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH LUẬN VĂN THẠC SĨ ĐỒN VĂN THANH PHONG PHÁT HIỆN CÁC CẶP MOTIF VỚI CHIỀU DÀI KHÁC NHAU TRÊN CHUỖI THỜI GIAN SỬ DỤNG THUẬT TỐN SKIMP NGÀNH: KHOA HỌC MÁY TÍNH - 2081308 Hướng dẫn khoa học: TS NGUYỄN THÀNH SƠN Thành phố Hồ Chí Minh, tháng 11 năm 2022 o o o o o o o LÝ LỊCH KHOA HỌC I LÝ LỊCH SƠ LƯỢC Họ & tên: Đoàn Văn Thanh Phong Giới tính: Nam Ngày, tháng, năm sinh: 25/5/1995 Nơi sinh: Bến Tre Quê quán: Tân Thuận, Tân Bình, Mỏ Cày Bắc, Bến Tre Dân tộc: Kinh Chỗ riêng địa liên lạc: 52/11 Hoàng Diệu 2, Linh Chiểu, Thủ Đức, TP HCM Điện thoại quan: Điện thoại nhà riêng: 0973892017 Fax: Email: phongdvt95@gmail.com II QUÁ TRÌNH ĐÀO TẠO Đại học: Hệ đào tạo: Chính quy Thời gian đào tạo từ 8/2013 đến 02/2018 Nơi học (trường, thành phố): Trường Đại học Sư phạm Kỹ thuật TP HCM Ngành học: Công nghệ phần mềm Tên đồ án, luận án mơn thi tốt nghiệp: Phân tích xây dựng phần mềm bán hoa sử dụng framework Spring Angular Ngày & nơi bảo vệ đồ án, luận án thi tốt nghiệp: Ngày 26/7/2017 Trường Đại học Sư phạm Kỹ thuật TP HCM Người hướng dẫn: ThS Nguyễn Minh Đạo Thạc sỹ: Hệ đào tạo: Chính quy Thời gian đào tạo từ 08/2020 đến 10/2022 Nơi học (trường, thành phố): Trường Đại học Sư phạm Kỹ thuật TP HCM Ngành học: Khoa học Máy tính Tên luận văn: Phát cặp motif với chiều dài khác chuỗi thời gian sử dụng thuật toán SKIMP Ngày & nơi bảo vệ luận văn: 20/10/2022 phòng A1-305, Trường Đại học Sư phạm Kỹ thuật TP HCM Người hướng dẫn: TS Nguyễn Thành Sơn i o III Q TRÌNH CƠNG TÁC CHUN MƠN KỂ TỪ KHI TỐT NGHIỆP ĐẠI HỌC: Thời gian 02/2018 - 02/2020 02/2020 - Nơi công tác Công việc đảm nhiệm Trường Đại học Sư phạm Kỹ Chuyên viên thuật TP HCM Trường Đại học Quốc tế - Đại học Chuyên viên Quốc gia TP HCM ii o [11] Zhu, Y., et al Matrix Profile XI: SCRIMP++: Time Series Motif Discovery at Interactive Speeds in 2018 IEEE International Conference on Data Mining (ICDM) 2018 [12] De Paepe, D., D.N Avendano, and S Van Hoecke Implications of ZNormalization in the Matrix Profile in Pattern Recognition Applications and Methods 2020 Cham: Springer International Publishing [13] Madrid, F., et al., Matrix Profile XX: Finding and Visualizing Time Series Motifs of All Lengths using the Matrix Profile 2019 175-182 [14] Yeh, C.M., et al Matrix Profile I: All Pairs Similarity Joins for Time Series: A Unifying View That Includes Motifs, Discords and Shapelets in 2016 IEEE 16th International Conference on Data Mining (ICDM) 2016 [15] Mueen, A., et al., The Fastest Similarity Search Algorithm for Time Series Subsequences under Euclidean Distance 2017 [16] Zhu, Y., et al Matrix Profile II: Exploiting a Novel Algorithm and GPUs to Break the One Hundred Million Barrier for Time Series Motifs and Joins in 2016 IEEE 16th International Conference on Data Mining (ICDM) 2016 [17] Rakthanmanon, T., et al., Searching and Mining Trillions of Time Series Subsequences under Dynamic Time Warping Vol 2012 2012 [18] Murray, D., et al A data management platform for personalised real-time energy feedback 2015 [19] Gao, Y and J Lin, Efficient Discovery of Variable-length Time Series Motifs with Large Length Range in Million Scale Time Series 2018 [20] Lin, J., et al., Experiencing SAX: a novel symbolic representation of time series Data Mining and Knowledge Discovery, 2007 15(2): p 107-144 [21] Mueen, A., et al., The Fastest Similarity Search Algorithm for Time Series Subsequences under Euclidean Distance 2017 [22] Ogita, T., S.M Rump, and S.i.J.S.J.S.C Oishi, Accurate Sum and Dot Product 2005 26: p 1955-1988 73 o [23] Welford, B.P., Note on a Method for Calculating Corrected Sums of Squares and Products Technometrics, 1962 4(3): p 419-420 [24] Romero, J.C., et al., Efficient Heterogeneous Matrix Profile on a CPU + High Performance FPGA with Integrated HBM Future Gener Comput Syst., 2021 125(C): p 10–23 74 o PHỤ LỤC CÀI ĐẶT CHƯƠNG TRÌNH THỬ NGHIỆM Tải source code cài đặt địa bên dưới: https://drive.google.com/file/d/19Uq1xFqs8L7XkYUYQ9dV2680iyyjUbU/view?usp=sharing Tiến hành cài đặt môi trường Đối với source code C# - Cài đặt Visual Studio; - Cài đặt Matlab R2021b; - Import project Windows form; Đối với trường hợp SKIMP GPU - Vào Matlab chạy lệnh gpuDevice terminal lệnh chạy máy tính có hỗ trợ chạy GPU; - Đảm bảo máy tính có sử dụng card NVIDIA cần cài đặt CUDA Toolkit phù hợp theo địa chỉ: https://developer.nvidia.com/cuda-11.3.0-download-archive - Khi cài đặt xong CUDA Toolkit chạy có lỗi xảy file ptx Có thể thay đổi tham số bên file kernel.ptx cho phù hợp với Toolkit card đồ hoạ máy tính; + version 7.1 + target sm_50 + address_size 64 - Và thuật toán SKIMP GPU chạy bước demo Đầu tiên người dùng nhấn button SKIMP GPU để nạp chương trình qua Matlab, sau hồn tất, Matlab có thơng báo Sau đó, người dùng nhấn vào nút “Nhấn vào để xử lý tiếp” groupBox SKIMP GPU 75 o PHÁT HIỆN MOTIF VỚI CHIỀU DÀI KHÁC NHAU TRÊN CHUỖI THỜI GIAN DISCOVERING TIME SERIES MOTIF OF DIFFERENT LENGTH Nguyen Thanh Son1, Doan Van Thanh Phong2 Trường Đại học Sư phạm Kỹ thuật TP.HCM Trường Đại học Sư phạm Kỹ thuật TP.HCM TĨM TẮT Tìm kiếm motif độ dài chuỗi cụ thể ứng dụng rộng rãi nhiều lĩnh vực chứng khoán, dự báo đại dịch COVID-19 hay theo dõi sức khoẻ bệnh nhân Tuy nhiên, nhu cầu người dùng ngày tăng cao việc tìm kiếm motif khơng dùng lại độ dài cụ thể mà tìm kiếm motif với nhiều độ dài khác hay khoảng giá trị cụ thể Từ cần tìm hiểu giải pháp để giải vấn đề đặt cải tiến tăng tốc độ xử lý để tìm kiếm motif khơng nhanh mặt thời gian mà độ xác phải đảm bảo Từ khoá: time series, motif, SKIMP chặn trên) sau chạy vòng lặp từ đầu cho GIỚI THIỆU Dữ liệu chuỗi thời gian tập liệu thu đến độ dài chuỗi cuối Và để đảm bảo kết thập thông qua phép đo lặp lại theo thời xác, thuật tốn sử dụng giải gian ví dụ theo dõi liệu thời tiết hàng ngày thuật nhỏ để loại bỏ motif phủ lên thông qua cảm biến, nồng độ khí độc Mục đích nghiên cứu tìm hiểu cài đặt thuật khơng khí,…Việc phân tích liệu chuỗi thời gian tốn tìm kiếm motif tất độ dài chuỗi ngày trở nên phổ biến Mục tiêu từ chuỗi thời gian Đồng thời, nghiên cứu tìm giải liệu muốn nói lên điều gì, phản ánh vấn đề pháp cải tiến thuật tốn nhằm tăng tốc độ xử lý để tác vụ phát bất thường giảm thiểu thời gian thực thi độ xác phát motif cần thiết đảm bảo Đã có nhiều cơng trình nghiên cứu việc tìm KIẾN THỨC CƠ BẢN kiếm motif với độ dài chuỗi cụ thể 2.1 Chuỗi thời gian STAMP [14], STOMP [15], SCRIMP [11], Các Chuỗi thời gian T dãy số thực T = t1, t2, cơng trình yêu cầu người dùng phải nhập độ dài t3,…, tn với n độ dài chuỗi thời gian T [4] cần tính tốn Việc làm địi hỏi người nhập người có kinh nghiệm nhập liệu tìm kiếm motif chất lượng, sử dụng Từ đặt u cầu tốn tìm kiếm motif với chiều dài khác chuỗi thời gian Các cơng trình nghiên cứu việc tìm kiếm Hình 2.16: Hình ảnh minh họa chuỗi thời gian từ motif tất độ dài chuỗi chuỗi thời gian mức độ tăng trưởng GDP Mỹ qua giai có điểm chung người dùng phải nhập vào đoạn từ 1950 đến 2010 Nguồn: aptech.com giới hạn khoảng độ dài chuỗi cần tìm (chặn o 2.2 Motif Khoảng cách Euclide chuẩn hóa Z hai vector x, y có độ dài m thực tế hàm tương Motif chuỗi thời gian T cặp chuỗi Ti, Tj, i ≠ j có khoảng cách nhỏ [4] Hay quan Pearson vector [6] Cụ thể sau: ⩝x, y, x ≠ y, i ≠ j, D(Ti, Tj) ≤ D(Tx, Ty) 𝒛𝒏𝒆𝒅(𝒙, 𝒚) = √𝟐𝒎(𝟏 − 𝒑𝑿𝒀) 2.3 Chuỗi phủ Trong đó: Chuỗi Ti,m chuỗi Tu,p gọi phủ - m độ dài chuỗi (p ≤ m) khoảng trùng lặp chuỗi - 𝑝𝑋𝑌 hệ số tương quan Pearson chuỗi Ti,m Tu,p lớn ngưỡng c (do người dùng định X, Y nghĩa) [5] 2.6 Matrix Profile Vậy, 02 chuỗi gọi phủ Matrix Profile P vector khoảng cách thoả hai điều kiện sau: Euclide chuỗi chuỗi thời gian T i − u ≥ && i − u ≤ (1 − c%) ∗ p lân cận gần T i − u < && m + i − u ≥ c% ∗ p Hay P = [min(D1), min(D2),…, min(Dn-m+1)], 2.4 Tương quan Pearson Di (1 ≤ i ≤ n-m+1) Matrix Distance Di Hệ số tương quan Pearson phép đo tương tương ứng với chuỗi Ti,m chuỗi thời gian T quan tuyến tính tập liệu (trong chuỗi thời [3] gian phép đo hai chuỗi ví dụ chuỗi 2.7 Matrix Profile Index thứ i chuỗi thứ i - 1) phép đo hiệp Matrix Profile Index I vector số phương sai chuẩn hoá để kết nằm nguyên chứa vị trí lân cận gần với chuỗi phạm vi [-1, 1] Và tương quan Pearson tính xét [3] cách lấy hiệp phương sai (cv) hai biến chia Hoặc I = [I1, I2, … In-m+1], Ii = j cho tích độ lệch chuẩn chúng 𝑝𝑋, 𝑌 = di,j = min(Di) 𝑐𝑣(𝑋, 𝑌) 𝜎𝑋 𝜎𝑌 2.8 Pan Matrix Profile Tương tự Pan Matrix Profile, Pan Matrix Trong đó: Profile Index ma trận mà hàng - 𝑐𝑣(𝑋, 𝑌) hiệp phương sai hai tham số Matrix Profile Index ứng với độ dài chuỗi X, Y cụ thể [13] - 𝜎𝑋 độ lệch chuẩn X 𝜎𝑋 = ‖𝑋 − 𝜇𝑋 ‖ 2.9 Pan Matrix Profile Index - 𝜎𝑌 độ lệch chuẩn Y 𝜎𝑌 = ‖𝑋 − 𝜇𝑌 ‖ Pan Matrix Profile ma trận mà hàng - 𝜇𝑋 , 𝜇𝑌 giá trị trung bình động chuỗi Matrix Profile ứng với độ dài X, Y chuỗi cụ thể [13] Khi đó, hệ số tương quan Pearson viết lại THUẬT TỐN SKIMP sau: Đầu vào thuật tốn bao gồm chuỗi thời gian 1 𝑝𝑋, 𝑌 = 𝑐𝑣(𝑋, 𝑌) ∗ ∗ ‖𝑋 − 𝜇𝑋 ‖ ‖𝑌 − 𝜇𝑌 ‖ ngưỡng tính tốn: chặn dưới, chặn bước nhảy Chặn ngắn hợp lý theo nghiên 2.5 Mối quan hệ Pearson Euclide o cứu nhóm tác giả 8, bước nhảy chặn Hàm tính Matrix Profile cho độ dài chuỗi tuỳ ý thay đổi để phù hợp với tập liệu thuật tốn SKIMP khơng phải thuật tốn cấu hình phần cứng Thông thường bước nhảy thường dùng như: STAMP, STOMP, SCRIMP hay chặn phân nửa độ dài chuỗi thời gian Đầu SCRIMP++ mà thuật toán MPX MPX tin thuật toán ma trận (mảng chiều) PMP dùng dự án Matrix Profile Foundation và PMPI chuyển sang nhiều ngơn ngữ lập trình Matlab, Python, R, Golang,… Linh hồn thuật tốn SKIMP việc tính tốn Pan Matrix Profile cách tính Matrix Thuật tốn khác biệt thuật toán khác Profile độ dài chuỗi Phần 3.1 3.2 điểm khơng sử dụng phương pháp FFT (Fast trình bày chi tiết cách tính PMP, PMPI Fourier Transform) [21] để tính khoảng cách mà Matrix Profile để giải tốn tìm kiếm motif tận dụng nhiều phương pháp tính tốn giới tất độ dài chuỗi chuỗi thời gian thiệu tác Ogita [22], Welford 3.1 Tính PMP, PMPI [23],… Cho chuỗi thời gian T có độ dài n tham Và thay dùng độ đo Euclide chuẩn hoá Z số, bao gồm: chặn (L), chặn (U) bước thuật tốn MPX sử dụng tương quan Pearson để nhảy (S) Các tham số L, S, U dùng để giới hạn số tính tốn chuyển độ đo Euclide chuẩn hố Z lượng độ dài chuỗi cần tính tốn Dựa vào hoàn tất tham số thu tập độ dài Bảng 3.1:Thuật toán tính Matrix Profile MPX Dữ liệu đầu vào chuỗi (Range) Cụ thể sau: Index với hàng Matrix Profile Index a: Chuỗi thời gian; w: Độ dài chuỗi con; Dữ liệu đầu mp: Matrix Profile; mpi: Matrix Profile Index [mu, sig] = calMuSig(a,w); // tính trung bình 14 động độ lệch chuẩn; [df, dg] = calDiagonals(a, w, mu); // tính giá trị 15 cho đường chéo df dg; diagmax = length(a)-w+1; // tính độ dài mảng 16 mp; mp = [ ]; 17 mpi = [ ]; [13] Cụ thể sau: 18 𝑅𝑎𝑛𝑔𝑒 = [𝐿, 𝐿 + 𝑆, 𝐿 + 2𝑆, … , 𝑈] Để tính tốn Pan Matrix Profile, tiến hành tìm Matrix Profile cho hàng ma trận [13] Cụ thể sau: 𝑃𝑀𝑃 = [𝑃𝐿 𝑃𝐿+𝑆 … 𝑃𝑈 ]𝑇 Và dễ dàng tính tốn Pan Matrix Profile 𝑃𝑀𝑃𝐼 = [𝐼𝐿 𝐼𝐿+𝑆 … 𝐼𝑈 ]𝑇 19 Nhìn qua mảng PMP PMPI ta thấy vấn đề 20 tốn nhiều thời gian tìm kiếm Matrix 21 Profile, Matrix Profile Index cho độ dài chuỗi 22 23 Và hàm tính Matrix Profile thuật toán 24 SKIMP mẻ dùng nhiều độ xác thời gian thực thi nhanh chóng Chi tiết thuật tốn MPX trình bày phần 3.2 for diag = (w/4)+1:diagmax for offset = 1:n-w-diag+2 pearson = calPearson(); if pearson > mp(offset) update mp, mpi; end if pearson > mp(offset + diag - 1) update mp, mpi; end end 25 end 26 convertPearsontoZned(); - Đầu tiên dòng 1, thuật tốn tính đường 3.2 Thuật tốn MPX o trung bình động phương pháp tác giả Ogita 200 967.39 197.57 34.95 phương thức Sum2s Trung bình 962.22 204.54 34.85 So sánh với MPX x27.61 x5.65 Bảng 3.2: Phương thức Sum2s dùng để tính đường trung bình động cho chuỗi chuỗi thời gian 3.3 THUẬT TỐN SKIMP function res = Sum2s(p) Bảng 3.4: Thuật tốn SKIMP π1 = p1; σ1 = 0; for i = : n [πi, qi] = TwoSum(πi−1, pi) σi = fl(σi−1 + qi) res = fl(πn + σn) Dữ liệu đầu vào Dữ liệu đầu Sau tìm đường trung bình động, tiếp tục sử dụng phương pháp tác giả Welford để tìm độ lệch chuẩn - Dịng 2: Tính đường chéo df dg - Dòng - 12: Thuật tốn MPX sử dụng 02 vịng lặp để tính tốn trả Matrix Profile Matrix Profile Index theo tương quan Pearson - Dòng 13: Chuyển đổi sang Euclide chuẩn hoá Z T: Chuỗi thời gian; L: Giới hạn độ dài chuỗi con; U: Giới hạn độ dài chuỗi con; S: Bước nhảy PMP: Pan Matrix Profile; PMPI: Pan Matrix Profile Index R=L:S:U / / [L, L + S, L + 2S, … , U]; PMP = [ ]; / / [T] x [R] PMPI = [ ]; / / [T] x [R] for r in R [PMPr, PMPIr] = MPX(T, r); end return PMP, PMPI Và đề tài này, tơi tiến hành thực nghiệm Thuật tốn SKIMP sử dụng vòng lặp chạy so sánh thời gian thực thuật toán MPX với từ đầu hết dãy độ dài chuỗi cần tính (R) thuật toán STAMP SCRIMP++ Bảng 4.4 bảng Cụ thể sau: - Thuật toán bắt đầu cách định rõ ràng kết thực nghiệm Bảng 3.3: So sánh thời gian tìm kiếm motif phạm vi R (tập độ dài dãy con) cần tính tốn dịng mẫu liệu Inspect EPG có độ dài 100.000 cho 1; - Tiếp theo, khởi tạo giá trị ban đầu cho thuật toán STAMP, SCRIMP++ MPX với độ dài chuỗi 100, 120, 140, 160, 180 mảng PMP PMPI - Sau đó, thuật tốn sử dụng vịng lặp để duyệt 200 Thời gian thực thi (tính giây) Độ dài chuỗi STAMP SCRIMP++ MPX 100 971.69 210.75 34.61 120 960.41 211.71 34.85 140 960.29 205.15 34.42 khái niệm chuỗi phủ trình bày 160 959.19 201.91 35.15 phần 2.5, tiến hành loại bỏ motif phủ 180 954.33 200.12 35.11 STT mảng R Mỗi lần duyệt, tiến hành tính tốn Matrix Profile Matrix Profile Index hàm MPX cập nhật vào mảng PMP PMPI - Cuối cùng, có PMP PMPI kết hợp 3.4 THUẬT TỐN SKIMP CPU o Thuật tốn SKIMP CPU xây dựng end cách áp dụng kỹ thuật xử lý song song Thuật toán 10 return PMP, PMPI phân chia số lượng độ dài chuỗi từ biến - Tại dịng 3, thuật tốn SKIMP CPU dùng RANGE (L:S:U) cho core CPU lúc vòng lặp để phân chia độ dài chuỗi cần tính cho chạy tất core CPU máy tính core CPU - Sau sử dụng phương thức parfor để duyệt song song core CPU Tại core, tiến hành lấy danh sách độ dài chuỗi cần tính tốn (dịng 4, 5) Hình 3.1: Ví dụ việc phân chia độ dài chuỗi - Tại dịng thuật tốn sử dụng vịng lặp để duyệt độ dài chuỗi core CPU cần tính tốn cho core CPU với tập liệu mẫu L=5, S=10, U=105 cập nhật vào PMP, PMPI hồn tất (dịng 7); - Cuối cùng, trả PMP, PMPI hồn chỉnh Thuật tốn SKIMP CPU khác thuật tốn SKIMP điểm thực song song tất core CPU, thực tìm Matrix Profile, Matrix Profile Index cho độ dài chuỗi core CPU chứa Bảng 3.5: Thuật tốn SKIMP phiên chạy song song core CPU Dữ liệu đầu vào Dữ liệu đầu T: Chuỗi thời gian; L: Giới hạn độ dài chuỗi con; U: Giới hạn độ dài chuỗi con; S: Bước nhảy PMP: Pan Matrix Profile; PMPI: Pan Matrix Profile Index Hình 3.2: Hình ảnh minh hoạ cách thức hoạt động thuật toán SKIMP CPU - SKIMP CPU có cải thiện mặt tốc độ R=L:S:U / / [L, L + S, L + 2S, … , U]; PMP = [ ]; / / [T] x [R] PMPI = [ ]; / / [T] x [R] ListSubLenghInCore = DivideSubLengthForCoreCPU() // Phân chia độ dài chuỗi cho core CPU thực thi độ xác tương tự thuật toán SKIMP parfor core in ListSubLenghInCore nhiều Nên giải pháp chưa thực tối ưu, gốc Tuy nhiên, số lượng độ dài chuỗi phân chia cho core CPU khơng đều, từ dẫn đến trường hợp có core CPU rảnh, có core CPU chạy ListSubLength = core ListSubLength cịn lãng phí tài nguyên song song CPU chưa giải for r in ListSubLength vấn đề lớn tốn tìm motif tính toán Matrix Profile Nên đặt yêu cầu cao [PMPr, PMPIr] = MPX(T, r); end cải tiến thuật tốn nhanh hơn, tránh lãng phí tài o ngun máy tính giải tốn tính Matrix Cal mu, sig, df, dg Profile Giải pháp trình bày phần Put all sublength into array 3.5 [MPr, MPIr] = Tính MP, MPI 3.5 THUẬT TOÁN SKIMP GPU [PMPr, PMPIr] = [MPr, MPIr] - Thuật toán SKIMP GPU thuật toán cải tiến return PMP, PMPI từ thuật toán SKIMP giải vấn đề Điểm khác biệt SKIMP GPU so với SKIMP cịn tồn động thuật tốn SKIMP CPU trình bày CPU q trình tính Matrix Profile cho độ dài phần 3.4 Nó tận dụng tối đa phần cứng máy chuỗi Thay tính tốn CPU, thuật tốn tính, bao gồm CPU GPU Cụ thể sau: đưa vào GPU để chạy đa luồng (dòng số 5) - Thuật tốn SKIMP GPU khơng phân chia - Tại dịng 5, thuật tốn khởi tạo kernel với độ dài chuỗi cho core CPU thuật toán số lượng thread phụ thuộc vào độ dài Matrix Profile SKIMP CPU, mà đưa vào mảng chứa task - Để giải tốn tính Matrix Profile hay tương ứng với độ dài chuỗi chờ thực thi cụ thể hàm chức MPX, cần tìm giải pháp có core CPU rảnh, thuật tốn đưa task vào để áp dụng xử lý song song việc dùng core CPU để thực thi Cùng lúc thực thi tất số CPU Và GPU giải pháp tốt GPU phù hợp để core CPU máy tính có (ví dụ 04 core CPU thực giải vấn đề tính tốn song song có lúc task hay xác thực nhớ riêng khởi chạy song song đa tính tốn lúc độ dài chuỗi con) luồng - Và lần tính tốn Matrix Profile, thuật - Các thread (luồng) GPU quản lý toán đưa liệu vào GPU chạy đa luồng để tính block (khối) Mỗi block có số lượng tốn hồn tất, GPU trả Matrix Profile thread xử lý cụ thể tuỳ theo chất lượng GPU Matrix Profile Index cho CPU Cuối cùng, cập nhật Và chúng chạy lúc chia sẻ vào 02 mảng PMP PMPI liệu cho Bảng 3.6: Thuật toán SKIMP phiên dùng CPU - Để xử lý song song đa luồng GPU, cần GPU đến kernel đảm nhận gọi CUDA Khi Dữ liệu đầu vào T: Chuỗi thời gian; L: Giới hạn độ dài chuỗi con; U: Giới hạn độ dài chuỗi con; S: Bước nhảy Dữ liệu đầu PMP: Pan Matrix Profile; PMPI: Pan Matrix Profile Index R=L:S:U / / [L, L + S, L + 2S, … , U]; PMP = [ ]; / / [T] x [R] PMPI = [ ]; / / [T] x [R] kernel khởi chạy, thuật toán tiến hành đăng ký số block số thread block để chạy song song Ví dụ card Nividia Quardo M1200 cho phép chạy tối đa 1024 thread block - Và đưa hàm chức MPX xử lý GPU Các công việc cần thực sau: + CPU gửi tham số cần thiết sang GPU + CPU khởi chạy GPU kernel thực tính tốn Matrix Profile, Matrix Profile Index + CPU nhận liệu trả từ GPU (Matrix o Profile, Matrix Profile Index) cập nhật vào PMP, THỰC NGHIỆM PMPI Tiến hành thực nghiệm tập liệu Inspect Trong bước đầu tiên, CPU tiến hành tính tốn EPG có độ dài 100.000 tham số chép liệu sang cho 4.1 Thời gian thực thi GPU Thời gian tính tốn tham số không Bảng 4.9: Thời gian thực thi mẫu Inspect Data nhiều việc chép liệu sang GPU với chặn = 8, bước nhảy = chặn từ 12 đến 195 không nhiều thời gian Tiếp theo, CPU khởi chạy kernel để chạy xử Chặn 8 8 lý song song đa luồng bên GPU Khi đó, vịng lặp từ dịng – 12 MPX phân chia cho luồng GPU xử lý (do liệu không bị ràng buộc phụ thuộc lẫn nhau) Ví dụ: chuỗi thời gian Bước nhảy 1 1 Chặn 195 98 49 24 12 SKIMP MOEN 12617.2 6063.41 2710.12 1105.09 325.23 9986.85 6220.01 3624.26 2406.19 1193.14 SKIMP CPU 4453.77 1996.40 945.48 423.00 176.94 SKIMP GPU 368.47 178.66 74.45 32.24 9.87 Nhận xét: có độ dài n = 100.000, chuỗi có độ dài m = 100 - Thời gian thực thi trung bình theo thứ Matrix Profile có chiều dài n – m + tự MOEN < SKIMP < SKIMP CPU < SKIMP GPU 100.000 – 100 + 1= 99.901, đồng thời kết hợp với Thuật toán MOEN chậm thuật toán SKIMP bỏ qua so trùng tầm thường độ dài Matrix Profile GPU nhanh n – m + – m/4 = 99.875, thuật toán tạo - Thuật tốn MOEN có trường hợp 8-1-195 kernel 99.875 thread Khi đó, lúc 99.875 thread cho thời gian xử lý nhanh thuật toán SKIMP, khởi chạy bên GPU trường hợp lại chậm MOEN chậm trung bình 0.74 lần so với SKIMP - Thuật toán SKIMP CPU nhanh gấp 2.64 lần so với SKIMP Tận dụng chạy song song core CPU lúc thời gian gấp 2.64 lần cho thấy SKIMP CPU chưa thực hiệu so với tài nguyên bỏ - Thuật toán SKIMP GPU nhanh gấp 34.36 lần so với SKIMP 13.40 lần so với SKIMP CPU Cho Hình 3.3: Hình ảnh minh hoạ cách thức hoạt động thấy việc tận dụng CPU GPU máy tính mang thuật toán SKIMP GPU lại hiệu cao Thời gian thực thi giảm đáng kể độ xác gần tương tự 4.2 Độ xác Bảng 4.10: Danh sách motif tìm thuật toán thực thi mẫu Inspect Data với chặn = 8, bước nhảy = chặn từ 12 Hình 3.4: Minh hoạ thuật tốn MPX xử lý song đến 195 song GPU o 8-1-12 SKIMP 8-1-195 SKIMP CPU 9510 27426 22569 83000 22569 83000 MOEN 9510 27426 9510 27427 SKIMP GPU SKIMP SKIMP CPU 9509 27427 22569 83000 10 35216 62199 10 35217 62199 10 35217 62199 10 35217 62198 10 35217 62198 10 35217 62198 10 35217 62199 10 35217 62198 13 28272 28463 13 28273 28463 13 28273 28463 13 28273 28462 12 28274 28464 12 28274 28464 11 28274 28464 12 28273 28462 16 30359 48272 16 30360 48272 14 33248 86031 16 30360 48271 17 27501 87544 17 27502 87544 16 30360 48272 17 27502 87543 19 61630 83676 19 61631 83676 17 27502 87544 19 61631 83675 9510 27426 20 31267 78440 20 31268 78440 19 61631 83676 20 31268 78439 18456 97967 30 18457 97967 20 31268 78440 30 18457 97966 SKIMP SKIMP CPU MOEN 9510 27427 9510 27426 22569 83000 22569 83000 22569 83000 30 10 35217 62198 10 35217 62198 10 35217 62199 10 35217 62198 32 13 28273 28462 13 28273 28462 13 28273 28463 13 28273 28462 50 15722 74997 50 15723 74997 32 16 30360 48271 16 30360 48271 14 33248 86031 16 30360 48271 52 47694 66691 52 47695 66691 50 15723 74997 52 47695 66690 17 27502 87543 17 27502 87543 15 32351 17 27502 87543 53 5128 80209 53 5129 80209 52 47695 66691 53 5129 80208 61631 83675 19 61631 83675 16 30360 48272 19 61631 83675 55 8321 81444 55 8322 81444 53 5129 80209 55 8322 81443 20 31268 78439 20 31268 78439 17 27502 87544 20 31268 78439 56 37005 42426 56 37006 42426 55 8322 81444 56 37006 42425 21 80033 90950 21 80033 90950 19 61631 83676 21 80033 90950 63 32363 82244 63 32364 82244 56 37006 42426 63 32364 82243 18461 97971 24 18461 97971 20 31268 78440 24 18461 97970 64 22557 85828 64 22558 85828 63 32364 82244 64 22558 85827 21 80033 90951 70 39855 69335 70 39856 69335 64 22558 85828 70 39856 69334 23 18461 97971 78 8705 33283 78 8706 33283 70 39856 69335 78 8706 33282 100 41929 75441 100 41930 75441 78 8706 33283 100 41930 75440 SKIMP GPU 103 29165 74373 103 29166 74373 100 41930 75441 103 29166 74372 1264 49972 107 1265 49972 103 29166 74373 107 1265 49971 22569 83001 67 9510 27427 9510 27426 24 8 19 9510 27426 SKIMP GPU 9510 27427 SKIMP GPU 8-1-24 MOEN 9510 27426 22569 83001 8-1-49 SKIMP SKIMP CPU MOEN 35217 62198 35217 62198 9510 27427 35217 62198 107 22569 83000 22569 83001 145 33811 32 146 33811 30 18457 97967 32 146 33810 146 33811 50 15723 74996 22569 83000 22569 83000 126 28888 90842 126 28889 90842 107 1265 49972 126 28889 90841 10 9510 27426 10 9510 27426 10 35217 62199 10 9510 27426 127 50995 81273 127 50996 81273 126 28889 90842 127 50996 81272 13 28273 28462 13 28273 28462 13 28273 28463 13 28273 28462 143 54154 72491 143 54155 72491 127 50996 81273 143 54155 72490 16 30360 48271 16 30360 48271 14 33248 86031 16 30360 48271 144 89165 90505 144 89166 90505 143 54155 72491 144 89166 90504 18 27502 87543 18 27502 87543 15 195 47915 86457 195 47915 86457 144 89166 90505 195 47914 86455 19 61632 83676 19 61632 83676 16 30360 48272 19 61632 83676 21 31268 78439 21 31268 78439 17 27502 87544 21 31268 78439 22 80033 90950 22 80033 90950 19 61631 83676 22 80033 90950 30 18457 97966 30 18457 97966 20 31268 78440 30 18457 97966 32 49 146 33810 32 67 32351 18 27502 87543 146 33810 21 80033 90951 32 194 47915 86457 Nhận xét: - Trường hợp 8-1-12: Trong trường hợp này, vị 146 33810 trí motif thu thuật tốn SKIMP, 15724 74998 49 15724 74998 30 18457 97967 49 15723 74996 32 146 33811 SKIMP CPU SKIMP GPU tương tự Thuật 48 15724 74998 tốn MOEN có khác biệt motif, cụ thể độ 8-1-98 SKIMP SKIMP CPU 9509 27427 35216 62199 10 35217 62199 10 35217 62199 10 35217 62198 13 28272 28463 13 28273 28463 13 28273 28463 13 28273 28462 16 30359 48272 16 30360 48272 14 33248 86031 16 30360 48271 17 27501 87544 17 27502 87544 16 30360 48272 17 27502 87543 19 61630 83676 19 61631 83676 17 27502 87544 19 61631 83675 20 31267 78440 20 31268 78440 19 61631 83676 20 31268 78439 21 80032 90951 21 80033 90951 20 31268 78440 21 80033 90950 30 18456 97967 30 18457 97967 21 80033 90951 30 18457 97966 145 33811 32 9510 27427 9510 27427 SKIMP GPU 10 32 MOEN 146 33811 30 18457 97967 32 dài chuỗi 11 (28274; 28464) 9510 27426 - Trường hợp 8-1-24: Trong trường hợp này, vị trí motif thu thuật toán SKIMP, SKIMP CPU SKIMP GPU tương tự Thuật toán MOEN có khác biệt motif, cụ thể độ dài chuỗi 14 (33248; 86031), 15 (67; 32351) 23 146 33810 50 15722 74997 50 15723 74997 32 52 47694 66691 52 47695 66691 50 15723 74997 52 47695 66690 146 33811 50 15723 74996 53 5128 80209 53 5129 80209 52 47695 66691 53 5129 80208 55 8321 81444 55 8322 81444 53 5129 80209 55 8322 81443 56 37005 42426 56 37006 42426 55 8322 81444 56 37006 42425 63 32363 82244 63 32364 82244 56 37006 42426 63 32364 82243 64 22557 85828 64 22558 85828 63 32364 82244 64 22558 85827 70 39855 69335 70 39856 69335 64 22558 85828 70 39856 69334 78 8705 33283 78 8706 33283 70 39856 69335 78 8706 33282 91 1279 49987 91 1280 49987 78 8706 33283 91 1280 49986 98 41930 75441 98 41930 75441 91 1280 49987 98 41930 75440 (18461; 97971) - Trường hợp 8-1-49: Trong trường hợp này, vị trí motif thu thuật toán SKIMP, SKIMP CPU SKIMP GPU tương tự Thuật tốn MOEN có khác biệt motif, cụ thể độ dài chuỗi (9510; 27427), (22569; 83011), 14 (33248; 86031), 15 (67; 32351) 48 (15724; 97 41930 75441 o - Tìm hiểu cài đặt thành cơng thuật tốn 74998) - Trường hợp 8-1-98: Trong trường hợp này, SKIMP tìm giải pháp tăng tốc thuật thuật toán SKIM, SKIMP CPU SKIMP toán cách tận dụng CPU GPU máy tính GPU tương tự Trong đó, kết thuật tốn - So sánh thuật toán SKIMP với thuật toán MOEN khác biệt 02 trường hợp 14 (33248; chung mục tiêu MOEN với 02 phiên 86031) 97 (41930; 75441) SKIMP CPU SKIMP GPU - Trường hợp 8-1-195: Trong trường hợp này, - Từ kết thực nghiệm trình bày thuật tốn SKIMP, SKIMP CPU SKIMP chương cho thấy thuật toán SKIMP tận dụng CPU GPU tương tự Trong đó, kết thuật tốn GPU cho thời gian xử lý ấn tượng độ MOEN khác biệt so với thuật tốn SKIMP 02 xác đảm bảo phạm vi chấp nhận trường hợp 14 (33248; 86031) 194 (47915; so với thuật toán SKIMP thuật toán MOEN 86457) 5.2 Hạn chế Đề tài hạn chế sau: Người dùng bắt buộc phải nhập tham số chặn tham số dẫn đến dư thừa có nhiều kết bị phủ Hình 5: Minh hoạ hình ảnh motif thu tốn nhiều thời gian thực thi Ví dụ: độ dài motif tối thuật tốn SKIMP, SKIMP CPU, MOEN đa 2000, người dùng nhập vào chặn SKIMP GPU với mẫu Inspect EPG, độ dài 4000 5.3 Hướng phát triển chuỗi 55 Thuật tốn SKIMP phát triển thành phiên cải tiến nhanh xác tương lai Cụ thể sau: Hình 4.6: Minh hoạ hình ảnh motif thu - Về thời gian thực thi, sử dụng giải thuật thuật toán SKIMP, SKIMP CPU, MOEN chia nhỏ chuỗi thời gian thành nhiều phần tìm SKIMP GPU với mẫu Inspect EPG, độ dài motif phần Cuối kết hợp chuỗi 78 phần nhỏ lại với để thu danh sách motif - Phát triển SKIMP sử dụng CPU GPU nhiều máy tính thay 01 máy Hình 4.7: Minh hoạ hình ảnh motif thu cách sử dụng chức Parallel Matlab Server thuật toán SKIMP, SKIMP CPU, MOEN đồng liệu thread tốt để tránh thu SKIMP GPU với mẫu Inspect EPG, độ dài trường hợp chưa xác chuỗi 144 - Tận dùng nhiều GPU phân chia nhiệm vụ KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN cho GPU Ví dụ trường hợp có 02 GPU, GPU 5.1 Kết đạt tính tốn tham số đầu vào cho thuật toán Các kết đạt sau: MPX GPU đảm nhiệm tính Matrix o Profile [7] Salgotra, R., M Gandomi, and A.H Gandomi, - Đồng thời sử dụng phương pháp lưu Time series analysis and forecast of the COVID-19 trữ vào nhớ kết tính trước sử pandemic in India using genetic programming dụng lại Ví dụ sử dụng lại Matrix Profile Chaos, Solitons & Fractals, 2020 138: p 109945 độ dài chuỗi tính trước Lần chạy [8] Madrid, F., et al., Matrix Profile XX: Finding mẫu 8-1-10 chạy mẫu 8-1-20 tận and Visualizing Time Series Motifs of All Lengths dụng lại Matrix Profile độ dài chuỗi từ using the Matrix Profile 2019 175-182 đến 10, từ tiết kiệm nhiều thời gian thực [9] Mueen, A., et al., The Fastest Similarity Search thi Algorithm for Time Series Subsequences under TÀI LIỆU THAM KHẢO Euclidean Distance 2017 [1] Yeh, C.M., et al Matrix Profile I: All Pairs [10] Ogita, T., S.M Rump, and S.i.J.S.J.S.C Oishi, Similarity Joins for Time Series: A Unifying View Accurate Sum and Dot Product 2005 26: p 1955- That Includes Motifs, Discords and Shapelets in 1988 2016 IEEE 16th International Conference on Data [11] Welford, B.P., Note on a Method for Mining (ICDM) 2016 Calculating Corrected Sums of Squares and [2] Mueen, A., et al., The Fastest Similarity Search Products Technometrics, 1962 4(3): p 419-420 Algorithm for Time Series Subsequences under Euclidean Distance 2017 [3] Zhu, Y., et al Matrix Profile XI: SCRIMP++: Time Series Motif Discovery at Interactive Speeds in 2018 IEEE International Conference on Data Mining (ICDM) 2018 [4] Mueen, A., et al., Exact Discovery of Time Series Motifs, in Proceedings of the 2009 SIAM International Conference on Data Mining (SDM) 2009, Society for Industrial and Applied Mathematics p 473-484 [5] Chiu, B., E Keogh, and S Lonardi, Probabilistic discovery of time series motifs, in Proceedings of the ninth ACM SIGKDD international conference on Knowledge discovery and data mining 2003, Association for Computing Machinery: Washington, D.C p 493–498 [6] Lin, J., et al., Finding Motifs in Time Series Proceedings of the Second Workshop on Temporal Data Mining, 2002 10 o 11 o S o K L 0 ... gian kết nghiên cứu công bố phát motif liệu chuỗi thời gian Phạm vi nghiên cứu: Chuỗi thời gian toán phát motif tất độ dài chuỗi chuỗi thời gian thuật toán SKIMP Cách tiếp vận phương pháp nghiên... tìm cặp motif tốt xố bỏ cặp motif bị che phủ 3.2.3 Thuật toán SKIMP Thuật toán SKIMP thuộc nhóm thuật tốn tìm kiếm motif với tất độ dài chuỗi chuỗi thời gian MOEN HIME Cách tiếp cận xử lý SKIMP. .. ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH LUẬN VĂN THẠC SĨ ĐOÀN VĂN THANH PHONG PHÁT HIỆN CÁC CẶP MOTIF VỚI CHIỀU DÀI KHÁC NHAU TRÊN CHUỖI THỜI GIAN SỬ DỤNG THUẬT TỐN SKIMP NGÀNH: KHOA HỌC

Ngày đăng: 07/03/2023, 18:58

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w