Quá trình nhận diện hành động của người sử dụng dựa vào việc thu thập giá trị đo được của các cảm biến này, thông qua quá trình huấn luyện một mạng nơron nhân tạo từ tập dữ liệu cho trướ
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
-
KIỀU THẾ HƯNG
NGHIÊN CỨU XÂY DỰNG PHẦN MỀM
NHẬN DẠNG HOẠT ĐỘNG NGƯỜI SỬ DỤNG ĐIỆN THOẠI TRÊN HỆ ĐIỀU HÀNH ANDROID
LUẬN VĂN THẠC SĨ KỸ THUẬT
KỸ THUẬT VIỄN THÔNG
HÀ NỘI – NĂM 2018
Trang 2BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
-
KIỀU THẾ HƯNG
NGHIÊN CỨU XÂY DỰNG PHẦN MỀM
NHẬN DẠNG HOẠT ĐỘNG NGƯỜI SỬ DỤNG ĐIỆN THOẠI TRÊN HỆ ĐIỀU HÀNH ANDROID
LUẬN VĂN THẠC SĨ KỸ THUẬT
KỸ THUẬT VIỄN THÔNG
NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS.TS NGUYỄN VĂN ĐỨC
HÀ NỘI – NĂM 2018
Trang 3LỜI CAM ĐOAN
Tôi xin cam đoan đây là công trình nghiên cứu của riêng tôi dưới sự hướng dẫn của PGS.TS Nguyễn Văn Đức Các số liệu, kết quả nêu trong luận văn là trung thực Nội dung của luận văn có tham khảo và sử dụng một số thông tin, tài liệu từ các nguồn sách, tạp chí được liệt kê trong danh mục các tài liệu tham khảo
Nếu không đúng như đã nêu trên, tôi xin hoàn toàn chịu trách nhiệm về đề tài của mình
Người cam đoan
Kiều Thế Hưng
Trang 4LỜI CẢM ƠN
Tôi xin gửi lời cảm ơn sâu sắc tới PGS.TS Nguyễn Văn Đức, người đã tận tình chỉ bảo tôi những kiến thức chuyên môn, phương pháp nghiên cứu khoa học đồng thời cũng là tấm gương trong mọi mặt của cuộc sống để tôi học tập và noi theo
Tôi xin chân thành cảm ơn các thầy, cô giáo trường Đại học Bách Khoa Hà Nội đã cung cấp cho tôi những kiến thức bổ ích trong thời gian tôi học tập tại trường
Cuối cùng tôi xin gửi lời cảm ơn tới gia đình tôi đã luôn ủng hộ tôi trên con đường học tập và nghiên cứu với nhiều khó khăn, vất vả Mặc dù tôi đã cố gắng hết sức trong quá trình làm luận văn nhưng không thể tránh khỏi thiếu sót, rất mong nhận được những góp ý của thầy cô và các bạn
Trang 5MỤC LỤC
LỜI CAM ĐOAN i
LỜI CẢM ƠN ii
MỤC LỤC iii
DANH MỤC CÁC HÌNH VẼ VÀ ĐỒ THỊ v
DANH MỤC CÁC BẢNG BIỂU vi
DANH MỤC CHỮ VIẾT TẮT vii
MỞ ĐẦU 1
CHƯƠNG 1: TỔNG QUAN VỀ GIÁM SÁT HOẠT ĐỘNG VÀ PHƯƠNG PHÁP NHẬN DẠNG HÀNH VI 3
1.1 Tổng quan về giám sát hoạt động 3
1.2 Cảm biến 4
1.3 Điện thoại thông minh 5
1.4 Công nghệ nhận dạng hành vi 6
1.4.1 Khái niệm phân lớp 6
1.4.2 Phân lớp dữ liệu 7
1.4.3 Phân lớp nhận dạng hành vi 9
1.4.4 Tiền xử lý 11
1.4.5 Trích chọn tính năng 12
1.4.6 Phân lớp dữ liệu 14
1.4.7 Đánh giá thuật toán 14
CHƯƠNG 2: GIỚI THIỆU MẠNG NƠRON TÍCH CHẬP VÀ CÁC GIẢI THUẬT LIÊN QUAN 15
2.1 Mạng Nơron 15
2.1.1 Giới thiệu về mạng Nơron 15
2.1.2 Mạng nơron nhiều tầng truyền thẳng MLP 17
2.2 Thuật toán lan truyền ngược 18
2.3 Mạng Nơron tích chập 20
2.3.1 Sự thay đổi về kiến trúc 20
2.3.2 Chi tiết các lớp trong mô hình 22
2.4 Các giải thuật Optimization 25
Trang 62.4.1 Các giải thuật cơ bản 26
2.4.2 Các giải thuật dựa vào chiến lược lựa chọn Learning Rate 27
2.4.3 Lựa chọn giải thuật Optimization nào? 28
CHƯƠNG 3: THỰC NGHIỆM VÀ ĐÁNH GIÁ 29
3.1 Giới thiệu TensorFlow 29
3.2 Giới thiệu phương pháp tạo dữ liệu huấn luyện nhận dạng hành động người dùng của tập Actitracker 29
3.3 Thông tin về bộ dữ liệu 31
3.4 Thiết kế hệ thống 32
3.4.1 Tiền xử lý dữ liệu 32
3.5 Môi trường thực nghiệm 33
3.5.1 Quá trình huấn luyện mô hình CNN 42
3.5.2 Kết quả huấn luyện CNN 43
3.6 Xây dựng phần mềm nhận dạng hoạt động người sử dụng điện thoại thông qua nền tảng điện thoại di động Android 44
3.7 Kết quả thực nghiệm trên thiết bị Android……….46
3.8 Nhận xét và đánh giá 49
KẾT LUẬN VÀ KIẾN NGHỊ 51
TÀI LIỆU THAM KHẢO 52
PHỤ LỤC CHƯƠNG TRÌNH 55
Trang 7DANH MỤC CÁC HÌNH VẼ VÀ ĐỒ THỊ
Hình 1.1 Hệ trục trên điện thoại di động [22] 4
Hình 1.2 Sơ đồ biểu diễn quy trình học máy [22] 10
Hình 1.3 Mô hình nhận dạng hành vi từ dữ liệu cảm biến trên điện thoại Android [22] 11
Hình 2.1 Cấu trúc một nơron nhân tạo [6] 15
Hình 2.2 Mạng MLP tổng quát [6] 17
Hình 2.3 Mạng nơron tích chập.[19] 21
Hình 2.4 Tính tích chập với Filter 22
Hình 2.5 Tính toán với phương pháp MaxPooling 23
Hình 2.6 Mô hình Softmax Regression dưới dạng mạng nơron [23] 25
Hình 3.1 Trục tương đối cho người dùng thiết bị Android [1] 30
Hình 3.2 Tỉ lệ các nhãn được gán trong tập dữ liệu Actitracker [3] 31
Hình 3.3 Sơ đồ khối hệ thống [24] 32
Hình 3.4 Mô hình mạng nhận dạng hoạt động người sử dụng điện thoại [3] 33
Hình 3.5 Dữ liệu được gắn nhãn “ngồi” sau khi chuẩn hoá [3] 35
Hình 3.6 Dữ liệu được gắn nhãn “đứng” sau khi chuẩn hoá [3] 36
Hình 3.7 Dữ liệu được gắn nhãn “đi bộ” sau khi chuẩn hoá [3] 37
Hình 3.8 Dữ liệu được gắn nhãn “xuống cầu thang” sau khi chuẩn hoá [3] 38
Hình 3.9 Dữ liệu được gắn nhãn “lên cầu thang” sau khi chuẩn hoá [3] 39
Hình 3.10 Dữ liệu được gắn nhãn “chạy bộ” sau khi chuẩn hoá [3] 40
Trang 8DANH MỤC CÁC BẢNG BIỂU
Bảng 1.1 Tóm tắt các nghiên cứu trước đây về nhận dạng hoạt động sử dụng cảm
biến gia tốc Cột tập dữ liệu quy định cụ thể dữ liệu được thu thập trong
phòng thí nghiệm (L), tự nhiên (N), hoặc bán tự nhiên (S) [22] 5
Bảng 1.2 Tính năng miền thời gian Công thức tương ứng và các ứng dụng [22] 12 Bảng 1.3 Tính năng miền tần số Công thức tương ứng và các ứng dụng [22] 13
Bảng 3.1 Bảng dữ liệu hoạt động người dùng xây dựng trên tập dữ liệu Actitracker [3] 34
Bảng 3.2 Mẫu dữ liệu được gắn nhãn hoạt động người dùng [3] 41
Bảng 3.3 Dữ liệu huấn luyện sau khi đi qua lớp Max pooling [3] 42
Bảng 3.4 Kết quả huấn luyện mạng nơron [3] 43
Bảng 3.5 Nhận dạng hành động “xuống cầu thang” 46
Bảng 3.6 Nhận dạng hành động “lên cầu thang” 47
Bảng 3.7 Nhận dạng hành động “chạy bộ” 47
Bảng 3.8 Nhận dạng hành động “đi bộ” 48
Bảng 3.9 Nhận dạng hành động “ngồi” 48
Bảng 3.10 Nhận dạng hành động “đứng” 49
Trang 9DANH MỤC CHỮ VIẾT TẮT
CNN Convolution Neural Network Mạng nơron tích chập ADL Activities of daily living Hoạt động hằng ngày
AR Activity recognition Nhận dạng hành vi ANN Atificial Neural Network Mạng nơron nhân tạo GPS Global Positioning System Hệ thống định vị toàn cầu HMM Hidden Markov Models Mô hình Markov ẩn K-NN K-Nearest Neighbours Mô hình phân lớp K hàng
xóm gần nhất SVM Support Vector Machines Máy vec tơ hỗ trợ
GD Gradient Descent
SGD Stochastic Gradient Descent
WISDM Wireless Sensor Data Mining
Trang 10Trong luận văn này, tôi đưa ra phương pháp sử dụng các cảm biến gia tốc trên thiết bị Android, để có thể tận dụng các chức năng sẵn có của thiết bị, ứng dụng vào việc nhận diện hành vi của người dùng thông qua các cảm biến này Nghiên cứu thực hiện trên các thiết bị Android, với các cảm biến gia tốc Quá trình nhận diện hành động của người sử dụng dựa vào việc thu thập giá trị đo được của các cảm biến này, thông qua quá trình huấn luyện một mạng nơron nhân tạo từ tập dữ liệu cho trước, ta đưa ra kết quả là hành động của người dùng
Do thời gian thực hiện đề tài không cho phép thu thập dữ liệu thực tế, nên luận văn xây dựng dựa trên tập dữ liệu có sẵn Actitracker, thu thập trong môi trường thí nghiệm Do đó, việc nhận diện chính xác hơn khi thiết bị được đặt trong túi của người sử dụng
Kết quả của ứng dụng là nhận diện được hành động của người dùng là một trong các hành động sau: chạy bộ, lên cầu thang, xuống cầu thang, ngồi, đi bộ, đứng
Đề tài nghiên cứu nhằm tận dụng các cảm biến của thiết bị Android, từ đó có thể ứng dụng cho các công việc thực tiễn hơn: ứng dụng tập thể dục, hỗ trợ luyện tập, …
Đề tài được xây dựng theo hai phần chính:
Xây dựng mạng nơron: mạng nơron nhân tạo này được sử dụng để nhận diện
nhãn của hành động theo các giá trị thu được từ cảm biến của thiết bị Android Mạng được xây dựng sử dụng các lớp tích chập và Max-pooling,
Trang 11dữ liệu huấn luyện và kiểm thử được sử dụng từ tập dữ liệu Actitracker
(WISDM)
Nhận diện hành động: dữ liệu cho việc nhận diện được thu trực tiếp từ các
cảm biến của thiết bị Android, các dữ liệu này được đưa vào mạng nơron (các trọng số thu được từ việc xây dựng và huấn luyện mạng), và được gán nhãn theo một trong các hành động: chạy, lên cầu thang, xuống cầu thang, đứng, ngồi, đi bộ
Đề tài sử dụng phương pháp nghiên cứu tài liệu, dựa trên các đề tài về xây dựng, thiết kế mạng nơron, xử lý ảnh, xử lý tín hiệu số, từ đó áp dụng vào phân tích và giải quyết bài toán của đề tài
Nội dung của luận văn nghiên cứu, và phát triển được trình bày thông qua ba chương:
Chương 1: Tổng quan về giám sát hoạt động và phương pháp nhận dạng hành vi
Chương 2: Giới thiệu mạng Nơron tích chập và các giải thuật liên quan
Chương 3: Thực nghiệm và đánh giá
Trang 12CHƯƠNG 1 TỔNG QUAN VỀ GIÁM SÁT HOẠT ĐỘNG VÀ PHƯƠNG
PHÁP NHẬN DẠNG HÀNH VI
1.1 Tổng quan về giám sát hoạt động
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 [22]
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ể 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, cảm biến ánh sáng 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
Trang 13nhận, xử lý và có được thô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 thuật 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 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 [22]
1.2 Cảm biến
Cảm biến có thể thu thập dữ liệu đượ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 [22]
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/ [22]
Hình 1.1 Hệ trục trên điện thoại di động [22]
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 nghiên cứu trước đây đã chứng minh 85-95% cho đánh giá nhận
Trang 14dạng hành động, tư thế và các hoạt động khác sử dụng dữ liệu cảm biến gia tốc Một
số công trình được mô tả trong bảng 1.1:
Các hoạt động Cảm biến Vị trí cảm biến Tập dữ liệu Chính xác nhận
dạng Chuyển động
của người Gia tốc X,Y GPS
Túi 10 người (L) 85%-90%
Chuyển động
của người
Cảm biến 3D
Đùi phải, cổ,
cổ tay trái phải 13 người (S) 90.61%
20 ADL Gia tốc
X,Y
Đùi trái, mắt cá phải
ngực, cổ tay, giày
7 người (L) >90%
5 hoạt động
sửa xe đạp Gia tốc Thân, tay áo trái phải, cánh
tay áo trên dưới, và tay trái
Gia tốc 2D Chân trái trên 6 người (L) 42%-96%
Cử động người Gia tốc 2 ở hông 1 người (L) 83%-90%
Cử động người Gia tốc 2 ở đùi 8 người (L) 92.85%-95.91%
Bảng 1.1 Tóm tắt các nghiên cứu trước đây về nhận dạng hoạt động sử dụng cảm biến gia tốc Cột tập dữ liệu quy định cụ thể dữ liệu được thu thập trong
phòng thí nghiệm (L), tự nhiên (N), hoặc bán tự nhiên (S) [22]
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
Trang 15tă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ở nê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 Đ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, 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ó 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 [22]
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à 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 [22]
1.4 Công nghệ nhận dạng hành vi
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
Trang 16trướ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 [25]
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 nay và các ngày trước đó 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 phần [25]
Học (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
Trang 17tí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 [25]
Phân lớp (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 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 [25]
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 chú trọng và phát triển [25]
Trang 18Có 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 [25]:
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)
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 [22]
Thuật toán học máy có thể chia ra thành các loại [22]:
- 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
Trang 19(HMM), mạng Nạve Bayes, cây quyết định, K-Nearest Neighbours, Máy vecter hỗ trợ (SVM)
- 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 tố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 được gá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
Hình 1.2 Sơ đồ biểu diễn quy trình học máy [22]
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ều cần thiết bởi vì các thuật tố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
Trích chọn tính năng:
Tính năng miền thời gian và tính năng miền tần số
Phân lớp:
Mạng nơron tích chập
Đánh giá:
Độ chính xác,
ma trận nhầm lẫn
tra
Trang 20quả 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 [22]
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 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 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ì [22]
Hình 1.3 Mô hình nhận dạng hành vi từ dữ liệu cảm biến trên điện thoại
Android [22]
1.4.4 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ụ 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 90 mẫu (tương ứng với 4.5 giây của dữ
liệu) [22]
Lựa chọn thuộc tính Phân lớp
Trang 21Dữ 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 này 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 [22]
1.4.5 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 [22]
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 1.2 tóm tắt một số tính năng trong miền thời gian
Sự sai khác trung bình bình phương
từ căn bậc hai của phương sai
ổn định tín hiệu
Nhỏ nhất, lớn nhất,
phạm vi Phạm vi là sự khác biệt giữa giá trị nhỏ nhất và giá trị lớn nhất Phân biệt chạy và đi bộ
khoảng cách
phạm vi tín hiệu
Nhận dạng các di chuyển bước
Vùng độ lớn tín
hiệu Tổng của vùng dưới độ lớn của mỗi 3 trục tín hiệu Tính toán tiêu hao năng lượng trong ADL
Bảng 1.2 Tính năng miền thời gian Công thức tương ứng và các ứng dụng [22]
Trang 22 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 1.3 cho thấy một số tính năng miền tần số:
Bảng 1.3 Tính năng miền tần số Công thức tương ứng và các ứng dụng [22]
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 chuỗi các ký hiệu rời rạc, sử dụng một bảng chữ cái biểu tượng để đại diện cho các tín hiệu
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 [22]
Thành phần DC Hệ số đầu tiên trong đại diện
phổ Trung bình tín hiệu Năng lượng quang
phổ
Tổng bình phương của hệ số quang phổ được chuẩn hóa bởi chiều dài của cửa sổ mẫu
Xác định đường vận chuyển
Thông tin entropy Thông tin dữ liệu ngẫu nhiên
bình thường của FFT rời rạc hệ
số độ lớn không bao gồm thành phần DC
Sự khác biệt giữa các tín hiệu với cùng một năng lượng
Ưu thế tần số Giá trị tần số tương ứng tới hệ số
quang phổ tối đa Quyết định nếu người dùng đang đi bộ hoặc
đang chạy Các hệ số tổng Tổng kết của một tập hợp các hệ
số quang phổ Công nhận một số hoạt động Tổng các hệ số
wavelet
Tổng kết của tất cả các hệ số của phép biến đổi wavelet Nắm bắt các thay đổi tín hiệu đột ngột Phát hiện té
ngã
Trang 231.4.6 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 Năm 2006, học sâu đã xuất hiện như một lĩnh vực mới của nghiên cứu học máy Nó cho phép các mô hình tính toán được bao gổm nhiều lớp
để học các đại diện của dữ liệu với nhiều cấp độ trừu tượng Những phương pháp này cải tiến đáng kể trạng thái của kỹ thuật trong nhận dạng giọng nói, nhận dạng đối tượng thị giác, phát hiện đối tượng và nhiều lĩnh vực khác Học sâu phát hiện ra cấu trúc phức tạp trong các tập dữ liệu lớn bằng cách sử dụng các thuật toán lan truyền ngược để chỉ ra làm thế nào một máy sẽ thay đổi các thông số bên trong của
nó để sử dụng tính toán các đại diện trong mỗi lớp từ các đại diện trong lớp trước
đó Mạng tích chập sâu đã đem lại những bước đột phá trong việc xử lý hình ảnh, video, giọng nói, và âm thanh Trong nghiên cứu của em, em sử dụng một trong những thuật toán học máy thông thường, CNNs (mạng nơron tích chập) Em sử dụng nó với dữ liệu đã thu thập được từ các cảm biến gia tốc trong điện thoại thông minh [22]
1.4.7 Đá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 [22]
Trang 24CHƯƠNG 2 GIỚI THIỆU MẠNG NƠRON TÍCH CHẬP VÀ CÁC GIẢI
THUẬT LIÊN QUAN
2.1 Mạng Nơron
2.1.1 Giới thiệu về mạng Nơron
Mạng nơron nhân tạo, Artificial Neural Network (ANN) là một mô hình xử
lý thông tin phỏng theo cách thức xử lý thông tin của các hệ nơron sinh học Nó được tạo nên từ một số lượng lớn các phần tử (nơron) kết nối với nhau thông qua các liên kết (trọng số liên kết) làm việc như một thể thống nhất để giải quyết một vấn đề cụ thể nào đó Một mạng nơron nhân tạo được cấu hình cho một ứng dụng
cụ thể (nhận dạng mẫu, phân loại dữ liệu, ) thông qua một quá trình học từ tập các mẫu huấn luyện Về bản chất học chính là quá trình hiệu chỉnh trọng số liên kết giữa các nơron
Cấu trúc một nơron nhân tạo:
Hình 2.1 Cấu trúc một nơron nhân tạo [6]
Các thành phần cơ bản của một nơron nhân tạo bao gồm [6]:
Đầu vào: Là các tín hiệu vào của nơron, các tín hiệu này thường được đưa vào dưới dạng một vector n phần tử
Trang 25 Tập các liên kết: Mỗi liên kết được thể hiện bởi một trọng số liên kết (synaptic weight) Trọng số liên kết giữa tín hiệu vào thứ j với nơron k thường được kí hiệu là Thông thường, các trọng số này được khởi tạo một cách ngẫu nhiên ở thời điểm khởi tạo mạng và được cập nhật liên tục trong quá trình học mạng
Bộ tổng (summing function): là hàm tổng hợp các tín hiệu vào của nơron
Ngưỡng (còn gọi là một độ lệch - bias): Ngưỡng này thường được đưa vào như một thành phần của hàm truyền, đóng vai trò tăng tính thích nghi và khả năng tính toán của mạng nơron
Hàm truyền ƒ (Transfer function): Còn gọi là hàm kích hoạt hay hàm tích hợp Hàm này được dùng để giới hạn phạm vi đầu ra của mỗi nơron Nó nhận đầu vào là kết quả của hàm tổng và ngưỡng
Đầu ra: Là tín hiệu đầu ra của một nơron, với mỗi nơron sẽ có tối đa là một đầu ra
Xét về mặt toán học, cấu trúc của một nơron k, được mô tả bằng cặp biểu thức sau:
∑
ƒ
Trong đó: là các tín hiệu vào; là các trọng
số liên kết của nơron thứ k; là hàm tổng; là một ngưỡng; ƒ là hàm truyền
và là tín hiệu đầu ra của nơron
Như vậy nơron nhân tạo nhận các tín hiệu đầu vào, xử lý (nhân các tín hiệu này với trọng số liên kết, tính tổng các tích thu được rồi gửi kết quả tới hàm truyền),
và cho một tín hiệu đầu ra (là kết quả của hàm truyền)
Các hàm truyền phải có các đặc tính sau [6]:
Hàm có tính đơn điệu
Trang 262.1.2 Mạng nơron nhiều tầng truyền thẳng MLP
Mô hình mạng nơron được sử dụng rộng rãi nhất là mô hình mạng nhiều tầng truyền thẳng (MLP: Multi Layer Perceptron) Một mạng MLP tổng quát là mạng có
n (n 2) tầng (thông thường tầng đầu vào không được tính đến): trong đó gồm một tầng đầu ra (tầng thứ n) và (n-1) tầng ẩn
Trang 27
Đầu vào là các vector trong không gian p chiều, đầu ra là các vector trong không gian q chiều Đối với các bài toán phân loại, p chính là kích thước của mẫu đầu vào, q chính là số lớp cần phân loại
Mỗi nơron thuộc tầng sau liên kết với tất cả các nơron thuộc tầng liền trước
nó
Đầu ra của nơron tầng trước là đầu vào của nơron tầng liền sau nó
Hoạt động của mạng MLP: tại tầng đầu vào các nơron nhận tín hiệu vào xử
lý (tính tổng trọng số, gửi tới hàm truyền) rồi cho ra kết quả (là kết quả của hàm truyền); kết quả này sẽ được truyền tới các nơron thuộc tầng ẩn thứ nhất; các nơron tại đây tiếp nhận như là tín hiệu đầu vào, xử lý và gửi kết quả đến tầng ẩn thứ 2, quá trình tiếp tục cho đến khi các nơron thuộc tầng ra cho kết quả [6]
2.2 Thuật toán lan truyền ngược
Ta sử dụng các kí hiệu [6]:
: giá trị nơron đầu vào thứ i
: giá trị nơron đầu ra thứ k
: vector trọng số của kết nối từ node i của lớp vào tới node j của lớp ẩn
: vector trọng số của kết nối từ node j của lớp ẩn tới lớp k của lớp ra
: giá trị đầu ra mong muốn của node k của lớp ra
: tốc độ học của mạng
ƒ: hàm truyền, ở đây dùng hàm Sigmoid với giới hạn đầu ra trong đoạn [0; 1]:
ƒ
: đầu vào của node vào thứ i
: đầu ra của node vào thứ i
: đầu vào của node ẩn thứ i
: đầu ra của node ẩn thứ i
: đầu vào của node thứ i của lớp ra
Trang 28Mô tả thuật toán [6]:
Input:
Tập huấn luyện: là tập vector đầu vào, đầu ra mong muốn
Mạng feed-forward với n đầu vào, m nút ẩn, L đầu ra
Bước 2: Lan truyền tính toán đầu ra thực tế
Tại node vào thứ i: (Input)
là: Thực tế ta có thể nhận thấy đầu ra mong muốn và đầu ra thực tế
là luôn khác nhau, chúng ta cần phải tính toán độ sai khác này và có phương pháp điều chỉnh các trọng số mạng qua từng bước học sao cho qua mỗi lần học sự sai khác này giảm xuống, quá trình học sẽ dừng khi sự sai khác này đạt đến 1 ngưỡng giới hạn phù hợp nào đó
Bước 3: Đánh giá lỗi học – lỗi trung bình bình phương
√∑
Trang 29Nếu E ≤ ε thì dừng học
Bước 4: Lan truyền ngược điều chỉnh trọng số
Với mỗi node q ở lớp ra, ta tính đạo hàm ngược sai số thành phần
2.3 Mạng Nơron tích chập
2.3.1 Sự thay đổi về kiến trúc
Mô hình mạng nơron nhân tạo truyền thẳng (feedforward neural network) ra đời đã được áp dụng nhiều trong các bài toán nhận dạng Tuy nhiên mạng nơron truyền thẳng không thể hiện tốt lắm đối với các dữ liệu hình ảnh Chính sự liên kết quá đầy đủ tạo nên những hạn chế cho mô hình Dữ liệu hình ảnh có kích thước khá lớn, một tấm ảnh xám có kích thước 32x32 (pixels) sẽ cho ra vector đặc trưng có
1024 chiều, còn đối với ảnh màu cùng kích thước sẽ là 3072 chiều Điều này cũng
có nghĩa là cần tới 3072 trọng số nối giữa lớp vào và một node ở lớp ẩn kế tiếp Số lượng trọng số sẽ càng nhân rộng hơn nữa nếu số lượng node trong lớp ẩn tăng lên,
số lượng lớp ẩn tăng lên Như vậy chỉ với một bức ảnh nhỏ (32x32) thì cũng cần đến một mô hình khá đồ sộ Điều này khiến cho việc thao tác với các ảnh có kích thước lớn hơn trở nên khó khăn [19]
Trang 30Một điều nữa là việc liên kết một cách đầy đủ các điểm ảnh vào một node trong mạng có vẻ dư thừa vì sự phụ thuộc lẫn nhau giữa các điểm ảnh xa nhau là không nhiều mà chủ yếu là sự phụ thuộc giữa các điểm lân cận với nó Dựa trên tư tưởng này mạng nơron tích chập (Convolutional Neural Network) ra đời với một kiến trúc khác so với mạng truyền thẳng Thay vì toàn bộ ảnh nối với một node thì chỉ có một phần cục bộ trong ảnh nối đến một node trong lớp tiếp theo (local connectivity) Dữ liệu hình ảnh thông qua các lớp của mô hình này sẽ được "học" ra các đặc trưng để tiến hành phân lớp một cách hiệu quả [19]
Cũng giống như mạng NN truyền thống, CNN hoạt động theo phương thức nhận tín hiệu vào và biến đổi tín hiệu vào thông qua các layer, tuy nhiên điểm khác biệt nằm ở cấu trúc của đầu vào và cấu trúc bên trong 1 layer [19]
Tín hiệu vào: lấy cảm hứng từ xử lý ảnh nên tín hiệu vào của CNN có dạng như một bức ảnh chứ không có dạng vector như ANN, cụ thể một bức ảnh sau khi
số hóa có dạng width x height x depth (width: số lượng điểm ảnh trên chiều rộng, height: số lượng điểm ảnh trên chiều cao, depth: số lượng kênh chẳng hạn như RGB
có 3 kênh đại diện cho mức độ của 3 màu đỏ, lục, lam [19]
Về cơ bản mô hình mạng nơron tích chập bao gồm các lớp sau: lớp tích chập (Convolutional), lớp RELU, lớp Pooling, lớp kết nối đầy đủ (Fully connected) Sự sắp xếp về số lượng và thứ tự giữa các lớp này sẽ tạo ra những mô hình khác nhau phù hợp cho các bài toán khác nhau [19]
Hình 2.3 Mạng nơron tích chập [19]
Lớp Tích chập
Lớp Pooling
Lớp
FC
Lớp Softmax
Trang 312.3.2 Chi tiết các lớp trong mô hình
2.3.2.1 Lớp tích chập - Convolutional
Lớp này chính là nơi thể hiện tư tưởng ban đầu của mạng nơron tích chập Thay vì kết nối toàn bộ điểm ảnh, lớp này sẽ sử dụng một bộ các bộ lọc (filters) có kích thước nhỏ so với ảnh (thường là 3x3 hoặc 5x5) áp vào một vùng trong ảnh và tiến hành tính tích chập giữa bộ filter và giá trị điểm ảnh trong vùng cục bộ đó Bộ filer sẽ lần lượt dịch chuyển theo một giá trị bước trượt (stride) chạy dọc theo ảnh
và quét toàn bộ ảnh Số chiều của tích chập chính là số hướng mà bộ filter có thể di chuyển được [19]:
- Tích chập 1 chiều sẽ chỉ cho phép bộ filter di chuyển theo 1 chiều ( nghĩa là ảnh phải chuyển đổi về dạng vector) chính là độ dài của vector
- Tích chập 2 chiều sẽ cho phép bộ filter di chuyển theo 2 chiều ( theo cả chiều dài và chiều rộng)
Hình 2.4 Tính tích chập với bộ lọc
Như vậy với một bức ảnh 32x32 và một filter 3x3, ta sẽ có kết quả là một tấm ảnh mới có kích thước 32x32 (với điều kiện đã thêm padding vào ảnh gốc để tính tích chập cho các trường hợp filter quét ra các biên cạnh) là kết quả tích chập của filter và ảnh Với bao nhiêu filter trong lớp này thì ta sẽ có bấy nhiêu ảnh tương ứng mà lớp này trả ra và được truyền vào lớp tiếp theo Các trọng số của filter ban đầu sẽ được khởi tạo ngẫu nhiên và sẽ được học dần trong quá trình luyện mô hình [19]
2.3.2.2 Lớp lấy mẫu - Pooling
Trang 32Lớp này sử dụng một cửa sổ trượt quét qua toàn bộ ảnh dữ liệu, mỗi lần trượt theo một bước trượt (stride) cho trước Khác với lớp tích chập, lớp pooling không tính tích chập mà tiến hành lấy mẫu (subsampling) Khi cửa sổ trượt trên ảnh, chỉ có một giá trị được xem là giá trị đại diện cho thông tin ảnh tại vùng đó (giá trị mẫu) được giữ lại Các phương thức lấy mẫu phổ biến trong lớp Pooling là MaxPooling (lấy giá trị lớn nhất), MinPooling (lấy giá trị nhỏ nhất) và AveragePooling (lấy giá trị trung bình) [19]
Xét một ảnh có kích thước 32x32 và lớp Pooling sử dụng bộ lọc (filter) có kích thước 2x2 với bước trượt stride = 2, phương pháp sử dụng là MaxPooling Filter sẽ lần lượt duyệt qua ảnh, với mỗi lần duyệt chỉ có giá trị lớn nhất trong 4 giá trị nằm trong vùng cửa sổ 2x2 của filter được giữ lại và đưa ra đầu ra Như vậy sau khi qua lớp Pooling, ảnh sẽ giảm kích thước xuống còn 16x16 (kích thước mỗi chiều giảm 2 lần) [19]
Hình 2.5 Tính toán với phương pháp lấy giá trị lớn nhất
Lớp Pooling có vai trò giảm kích thước dữ liệu Với một bức ảnh kích thước lớn qua nhiều lớp Pooling sẽ được thu nhỏ lại tuy nhiên vẫn giữ được những đặt trưng cần cho việc nhận dạng (thông qua cách lấy mẫu) Việc giảm kích thước dữ liệu sẽ làm giảm lượng tham số, tăng hiệu quả tính toán và góp phần kiểm soát hiện tượng quá khớp (overfitting) [19]
Trang 33Lớp này tương tự với lớp trong mạng nơron truyền thẳng, các giá trị ảnh được liên kết đầy đủ vào node trong lớp tiếp theo Sau khi ảnh được xử lý và rút trích đặc trưng từ các lớp trước đó, dữ liệu ảnh sẽ không còn quá lớn so với mô hình truyền thẳng nên ta có thể sử dụng mô hình truyền thẳng để tiến hành nhận dạng Tóm lại, lớp FC đóng vai trò như một mô hình phân lớp và tiến hành dựa trên dữ liệu đã được xử lý ở các lớp trước đó [19]
2.3.2.4 Lớp phân loại - Softmax
Chúng ta cần một mô hình xác suất sao cho với mỗi đầu vào x, thể hiện xác suất để đầu vào đó rơi vào class i Vậy điều kiện cần là các phải dương và tổng của chúng bằng 1 Để có thể thỏa mãn điều kiện này, chúng ta cần nhìn vào mọi giá trị và dựa trên quan hệ giữa các này để tính toán giá trị của Ngoài các điều kiện lớn hơn 0 và có tổng bằng 1, chúng ta sẽ thêm một điều kiện cũng rất tự nhiên nữa, đó là: giá trị = x càng lớn thì xác suất dữ liệu rơi vào class i càng cao Điều kiện cuối này chỉ ra rằng chúng ta cần một hàm đồng biến ở đây Chú ý rằng có thể nhận giá trị cả âm và dương Một số hàm mượt đơn giản
có thể chắc chắn biến thành một giá trị dương, và hơn nữa, đồng biến là hàm exp( ) = Điều kiện mượt để thuận lợi hơn cho việc tính đạo hàm sau này Điều kiện cuối cùng, tổng các bằng 1 có thể được đảm bảo nếu:
=
∑ , i = 1,2,….,C (2.19)
Hàm số này, tính tất cả các dựa vào tất cả các , thỏa mãn tất cả các điều kiện đã xét dương, tổng bằng 1, giữ được thứ tự của Hàm số này được gọi là softmax function Chú ý rằng với cách định nghĩa này, không có xác suất nào tuyệt đối bằng 0 hoặc tuyệt đối bằng 1, mặc dù chúng có thể rất gần 0 hoặc 1 khi rất nhỏ hoặc rất lớn khi so sánh với các , j≠i
Trang 342.4 Các giải thuật tối ƣu - Optimization
Thuật toán huấn luyện của rất nhiều mô hình máy học đƣợc phát biểu hình
Trang 35linear/logistic regression, ANN, SVM, KMeans… Ý tưởng chung là mỗi mô hình đều có một tập tham số θ nào đó cần phải được xác định giá trị thông qua quá trình huấn luyện với dữ liệu và ta cần tìm θ để cực tiểu hóa hàm chi phí C(θ)
Mặc dù lí thuyết optimization về vấn đề này rất đầy đủ với nhiều phương pháp khác nhau, trong nghiên cứu này trình bày tổng quan về một số giải thuật Optimization [26]
2.4.1 Các giải thuật cơ bản
2.4.1.1 Gradient Descent
Để tìm cực trị của C(θ), ta có thể giải phương trình sau:
= 0 (2.21)
để tìm giá trị của θ tại điểm cực trị Cách này chỉ làm được khi có thể tính toán chính xác đạo hàm bậc nhất của C(θ) Thực tế bằng cách sử dụng hàm hợp lý (likelihood), lấy đạo hàm để có công thức tường minh của các tham số rồi sử dụng thuật toán cực đại hoá kỳ vọng (Expectation Maximization) [26]
Tuy nhiên việc lấy đạo hàm và giải phương trình trên không phải lúc nào cũng thực hiện được, do đó cần sử dụng các phương pháp tối ưu Phương pháp hay
sử dụng nhất trong Machine Learning là Gradient Descent [26]
Gradient descent là từ vị trí hiện tại, ta đi theo chiều giảm của đạo hàm bậc nhất cho đến khi không thể giảm được nữa Khi đó ta đã ở một điểm tối ưu cục bộ Công thức cập nhật cho Gradient Descent là [26]:
= -
C( (2.22)
2.4.1.2 Stochastic Gradient Descent
Nhận thấy C là trung bình cộng, và thông thường tập huấn luyện là i.i.d
(independently and identically distributed) nên tại mỗi bước ta có thể cập nhật tham
số với mỗi mẫu trong tập huấn luyện [26]:
= - L( (2.23)
Trang 36với z là mẫu tiếp theo trong tập huấn luyện, hoặc trong các ngữ cảnh online khi dữ liệu huấn luyện được đưa đến từng mẫu một (có thể vô hạn), và ta không có trọn vẹn cả tập huấn luyện ngay từ đầu Một cách để hiểu về SGD là hướng cập nhật cho tham số là một biến ngẫu nhiên mà kì vọng của nó là hướng cập nhật tính bởi Gradient Descent Mặc dù có thêm yếu tố ngẫu nhiên nhưng kết quả của SGD là
tương tự với Gradient descent [26]
SGD thông thường nhanh hơn Gradient Descent vì cập nhật các tham số
nhiều hơn hẳn Điều này đặc biệt đúng khi ta có tập huấn luyện lớn hoặc không có toàn bộ tập huấn luyện ngay từ đầu Thực tế trong Machine Learning, người ta chỉ
dùng GD khi hàm chi phí không thể viết dưới dạng trung bình như trên [26]
2.4.1.3 Momentum
Ý tưởng của phương pháp momentum là tính toán mức độ thay đổi của tham
số tại mỗi bước dựa vào bước trước đó Như vậy tại mỗi bước tham số sẽ thay đổi một cách “thích nghi” dần dần với các lần lặp trước Cụ thể
Δ = εΔ + (1-ε)
L( (2.24) với ε là siêu tham số điều khiển mức độ ảnh hưởng của gradient vào mức giảm tại mỗi bước [26]
2.4.2 Các giải thuật dựa vào chiến lược lựa chọn Learning Rate
2.4.2.1 AdaGrad
Giải thuật AdaGrad tự điều chỉnh tỷ lệ học tập của tất cả các tham số của mô hình bằng cách chia tỷ lệ nghịch với căn bậc hai của tổng của tất cả các giá trị bình phương trong quá khứ của chúng Các thông số có phần nhỏ nhất dẫn đến sự mất mát có tỷ lệ học giảm nhanh tương ứng, trong khi các tham số với các dẫn xuất một phần nhỏ có tỷ lệ học tập tương đối thấp [26]
2.4.2.2 RMSPro
Thuật toán RMSProp được phát triển từ thuật toán AdaGrad để thực hiện tốt
hơn bằng cách thay đổi tích lũy gradient thành một trung bình di chuyển trọng số theo cấp số nhân AdaGrad được thiết kế để hội tụ nhanh chóng khi áp dụng cho một chức năng lồi Khi áp dụng cho một chức năng không lồi để đào tạo một mạng