Giả thuyết của luận văn này là kiểm tra khả năng thực hiện một thuật tốn phân loại trên điện thoại thơng minh để nhận dạng hành vi con người, cĩ tính đến sự đánh giá pin và hạn chế bộ nhớ. Với mục đích này, chúng cần nghiên cứu các kỹ thuật cần thiết cho bộ tiền xử lý và phân loại dữ liệu gia tốc, sử dụng một bộ dữ liệu cạnh tranh.
Trong luận văn này, bộ dữ liệu về nhận dạng hành vi được cung cấp sẵn [6] với đặc tính của dữ liệu:
Các thí nghiệm được tiến hành với một nhĩm 30 tình nguyện viên trong phạm vi độ tuổi từ 19 tuổi đến 48 tuổi. Mỗi người thực hiện 6 hành vi và đeo một chiếc điện thoại thơng minh (Galaxy S II) vào thắt lưng, đặt theo chiều dọc. Sử dụng cảm biến gia tốc, con quay hồi chuyển họ đã lấy được dữ liệu gia tốc tuyến tính 3 trục và vận tốc gĩc 3 trục ở một tốc độ khơng thay đổi 50Hz. Các thí nghiệm được ghi hình lại để gán nhãn dữ liệu bằng tay.
Hình 3.1: Thu thập dữ liệu từ cảm biến của điện thoại thơng minh
Bộ dữ liệu này cung cấp các tín hiệu gia tốc và con quay hồi chuyển cho mỗi bộ dữ liệu (huấn luyện và kiểm thử) cũng như các nhãn hành vi cho mỗi trường hợp.
“Các tín hiệu cảm biến (gia tốc và con quay hồi chuyển) được tiền xử lý bằng cách áp dụng các bộ lọc nhiễu và sau đĩ lấy mẫu với cửa sổ trượt 2,56 giây và 50% chồng chéo. Tín hiệu cảm biến gia tốc, trong đĩ thành phần hấp dẫn và chuyển động cơ thể được phân tách bằng bộ lọc thơng thấp Butterworth. Lực hấp dẫn được giả định là thành phần cĩ tần số thấp, do đĩ một bộ lọc với tần số cắt 0.3Hz được sử dụng. Với mỗi cửa sổ, một vector tính năng được thu lại bởi cách tính tốn từ biến thời gian và miền tần số.” [6]
Hình 3.2: Ví dụ về dữ liệu của cảm biến gia tốc
Các tính năng này được chuẩn hĩa và giới hạn trong khoảng [-1, 1]. Việc chuẩn hĩa được thực hiện theo hàm số:
−
= − ×2−1
Trường xNorm là tính năng được chuẩn hĩa, x là các tính năng và Min và Max là các giá trị tối thiểu và tối đa tương ứng với tính năng x.
Để một phân loại chính xác hơn, các bộ dữ liệu nên được cân bằng và tất cả 6 lớp nên cùng cĩ một số trường hợp. Sự phân lớp từ các dữ liệu cạnh tranh được giới thiệu trong bảng 3.1.
Bảng 3.1: Số lượng các trường hợp cho mỗi lớp
Nhãn dữ liệu Tập huấn luyện Tập kiểm thử
Walking 1226 496
Walking down stairs 1073 471
Walking up stairs 986 420 1286 491 Sitting 1374 532 Standing 1407 537 Lying Total 7352 2947
Các tác giả trích xuất 561 tính năng tương ứng với 17 tính năng trong bảng 3.2, dữ liệu này được rút ra theo các tín hiệu từ bảng 3.3.
Bảng 3.2: Tính năng được trích xuất và mơ tả
Tính năng Mơ tả
mean() Giá trị trung bình
std() Độ lệch chuẩn
mad() Độ lệch trung bình tuyệt đối max() Giá trị lớn nhất trong mảng min() Giá trị nhỏ nhất trong mảng sma() Khoảng cường độ tín hiệu
energy() Thước đo năng lượng. Tổng các giá trị trung bình chia cho số các giá trị
iqr() Khoảng tứ phân
entropy() Tín hiệu entropy
arCoeff() Hệ số Autorregresion với trật tự Burg bằng 4 correlation() Hệ số tương quan giữa hai tín hiệu
maxInds() Chỉ số của các thành phần tần số với cường độ lớn nhất
meanFreq() Bình quân trọng số của các thành phần tần số để cĩ được một tần số trung bình
skewness() Độ lệch của tín hiệu miền tần số kurtosis() Độ nhọn của tín hiệu miền tần số
bandsEnergy() Năng lượng của một khoảng tần số trong 64 ngăn của FFT của mỗi cửa sổ.
angle() Gĩc giữa hai vectơ.
Bảng 3.3: Tín hiệu được chuyển hĩa từ dữ liệu gia tốc, sử dụng miền thời gian và tần số
Miền thời gian Miền tần số
tBodyAcc-XYZ fBodyAcc-XYZ tGravityAcc-XYZ fBodyAccJerk-XYZ tBodyAccJerk-XYZ fBodyGyro-XYZ tBodyGyro-XYZ fBodyAccMag tBodyGyroJerk-XYZ fBodyAccJerkMag tBodyAccMag fBodyGyroMag tGravityAccMag fBodyGyroJerkMag tBodyAccJerkMag tBodyGyroMag tBodyGyroJerkMag 3.2. Tiền xử lý dữ liệu
Liên quan đến kỹ thuật tiền xử lý, cĩ 2 cách thức để lựa chọn thuộc tính: Filters và
Wrapper. Sau đĩ ta tạo ra các tập con cĩ thể từ các vector đặc trưng và phân loại để sử
dụng trên mỗi tập con, mục tiêu là tạo ra tập con mà phân lớp thực hiện là tốt nhất. Để tìm tập con, người ta sử dụng phương thức tìm kiếm như: phương pháp linear forward hoặc phương pháp best first. Các bộ lọc sử dụng thẩm định thuộc tính (attribute evaluator) và một hàng để xếp hạng các tính năng. Với phương pháp này, mỗi tính năng trong đĩ cĩ cấp bậc thấp hơn được loại bỏ một thời gian để xem độ chính xác của việc phân loại.
Với luận văn này, tơi sử dụng weka để thực hiện tiền xử lý dữ liệu. Trong Weka chúng ta cĩ thể sử dụng phương pháp đánh giá CfsSubSetEval và phương thức tìm kiếm là Best First. Từ dữ liệu với 562 thuộc tính (561 thuộc tính và 1 thuộc tính lớp phân loại), thực hiện trích chọn thuộc tính để cĩ được một vector 37 tính năng cho huấn luyện mơ hình phân lớp.
Bảng 3.4: Trích chọn tính năng từ tập dữ liệu ban đầu
Attribute attribute evaluator Search method Select Att
561 (DT0) CfsSubSetEval BestFirst 49 (DT1)
561 (DT0) CfsSubSetEval LinearForwardSel 37(DT2)
37(DT2) CfsSubSetEval LinearForwardSel 32(DT3)
Bảng 3.5: Loại bỏ tính năng được đánh dấu trong các tập dữ liệu
Tập dữ liệu 1(DT1) Tập dữ liệu 2(DT2) Tập dữ liệu 3(DT3)
Miền thời gian Miền thời gian Miền thời gian
tBodyAcc-max()-X tBodyAcc-std()-X tBodyAcc-max()-X
tBodyAcc-correlation()-X,Y tBodyAcc-max()-X tBodyAcc-arCoeff()-Z,4 tGravityAcc-mean()-X tBodyAcc-arCoeff()-Z,4 tBodyAcc-correlation()- tGravityAcc-mean()-Y tBodyAcc-correlation()-X,Y X,Y
tGravityAcc-std()-X tBodyAcc-correlation()-Y,Z tBodyAcc-correlation()- tGravityAcc-max()-X tGravityAcc-min()-X Y,Z
tGravityAcc-max()-Y tGravityAcc-min()-Y tGravityAcc-min()-X tGravityAcc-max()-Z tGravityAcc-arCoeff()-X,4 tGravityAcc-min()-Y tGravityAcc-min()-X tGravityAcc-arCoeff()-Y,1 tGravityAcc-arCoeff()- tGravityAcc-min()-Y tGravityAcc-correlation()- X,4
tGravityAcc-energy()-X X,Y tGravityAcc-arCoeff()-
tGravityAcc-arCoeff()-X,3 tGravityAcc-correlation()- Y,1
tGravityAcc-arCoeff()-Y,1 X,Z tGravityAcc-
tGravityAcc-arCoeff()-Z,2 tBodyAccJerk-mad()-Y correlation()-X,Y tGravityAcc-correlation()- tBodyAccJerk-max()-Z tGravityAcc-
X,Y tBodyAccJerk-entropy()-Z correlation()-X,Z
tGravityAcc-correlation()- tBodyAccJerk-arCoeff()-X,3 tBodyAccJerk-max()-Z
Y,Z tBodyGyro-mean()-X tBodyAccJerk-entropy()-
tBodyAccJerk-max()-X tBodyGyro-arCoeff()-Y,4 Z
tBodyAccJerk-max()-Z tBodyGyro-correlation()- tBodyAccJerk-arCoeff()-
tBodyAccJerk-iqr()-Z X,Y X,3
tBodyAccJerk-entropy()-Z tBodyGyro-correlation()- tBodyGyro-mean()-X
tBodyAccJerk-arCoeff()-X,3 X,Z tBodyGyro-arCoeff()-Y,4
tBodyGyro-mean()-X tBodyGyro-correlation()- tBodyGyro-correlation()-
tBodyGyro-correlation()-X,Y Y,Z X,Y
tBodyGyro-correlation()-X,Z tBodyAccJerkMag-min() tBodyGyro-correlation()- tBodyGyro-correlation()-Y,Z tBodyAccJerkMag-iqr() X,Z
tBodyGyroJerk-iqr()-X tBodyGyro-correlation()-
tBodyGyroJerkMag-min() Y,Z
tBodyGyroJerkMag-iqr() tBodyAccJerkMag-min()
Miền tần số Miền tần số Miền tần số
fBodyAcc-std()-X fBodyAcc-std()-X fBodyAcc-std()-X
fBodyAcc-skewness()-X fBodyAccJerk-maxInds-X fBodyAccJerk-maxInds-
fBodyAccJerk-maxInds-X fBodyAccJerk- X
fBodyAccJerk-maxInds-Y bandsEnergy()-1,8 fBodyAccJerk- fBodyAccJerk-maxInds-Z fBodyAccJerk- bandsEnergy()-1,8
fBodyAccJerk- bandsEnergy()-17,24 fBodyGyro-maxInds-X
bandsEnergy()-1,8 fBodyGyro-maxInds-X fBodyGyro-maxInds-Z fBodyGyro-maxInds-X fBodyGyro-maxInds-Z fBodyGyro-meanFreq()- fBodyGyro-maxInds-Y fBodyGyro-meanFreq()-X X
fBodyGyro-maxInds-Z fBodyAccMag-mean() fBodyAccMag-mad() fBodyAccMag-mean() fBodyAccMag-mad() fBodyBodyAccJerkMag-
fBodyAccMag-std() fBodyAccMag-iqr() mad()
fBodyAccMag-iqr() fBodyBodyAccJerkMag- fBodyBodyAccJerkMag-
fBodyBodyAccJerkMag- mad() energy()
max() fBodyBodyAccJerkMag- fBodyBodyGyroMag-
fBodyBodyAccJerkMag- energy() maxInds
energy() fBodyBodyGyroMag-iqr() angle(tBodyGyroJerkMea
fBodyBodyAccJerkMag-iqr() fBodyBodyGyroMag- n,gravityMean)
fBodyBodyGyroMag- maxInds maxInds angle(tBodyGyroJerkMean,g angle(tBodyGyroMean,gravit ravityMean) yMean) angle(tBodyGyroJerkMean,gr avityMean) angle(X,gravityMean) angle(Y,gravityMean) 3.3. Xây dựng thực nghiệm ứng dụng nhận dạng hành vi
Do phạm vi nghiên cứu đề tài luận văn trong thời gian ngắn, nên tơi xây dựng chương trình mang tính chất demo về những gì tơi đã nghiên cứu được. Ứng dụng được xây dựng trên nền tảng Android, sử dụng bộ dữ liệu đã được tiền xử lý với cơng cụ Weka.
Ứng dụng sử dụng thư viện Weka cho việc xử lý tiền dữ liệu và thư viện Weka mobile cho việc kiểm thử dữ liệu trên mobile. Luận văn cũng xin cung cấp một số thơng tin về Weka như sau:
Weka là một phần mềm nguồn mở về khai phá dữ liệu được phát triển bởi đại học University of Waikato nước New Zealand. “Weka” là từ viết tắt cho cụm từ Waikato Environment for Knowledge Analysis. Weka cĩ thể được sử dụng ở nhiều cấp độ khác
nhau. Cấp độ đơn giản của nĩ là ta cĩ thể áp dụng các thuật tốn của Weka để xử lý dữ liệu từ dịng lệnh. Nĩ bao gồm nhiều các cơng cụ dùng cho việc biến đổi dữ liệu, như các thuật tốn dùng để rời rạc hĩa dữ liệu.
Weka cung cấp tất cả các chức năng cơ bản của khai phá dữ liệu bao gồm các thuật tốn về phân lớp (classifier), các thuật tốn về tiền xử lý dữ liệu (filter), các thuật tốn về phân cụm (cluster), các thuật tốn về kết tập luật (association rule)
Phương pháp phân lớp
Trong chương trước luận văn đã trình bày về một số thuật tốn phân lớp. Với thử nghiệm, luận văn này sử dụng cây quyết định và thuật tốn SVM để xây dựng mơ hình học máy.
Mơi trường phát triển:
- Hệ điều hành Windows 10 x64 - Android Studio version 2.2.2 - Android SDK
- Cơng cụ Weka trên Windows và thư viện Weka cho android
Chức năng ứng dụng
Với bộ dữ liệu đã được tiền xử lý, hệ thống thực hiện 2 nhiệm vụ: xây dựng mơ hình học máy trên điện thoại thơng minh để đốn định dữ liệu sau đĩ kiểm thử với bộ dữ liệu test, hoặc sử dụng mơ hình đã được xây dựng bằng cơng cụ Weka và thực hiện kiểm thử bộ dữ liệu test với mơ hình đĩ trên điện thoại thơng minh, đánh giá mơ hình học máy.
Hình 3.3: Chương trình ứng dụng demo
3.4. Kết quả thực nghiệm
Trong luận văn tơi đã tiến hành một số thí nghiệm trên tập dữ liệu HAR để dự đốn kết quả của người dùng trong tương lai. Xét 3 bộ dữ liệu thu được với trích chọn thuộc tính từ Weka, thuật tốn J48 được sử dụng như là một phân lớp cơ bản bởi vì sự quan tâm trong giai đoạn này là phát hiện tập dữ liệu tối giản tốt nhất. Dựa trên chỉ số hiệu suất phân lớp được trình bày trong bảng 3.6, tập dữ liệu DT2 được chọn là bộ dữ liệu tối giản tốt hơn, vì vậy nĩ là chỉ số hiệu suất tốt nhất.
Bảng 3.6: Phân lớp J48 với các tập dữ liệu
TP FP Precision Recall F-Measure
DT1 0.84 0.032 0.842 0.84 0.84
DT2 0.860 0.028 0.861 0.860 0.859
DT3 0.861 0.028 0.862 0.861 0.86
Dựa vào bảng 3.7 và tập dữ liệu DT2, thuật tốn IB1 (thể hiện của thuật tốn k- NN) và SMO (thuật tốn SVM) cho hiệu năng tốt hơn so với J48 về giá trị FP và F-
Mesure. Tuy nhiên, J48 là phù hợp hơn cho điện thoại thơng minh, bởi vì J48 cần ít thời
gian hơn để dự đốn dữ liệu.
Bảng 3.7: Thử nghiệm với tập dữ liệu DT2
J48 IB1 (k-NN) SMO (SVM)
Num FP 395.20 412.20 407.80
F-Measure 0.859 0.90 0.91
Training time 18,5 s 0,238 s 9,2 s
Predict time 0,241 s 90.37 s 0,356 s
Xét tập DT2 và mơ hình phân lớp J48, bảng 3.8 và hình 3.4 cho thấy số liệu hiệu suất phân lớp cho tập dữ liệu và mơ hình phân lớp được chọn. Độ chính xác thu được là 87.38 % và lỗi là 12.62% cho tập dữ liệu kiểm thử với 2947 dữ liệu kiểm thử và tập dữ liệu 7532 dữ liệu cho mơ hình huấn luyện. Kết quả được đánh giá như bảng dưới ta thấy dữ liệu theo đường chéo cĩ giá trị cao thể hiện cho phần lớn phân lớp đúng. Với nhãn
Laying dữ liệu phân lớp đúng là 100%.
Bảng 3.8: Kết quả thực nghiệm với thuật tốn J48
Theo tỉ lệ % Theo số mẫu
Số trường hợp sai 12.62300645 372
Số trường hợp đúng 87.37699355 2575
Hình 3.4: Kết quả phân lớp dữ liệu với thuật tốn J48
Trong các kết quả về phân tích hành vi của hội nghị ESANN 2013, kết quả tốt nhất là 96% [6]. Độ chính xác của luận văn này là 87.4% với thuật tốn cây quyết định – J48, thấp hơn gần 10% so với kết quả tốt nhất. Tuy nhiên, khơng cĩ thơng tin về quy trình xử lý và đánh giá kết quả, do vậy việc so sánh kết quả của các nghiên cứu là một sự khĩ khăn.
KẾT LUẬN
Phân tích hoạt động con người đã nhận được sự quan tâm ngày càng nhiều của những người chăm sĩc người cao tuổi, vận động viên, bác sỹ, chuyên gia dinh dưỡng, các nhà vật lý trị liệu, và cả những người muốn kiểm tra mức độ hoạt động hàng ngày.
Với tài liệu tham khảo của các nghiên cứu trước đây trong lĩnh vực này, điện thoại thơng minh với cảm biến gia tốc đã được sử dụng để thu thập dữ liệu chuyển động của người dùng vì chúng nhỏ gọn, ít vướng víu như các cảm biến đeo được, và đặc biệt người dùng thường xuyên mang theo người. Các dữ liệu thu thập được từ gia tốc tuyến tính cung cấp thơng tin về gia tốc do chuyển động cơ thể của con người và do trọng lực. Các tín hiệu được trích xuất như cường độ, gĩc, độ lệch chuẩn của biến đổi FFT cĩ thể được dùng để huấn luyện mơ hình học máy.
Mục tiêu của luận văn thực hiện xây dựng phương pháp để cĩ thể xác định các hoạt động hàng ngày của con người ngồi, nằm, đứng, đi bộ hoặc leo cầu thang trên thiết bị điện thoại thơng minh; sử dụng bộ dữ liệu cảm biến được cung cấp sẵn. Với một cây phán quyết được xây dựng, tỷ lệ chính xác khoảng 86% và lỗi phân loại là khoảng 14%.
Hướng nghiên cứu tiếp theo cĩ thể được phát triển từ các kết quả đã đạt trong luận văn vào bài tốn xây dựng ứng dụng giám sát nhiều hơn cho hoạt động thể chất của con người mà người dùng cĩ thể cung cấp thơng tin phản hồi về tiền sử thể chất của người dùng, cĩ thể tương tác với các thiết bị đeo được để tăng cường tính chính xác cho các hoạt động phân tích của ứng dụng.
TÀI LIỆU THAM KHẢO Tiếng Anh
1. Symposium of the Brazilian Institute for Web Science Research (WebScience). Wilde, A. (2010). An overview of human activity detection technologies for pervasive systems. Seminar paper. Pervasive and Artificial Intelligence Group of
University of Southampton.
2. Bao, L. (2003). Physical Activity Recognition from Acceleration Data under Semi-
Naturalistic Conditions. M.Eng. Thesis, Massachusetts Institute of Technology.
3. Bao, L., & Intille, S. (2004). Activity recognition from user-annotated acceleration
data. Pervasive Computing, 1-17.
4. Czabke, A., Marsch, S., & Lueth, T. C. (2011, 23-26 May 2011). Accelerometer
based real-time activity analysis on a microcontroller
5. The Morgan Kaufmann Series in Data Management Systems, Jim Gray.
Datamining- Concepts and Techniques, Chapter 7-Classification and Prediction.
Series Editor Morgan Kaufmann Publishers, August 2000
6. Anguita, Davide, Ghio, Alessandro, Oneto, Luca, Parra, Xavier, & Reyes-Ortiz, Jorge L. (2013).A Public Domain Dataset for Human Activity Recognition
Using Smartphones. 21th European Symposium on Artificial Neural Networks,
Computational Intelligence and Machine Learning, ESANN 2013
Website
7. http://weka.sourceforge.net/doc.stable/
8. https://archive.ics.uci.edu/ml/datasets/Human+Activity+Recognition+Using+Smar tphone