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 toá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.
47 trang |
Chia sẻ: yenxoi77 | Lượt xem: 572 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Luận văn Nhận dạng hành vi người dùng từ dữ liệu của cảm biến của điện thoại thông minh, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ạt động thường được thực hiện với kỹ thuật học máy
6
đòi hỏi phải khai thác các thông số dữ liệu chuyển động để huấn luyện phân lớp để dự
đoán dữ liệu hoạt động mới với mô hình huấn luyện.
2. Mục tiêu và nhiệm vụ của đề tài
Nghiên cứu phương pháp giám sát hành vi người sử dụng điện thoại thông minh sử
dụng các cảm biến trên điện thoại thông minh. Trong luận văn này sẽ tập trung vào các
hoạt động hàng ngày như: đứng (standing), ngồi (sitting), nằm (laying), đi bộ (walking),
đi lên cầu thang (walking upstairs), đi xuống cầu thang (walking down stairs). Sự chuyển
động của người dùng được ghi lại bằng cảm biến gia tốc của điện thoại thắt lưng được đặt
ở thắt lưng người dùng khi họ thực hiện các hoạt động.
Nghiên cứu các thuật toán giúp phân lớp gán nhãn các hoạt động người dùng dựa
vào dữ liệu cảm biến trên điện thoại thông minh
Xây dựng sản phẩm phân tích hành vi người sử dụng trên điện thoại thông minh,
đánh giá chất lượng mô hình xây dựng được.
7
CHƯƠNG 1: TỔNG QUAN
1.1. Tổng quan về giám sát hoạt động
Theo dõi chính xác các hoạt động của con người có khả năng cải thiện hệ thống
chăm sóc sức khỏe, cảnh báo sớm các nguy cơ, giám sát tập thể dục và hỗ trợ trong sinh
hoạt hàng ngày. Những hệ thống nhận thức hoạt động này có thể cung cấp cho người
dùng một loạt các dịch vụ tiện ích ví dụ như: bằng cách phân tích các hoạt động của con
người trong một khoảng thời gian có thể xác định được xu hướng của các thói quen hàng
ngày từ đó điều chỉnh để có một chế độ tốt nhất cho cơ thể; đặc biệt với người cao tuổi,
nó giúp cảnh báo các nguy cơ về sức khỏe.
Hình 1.1: Lợi ích của giám sát hoạt động con người
Khái niệm hoạt động đã được xem xét trong tương tác người–máy (HCI) để thiết
kế tốt hơn các mô hình điện toán phân tán dựa trên hành vi người dùng (Bao & Intille,
2004). Các mục tiêu của điện toán phân tán là có mặt khắp mọi nơi và kín đáo, hoặc dần
là nền tảng hỗ trợ con người trong khi học thực hiện các hoạt động hàng ngày. Dự đoán
các hoạt động là mục tiêu của các hệ thống điện toán rộng khắp, tuy nhiên việc sử dụng
các hành động cô lập để phân tích các tình huống thực tế bên ngoài không thành công, bởi
vì hành động luôn nằm trong một bối cảnh, và hệ thống không thể hiểu được bối cảnh đó.
Sự phát triển của các hệ thống nhận biết ngữ cảnh là quan trọng để nhận ra một hoạt động
chính là bối cảnh có ý nghĩa tối thiểu để hiểu được hoạt động cá nhân. Phát hiện các tư
thế không đủ để phân biệt được một số các hoạt động, chỉ khi có được bối cảnh, các hoạt
động có thể được phân biệt một cách chính xác.
8
Quá trình giám sát hành vi người dùng bắt đầu bằng việc thu thập các dữ liệu thô,
đặc biệt là dữ liệu chuyển động. Cảm biến quán tính là một giải pháp thích hợp để phát
hiện chuyển động. Những cảm biến phản ứng với các kích thích bằng cách tạo ra các tín
hiệu có thể phân tích và diễn tả. Thông thường, các cảm biến được đặt bên cạnh cơ thể và
nên đem lại sự thoải mái cho người sử dụng.
Các thế hệ mới của điện thoại thông minh được trang bị với một loạt các cảm biến
bên trong: cảm biến gia tốc, cảm biến con quay hồi chuyển, cảm biến nhịp tim, cảm biến
tiệm cận, cảm biến độ ẩm. Một số cảm biến có thể được sử dụng để giám sát hoạt động
hàng ngày của con người: cảm biến gia tốc, con quay hồi chuyển. Các thiết bị này rất tiện
lợi, nhỏ và kín đáo, nó trở thành ý tưởng cho hệ thống nhận dạng hành vi người dùng.
Tính năng hấp dẫn khác là có thể đeo được, làm việc với thời gian thực và được sử dụng
để theo dõi lâu dài. Những thiết bị này có thể ghi nhận, xử lý và có đượcthông tin hữu ích
từ dữ liệu thô của cảm biến, nhưng khó khăn chính của việc tạo ra các ứng dụng nhận biết
bối cảnh là việc phát triển các tuận toán có thể nhận diện bối cảnh từ dữ liệu cảm biến có
nhiễu và không rõ ràng.
Phát triển một ứng dụng trên điện thoại thông minh cần phải tính đến những nguồn
lực hạn chế của điện thoại thông minh như: thời gian xử lý, bộ nhớ hạn chế và tỷ lệ mẫu.
Cảm biến gia tốc là một cảm biến lý tưởng vì chúng đòi hỏi sức mạnh xử lý thấp và tiêu
thụ ít năng lượng.
1.2. Cảm biến
Cảm biến có thể thu thập dữ liệu có thể được sử dụng để phát hiện các hành vi của
con người. Có 3 vấn đề chính liên quan đến cảm biến: loại, vị trí và số lượng. Phần lớn
các hệ thống nhận biết cử động sử dụng cảm biến quán tính, đặc biệt là cảm biến gia tốc
để ước tính độ nghiêng của cơ thể và xác định phương hướng, chuyển động của người sử
dụng. Cảm biến gia tốc sử dụng đầu dò để đo gia tốc tuyến tính(Hình 1.2).
9
Hình 1.2: Cảm biến gia tốc tuyến tính
Tín hiệu thu được với cảm biến gia tốc có 2 thành phần, “một là gia tốc trọng
trường cung cấp thông tin về tư thế của chủ thể, và một thành phần tăng tốc của cơ thể
cung cấp thông tin về sự chuyển động của chủ thể”. Một cảm biến gia tốc 3 chiều đo gia
tốc theo trục x, y, z so với màn hình của điện thoại được mô tả như hình dưới. Gia tốc
được đo bằng đơn vị m/s2.
Hình 1.3: Hệ trục trên điện thoại thông minh
Một số điều tra sử dụng số lượng hoạt động và thị giác máy tính có khả năng hỗ trợ
nhận dạng hành động sử dụng cảm biến gia tốc cũng được mô tả trong chương này. Nhiều
10
nghiên cứu trước đây đã chứng minh 85-95% cho đánh giá nhận dạng hành động, tư thế
và các hành vi khác sử dụng dữ liệu cảm biến gia tốc [4]. Một số công trình được mô tả
trong hình 1.4:
Hình 1.4: Tóm tắt những nghiên cứu trước đây về nhận dạng hành vi sử dụng cảm biến
gia tốc
Các nghiên cứu trước chứng minh rằng các hình thức vận động như đi bộ, chạy bộ,
leo cầu thang và các tư thế như ngồi, nằm đứng có thể được ghi nhận với độ chính xác từ
83 – 95% sử dụng cảm biến gia tốc trên hông, đùi và mắt cá chân. Tuy nhiên các nghiên
cứu của Ling Bao và Intille cho thấy rằng đùi và cổ tay là vị trí thích hợp để đặt cảm biến
gia tốc để phát hiện ADL. Dữ liệu cảm biến thu được từ cổ tay thuận là tốt hơn cho hoạt
động phân biệt hành vi liên quan đến chuyển động cơ thể và dữ liệu từ gia tốc ở đùi là
hữu ích cho việc nhận dạng hành vi được thực hiện với chi dưới. Hệ thống nhận dạng
hành vi nên sử dụng dữ liệu với các dữ liệu ở vị trí khác nhau, cho phép người dùng mang
theo thiết bị ở vị trí thuận tiện cho một bối cảnh nhất định. Khi cảm biến đang ở một vị trí
11
duy nhất, nó rất hữu ích để áp dụng một hệ thống thông tin đa chiều để ghi lại các tín hiệu
theo ngữ cảnh của môi trường [5].
Liên quan đến số lượng cảm biến để có thể nhận diện chính xác. (Ling Bao &
Intille, 2004) cho thấy rằng việc sử dụng 2 cảm biến chỉ ảnh hưởng khoảng 5% độ chính
xác so với một hệ thống dùng 5 cảm biến. So sánh cảm biến gia tốc 2 trục và 3 trục làm
tăng chi phí mà sự phong phú của dữ liệu là không đáng kể. Số lượng tối đa của cảm biến
được ghi nhận là 6 cảm biến gia tốc đơn trục [4].
Một vấn đề quan trọng khác về cảm biến là một số hoạt động như leo cầu thang
thường không thể phân biệt chỉ với cảm biến gia tốc, mà đòi hỏi phải bổ sung (ví dụ như
microphone và áp kế) (Wilde, 2010).
Các hoạt động phổ biến của con người như đi bộ, đứng, nằm, đi lên và xuống cầu
thang là những hành vi sẽ được nghiên cứu trong luận văn này.
1.3. Điện thoại thông minh
Thế hệ mới của điện thoại thông minh đang được xem xét bởi nhiều người dùng
như là một thiết bị cá nhân quan trọng. Các thiết bị này có tiềm năng cho sự tăng trưởng
cân xứng với việc thu thập dữ liệu hành vi cho việc xây dựng hệ thống dự đoán hành vi
con người. Nhận thức về lợi ích của chúng đang trở lên phổ biến, và người dùng đã quen
với việc có mặt khắp mọi nơi của chúng.
Một trong những ứng dụng quan trọng nhất của phân tích hành vi con người là việc
chăm sóc sức khỏe, đặc biệt là chăm sóc sức khỏe người cao tuổi. Tuy nhiên, người cao
tuổi không có kỹ năng như nhau trong việc sử dụng điện thoại thông minh như những
người trẻ, hơn nữa họ hay không mang theo các thiết bị trong cuộc sống thường ngày. Để
trở nên thích ứng với hệ thống này, người cao tuổi phải học cách tương tác với công nghệ
riêng của mình. Mặc dù thực tế ngày nay, người cao tuổi không quen tương tác với điện
thoại thông minh, nhưng trong tương lai những người cao tuổi đã lớn lên cùng công nghệ
này sẽ trở thành một phân khúc quan trọng.
Điện thoại thông minh được trang bị với hàng loạt các cảm biến bên trong (Bảng
1.1), trong đó cảm biến gia tốc, và cảm biến con quay hồi chuyển có thể được sử dụng để
giám sát hành vi hàng ngày của con người. Các thiết bị này rất tiện lợi, nhỏ và kín đáo, nó
12
trở thành nền tảng lý tưởng cho một hệ thống nhận dạng hành vi phổ biến. Tính năng hấp
dẫn khác đó là nó có thể đeo được, luôn luôn bên cạnh người dùng, làm việc thời gian
thực và có thể được sử dụng để giám sát lâu dài.
Bảng 1.1: Các cảm biến được trang bị trên điện thoại thông minh
Cảm biến Mô tả
Accelerometer
Ambient temperature
sensor
Gravity sensor
Gyroscope
Light sensor
Linear acceleration
Cảm biến gia tốc, đo gia tốc trên thiết bị, bao gồm cả lực hấp dẫn
Đo nhiệt độ môi trường xung quanh
Đo lực hấp dẫn theo 3 trục x, y, z
Cảm biến con quay hồi chuyển của thiết bị theo ba trục (x; y; z)
Cảm biến ánh sáng
Đo gia tốc thiết bị, lực hấp dẫn bị loại trừ
Sự phát triển của điện thoại thông minh cho việc dự đoán hành vi con người có
một số nhược điểm như: pin hạn chế, bộ nhớ không cao và các phát triển mới trên lĩnh
vực này cần giải quyết các câu hỏi như: tác động của các ứng dụng lên pin của điện thoại,
tỉ lệ mẫu để đạt được kết quả chính xác, thời gian để tạo mô hình và không gian bộ nhớ
cần thiết cho nó.
Về quy trình thu thập dữ liệu, ta có thể chọn thu thập dữ liệu với một điện thoại
thông minh được đặt ở những vị trí xác định trước hoặc ở 1 phần cơ thể và tạo ra một tập
dữ liệu thích hợp, hoặc sử dụng bộ dữ liệu công cộng với dữ liệu đã được chú thích. Các
tùy chọn trước đây đôi khi được ưa thích vì một tập dữ liệu có cùng kích thước và được
chú thích là cần thiết để đánh giá thuật toán phân lớp, bởi vì một bộ dữ liệu có chú thích
sẽ có thể kiểm tra được kết quả. Để thu thập một bộ dữ liệu hoàn chỉnh có thể không khả
thi, vì nó phải thu thập một lượng lớn dữ liệu từ người sử dụng trong một thời gian dài để
tạo ra một thuật toán mạnh mẽ và chính xác cho việc đoán định người dùng mới.
Một số nghiên cứu trước đây đã hướng dẫn cho việc ghi dữ liệu sử dụng các đối
tượng khác nhau, ưu tiên không phải người nghiên cứu hoặc không có sự giám sát để có
được dữ liệu tự nhiên. Các đối tượng được yêu cầu thực hiện một loạt các hành động và
13
chú thích vào sau mỗi hoạt động hoặc để thực hiện ngẫu nhiên các trình tự của hoạt động
được xác định trước.
Một bộ dữ liệu công cộng đã được tạo ra bởi ESANN 2012 (Anguita, Ghio, Oneto,
Parra, & Reyes-Ortiz, 2012, 2013) [6]. 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 đến 48. 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.
1.4. Phân lớp
1.4.1. Khái niệm phân lớp
Phân lớp dữ liệu có thể coi là quá trình học một mô hình mà mô hình này dùng để
mô tả các lớp dữ liệu khác nhau. Các lớp dữ liệu ở đây đã được xác định trước. Khác với
phân cụm dữ liệu, phân lớp dữ liệu được xem là một quá trình “học có giám sát”. Sau khi
được xây dựng, mô hình phân lớp có thể được sử dụng để phân lớp các dữ liệu mới. Mỗi
bản ghi trong tập dữ liệu học có một thuộc tính gọi là nhãn lớp (Class lable) để chỉ ra bản
ghi đó thuộc lớp nào.
1.4.2. Phân lớp dữ liệu
Ngày nay phân lớp dữ liệu (classification) là một trong những hướng nghiên
cứu chính của khai phá dữ liệu. Thực tế đặt ra nhu cầu là từ một cơ sở dữ liệu với
nhiều thông tin ẩn con người có thể trích rút ra các quyết định nghiệp vụ thông minh.
Phân lớp và dự đoán là hai dạng của phân tích dữ liệu nhằm trích rút ra một mô hình
mô tả các lớp dữ liệu quan trọng hay dự đoán xu hướng dữ liệu tương lai. Phân lớp dự
đoán giá trị của những nhãn xác định (categorical label) hay những giá trị rời rạc
(discrete value), có nghĩa là phân lớp thao tác với những đối tượng dữ liệu mà có bộ
giá trị là biết trước. Trong khi đó, dự đoán lại xây dựng mô hình với các hàm nhận giá
trị liên tục. Ví dụ mô hình phân lớp dự báo thời tiết có thể cho biết thời tiết ngày mai là
mưa, hay nắng dựa vào những thông số về độ ẩm, sức gió, nhiệt độ, của ngày hôm
14
nay và các ngày trước đó. Hay nhờ các luật về xu hướng mua hàng của khách hàng
trong siêu thị, các nhân viên kinh doanh có thể ra những quyết sách đúng đắn về lượng
mặt hàng cũng như chủng loại bày bán Một mô hình dự đoán có thể dự đoán được
lượng tiền tiêu dùng của các khách hàng tiềm năng dựa trên những thông tin về thu
nhập và nghề nghiệp của khách hàng. Trong những năm qua, phân lớp dữ liệu đã thu
hút sự quan tâm các nhà nghiên cứu trong nhiều lĩnh vực khác nhau như học máy
(machine learning), hệ chuyên gia (expert system), thống kê (statistics)... Công nghệ
này cũng ứng dụng trong nhiều lĩnh vực khác nhau như: thương mại, nhà băng,
maketing, nghiên cứu thị trường, bảo hiểm, y tế, giáo dục... Phần lớn các thuật toán ra
đời trước đều sử dụng cơ chế dữ liệu cư trú trong bộ nhớ (memory resident), thường
thao tác với lượng dữ liệu nhỏ. Một số thuật toán ra đời sau này đã sử dụng kỹ thuật cư
trú trên đĩa cải thiện đáng kể khả năng mở rộng của thuật toán với những tập dữ liệu
lớn lên tới hàng tỉ bản ghi.
Quá trình phân lớp dữ liệu gồm hai bước [8]:
Bước thứ nhất (learning)
Quá trình học nhằm xây dựng một mô hình mô tả một tập các lớp dữ liệu hay
các khái niệm định trước. Đầu vào của quá trình này là một tập dữ liệu có cấu trúc
được mô tả bằng các thuộc tính và được tạo ra từ tập các bộ giá trị của các thuộc tính đó.
Mỗi bộ giá trị được gọi chung là một phần tử dữ liệu (data tuple), có thể là các
mẫu (sample), ví dụ (example), đối tượng (object), bản ghi (record) hay trường hợp
(case). Khoá luận sử dụng các thuật ngữ này với nghĩa tương đương. Trong tập dữ liệu
này, mỗi phần tử dữ liệu được giả sử thuộc về một lớp định trước, lớp ở đây là giá trị
của một thuộc tính được chọn làm thuộc tính gán nhãn lớp hay thuộc tính phân lớp
(class label attribute). Đầu ra của bước này thường là các quy tắc phân lớp dưới dạng
luật dạng if-then, cây quyết định, công thức logic, hay mạng nơron. Quá trình này
được mô tả như trong hình 1.5.
15
Hình 1.5: Phân lớp dữ liệu – (a) Xây dựng mô hình phân lớp
Bước thứ hai (classification)
Bước thứ hai dùng mô hình đã xây dựng ở bước trước để phân lớp dữ liệu
mới. Trước tiên độ chính xác mang tính chất dự đoán của mô hình phân lớp vừa tạo ra
được ước lượng. Holdout là một kỹ thuật đơn giản để ước lượng độ chính xác đó. Kỹ
thuật này sử dụng một tập dữ liệu kiểm tra với các mẫu đã được gán nhãn lớp. Các
mẫu này được chọn ngẫu nhiên và độc lập với các mẫu trong tập dữ liệu đào tạo. Độ
chính xác của mô hình trên tập dữ liệu kiểm tra đã đưa là tỉ lệ phần trăm các các mẫu
trong tập dữ liệu kiểm tra được mô hình phân lớp đúng (so với thực tế). Nếu độ chính
xác của mô hình được ước lượng dựa trên tập dữ liệu đào tạo thì kết quả thu được là
rất khả quan vì mô hình luôn có xu hướng “quá vừa” dữ liệu. Quá vừa dữ liệu là hiện
tượng kết quả phân lớp trùng khít với dữ liệu thực tế vì quá trình xây dựng mô hình
phân lớp từ tập dữ liệu đào tạo có thể đã kết hợp những đặc điểm riêng biệt của tập dữ
liệu đó. Do vậy cần sử dụng một tập dữ liệu kiểm tra độc lập với tập dữ liệu đào tạo.
Nếu độ chính xác của mô hình là chấp nhận được, thì mô hình được sử dụng để phân
lớp những dữ liệu tương lai, hoặc những dữ liệu mà giá trị của thuộc tính phân lớp là
chưa biết.
16
Hình 1.6: Phân lớp dữ liệu – (b1) ước lượng độ chính xác mô hình
Hình 1.7: Phân lớp dữ liệu – (b2) phân lớp dữ liệu mới
Trong mô hình phân lớp, thuật toán phân lớp giữ vai trò trung tâm, quyết định
tới sự thành công của mô hình phân lớp. Do vậy chìa khóa của vấn đề phân lớp dữ liệu
là tìm ra được một thuật toán phân lớp nhanh, hiệu quả, có độ chính xác cao và có khả
năng mở rộng được. Trong đó khả năng mở rộng được của thuật toán được đặc biệt trú
trọng và phát triển.
17
Có thể liệt kê ra đây một số kỹ thuật có thể được dùng cho phân lớp dữ liệu:
Phân lớp cây quyết định (Decision tree classification)
Bộ phân lớp Bayesian (Bayesian classifier)
Mô hình phân lớp K-hàng xóm gần nhất (K-nearest neighbor classifier)
Mạng nơron
Phân tích thống kê
Phương pháp tập thô (Rough set Approach)
18
CHƯƠNG 2: PHƯƠNG PHÁP, CÔNG CỤ HỖ TRỢ NHẬN DẠNG HÀNH
VI
2.1. Kỹ thuật phân lớp nhận dạng hành vi
Một khi dữ liệu đã sẵn sàng, một thuật toán phân loại cần phải được thực hiện.
Như đã đề cập trước đó, dự đoán hành vi của con người thường được coi là một vấn đề
phân loại, sử dụng kỹ thuật học máy dựa trên lý thuyết về xác suất thống kê. Vào năm
1959, Arthur Samuel định nghĩa học máy như là một lĩnh vực nghiên cứu cung cấp cho
máy tính khả năng học hỏi mà không cần được lập trình một cách rõ ràng. Các cơ sở của
học máy là chính xác như Samuel đã mô tả, nó xây dựng một mô hình và phân loại, khả
năng học từ dữ liệu vô hình.Mô hình đại diện cho đại diện dữ liệu (thông thường mỗi
trường hợp đại diện cho một cửa sổ dữ liệu với kích thước cố định) và đại diện chức năng
trong bước huấn luyện và cuối cùng là phân loại có thể khái quát hóa cho dữ liệu không
nhìn thấy. Học máy làm một ngành khoa học máy tính có liên quan đến vấn đề mà mô
hình cơ bản cho việc dự đoán hoặc mô tả phải được thực hiện, dựa trên những thuộc tính
đã biết để huấn luyện từ bộ dữ liệu huấn luyện.
Thuật toán học máy có thể chia ra thành các loại:
- Học máy bán giám sát: kỹ thuật cho phép thuật toán có thể thích nghi với dữ
liệu mới. Một số thuật toán cho học máy này như: mô hình Markov ẩn (HMM),
mạng Naïve Bayes, cây quyết định, K-Nearest Neighbours, Máy vecter hỗ trợ
(SMM)
- Học máy giám sát: sử dụng dữ liệu được gán nhãn để huấn luyện thuật toán,
sau đó chúng có thể phân lớp dữ liệu chưa được gán nhãn.
- Học máy không giám sát: cố gắng xây dựng mô hình trực tiếp từ dữ liệu không
đượcgán nhãn. Cách tiếp cận này sử dụng ước lượng mật độ để tìm các cụm
mẫu tương tự để tạo ra mô hình học máy.
- Học máy tăng cường: huấn luyện nhiều học máy để giải quyết cùng một vấn
đề. Khả năng tổng quát của chúng có thể tốt hơn nhiều so với sử dụng một học
máy.
19
Hình 2.1: Sơ đồ biểu diễn quy trình học máy
Liên quan đến mục đích mà hệ thống nhận dạng hành vi được thiết kế, điều quan
trọng là thu thập càng nhiều dữ liệu của từng hoạt động càng tốt, nhưng không chỉ số
lượng là quan trọng, tính chính xác của việc xử lý bản ghi cũng là điềucần thiết bởi vì các
thuật toán dựa rất nhiều vào số liệu. Chủng loại, vị trí và số lượng cảm biến được sử dụng
để thu thập dữ liệu cũng rất quan trọng và so sánh các kết quả của các nghiên cứu chỉ khả
thi nếu các điều kiện tương tự nhau, không nhất thiết phải mô phỏng theo.
20
Các quá trình cần thiết để nhận dạng hành vi của con người được tóm tắt trong
hình 2.2 và về cơ bản nó bao gồm các bước: thu thập dữ liệu chuyển động cho các hoạt
động, tiền xử lý tín hiệu này với các bộ lọc, lấy mẫu lại trong các cửa sổ được xác định
trước để phân tích và phân lớp dữ liệu. Trong trường hợp chúng ta sử dụng thư viện weka
để phân lớp thì cần một bước bổ sung là chuyển đổi dữ liệu vào định dạng tệp ARFF. Sau
khi lựa chọn thuộc tính, các số liệu đánh giá cần được tính toán và đầu ra của mô hình
phân lớp sẽ cho chúng ta mỗi thể hiện của các dữ liệu hoạt động là gì.
Hình 2.2: mô hình nhận dạng hành vi từ dữ liệu cảm biến trên điện thoại thông minh
2.2. Tiền xử lý
Các dữ liệu thô thường cần phải được xử lý trước để cung cấp cho các bộ công cụ.
Trong luận văn này tôi sử dụng Weka hoạt động với tập tin định dạng ARFF để tiền xử lý
dữ liệu, vì vậy tất cả các file cần chuyển đổi thành ARFF.
Dữ liệu thô của cảm biến gia tốc cần được chia trong các cửa sổ, tuần tự để chuẩn
bị tiền xử lý. Một cách lựa chọn cửa sổ là dựa vào việc nhận được dự định sẽ được thực
hiện trong thời gian thực hay không. Đối với các ứng dụng online, các cửa sổ được xác
định song song với tập dữ liệu, và đối với các ứng dụng offline các cửa sổ cần xác định
trước khi thu thập dữ liệu. Các phương pháp được sử dụng phổ biến nhất là cửa sổ trượt,
các tín hiệu được chia trong các cửa sổ không có khoảng trống. tuy nhiên, kế hoạch này
có nhược điểm là các kích thước cửa sổ được thiết lập một cách tùy tiện, nó có thể dẫn
đến việc tách dữ liệu trong một nơi không thuận tiện, không ghi được “toàn bộ chu kỳ”
của hoạt động cần được ghi nhận. Kỹ thuật này có thể được sử dụng với sự chồng chéo
(thông thường là 50%). Trong nghiên cứu này sẽ sử dụng cửa sổ với kích thước 256 mẫu
(tương ứng với 5,12 giây của dữ liệu) và chồng chéo 50%.
21
Dữ liệu thô cần chia thành tập huấn luyện và kiểm thử. Tập huấn luyện sẽ được sử
dụng để đào tạo các thuật toán nhận dạng và tập kiểm thử sau đó sẽ được dùng để đánh
giá các thuật toán sau khi đào tạo. Điều là rất quan trọng để không sử dụng mẫu thử
nghiệm để huấn luyện mô hình để không thiên vị kết quả và đảm bảo phân loại được đánh
giá trong dữ liệu không nhìn thấy. bộ công cụ weka có một số chiến lược chia nhỏ dữ
liệu, chẳng hạn như cross-validation, một phần của tập dữ liệu được sử dụng và phần còn
lại cho thử nghiệm và percentage split, thường sử dụng một phần 3 dữ liệu cho việc kiểm
thử, do đó tỉ lệ train/test là 66%.
2.3. Trích chọn tính năng
Đối với mỗi cửa sổ, một số tính năng được chiết suất để mô tả các tín hiệu. Những
tính năng này sau đó được sử dụng như là đầu vào cho thuật toán nhận dạng, kết hợp mỗi
cửa sổ với một hoạt động. Miền thời gian, miền tần số và các tính năng miền chuỗi biểu
tượng có thể được chiết xuất từ dữ liệu chuyển động. Tuy nhiên, một sự kết hợp của
chúng là một kỳ vọng.
Time-domain features (tính năng miền thời gian) là số liệu toán học và
thống kê đơn giản sử dụng để trích xuất thông tin tín hiệu cơ bản từ dữ liệu thô.
Nó cũng có thể được tính như dữ liệu đang được đọc. Thông thường, tính năng
này rất đơn giản để tính toán. Bảng 2.1 tóm tắt một số tính năng trong miền
thời gian.
22
Bảng 2.1: Tính năng miền thời gian
Frequency-domain techniques (miền tần số) nắm bắt được bản chất tương
ứng của một tín hiệu cảm biến (Figo et al., 2010). Trong tính năng miền tần số,
các cửa sổ dữ liệu cảm biến phải được chuyển thành miền tần số, sử dụng các
biến đổi Fourier (FFT), đó là một đại diện phổ của tín hiệu. Một đại diện dựa
trên tần số, dựa trên sự phân hủy của một tập các vecor trực giao là biến đổi
Wavelet. Bảng 2.2 cho thấy một số tính năng miền tần số.
Bảng 2.2: Miền tần số
Một tính năng khác được chuyển hóa từ miền chuỗi biểu tượng (symbolic
string-domain), nơi mà dữ liệu gia tốc chuyển thành chuos các ký hiệu rời rạc,
23
sử dụng một bảng chữ cái biểu tượng để đại diện cho các tín hiệu. Bảng 2.3 tóm
tắt một số tính năng này
Bảng 2.3: Tính năng miền chuỗi biểu tượng
Khi áp dụng các tính năng tính toán trên một điện thoại thông minh, ta nên cẩn
thận với độ phức tạp tính toán của chúng, bởi vì các điện thoại thông minh có bộ nhớ hạn
chế, khả năng xử lý và tuổi thọ của pin. Do đó hầu như tất cả các tính năng trong miền
thời gian phù hợp hơn cho các thiết bị di động, đưa vào bảng điểu các hoạt động tương
quan có chi phí cao hơn. Với ngoại lệ của các số liệu dựa trên biến đổi Wavelet, tất cả các
tính năng khác miền tấn số là tốn kém về chi phí tính toán.
2.4. Phân lớp dữ liệu
Sau khi lấy ra các tín hiệu tính năng, ta nên áp dụng kỹ thuật học máy để xây dựng
một bộ phân lớp. Có thể sử dụng Weka để thực hiện các thuật toán nhận dạng. Weka
phân lớp dựa vào các thuật toán như k-NN, cây quyết định, Naïve Bayes, SVM
Trong thuật toán k-NN, lớp giao thức cho một vector x là các lớp học với số lượng
tối đa của phiếu đến từ các mẫu k gần x. Những phân loại dựa trên trường hợp không đòi
hỏi một mô hình phù hợp. Để tìm các mẫu gần nhất, các thuật toán có thể sử dụng khoảng
cách Euclide. Các đa lớp của láng giềng k gần nhất tìm thấy được gán cho một phiên bản
thử nghiệm. Nó là một thuật toán nhanh chóng và độ phức tạp phụ thuộc vào số lớp cần
phân loại.
Cây quyết định sử dụng một cây cho mỗi thuộc tính, một nhánh cho mỗi kết quả
thử nghiệm được tạo ra. Các thuật toán dừng khi nó tìm thấy một lá. Trong Weka có thể
sử dụng cài đặt của thuật toán cây quyết định là J48.
24
Đối với Naïve bayes, khi một đối tượng được phân loại sai có thể được định lượng
như là chi phí hoặc hao tổn.Sự kỳ vọng của các chi phí có thể được sử dụng như một phân
lớp tối ưu hóa. Tuân toán này đại diện cho các phân bố xác suất của bộ dữ liệu huấn
luyện.
SVM là phân lớp tuyến tính xác định một siêu phẳng phân cách trong không gian
dữ liệu và phân loại các điểm trong không gian đó. Mục tiêu là để tìm siêu phẳng tách
không gian thành 2 lớp.
2.4.1. Thuật toán SVM
2.4.1.1. Thuật toán
SVM sử dụng thuật toán học nhằm xây dựng một siêu phẳng làm cực tiểu hoá độ
phân lớp sai của một đối tượng dữ liệu mới. Độ phân lớp sai của một siêu phẳng được đặc
trưng bởi khoảng cách bé nhất tới siêu phẳng đấy. SVM có khả năng rất lớn cho các ứng
dụng được thành công trong bài toán phân lớp.
Xét bài toán phân lớp đơn giản nhất - phân lớp hai lớp với tập dữ liệu mẫu:
{𝑥𝑖 , 𝑦𝑖}𝑖 = 1, 2, 3, , 𝑁, 𝑥𝑖 𝜖 𝑅
𝑚
Trong đó mẫu là các vector đối tượng được phân lớp thành các mẫu dương và mẫu
âm như hình 2.3:
- Các mẫu dương là các mẫu xi thuộc lĩnh vực quan tâm được gán nhãn yi = 1
- Các mẫu âm là các mẫu xi thuộc lĩnh vực quan tâm được gán nhãn yi = -1
25
Hình 2.3: Siêu phẳng h chia bộ dữ liệu huấn luyện thành 2 tập + và – với khoảng cách
biên lớn nhất.
Trong trường hợp này, tập phân lớp SVM là mặt siêu phẳng phân tách các mẫu
dương khỏi các mẫu âm với độ chênh lệch cực đại, trong đó độ chênh lệch - còn gọi là
Lề (margin) xác định bằng khoảng cách giữa các mẫu dương và các mẫu âm gần mặt siêu
phẳng nhất. Mặt siêu phẳng này được gọi là mặt siêu phẳng lề tối ưu. Các mặt siêu phẳng
trong không gian đối tượng có phương trình là:
𝐶 + 𝑤1𝑥1 + 𝑤2𝑥2 + ⋯ + 𝑤𝑛𝑥𝑛 = 0
Với w = w1 + w2 + + wn là bộ hệ số siêu phẳng hay là vector trọng số, C là độ
dịch, khi thay đổi w và C thì hướng và khoảng cách từ gốc toạ độ đến mặt siêu phẳng thay
đổi.
26
Tập phân lớp SVM được định nghĩa như sau:
𝑓(𝑥) = 𝑠𝑖𝑔𝑛(𝐶 + ∑ 𝑤𝑖𝑥𝑖)
Trong đó:
sign(z) = +1 nếu z ≥ 0,
sign(z) = -1 nếu z < 0.
Nếu f(x) = +1 thì x thuộc về lớp dương (lĩnh vực được quan tâm), và ngược lại,
nếu f(x) = -1 thì x thuộc về lớp âm (các lĩnh vực khác).
Máy học SVM là một học các siêu phẳng phụ thuộc vào tham số vector trọng số w
và độ dịch C. Mục tiêu của phương pháp SVM là ước lượng w và C để cực đại hoá lề
giữa các lớp dữ liệu dương và âm. Các giá trị khác nhau của lề cho ta các họ siêu mặt
phẳng khác nhau, và lề càng lớn thì năng lực của máy học càng giảm. Như vậy, cực đại
hoá lề thực chất là việc tìm một máy học có năng lực nhỏ nhất. Quá trình phân lớp là tối
ưu khi sai số phân lớp là cực tiểu.
Ta phải giải phương trình sau:
tìm ra được vector trọng số w và sai số của mỗi điểm trong tập huấn luyện là ηi từ đó ta
có phương trình tổng quát của siêu phẳng tìm ra được bởi thuật toán SVM là:
𝑓(𝑥1, 𝑥2, , 𝑥𝑛) = 𝐶 + ∑ 𝑤𝑖 𝑥𝑖
Với i = 1, , n. Trong đó n là số dữ liệu huấn luyện.
Sau khi đã tìm được phương trình của siêu phẳng bằng thuật toán SVM, áp dụng
công thức này để tìm ra nhãn lớp cho các dữ liệu mới.
27
2.4.1.2. Huấn luyện SVM
Huấn luyện SVM là việc giải bài toán quy hoạch toàn phương SVM. Các phương
pháp số giải bài toán quy hoạch này yêu cầu phải lưu trữ một ma trận có kích thước bằng
bình phương của số lượng mẫu huấn luyện. Trong những bài toán thực tế, điều này là
không khả thi vì thông thường kích thước của tập dữ liệu huấn luyện thường rất lớn (có
thể lên tới hàng chục nghìn mẫu). Nhiều thuật toán khác nhau được phát triển để giải
quyết vấn đề nêu trên. Những thuật toán này dựa trên việc phân rã tập dữ liệu huấn luyện
thành những nhóm dữ liệu. Điều đó có nghĩa là bài toán quy hoạch toàn phương với kích
thước nhỏ hơn. Sau đó, những thuật toán này kiểm tra các điều kiện KKT (Karush-Kuhn
Tucker) để xác định phương án tối ưu.
Một số thuật toán huấn luyện dựa vào tính chất: Nếu trong tập dữ liệu huấn luyện
của bài toán quy hoạch toàn phương con cần giải ở mỗi bước có ít nhất một mẫu vi phạm
các điều kiện KKT, thì sau khi giải bài toán này, hàm mục tiêu sẽ tăng. Như vậy, một
chuỗi các bài toán quy hoạch toàn phương con với ít nhất một mẫu vi phạm các điều kiện
KKT được đảm bảo hội tụ đến một phương án tối ưu. Do đó, ta có thể duy trì một tập dữ
liệu làm việc đủ lớn có kích thước cố định và tại mỗi bước huấn luyện, ta loại bỏ và thêm
vào cùng một số lượng mẫu.
2.4.2. Thuận toán k-NN
Thuật toán KNN là một phương pháp truyền thống và khá nổi tiếng trong hướng
tiếp cận dựa trên thống kê, đã được nghiên cứu trong nhận dạng mẫu trong vài thập kỷ
gần đây.
Muốn phân lớp một dữ liệu mới, thuật toán KNN sẽ tính khoảng cách Euclide của
dữ liệu này đến các dữ liệu trong tập huấn luyện và chọn ra k dữ liệu có khoảng cách gần
nhất, còn gọi là k – láng giềng. Dùng các khoảng cách vừa tính được đánh trọng số cho
các chủ đề đã có. Trọng số của một chủ đề sẽ được tính bằng tổng các khoảng cánh từ dữ
liệu cần phân lớp đến các dữ liệu trong k láng giềng mà có cùng chủ đề đó. Những chủ đề
không xuất hiện trong tập k văn bản sẽ có trọng số bằng 0. Các chủ đề được sắp xếp theo
độ giảm dần của các trọng số và chủ đề nào có trọng số cao sẽ là chủ đề cho dữ liệu cần
phân lớp.
28
Công thức tính trọng số chủ đề cj đối với dữ liệu x
Trong đó:
- y(
jd
, cj) ∈ {0,1} với:
y = 0: dữ liệu
jd
không thuộc chủ đề cj
y = 1: dữ liệu
jd
thuộc chủ đề cj
- sim( x
,
jd
) độ giống nhau giữa văn bản cần phân loại x và văn bản d i . Sử dụng
độ đo cosin để tính sim( x
,
jd
):
- bj là ngưỡng phân loại của chủ đề cj , được tự động học sử dụng một tập dữ liệu
hợp lệ chọn ra từ tập huấn luyện.
Khi số văn bản trong tập dữ liệu láng giềng càng lớn thì thuật toán càng ổn định và
sai sót thấp.
2.4.3. Phân lớp dựa trên thuật toán cây quyết định
Cây quyết định (Decision Tree) là một trong các phương pháp được sử dụng rộng
rãi trong học quy nạp từ tập dữ liệu lớn. Đây là phương pháp học xấp xỉ các hàm mục tiêu
có giá trị rời rạc. Một ưu điểm của phương pháp cây quyết định là có thể chuyển dễ dàng
sang dạng cơ sở tri thức là các luật Nếu - Thì (If - Then).
Trên cây gồm các nút trong được gán nhãn bởi các khái niệm, các nhánh cây chứa
nút được gán nhãn bằng các trọng số của khái niệm tương ứng đối với tài liệu mẫu và các
lá trên cây được gán nhãn bởi các nhãn nhóm. Một hệ thống như vậy sẽ phân loại một tài
liệu di bởi phép thử đệ quy các trọng số mà các khái niệm được gán nhãn cho các nút
trong với vector di cho đến khi với tới một nút lá, khi đó nhãn của nút này được gán cho
tài liệu di. Đa số các phương pháp phân loại như vậy sử dụng biểu diễn ở dạng nhị phân
và các cây cũng được biểu diễn dưới dạng nhị phân.
29
Hình 2.4: Ví dụ về cây quyết định
Xây dựng cây quyết định
Quá trình xây dựng cây quyết định gồm hai giai đoạn:
Giai đoạn thứ nhất phát triển cây quyết định:
Giai đoạn này phát triển bắt đầu từ gốc, đến từng nhánh và phát triển quy
nạp theo cách thức chia để trị cho tới khi đạt được cây quyết định với tất cả
các lá được gán nhãn lớp.
Giai đoạn thứ hai cắt, tỉa bớt các cành nhánh trên cây quyết định:
Giai đoạn này nhằm mục đích đơn giản hóa và khái quát hóa từ đó làm tăng
độ chính xác của cây quyết định bằng cách loại bỏ sự phụ thuộc vào mức độ
lỗi (noise) của dữ liệu đào tạo mang tính chất thống kê, hay những sự biến
đổi mà có thể là đặc tính riêng biệt của dữ liệu đào tạo. Giai đoạn này chỉ
truy cập dữ liệu trên cây quyết định đã được phát triển trong giai đoạn trước
và quá trình thực nghiệm cho thấy giai đoạn này không tốn nhiều tài nguyên
tính toán, như với phần lớn các thuật toán, giai đoạn này chiếm khoảng dưới
1% tổng thời gian xây dựng mô hình phân lớp.
Do vậy, ở đây chúng ta chỉ tập trung vào nghiên cứu giai đoạn phát triển cây
quyết định. Dưới đây là khung công việc của giai đoạn này:
1) Chọn thuộc tính “tốt” nhất bằng một độ đo đã định trước
2) Phát triển cây bằng việc thêm các nhánh tương ứng với từng giá trị của thuộc
tính đã chọn
3) Sắp xếp, phân chia tập dữ liệu đào tạo tới node con
30
4) Nếu các ví dụ được phân lớp rõ ràng thì dừng.
Ngược lại: lặp lại bước 1 tới bước 4 cho từng node con
Hình 2.5: Mã giải của thuật toán phân lớp dữ liệu dựa trên cây quyết định
Cây quyết định sử dụng một cây cho mỗi thuộc tính, một nhánh cho mỗi kết quả
thử nghiệm được tạo ra. Các thuật toán dừng khi nó tìm thấy một lá. Trong Weka có thể
sử dụng cài đặt của thuật toán cây quyết định là J48.
2.5. Đánh giá thuật toán
Có nhiều cách khác nhau để đánh giá hiệu suất của một thuật toán phân lớp, cách
thường được dùng nhất là sử dụng ma trận nhầm lẫn với tính chính xác và đúng đắn.
Hiệu quả của bộ phân lớp thường được đánh giá qua so sánh quyết định của bộ
phân lớp đó với quyết định của con người khi tiến hành trên một tập kiểm thử (test set)
các văn bản đã được gán nhãn lớp trước. Có ba độ đo điển hình được sử dụng để đánh giá
độ hiệu quả của thuật toán phân lớp, đó là độ chính xác P (precision), độ hồi tưởng R
(recall) và độ đo F-measure được tính lần lượt theo công thức ở bảng 2.4.
31
Bảng 2.4: Công thức đánh giá toán hiệu năng thuật toán phân lớp
Hình 2.6: Ma trận nhầm lẫn
32
CHƯƠNG 3: CÀI ĐẶT VÀ THỰC NGHIỆM
Chương này mô tả các phương pháp sử dụng để đánh giá dữ liệu cảm biến gia tốc,
tìm kiếm mô hình hoạt động và huấn luyện phân lớp để dự đoán cho dữ liệu mới với các
hành vi tương ứng.
3.1. Bộ dữ liệu nhận dạng hành vi
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 toá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.
33
“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 toá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.
34
Để 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
Walking down stairs
Walking up stairs
Sitting
Standing
Lying
1226
1073
986
1286
1374
1407
496
471
420
491
532
537
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()
std()
mad()
max()
min()
sma()
energy()
iqr()
entropy()
arCoeff()
correlation()
maxInds()
meanFreq()
skewness()
kurtosis()
Giá trị trung bình
Độ lệch chuẩn
Độ lệch trung bình tuyệt đối
Giá trị lớn nhất trong mảng
Giá trị nhỏ nhất trong mảng
Khoảng cường độ tín hiệu
Thước đo năng lượng. Tổng các giá trị trung bình chia cho số các
giá trị
Khoảng tứ phân
Tín hiệu entropy
Hệ số Autorregresion với trật tự Burg bằng 4
Hệ số tương quan giữa hai tín hiệu
Chỉ số của các thành phần tần số với cường độ lớn nhất
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
Độ lệch của tín hiệu miền tần số
Độ nhọn của tín hiệu miền tần số
35
bandsEnergy()
angle()
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ổ.
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
tGravityAcc-XYZ
tBodyAccJerk-XYZ
tBodyGyro-XYZ
tBodyGyroJerk-XYZ
tBodyAccMag
tGravityAccMag
tBodyAccJerkMag
tBodyGyroMag
tBodyGyroJerkMag
fBodyAcc-XYZ
fBodyAccJerk-XYZ
fBodyGyro-XYZ
fBodyAccMag
fBodyAccJerkMag
fBodyGyroMag
fBodyGyroJerkMag
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.
36
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-correlation()-X,Y
tGravityAcc-mean()-X
tGravityAcc-mean()-Y
tGravityAcc-std()-X
tGravityAcc-max()-X
tGravityAcc-max()-Y
tGravityAcc-max()-Z
tGravityAcc-min()-X
tGravityAcc-min()-Y
tGravityAcc-energy()-X
tGravityAcc-arCoeff()-X,3
tGravityAcc-arCoeff()-Y,1
tGravityAcc-arCoeff()-Z,2
tGravityAcc-correlation()-
X,Y
tGravityAcc-correlation()-
Y,Z
tBodyAccJerk-max()-X
tBodyAccJerk-max()-Z
tBodyAccJerk-iqr()-Z
tBodyAccJerk-entropy()-Z
tBodyAccJerk-arCoeff()-X,3
tBodyGyro-mean()-X
tBodyGyro-correlation()-X,Y
tBodyGyro-correlation()-X,Z
tBodyGyro-correlation()-Y,Z
tBodyGyroJerk-iqr()-X
tBodyGyroJerkMag-min()
tBodyGyroJerkMag-iqr()
tBodyAcc-std()-X
tBodyAcc-max()-X
tBodyAcc-arCoeff()-Z,4
tBodyAcc-correlation()-X,Y
tBodyAcc-correlation()-Y,Z
tGravityAcc-min()-X
tGravityAcc-min()-Y
tGravityAcc-arCoeff()-X,4
tGravityAcc-arCoeff()-Y,1
tGravityAcc-correlation()-
X,Y
tGravityAcc-correlation()-
X,Z
tBodyAccJerk-mad()-Y
tBodyAccJerk-max()-Z
tBodyAccJerk-entropy()-Z
tBodyAccJerk-arCoeff()-X,3
tBodyGyro-mean()-X
tBodyGyro-arCoeff()-Y,4
tBodyGyro-correlation()-
X,Y
tBodyGyro-correlation()-
X,Z
tBodyGyro-correlation()-
Y,Z
tBodyAccJerkMag-min()
tBodyAccJerkMag-iqr()
tBodyAcc-max()-X
tBodyAcc-arCoeff()-Z,4
tBodyAcc-correlation()-
X,Y
tBodyAcc-correlation()-
Y,Z
tGravityAcc-min()-X
tGravityAcc-min()-Y
tGravityAcc-arCoeff()-
X,4
tGravityAcc-arCoeff()-
Y,1
tGravityAcc-
correlation()-X,Y
tGravityAcc-
correlation()-X,Z
tBodyAccJerk-max()-Z
tBodyAccJerk-entropy()-
Z
tBodyAccJerk-arCoeff()-
X,3
tBodyGyro-mean()-X
tBodyGyro-arCoeff()-Y,4
tBodyGyro-correlation()-
X,Y
tBodyGyro-correlation()-
X,Z
tBodyGyro-correlation()-
Y,Z
tBodyAccJerkMag-min()
tBodyAccJerkMag-iqr()
37
Miền tần số Miền tần số Miền tần số
fBodyAcc-std()-X
fBodyAcc-skewness()-X
fBodyAccJerk-maxInds-X
fBodyAccJerk-maxInds-Y
fBodyAccJerk-maxInds-Z
fBodyAccJerk-
bandsEnergy()-1,8
fBodyGyro-maxInds-X
fBodyGyro-maxInds-Y
fBodyGyro-maxInds-Z
fBodyAccMag-mean()
fBodyAccMag-std()
fBodyAccMag-iqr()
fBodyBodyAccJerkMag-
max()
fBodyBodyAccJerkMag-
energy()
fBodyBodyAccJerkMag-iqr()
fBodyBodyGyroMag-
maxInds
angle(tBodyGyroMean,gravit
yMean)
angle(tBodyGyroJerkMean,gr
avityMean)
angle(X,gravityMean)
angle(Y,gravityMean)
fBodyAcc-std()-X
fBodyAccJerk-maxInds-X
fBodyAccJerk-
bandsEnergy()-1,8
fBodyAccJerk-
bandsEnergy()-17,24
fBodyGyro-maxInds-X
fBodyGyro-maxInds-Z
fBodyGyro-meanFreq()-X
fBodyAccMag-mean()
fBodyAccMag-mad()
fBodyAccMag-iqr()
fBodyBodyAccJerkMag-
mad()
fBodyBodyAccJerkMag-
energy()
fBodyBodyGyroMag-iqr()
fBodyBodyGyroMag-
maxInds
angle(tBodyGyroJerkMean,g
ravityMean)
fBodyAcc-std()-X
fBodyAccJerk-maxInds-
X
fBodyAccJerk-
bandsEnergy()-1,8
fBodyGyro-maxInds-X
fBodyGyro-maxInds-Z
fBodyGyro-meanFreq()-
X
fBodyAccMag-mad()
fBodyBodyAccJerkMag-
mad()
fBodyBodyAccJerkMag-
energy()
fBodyBodyGyroMag-
maxInds
angle(tBodyGyroJerkMea
n,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
38
nhau. Cấp độ đơn giản của nó là ta có thể áp dụng các thuật toá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 toá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 toán về phân lớp (classifier), các thuật toán về tiền xử lý dữ liệu (filter), các thuật
toán về phân cụm (cluster), các thuật toá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 toá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 toá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 để đoá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.
39
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ự
đoá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 toá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 toán IB1 (thể hiện của thuật toán k-
NN) và SMO (thuật toán SVM) cho hiệu năng tốt hơn so với J48 về giá trị FP và F-
40
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ự đoá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 toá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
Tổng số mẫu 2947
41
Hình 3.4: Kết quả phân lớp dữ liệu với thuật toá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 toá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.
42
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 toá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.
43
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.
8. https://archive.ics.uci.edu/ml/datasets/Human+Activity+Recognition+Using+Smar
tphone
Các file đính kèm theo tài liệu này:
- luan_van_nhan_dang_hanh_vi_nguoi_dung_tu_du_lieu_cua_cam_bie.pdf