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

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.

pdf47 trang | Chia sẻ: yenxoi77 | Lượt xem: 445 | Lượt tải: 0download
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:

  • pdfluan_van_nhan_dang_hanh_vi_nguoi_dung_tu_du_lieu_cua_cam_bie.pdf
Luận văn liên quan