ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC BÁCH KHOA
-
LÝ MINH TRÍ
PHÂN LỚP DỮ LIỆU CHUỖI THỜI GIAN DỰA VÀO MẠNG NƠ-RON TÍCH CHẬP CNN
Chuyên ngành: Khoa học máy tính Mã số: 8480101
LUẬN VĂN THẠC SĨ
Trang 2ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC BÁCH KHOA
-
LÝ MINH TRÍ
PHÂN LỚP DỮ LIỆU CHUỖI THỜI GIAN DỰA VÀO MẠNG NƠ-RON TÍCH CHẬP CNN
Chuyên ngành: Khoa học máy tính Mã số: 8480101
LUẬN VĂN THẠC SĨ
Trang 3i
CƠNG TRÌNH ĐƯỢC HỒN THÀNH TẠITRƯỜ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, TS Nguyễn Đức Dũng
Cán bộ chấm nhận xét 1 : TS Lê Văn Quốc Anh Cán bộ chấm nhận xét 2 : TS Bùi Công Giao
Luận văn thạc sĩ được bảo vệ tại Trường Đại học Bách Khoa, ĐHQG Tp HCM ngày 13 tháng 07 năm 2023
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 Võ Thị Ngọc Châu - Chủ tịch
2 TS Phan Trọng Nhân - Thư ký 3 TS Lê Văn Quốc Anh - Phản biện 1 4 TS Bùi Công Giao - Phản biện 2 5 TS Trần Tuấn 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ó)
Trang 4ii
ĐẠ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
I NHIỆM VỤ LUẬN VĂN THẠC SĨ
Họ tên học viên: LÝ MINH TRÍ MSHV: 1970132 Ngày, tháng, năm sinh: 06/01/1992 Nơi sinh: Kiên Giang Chuyên ngành: Khoa học máy tính Mã số: 8480101
I TÊN ĐỀ TÀI:
PHÂN LỚP DỮ LIỆU CHUỖI THỜI GIAN DỰA VÀO MẠNG NƠ-RON TÍCH CHẬP CNN (TIME SERIES CLASSIFICATION WITH CONVOLUTIONAL
NEURAL NETWORKS)
II NHIỆM VỤ VÀ NỘI DUNG:
Đề xuất, nghiên cứu, thực hiện,đánh giá hiệu năng khi áp dụng mạng nơ ron tích chập
(CNN) cho bài tốn phân lớp chuỗi thời gian so với phương pháp truyền thống 1-lân cận gần nhất (1-NN) kết hợp với độ đo DTW và phương pháp SAX kết hợp mơ hình
khơng gian vectơ.
III NGÀY GIAO NHIỆM VỤ: 06/02/2023
IV NGÀY HOÀN THÀNH NHIỆM VỤ: 11/06/2023
V CÁN BỘ HƯỚNG DẪN: PGS TS Dương Tuấn Anh, TS Nguyễn Đức Dũng
Tp HCM, ngày tháng năm 2023CÁN BỘ HƯỚNG DẪN (Họ tên và chữ ký)HỘI ĐỒNG NGÀNH (Họ tên và chữ ký)TRƯỞNG KHOA
KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH
Trang 5iii
LỜI CẢM ƠN
Tôi muốn gửi lời cảm ơn chân thành đến PGS.TS Dương Tuấn Anh, người đã định hướng, hỗ trợ, tạo điều kiện tốt nhất cho tôi trong q trình làm luận văn thạc sĩ
Tơi cũng muốn gửi lời cảm ơn đến tất cả các giảng viên thuộc bộ mơn Khoa học máy tính, những người đã chia sẻ kiến thức và kinh nghiệm quý báu của mình Sự hỗ trợ và động viên từ phía họ đã giúp tơi tiến bộ và hồn thiện tốt hơn trong q trình nghiên cứu
Cuối cùng, tơi muốn bày tỏ lịng biết ơn chân thành đến gia đình và bạn bè đã luôn đồng hành và hỗ trợ tôi trong suốt quá trình học tập và thực hiện luận văn này Sự ủng hộ và động viên của họ đã trở thành động lực quan trọng giúp tôi vượt qua những khó khăn và hồn thành nhiệm vụ này
Xin chân thành cảm ơn
Trang 6iv
TÓ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ển nhanh 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ệc khai 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, gần đây với sự phát triển của mạng nơ ron học sâu, đã có xuất hiện những cơng trình nghiên cứu áp dụng mạng nơ ron tích chập (CNN) vào công tác phân lớp dữ liệu chuỗi thời gian Trong luận văn này, chúng tôi chọn áp dụng mạng nơ ron tích chập một chiều (1D-CNN) vào bài tốn phân lớp dữ liệu chuỗi thời gian, do tính phù hợp của mơ hình 1D-CNN với thể loại dữ liệu chuỗi thời gian cũng như mơ hình 2D-CNN phù hợp với thể loại dữ liệu hình ảnh
Trang 7v
ABSTRACT
The research and application of time series data classification techniques have been attracting the attention of data researchers With the rapid development of technology, time series data has been collected by many devices Time series data mining will bring benefits to many areas, such as data mining, statistics, machine learning, signal processing, etc…
There are many methods of time series data classification And recently, with the development of deep neural networks, there have been several research works which applied convolutional neural networks (CNNs) in time series classification In this work, we choose to apply 1-dimensional convolutional neural networks (1D-CNN) in time series data classification since 1D-CNN model is more suitable with time series data than the standard 2D-CNN model which is more suitable with image data
Trang 8vi
LỜI CAM ĐOAN
Tôi cam đoan rằng trong luận văn này, tất cả các công thức, ý tưởng, nghiên cứu, và phân tích mà tơi đã mượn từ bên thứ ba đã được chú thích nguồn dẫn một cách đầy đủ trong mục tài liệu tham khảo theo quyền của tác giả
Tơi khẳng định rằng tồn bộ nội dung khác, bao gồm lý luận, cơng thức, hình ảnh, và các thành quả nghiên cứu khác (trừ các tài liệu tham khảo đã được trích dẫn) là kết quả của công việc nghiên cứu của tôi dưới sự hướng dẫn của PGS.TS Dương Tuấn Anh
Tôi cam đoan rằng tồn bộ thơng tin và kiến thức tơi tìm hiểu đã được thu thập từ các nguồn tin cậy Các số liệu dẫn chứng và đánh giá được trình bày trong luận văn là trung thực và không bị gian lận hoặc phóng đại
Nếu có bất kỳ sự gian lận nào trong luận văn này, tơi xin hồn tồn chịu trách nghiệm và sẵn sàng chấp nhận các hình phạt
Tp Hồ Chí Minh, tháng 06 năm 2023
Trang 9vii
MỤC LỤC
CHƯƠNG 1 GIỚI THIỆU ĐỀ TÀI 1
1.1 Động cơ nghiên cứu 1
1.2 Mục tiêu và phạm vi nghiên cứu 1
1.3 Những kết quả đạt được của luận văn 2
1.4 Cấu trúc của luận văn 2
CHƯƠNG 2 CƠ SỞ LÝ THUYẾT 4
2.1 Chuỗi thời gian 4
2.2 Phân lớp dữ liệu 5
2.2.1 Khái niệm phân lớp dữ liệu 5
2.2.2 Phương pháp phân lớp k lân cận gần nhất (k-NN) 5
2.3 Các độ đo khoảng cách 6
2.3.1 Độ đo Euclid 7
2.3.2 Độ đo xoắn thời gian động 7
2.4 Mạng nơron đa tầng (MLP) 8
2.5 Học sâu 9
2.6 Mạng nơ ron tích chập (CNN) 10
2.7 Hàm Softmax 11
2.8 Tinh chỉnh các siêu tham số và giải thuật Grid Search 12
2.9 Chuẩn hóa dữ liệu 14
CHƯƠNG 3 CÁC CƠNG TRÌNH LIÊN QUAN 15
3.1 Phân lớp chuỗi thời gian dựa vào shapelet 15
3.2 Phân lớp chuỗi thời gian bằng phương pháp SAX-VSM 16
3.3 Phân lớp chuỗi thời gian bằng mạng nơ ron tích chập FCN 17
3.4 Mạng nơ ron tích chập một chiều 19
CHƯƠNG 4 PHƯƠNG PHÁP PHÂN LỚP ĐỀ XUẤT 23
4.1 Phương pháp tiếp cận 23
Trang 10viii
4.3 Các bộ dữ liệu thực nghiệm 25
4.4 Thư viện phần mềm hỗ trợ 26
4.5 Cách đánh giá chất lượng phương pháp phân lớp 26
CHƯƠNG 5 THỰC NGHIỆM ĐÁNH GIÁ 28
5.1 Cấu hình hệ thống sử dụng trong thực nghiệm 28
5.2 Các phương pháp đối sánh và các bộ dữ liệu thực nghiệm 28
5.2.1 Các phương pháp đối sánh cho công tác phân lớp dữ liệu chuỗi thời gian 28
5.2.2 Các bộ dữ liệu thực nghiệm 28
5.2.3 Bộ dữ liệu nhịp tim ECGFiveDays 31
5.2.4 Bộ dữ liệu Fish 32
5.2.5 Bộ dữ liệu CBF 33
5.2.6 Bộ dữ liệu Trace 33
5.3 Giá trị siêu tham số cho các bộ dữ liệu thực nghiệm 34
5.4 Kết quả thực nghiệm của ba bộ dữ liệu ArrowHead, BeeFl và ECGFiveDays 35
5.4.1 Kết quả thực nghiệm của bộ dữ liệu ArrowHead 35
5.4.2 Kết quả thực nghiệm của bộ dữ liệu BeeFl 36
5.4.3 Kết quả thực nghiệm của bộ dữ liệu ECGFiveDays 38
5.5 Kết quả tổng hợp tỷ lệ lỗi của các bộ dữ liệu thực nghiệm 39
5.6 Kết quả tổng hợp thời gian thực thi của các bộ dữ liệu thực nghiệm 40
CHƯƠNG 6 KẾT LUẬN 42
6.1 Kết quả đạt được của luận văn 42
6.2 Hướng phát triển trong tương lai 42
TÀI LIỆU THAM KHẢO 43
PHỤ LỤC A 45
PHỤ LỤC B 47
Trang 11ix
DANH MỤC HÌNH
Hình 2.1: Chuỗi thời gian giá cổ phiếu của một công ty 4
Hình 2.2: Minh hoạ giải thuật k-NN 6
Hình 2.3: So sánh độ đo DTW với độ đo Euclid 8
Hình 2.4: Mạng nơ ron đa tầng truyền thẳng 8
Hình 2.5: Sự khác biệt giữa mơ hình học sâu và mơ hình khơng sâu 9
Hình 2.6: Mạng nơ ron tích chập 11
Hình 2.7 : Mơ hình hồi quy softmax dưới dạng mạng nơ ron 12
Hình 2.8 : Ví dụ về grid search 13
Hình 3.1: Tổng quan về thuật tốn SAX-VSM 17
Hình 3.2 : Kiến trúc mạng tích chập FCN để phân lớp chuỗi thời gian ([3]) 18
Hình 3.3 : Kiến trúc mẫu của mạng nơ ron tích chập một chiều (1D CNN) với 3 tầng CNN và 2 tầng MLP 20
Hình 3.4 : Sơ đồ tính tốn mạng nơ ron tích chập một chiều (1D CNN) 21
Hình 4.1: Kiểm tra chéo k-phần với k = 4 27
Hình 5.1: Một số hình minh họa bộ dữ liệu ArrowHead 31
Hình 5.2 : Một số hình minh họa bộ dữ liệu BeeFl 31
Hình 5.3: Một số hình minh họa bộ dữ liệu ECGFiveDays 32
Hình 5.4: Hình chụp của một con cá và biểu diễn thành chuỗi thời gian [25] 32Hình 5.5: Biểu diễn ba lớp của dữ liệu CBF 33
Hình 5.6: Ví dụ về bốn nhóm lớp của bộ dữ liệu Trace 34
Hình 5.7 : Tỉ lệ lỗi phân lớp trên bộ dữ liệu ArrowHead 36
Hình 5.8 : Thời gian phân lớp trên bộ dữ liệu ArrowHead 36
Hình 5.9 : Tỉ lệ lỗi phân lớp trên bộ dữ liệu BeeFl 37
Hình 5.10 : Thời gian phân lớp trên bộ dữ liệu BeeFl 37
Hình 5.11 : Tỉ lệ lỗi phân lớp trên bộ dữ liệu ECGFiveDays 38
Trang 12x
DANH MỤC BẢNG
Bảng 4.1: Cấu hình dự kiến của mạng 1D-CNN 24
Bảng 5.1: Ký hiệu các bộ dữ liệu 29
Bảng 5.2: Thông tin các bộ dữ liệu sử dụng trong thực nghiệm 30
Bảng 5.3 : Cấu hình siêu tham số mạng 1D-CNN cho từng bộ dữ liệu 34
Bảng 5.4 : Tổng hợp tỷ lệ lỗi phân lớp trên bộ dữ liệu thực nghiệm 39
Trang 131
CHƯƠNG 1 GIỚI THIỆU ĐỀ TÀI 1.1 Động cơ nghiên cứu
Ngày nay, việc phân tích, khai phá dữ liệu chuỗi thời gian (time series) mang lại nhiều
lợi ích to lớn trong các lĩnh vực tài chính, y tế, dự báo thời tiết Một trong các phương
pháp phân tích chuỗi thời gian là xây dựng một bộ phân lớp (classifier) trên một tập dữ
liệu đã được gắn nhãn lớp, cho phép phân loại các dữ liệu chuỗi thời gian chưa biết lớp theo các lớp đã định trước
Một số phương pháp phân lớp truyền thống có thể kể đến như : cây quyết định,
k-lân cận gần nhất,v.v Năm 2013, Wang và các cộng sự [1] đã cho thấy giải thuật 1-k-lân cận gần nhất (1-NN) kết hợp với độ đo DTW là một cách tiếp cận hiệu quả và được
xem là tiêu chuẩn vàng cho bài toán phân lớp chuỗi thời gian Phương pháp phân lớp chuỗi thời gian dựa vào phép biến đổi SAX và mơ hình khơng gian véc-tơ trong cơng trình của Senin và Malinchink [2] cũng đưa ra kết quả khả quan và thời gian thực thi tối ưu hơn
Trong những năm gần đây, sự bùng nổ của học sâu (deep learning) đã tạo ra bước
ngoặt mới trong lĩnh vực trí tuệ nhân tạo Trong một cơng trình của Wang và các cộng sự (2016) [3], các tác giả đã đề xuất mô hình mạng nơ ron tích chập FCN (Fully Convolutional Network) để phân lớp dữ liệu chuỗi thời gian và so sánh phương pháp đề xuất với các thuật toán phân lớp truyền thống áp dụng trên các tập dữ liệu chuỗi thời gian khác nhau Kết quả của thực nghiệm cho thấy phương pháp phân lớp dựa vào mạng FCN (Fully Convolutional Network) là một hướng tiếp cận khả quan mới, đạt kết quả phân lớp vượt trội trên một số tập dữ liệu
Theo xu hướng ấy, đề tài nghiên cứu áp dụng mạng nơ ron tích chập (CNN) vào
việc phân lớp dữ liệu chuỗi thời gian và so sánh hiệu quả của phương pháp đề xuất với
phương pháp k-lân cận gần nhất kết hợp độ đo xoắn thời gian động (DTW), phương
pháp SAX kết hợp mơ hình khơng gian vectơ
1.2 Mục tiêu và phạm vi nghiên cứu
Trang 142
thống 1-lân cận gần nhất (1-NN) kết hợp với độ đo DTW và phương pháp SAX kết hợp
mơ hình khơng gian vectơ
Phương pháp đề xuất thực nghiệm trên nhiều tập chuỗi thời gian mẫu khác nhau Đề tài đưa ra kết quả so sánh giữa các phương pháp, để làm rõ tiềm năng trong phương hướng tiếp cận mới cho bài toán phân lớp chuỗi thời gian.
1.3 Những kết quả đạt được của luận văn
Sau thời gian nghiên cứu và thực nghiệm, chúng tôi đạt được những kết quả sau :
- Hiểu rõ về mơ hình mạng nơ ron tích chập một chiều (1D-CNN)
- Hiểu rõ phương pháp 1-lân cận gần nhất (1-NN) kết hợp với độ đo DTW
- Hiểu rõ phương pháp SAX kết hợp mơ hình khơng gian vectơ
- Hiện thực thành công 3 phương pháp trên lên 14 bộ dữ liệu chuỗi thời gian mẫu khác nhau từ website UCR
- So sánh độ chính xác phân lớp, kết quả thực nghiệm cho thấy việc áp dụng mạng nơ ron tích chập một chiều (1D-CNN) cho kết quả phân lớp chính xác tốt hơn so với 2 phương pháp truyền thống là 1-lân cận gần nhất (1-NN) kết hợp với độ đo
DTW và phương pháp SAX kết hợp mơ hình khơng gian vectơ trên phần lớp các bộ dữ liệu thực nghiệm
- So sánh thời gian phân lớp , kết quả thực nghiệm cho thấy với việc nâng cao độ
chính xác phân lớp, việc áp dụng mạng nơ ron tích chập (CNN) cần nhiều thời
gian hơn để huấn luyện mạng, đặc biệt trong việc áp dụng kỹ thuật grid search để tìm các siêu tham số phù hợp cho từng tập dữ liệu
1.4 Cấu trúc của luận văn
Phần còn lại của luận văn này gồm các chương:
Chương 2 giới thiệu các cơ sở lý thuyết của đề tài như chuỗi thời gian, phân lớp dữ liệu, các độ đo khoảng cách, mạng nơ ron đa tầng, học sâu, mạng nơ ron tích chập, hàm softmax, tinh chỉnh các siêu tham số, giải thuật Grid Search và chuẩn hóa dữ liệu Chương 3 giới thiệu các cơng trình liên quan như phương pháp phân lớp chuỗi thời gian dựa vào shapelet, phương pháp phân lớp chuỗi thời gian SAX-VSM, phương
Trang 153
Chương 4 đề xuất phương pháp giải quyết vấn đề
Chương 5 trình bày kết quả thực nghiệm so sánh phương pháp đề xuất với hai phương pháp phân lớp chuỗi thời gian đối sánh
Chương 6 trình bày những kết quả đạt được của luận văn và hướng phát triển trong tương lai
Trang 164
CHƯƠNG 2 CƠ SỞ LÝ THUYẾT
Chương này giới thiệu các cơ sở lý thuyết của đề tài như chuỗi thời gian, phân lớp dữ liệu, các độ đo khoảng cách, mạng nơ ron đa tầng, học sâu, mạng nơ ron tích chập, hàm softmax, tinh chỉnh các siêu tham số, giải thuật Grid Search và chuẩn hóa dữ liệu.
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át chuỗi thời gian, chúng ta nhận thấy rằng dữ liệu chuỗi thời gian thường bao gồm bốn thành phần phổ biến đó là
xu hướng (trend), chu kỳ (cyclical), mùa (seasonal) và bất quy tắc (irregular) Hình 2.1
minh họa đường biểu diễn của chuỗi thời gian giá cổ phiếu của một công ty
Trang 175
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à công tác xác định một mẫu dữ liệu thuộc vào lớp nào trong mộ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)
Trong 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
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ầm quan 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 vectơ 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), v.v …
2.2.2 Phương pháp phân lớp k lân cận gần nhất (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ẫu trong 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,
Trang 186
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 tốn khoảng cách giữa chuỗi thời gian 𝑄 thử (test set) đến tất cả các chuỗi thời
gian trong tập huấn luyện T (training set) sử dụng độ đo khoảng cách
3 Sắp xếp theo thứ tự tăng dần và xác định k lân cận gần nhất với chuỗi thời gian Q 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 tốn cao khi số mẫu của tập dữ liệu lớn Hình 2.2 minh họa giải thuật k lân cận gần nhất
Hình 2.2: Minh hoạ giải thuật k-NN
Phương pháp phân lớp chuỗi thời gian dựa vào giải thuật k-NN được xếp vào thể
loại phân lớp chuỗi thời gian dựa vào khoảng cách (distance - based time series
classification)
2.3 Các độ đo khoảng cách
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ỗi thời gian và miền ứng dụng mà có độ đo tương ứng phù hợp Đối với bài toán phân lớp dữ liệu chuỗi thời gian, có hai độ đo khoảng cách thường được áp dụng là độ đo khoảng cách
Trang 197 2.3.1 Độ đo Euclid
Độ đo khoảng cách Euclid được dùng để đo độ khác biệt giữa hai chuỗi thời gian Đây
là độ đo khoảng cách đơn giản nhất và dễ tính tốn nhất Cho hai chuỗi thời gian C ={𝑐1, 𝑐2, , 𝑐! } và Q = {𝑞1, 𝑞2, , 𝑞! }, khoảng cách Euclid giữa hai chuỗi thời gian C
và Q được tính bằng cơng thức sau:
ED(C,Q) = ' (𝑐21 − 𝑞1 )2 + (𝑐2 − 𝑞2 )2 + + (𝑐! − 𝑞! )2
Độ đo khoảng cách Euclid có ưu thế là đơn giản, dễ hiện thực và thời gian thực thi thấp Tuy nhiên độ đo Euclid có nhược điểm là nhạy cảm với nhiễu và kém tính linh hoạt vì độ đo này u cầu hai chuỗi thời gian có chiều dài bằng nhau
2.3.2 Độ đo xoắn thời gian động
Hai chuỗi thời gian có hình dạng giống nhau nhưng bị lệch pha một khoảng thờ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ậy nhượ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 [4] vào năm 1975 và được Sakoe-Chiba [5] cải tiến năm 1978, sau đó được đưa vào ứng dụng trong xử lý chuỗi thời gian do nhóm tác giả Berndt và Clifford [6] 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ác nhau)
Trang 208
Hình 2.3: So sánh độ đo DTW với độ đo Euclid
2.4 Mạng nơron đa tầng (MLP)
Mạng nơron nhân tạo (Artificial Neural Networks) mô phỏng lại mạng nơ ron sinh học
là một cấu trúc khối gồm các đơn vị tính tốn đơn giản được liên kết chặt chẽ với nhau trong đó các liên kết giữa các nơron quyết định chức năng của mạng
Mạng nơ ron đa tầng là một mơ hình học máy có giám sát (Supervised Machine
Learning) thuộc lớp Mạng nơ-ron nhân tạo, là tập hợp của các perceptron chia làm nhiều
nhóm, mỗi nhóm tương ứng với một tầng (layer) Mơ hình về cơ bản được đào tạo trên
dữ liệu để học một hàm phi tuyến nhằm mục đích phân loại hay hồi quy, với một tập hợp các tính năng và một biến mục tiêu
Hình 2.4 minh họa cấu trúc của mạng nơ ron truyền thẳng (Feedforward Neural Network) Mạng nơ ron này bao gồm một tầng nhận (input layer), một hay nhiều tầng
ẩn (hidden layer) và một tầng xuất (output layer)
Trang 219
2.5 Học sâu
Học sâu là một họ những kỹ thuật học máy trong đó nhiều tầng (layer) của các chặng
xử lý thông tin với kiến trúc phân cấp được tận dụng để học các đặc trưng (feature
learning) và phân lớp mẫu
Một mơ hình kiến trúc sâu bao gồm nhiều tầng kết hợp các tác vụ phi tuyến
(non-linear operation) tại các đơn vị xuất của nó
Ý tưởng chính là có những đơn vị phát hiện đặc trưng (feature detector unit) tại mỗi
tầng mà rút trích dần và tinh chế những đặc trưng tinh tế và bất biến từ những dữ liệu thô ban đầu
Các tầng thấp rút trích những đặc trưng đơn giản và những đặc trưng này được nạp qua những tầng cao hơn để phát hiện những đặc trưng phức tạp hơn
Ngược lại những mơ hình khơng sâu (shallow models), (thí dụ các mang nơ ron một
tầng ẩn), chỉ gồm một ít tầng chủ yếu ánh xạ những đặc trưng ban đầu của dữ liệu nhập sang một không gian đặc trưng của ứng dụng cần xử lý
Hình 2.5 minh họa những điểm khác biệt giữa mơ hình sâu (deep model) và mơ hình không sâu (shallow model)
Trang 2210
Một số mơ hình mạng nơ ron học sâu nổi tiếng bao gồm: mạng Auto-encoder, mạng Deep Belief Network (DBN), mạng nơ ron tích chập, mạng nơ ron Long Short Term Memory (LSTM)
2.6 Mạng nơ ron tích chập (CNN)
Mạng nơ ron tích chập (convolutional neural network) là một trong những mơ hình học
sâu tiên tiến
Dữ liệu đầu vào của mạng nơ ron tích chập thường là dữ liệu hai chiều Các đơn vị trong mạng CNN tiếp nhận dữ liệu đầu vào từ những vùng nhỏ kế tiếp trong không
gian dữ liệu đầu vào, được gọi là trường tiếp nhận (receptive field) để có thể duyệt qua
một tập hợp các đặc trưng đầu vào Điều này cho phép các đơn vị làm việc như là các
bộ lọc (filter) và vận dụng mối liên hệ cục bộ giữa các trị đầu vào kế tiếp nhau
Các đơn vị dùng chung các trọng số và độ lệch để tạo ra một bản đồ đặc trưng
(feature map); điều này gây ra một sự giảm thiểu đáng kể về số lượng tham số phải ước lượng và tạo thuận lợi cho việc phát hiện các đặc trưng bất luận vị trí thật của chúng trên không gian dữ liệu nhập Sự giảm thiểu số lượng tham số này rất quan trọng khi số lượng tầng trong mạng và số lượng đơn vị trong mỗi tầng gia tăng
Giá trị đầu ra của một đơn vị trong tầng tích chập (convolution layer) đạt được bằng
cách áp dụng một kích hoạt phi tuyến, thí dụ như ReLU (rectified linear unit) vào kết
quả phép tích chập giữa một vùng tiếp cận với bộ lọc; ReLU đơn giản trả về max(0, x) đối với dữ liệu đầu vào x Hình 2.6 minh họa cấu trúc của một mạng CNN với nhiều tầng tích tập đan xen với những tầng gộp (pooling layer) Tầng gộp, hay còn gọi là tầng lấy mẫu giảm (subsampling layer) chia nhỏ bản đồ đặc trưng thành những vùng nhỏ
phân ly và trả về giá trị cực đại hoặc trung bình trong vùng nhỏ đó Điều này giúp tạo ra
những bản đồ đặc trưng cơ đọng hơn Hai phép tốn tích chập và gộp cực đại (max
pooling) sẽ được giải thích trong phụ lục B
Trang 2311
Mạng nơ ron CNN thường được huấn luyện bằng giải thuật lan truyền ngược
(backpropagation) Mạng nơ ron CNN được sử dụng phổ biến trong các ứng dụng như xử lý ảnh, xử lý ngôn ngữ tự nhiên và dự báo dữ liệu chuỗi thời gian ([7], [8]).
Hình 2.6: Mạng nơ ron tích chập
2.7 Hàm Softmax
Chúng ta cần một mơ hình xác suất sao cho với mỗi đầu vào là vector x, đầu ra ai thể
hiện xác suất để đầu vào đó rơi vào lớp thứ i trong một công tác phân lớp nhiều lớp Vậy điều kiện cần là các đầu ra ai phải dương và tổng của chúng bằng một Ngoài ra, ta thêm
một điều kiện giá trị zi = xT wi càng lớn thì xác xuất dữ liệu rơi vào lớp thứ i càng cao
Điều kiện này chỉ ra rằng chúng ta cần một quan hệ đồng biến
Chú ý rằng zi có thể nhận giá trị cả âm và dương vì nó là một tổ hợp tuyến tính
các thành phần của vector đặc trưng x Một hàm số khả đạo hàm đồng biến đơn giản mà có thể biến zi thành một giá trị dương là hàm exp(zi) = ezi Hàm số này không những khả đạo hàm mà cịn có đạo hàm là chính nó, việc này mang lại nhiều lợi ích khi tối ưu Điều
kiện tổng các ai bằng một có thể được đảm bảo nếu:
Mối quan hệ này thỏa mãn tất cả các điều kiện đã xét: các đầu ra ai dương có tổng
bằng một và giữ được thứ tự của zi Hàm này được gọi là hàm softmax, lúc này ta có coi rằng:
P(yk = i |xk; W) = ai
Trong đó, P(y = i |x; W) được hiểu là xác suất để một điểm dữ liệu x rơi vào lớp thứ i nếu biết tham số mơ hình là ma trận trọng số W Hình 2.7 thể hiện mơ hình hồi quy
Trang 2412
Hình 2.7 : Mơ hình hồi quy softmax dưới dạng mạng nơ ron
2.8 Tinh chỉnh các siêu tham số và giải thuật Grid Search
Siêu tham số (hyperparameter) là những tham số của mơ hình mà giá trị của chúng phải
được xác định trước khi huấn luyện mơ hình Thí dụ, số nút trong tầng ẩn của một mạng nơ ron truyền thẳng là một siêu tham số vì chúng ta phải xác định nó trước khi huấn luyện mạng nơ ron Một thí dụ khác là số cây quyết định thành phần trong rừng ngẫu nhiên (random forest) Các siêu tham số này phải được xác định trước giai đoạn huấn luyện và giá trị của chúng sẽ ảnh hưởng khá nhiều đến hiệu quả của mơ hình
Tại sao chúng ta phải tinh chỉnh (tune) các siêu tham số của một mơ hình? Bởi
vì chúng ta khơng thật sự biết trước được giá trị tối ưu của chúng Những mơ hình với những bộ trị siêu tham số khác nhau sẽ đem lại những hiệu quả khai phá dữ liệu khác nhau
Trong trường hợp của mạng nơ ron một tầng ẩn, số lượng nơ ron của tầng ẩn thấp
có thể dẫn đến hiện tượng ít khớp (underfitting) và số lượng nơ ron của tầng ẩn khá cao có thể dẫn đến hiện tượng quá khớp (overfitting) Do đó, chúng ta cần xác định số nơ
ron tầng ẩn hợp lý nhất để đem lại hiệu quả phân lớp hay dự báo tốt nhất
Nếu mô hình có nhiều siêu tham số, chúng ta cần tìm kiếm bộ trị tốt nhất của các
Trang 2513
Có một giải thuật quan trọng hay được dùng để tinh chỉnh các siêu tham số của
các mơ hình,đặc biệt là các mơ hình mạng nơ ron học sâu, đó là giải thuật tìm kiếm lưới
(grid search)
Giải thuật Grid Search
Grid search là một giải thuật khá đơn giản để tinh chỉnh siêu tham số cho mơ hình Ý tưởng chính của giải thuật này là chúng ta chia các miền trị (domain) của các siêu tham số thành ra một cái lưới rời rạc (discrete grid) Sau đó, chúng ta thử áp dụng mỗi tổ hợp trị trong lưới này như là bộ siêu tham số cho mơ hình và tính tốn độ đo hiệu quả của mơ hình dựa vào kiểm tra chéo (cross-validation) Điểm nào trong lưới mà cực đại hóa được độ đo hiệu quả trung bình trong quá trình kiểm tra chéo chính là tổ hợp siêu tham số tốt nhất cho mơ hình
Hình 2.8 minh họa một thí dụ về Grid Search trong trường hợp tổ hợp siêu tham số của mơ hình chỉ gồm hai siêu tham số
Hình 2.8 : Ví dụ về grid search
Trang 2614
2.9 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à q 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ặn nhữ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ền giá trị nhỏ Ở đây, hai kỹ thuật chuẩn hóa 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ỗi này sang chuỗi năm trong một miền xác định lớn nhất – nhỏ nhất mới
𝐴′ = !![#] & !!"#
!$%& !!"# ( 𝐴!"#_%&'− 𝐴!"#_%(! ) + 𝐴!"#_%(!
Chuẩn hố 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)
𝐴′[i] = )[(] - ).()) với 𝐴 = ∑ &!
! và 𝜎(𝐴) = !∑𝑛𝑖=1 (𝑎𝑖 − 𝐴)2𝑛
Trang 2715
CHƯƠNG 3 CÁC CƠNG TRÌNH LIÊN QUAN
Ở chương này, chúng tơi giới thiệu các cơng trình liên quan như phương pháp phân lớp chuỗi thời gian dựa vào shapelet, phương pháp phân lớp chuỗi thời gian SAX-VSM, phương pháp phân lớp chuỗi thời gian dựa vào mạng nơ ron tích chập FCN, và
mạng nơ ron tích chập một chiều (1D CNN).
3.1 Phân lớp chuỗi thời gian dựa vào shapelet
Đối với phương pháp phân lớp dữ liệu chuỗi thời gian dựa trên rút trích đặc trưng Phương pháp này sẽ thực hiện việc chuyền đổi chuỗi thời gian thành 1 tập các đặc trưng trước khi xử lý chúng bằng các thuật toán phân lớp Việc lựa chọn các đặc trưng là việc làm khó khăn nhất trong cả q trình xử lý và quyết định đến chất lượng của bộ phân lớp
Cây quyết định là một trong những giải thuật tiêu biểu của nhóm phương pháp phân lớp dựa vào rút trích đặc trưng Cây quyết định là phương pháp phân lớp dưới dạng cấu trúc cây mà nó thực hiện kiểm tra phân tách tại mỗi nút nội và dự đoán phân lớp cho nút lá, nhánh từ một node nội là kết quả của một phép thử trên thuộc tính tương ứng Đã có nhiều giải thuật khác nhau xây dựng cây quyết định áp dụng thành công trên nhiều lĩnh vực
Ye và Keogh, năm 2009 [9] đã đề xuất một phương pháp phân lớp dữ liệu chuỗi thời gian dựa vào thông tin shapelet Shapelet là chuỗi con mà có thể phân biệt một chuỗi thời gian thành hai lớp bằng cách trả lời câu hỏi: “Liệu chuỗi thời gian mới này có chứa một chuỗi con mà tương đồng đến một mức độ nào đó với shapelet này khơng?” Như vậy shapelet chuỗi thời gian là một chuỗi con cục bộ mà có thể giúp phân định lớp và là một đặc trưng rất hữu dụng để rút trích và áp dụng vào công tác phân lớp chuỗi thời gian Với cách rút trích đặc trưng dựa vào shapelet, cơng trình [9] đã có thể áp dụng
phương pháp cây quyết định (decision tree) để phân lớp dữ liệu chuỗi thời gian
Kien và Anh, năm 2019 [10] đã đề xuất một phương pháp rút trích đặc trưng từ chuỗi thời gian dựa vào thông tin motif Motif là chuỗi con có tần xuất hiện cao nhất trong một chuỗi thời gian Với cách rút trích đặc trưng này, cơng trình [10] đã có thể chuyển đổi mỗi chuỗi thời gian thành một tràng bit nhị phân, và từ đó có thể áp dụng phương
pháp mạng nơ ron (ANN) hoặc máy vector hỗ trợ (SVM) để phân lớp dữ liệu chuỗi thời
Trang 2816
3.2 Phân lớp chuỗi thời gian bằng phương pháp SAX-VSM
SAX-VSM dựa trên hai kỹ thuật nổi tiếng: SAX và mơ hình khơng gian vector dựa trên
sơ đồ trọng số tf-idf được Senin and Malinchik đề xuất năm 2013 [2] Mơ hình khơng gian vector (VSM) là một mơ hình đại số biểu thị thơng tin văn bản dưới dạng một
vectơ, các thành phần của vectơ này có thể biểu thị tầm quan trọng của một thuật ngữ hoặc hiện diện của nó trong tài liệu VSM cũng có thể được hiểu như là một khơng gian trong đó văn bản được biểu diễn dưới dạng một vectơ số thay vì biểu diễn văn bản chuỗi gốc của nó VSM đại diện cho các tính năng được trích xuất từ tài liệu Term Frequency
– Inverse Document Frequency (tf-idf) là giải pháp đánh trọng số của một từ, qua đó đánh giá mức độ quan trọng của từ đó trong văn bản, tf là số lần một từ (mẫu) xuất hiện trong một lớp và idf là số lớp mà một từ xuất hiện Đây là một kỹ thuật cơ bản và thường được sử dụng kết hợp với các thuật toán khác để xử lý văn bản Trọng số tf - idf cho một từ t được định nghĩa là sản phẩm của hai yếu tố: tần số từ (tf) và tần số tài liệu nghịch đảo (idf)
Cũng giống như nhiều kỹ thuật phân lớp khác, SAX-VSM bao gồm 2 giai đoạn: huấn luyện và phân lớp
(1) Giai đoạn huấn luyện:
• Việc huấn luyện bắt đầu bằng cách chuyển đổi chuỗi thời gian được gắn nhãn thành
biểu diễn ký hiệu hóa SAX được cấu hình bởi ba tham số: chiều dài cửa sổ trượt (w), số phân đoạn PAA trên mỗi cửa sổ (p) và kích thước bảng chữ cái SAX (a) Mỗi chuỗi con
được trích xuất từ cửa sổ trượt phải được chuẩn hóa trước khi được xử lý bằng PAA
• Bằng cách áp dụng quy trình này cho tất cả các chuỗi thời gian từ N lớp của tập huấn luyện sẽ tạo ra một kho chứa N túi, theo đó áp dụng trọng số tf ∗ idf và xuất ra N
vector trọng số thực có độ dài bằng nhau đại diện cho các lớp huấn luyện (2) Giai đoạn phân lớp:
• Để phân loại chuỗi thời gian chưa được gắn nhãn, SAX-VSM biến đổi chuỗi thành một vectơ tần số sử dụng chính xác cùng kỹ thuật cửa sổ trượt và các tham số SAX đã được sử dụng cho tập huấn luyện
• Tính tốn các giá trị tương tự cosin giữa vectơ tần số từ của chuỗi thời gian chưa được
Trang 2917
Hình 3.1: Tổng quan về thuật toán SAX-VSM
3.3 Phân lớp chuỗi thời gian bằng mạng nơ ron tích chập FCN
Mạng nơ ron tích chập FCN (fully convolutional network) là một mạng nơ ron học sâu
khá hiệu quả cho bài tốn phân đoạn hình ảnh theo ngữ nghĩa Mỗi pixel đầu ra là một bộ phân lớp tương ứng cho trường tiếp nhận của nó và mạng có thể được huấn luyện theo kiểu pixel-to-pixel Wang và các cộng sự, năm 2017 đã áp dụng mạng nơ ron tích chập FCM vào bài toán phân lớp chuỗi thời gian [3] Trong bối cảnh này, mạng nơ ron
tích chập FCN đóng vai trị của một bộ rút trích đặc trưng (feature extractor) Đầu ra cuối cùng của mạng là tại tầng softmax (softmax layer)
Khối căn bản trong mạng nơ ron là tầng tích chập được theo sau bởi một tầng chuẩn hóa theo lơ (batch normalization layer) và một tầng kích hoạt ReLU Phép tốn tích chập
được thực hiện bằng những bộ lọc một chiều có kích thước lần lượt là (8; 5; 3) mà không
thực hiện bước trượt (striding) Khối tích chập như sau
y =W⊗ x + b s = BN(y)
h = ReLU(s)
Phép ⊗ là phép tốn tích chập Như trong Hình 3.2, mạng FCN được xây dựng bằng cách xếp chồng ba khối tích chập với kích thước của bộ lọc trong mỗi khối lần lượt là (128, 256, 128) Không giống như các mạng nơ ron tích chập thơng thường, trong
Trang 3018
Chiến lược này nhằm ngăn ngừa hiện tượng quá khớp (overfitting) Chuẩn hóa theo lô
(batch normalization) được áp dụng nhằm tăng tốc sự hội tụ của quá trình huấn luyện
Sau các khối tích chập các đặc trưng được đưa vào một tầng gộp trung bình tồn cục
(global average pooling layer) thay vì một tầng kết nối đầy đủ nhằm giảm bớt số lượng
trọng số Nhãn lớp cuối cùng được sinh ra bởi tầng softmax (softmax layer) Hình 3.2
minh họa cấu trúc của mạng nơ ron tích chập FCN cho bài toán phân lớp chuỗi thời gian được đề xuất trong [3]
Hình 3.2 : Kiến trúc mạng tích chập FCN để phân lớp chuỗi thời gian ([3])
Wang và các cộng sự đã thử nghiệm mơ hình FCN đề xuất cho bài toán phân lớp chuỗi thời gian trên nhiều bộ dữ liệu mẫu từ kho dữ liệu chuỗi thời gian UCR [11] và so sánh hiệu quả với hai mạng nơ ron học sâu khác: mô hình MLP học sâu, mơ hình ResNet và 8 phương pháp phân lớp chuỗi thời gian truyền thống khác Kết quả thực nghiệm cho thấy với bài toán phân lớp chuỗi thời gian đã đem lại hiệu quả phân lớp khá tốt trên phần lớn các bộ dữ liệu mẫu
Bên cạnh cơng trình của Wang và các cộng sự [3], Cui và các cộng sự, năm 2016, đã
đề xuất mạng nơ ron tích chập đa nhánh (Multi-scale Convolutional Neural Network –
MCNN) cho bài toán phân lớp chuỗi thời gian ([12]) Điểm đặc biệt của mạng MCNN
là tầng đầu tiên của mạng chứa nhiều nhánh (branch) mà mỗi nhánh thực hiện một phép
biến đổi khác nhau lên chuỗi thời gian được cho, bao gồm những phép biến đổi trên miền thời gian và miền tần số nhằm rút trích những đặc trưng thuộc nhiều thể loại khác
nhau và tầm thời gian (time scale) khác nhau Sau đó các tầng tích chập thực hiện phép
tốn tích chập giữa tín hiện được biến đổi và các bộ lọc một chiều mà là cách thức tổng quát để nhận diện những thể loại đặc trưng khác nhau từ dữ liệu nhập Vì mỗi tầng tích
chập có thể phát hiện những mẫu cục bộ (local pattern), việc xếp chồng nhiều tầng tích
Trang 3119
3.4 Mạng nơ ron tích chập một chiều
Mạng nơ ron học sâu CNN được thiết kế để làm việc trên dữ liệu hai chiều như hình ảnh và video Mơ hình này thường được gọi là CNN hai chiều, hay 2D CNN Tuy nhiên, mơ hình này khơng thích hợp cho những ứng dụng làm việc trên những tín hiệu một chiều như giọng nói, chuỗi thời gian, trình tự sinh học
Kiranyaz và các cộng sự, năm 2015 đưa ra một phiên bản cải biên của CNN hai chiều,
được gọi là mạng nơ ron tích chập một chiều (1D Convolutional Neural Network -1D
CNN) [13-14]
Các cơng trình nêu trên cho thấy với một số ứng dụng, 1D CNN tiện lợi và thích hợp hơn mơ hình 2D CNN khi làm việc với những tín hiệu một chiều với những lý do sau: ∙ Có sự khác biệt về độ phức tạp tính tốn giữa các phép tích chập một chiều và tích
chập hai chiều, thí dụ, một hình ảnh có kích thước NxN tích chập với bộ lọc KxK sẽ có độ phức tạp tính tốn là O(N2K2) trong khi phép tốn tích chập một chiều (với cùng hai tham số N và K) chỉ là O(NK)
∙ Những ứng dụng 1D CNN thường dùng những cấu hình nhỏ hơn (với 1 hoặc 2 tầng
CNN ẩn) đem lại số lượng tham số trong cấu trúc mạng thường <10 K trong khi hầu như
những ứng dụng 2D CNN thường dùng những cấu trúc sâu hơn với số lượng tham số trong cấu trúc mạng thường lớn hơn 1000000 Do đó, những mạng có cấu trúc cạn thường dễ huấn luyện và dễ hiện thực hơn
∙ Việc huấn luyện những mạng 2D CNN thường đòi hỏi sự hỗ trợ của phần cứng chuyên dụng (thí dụ, GPU) Ngược lại, bất kỳ mơi trường CPU nào cũng có thể làm việc được với mơ hình 1D CNN gọn gàng với vài tầng ẩn và số lượng neuron trong mỗi tầng < 50)
Với độ phức tạp tính tốn thấp, mơ hình mạng nơ ron tích chập 1D CNN gọn nhẹ, và
thường rất thích hợp cho những ứng dụng thời gian thực (real-time) và chi phí thấp
Một cấu hình mẫu của mạng 1D CNN
Như minh họa trong Hình 3.3, mạng nơ ron 1D CNN có hai loại tầng như sau: i) loại tầng CNN (CNN-layer) trong đó có phép tốn tích chập một chiều,
Trang 3220
i) loại tầng kết nối đầy đủ (fully-connected) hay còn gọi là tầng dày đặc (dense) mà giống như các tầng trong mạng nơ ron MLP (Multi-layer Perceptron) và do đó được gọi là tầng MLP (MLP-layer)
Cấu hình của một mạng nơ ron tích chập (1D-CNN) được xây dựng với các siêu
tham số như sau:
Số tầng ẩn CNN và số tầng MLP; số đơn vị trên mỗi tầng ẩn CNN và số đơn vị trên mỗi tầng MLP Như trong Hình 3.3, có 3 tầng ẩn CNN và 2 tầng MLP
Kích thước bộ lọc (Filter) trong mỗi tầng CNN layer Thí dụ trong Hình 3.3, kích
thước bộ lọc là 41 trong mọi tầng CNN
Hệ số lấy mẫu giảm (subsampling factor) trong mỗi tầng CNN Thí dụ trong Hình
3.3, hệ số lấy mẫu giảm là 4)
Việc lựa chọn các phép gộp và hàm kích hoạt
Hình 3.3 : Kiến trúc mẫu của mạng nơ ron tích chập một chiều (1D CNN) với 3 tầng CNN và 2 tầng MLP
Mơ hình mạng tích chập cho phép chúng ta tự động trích xuất các đặc trưng của dữ liệu chuỗi thời gian đầu vào, từ những đặc trưng ấy có thể giúp việc phân lớp hiệu quả hơn
Như trong minh họa sơ đồ tính tốn của mạng nơ ron tích chập một chiều (1D
CNN), q trình tính tốn truyền thẳng (Forward Propagation) có thể biểu diễn như sau:
𝑥67 = 𝑏67 + ∑8%&1
Trang 3321
Trong đó x là giá trị đầu vào của lớp l, b là giá trị bias của tầng l, s là giá trị đầu ra của lớp l-1, w là trọng số của các nơron trên tầng l-1
Trong q trình tính tốn thẳng, mơ hình cũng sẽ áp dụng các kiểu lấy mẫu giảm ( subsampling), bỏ học (drop-out) để giảm số chiều nhằm trích xuất đặc trưng hiệu quả
hơn, tránh hiện tượng quá khớp trong quá trình huấn luyện Độ đo tỷ lệ lỗi có thể tóm tắt qua biểu thức :
𝐸 = 𝐸 (𝑦1:, , 𝑦8:') = <
8'
(91
(𝑦(: − 𝑡()2
Trong đó E là giá trị lỗi, y là trị đầu ra tầng cuối được so sánh với giá trị nhãn cho trước Giá trị lỗi E đóng vai trị quan trọng trong kỹ tính tốn lan truyền ngược (Back Propagation) nhằm cập nhật các trọng số w và hệ số bias b cho mạng nơ ron
𝜕;
<#(!% = 𝑐𝑜𝑛𝑣1𝐷(𝑠67, 𝛥(7=1) <>𝜕;
(% = ∑! 𝛬67(𝑛)
Hình 3.4 minh họa cho sơ đồ tính tốn của mạng nơ ron tích chập một chiều (1D
CNN)
Hình 3.4 : Sơ đồ tính tốn mạng nơ ron tích chập một chiều (1D CNN)
Kiranyaz và các cộng sự đã ứng dụng mạng nơ ron tích chập một chiều trong nhiều ứng dụng như phân loại chuỗi thời gian điện tâm đồ ECG [13], phân loại chuỗi thời gian điện tâm đồ ECG theo thời gian thực [15], phát hiện tổn hại về kết cấu theo thời gian
Trang 3422
Các cơng trình đi trước đã chứng minh được rằng việc áp dụng mạng nơ ron tích chập một chiều (1D-CNN) cho kết quả tốt cho các bài toán phân lớp chuỗi thời gian Do đó chúng tơi tiếp tục hiện thực và áp dụng mạng nơ ron tích chập một chiều (1D-CNN)
lên các bộ dữ liệu chuỗi thời gian mẫu khác nhau từ website UCR Đồng thời chúng tôi
cũng so sánh kết quả phân lớp với các phương pháp truyền thống là 1-lân cận gần nhất
Trang 3523
CHƯƠNG 4 PHƯƠNG PHÁP PHÂN LỚP ĐỀ XUẤT
Trong chương này, chúng tơi trình bày nội dung chi tiết cho việc thiết kế và hiện
thực mơ hình mạng nơ ron tích chập một chiều (1D-CNN), cũng như ứng dụng kết hợp
kỹ thuật grid search để tinh chỉnh các siêu tham số cho mô hình
4.1 Phương pháp tiếp cận
Trong đề tài này, được gợi cảm hứng từ những cơng trình đi trước, chúng tôi chọn cách tiếp cận mạng nơ ron tích chập CNN để phân lớp dữ liệu chuỗi thời gian Cụ thể, chúng
tôi sẽ sử dụng mạng nơ ron tích chập một chiều 1D CNN ([13], [14]) cho bài tốn này,
vì chuỗi thời gian thuộc loại dữ liệu biểu diễn bằng mảng một chiều và những cơng trình đi trước cũng cho thấy tính hiệu quả và tính hữu hiệu của mạng nơ ron 1D CNN trong nhiều ứng dụng phân lớp dữ liệu mà là tín hiệu một chiều
Cấu hình mạng này gồm nhiều layer khác nhau, mỗi layer thực hiện một công việc nhất định và truyền đầu ra tới layer tiếp theo
1 Layer đầu tiên là Conv1D với 64 filters, kernel size là 3 và hàm kích hoạt là ReLU Layer này được kết nối với input data, layer này thực hiện việc tìm kiếm các đặc trưng trong dữ liệu với kernel size là 3
2 Tiếp theo là một layer Conv1D khác, cũng với 64 filters, kernel size là 3 và hàm kích hoạt là ReLU
3 Sau đó là một layer MaxPooling1D với kích thước pool_size=2 để giảm chiều dài của output
4 Tiếp theo là một layer Conv1D khác với 64 filters, kernel size là 3 và hàm kích hoạt là ReLU
5 Sau đó là một layer Conv1D khác với 64 filters, kernel size là 3 và hàm kích hoạt là ReLU
6 Tiếp theo là một layer MaxPooling1D với kích thước pool_size=2 để giảm chiều dài của output
7 Sau đó là một layer Flatten để làm phẳng output thành một vector 8 Tiếp theo là một layer Dense với 100 units và hàm kích hoạt là ReLU 9 Sau đó là một layer Dropout với giá trị dropout=0.5, giúp giảm overfitting 10 Cuối cùng là một layer Dense với số units bằng với số lớp của bài toán , và hàm
Trang 3624
Các thông số kỹ thuật được mô tả cụ thể tại bảng 4.1
Bảng 4.1: Cấu hình dự kiến của mạng 1D-CNN
Layer (type) Output Shape Param #
Input Data (251,1)
conv1d_1 (Conv1D) (None, 249, 64) 256 conv1d_2 (Conv1D) (None, 247, 64) 12352 max_pooling1d_1 (MaxPooling1D) (None, 123, 64) 0 conv1d_3 (Conv1D) (None, 121, 64) 12352 conv1d_4 (Conv1D) (None, 119, 64) 12352 max_pooling1d_2 (MaxPooling1D) (None, 59, 64) 0 flatten_1 (Flatten) (None, 3776) 0 dense_1 (Dense) (None, 100) 377700 dropout_1 (Dropout) (None, 100) 0 dense_2 (Dense) (None, 3) 303 Hiện thực code bằng thư viện Keras :
model = Sequential()
model.add(Conv1D(filters=64,kernel_size=3,activation='relu', input_shape=(X_train_cnn.shape[1], 1)))
model.add(Conv1D(filters=64, kernel_size=3, activation='relu')) model.add(MaxPooling1D(pool_size=2))
model.add(Conv1D(filters=64, kernel_size=3, activation='relu')) model.add(Conv1D(filters=64, kernel_size=3, activation='relu')) model.add(MaxPooling1D(pool_size=2))
model.add(Flatten())
model.add(Dense(100, activation='relu')) model.add(Dropout(0.5))
Trang 3725
4.2 Ứng dụng kỹ thuật grid search
Để tối ưu hóa độ chính xác cho từng tập dữ liệu, chúng tôi áp dụng grid search để tìm kiếm những siêu tham số cho kết quả tốt nhất
Các siêu tham số được tìm kiếm bao gồm : + Số lớp filter
+ Kích thước kernel
+ Số units ở lớp Dense cuối + Tỷ lệ dropout
Code hiện thực bằng Keras :
# Create the KerasClassifier wrapper for the CNN model model = KerasClassifier(build_fn=create_model, verbose=1) # Define the hyperparameters to search
param_grid = { 'filters': [32, 64], 'kernel_size': [3, 5], 'dense_units': [50, 100], 'dropout_rate': [0.25, 0.5] }
# Perform Grid Search
grid = GridSearchCV(estimator=model, param_grid=param_grid, cv=5) grid_result = grid.fit(X_train_cnn, y_train_cnn)
Chúng tôi sẽ so sánh hiệu quả của mạng nơ ron tích chập 1D CNN với hai phương pháp truyền thống khác: (i) phương pháp 1-NN kết hợp độ đo DTW và (ii) phương pháp
SAX kết hợp mơ hình khơng gian vector (SAX-VSM) cho bài toán phân lớp dữ liệu
chuỗi thời gian trên một số bộ dữ liệu mẫu cho bài toán phân lớp chuỗi thời gian
4.3 Các bộ dữ liệu thực nghiệm
Dữ liệu chuỗi thời gian dùng cho quá trình đánh giá sẽ là những bộ dữ liệu mẫu từ
trang Web Kho Dữ Liệu Chuỗi Thời Gian của Trường Đại Học University of California,
Riverside [11], những tập dữ liệu này thường được sử dụng trong việc đánh giá các giải
Trang 3826
(benchmark dataset) và thường xuyên được sử dụng để đánh giá các giải thuật khai phá dữ liệu liên quan đến chuỗi thời gian
4.4 Thư viện phần mềm hỗ trợ
Để hiện thực mạng nơ ron tích chập một chiều (1D CNN), chúng tơi sẽ sử dụng sự hỗ
trợ của thư viện phần mềm Keras [18] Keras là một thư viện viết bằng Python, có kết nối với các công cụ học máy khác như TensorFlow, CNTK và Theano
Keras có thể làm việc với CPU lẫn GPU Keras được hiện thực bởi Francois Chollet dùng 4 nguyên tắc sau:
– Gọn nhỏ và thân thiện với người dùng
– Có tính module Các tầng của mạng nơ ron, các hàm đánh giá, các giải thuật tối ưu hóa, các phương án khởi tạo, các hàm truyền đều là những module đứng độc lập để có thể phối hợp tạo ra module mới
– Dễ mở rộng
– Làm việc với Python
Để hiện thực các phương pháp phân lớp chuỗi thời gian truyền thống như 1-NN kết hợp độ đo DTW hay phương pháp SAX kết hợp mơ hình khơng gian vector, chúng tôi sẽ sử dụng sự hỗ trợ của thư viện phần mềm Tslearn [19] Thư viện phần mềm Tslearn là một thư viện về học máy được viết bằng Python cung cấp những công cụ tiền xử lý, rút trích đặc trưng cũng như những mơ hình dành cho gom cụm, phân lớp và dự báo chuỗi thời gian Phần mềm Tslearn tuân thủ theo các API của phần mềm Scikit-learn Phần mềm Tslearn có thể tải xuống từ trang Web [20]
4.5 Cách đánh giá chất lượng phương pháp phân lớp
Tiêu chí đánh giá bộ phân lớp dựa trên độ chính xác (accuracy) mà được tính bằng số
mẫu dữ liệu trong tập test cho kết quả đúng chia cho tổng số tập dữ liệu trong tập test
rồi Như vậy, chúng tôi sẽ chia tập dữ liệu mẫu thành hai phần: phần huấn luyện (training set) và phần thử (test-set)
Để có thể đánh giá chất lượng của một phương pháp phân lớp một cách có hệ thống,
Trang 3927
Kiểm tra chéo 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ác củ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 4.1: Kiểm tra chéo k-phần với k = 4
Hình 4.1 mơ tả phương pháp kiểm tra chéo k-phần với 𝑘 = 4
Trang 4028
CHƯƠNG 5 THỰC NGHIỆM ĐÁNH GIÁ
Chương này chúng tôi sẽ giới thiệu về đặc trưng của một số tập dữ liệu mẫu và trình bày kết quả thực nghiệm đạt được trong việc giải quyết bài toán phân lớp dữ liệu
chuỗi thời gian bằng phương pháp áp dụng mơ hình mạng nơ ron tích chập một chiều (1D-CNN), phương pháp truyền thống 1-lân cận gần nhất (1-NN) kết hợp với độ đo
DTW và phương pháp SAX kết hợp mơ hình khơng gian vectơ.
5.1 Cấu hình hệ thống sử dụng trong thực nghiệm
Trong đề tài luận văn này, chúng tôi sử dụng Google Colab để hiện thực các phương pháp phân lớp dữ liệu chuỗi thời gian Google Colab là một nền tảng dùng để chạy các notebook Jupyter, đặc biệt là cho các tác vụ liên quan đến khoa học dữ liệu và máy học Cấu hình mặc định của Google Colab Free là máy ảo có cấu hình như sau:
CPU: Intel Xeon E5-2699 v4 @ 2.30GHz (36 core) RAM: 12.72 GB
GPU: Tesla K80, 12 GB GDDR5 VRAM
Hệ điều hành: Ubuntu 18.04.5 LTS (Bionic Beaver)
5.2 Các phương pháp đối sánh và các bộ dữ liệu thực nghiệm
5.2.1 Các phương pháp đối sánh cho công tác phân lớp dữ liệu chuỗi thời gian
Trong luận văn này sẽ thực hiện các phương pháp phân lớp chuỗi thời gian truyền thống phương pháp 1-NN kết hợp độ đo DTW và phương pháp SAX kết hợp mơ hình khơng gian vector (SAX-VSM) Tiếp sau đó là hiện thực và thực nghiệm mạng nơ ron tích chập 1 chiều , so sánh bằng thực nghiệm tính hiệu quả của mơ hình học sâu đề xuất với hai phương pháp phân lớp truyền thống
5.2.2 Các bộ dữ liệu thực nghiệm