Tổng quan về tình hình nghiên cứu hiện nay
Ngày nay, máy đếm bước chân đã trở thành thiết bị phổ biến trong việc theo dõi luyện tập thể dục hàng ngày, giúp khuyến khích cá nhân nỗ lực tập luyện và giảm cân Thiết bị này ngày càng chứng minh được những lợi ích mà nó mang lại Vậy lịch sử của máy đếm bước chân ra sao?
Năm 1965, Tiến sĩ Yoshiro Hatano khuyến khích người dân Nhật Bản đi 10.000 bước mỗi ngày để đốt calorie và duy trì sức khỏe, dựa trên nghiên cứu của ông Sự khuyến khích này đã dẫn đến việc nhà sản xuất đồng hồ Yamasa Tokei ra mắt chiếc Manpo-meter, một máy đếm bước chân cơ khí Các thiết kế ban đầu sử dụng switch cơ cảm biến trọng lực để phát hiện bước chân kết hợp với bộ đếm đơn giản, cho phép người dùng nghe thấy âm thanh khi thiết bị chuyển động Sản phẩm này đã chứng minh khả năng đo chính xác 10.000 bước chân, nhanh chóng trở nên phổ biến tại Nhật Bản.
Vào những năm 1980, thiết bị Manpo-meter đã được thay thế bởi các thiết bị điện tử có độ chính xác cao hơn Hiện nay, các cảm biến đo bước chân sử dụng công nghệ cảm biến quán tính vi cơ điện tử (MEMS) kết hợp với phần mềm phân tích, giúp phát hiện bước chân với độ chính xác cao Công nghệ MEMS cho phép phát hiện bước chân chính xác hơn và giảm thiểu sai số trong quá trình đo lường.
Hiện nay, thị trường có nhiều mẫu vòng đeo tay thông minh tích hợp nhiều tính năng, trong đó nổi bật là sản phẩm Fitbit Tracker của hãng Fitbit, Mỹ, ra mắt từ năm 2009 Sản phẩm này có thiết kế nhỏ gọn, màn hình OLED hiển thị thống kê nhanh và khả năng ghi nhận chuyển động 3D, cùng với chế độ đồng bộ dữ liệu không dây qua một trạm trung tâm Ngoài việc theo dõi hoạt động thể chất cơ bản, Fitbit Tracker còn ghi nhận giấc ngủ và cung cấp phân tích về chế độ luyện tập trên trang web của Fitbit Người dùng có thể chia sẻ mục tiêu luyện tập với bạn bè và gia đình.
Hình 1.2: Sản phẩm Fitbit Tracker được đưa ra thị trường vào năm 2009
Một dòng sản phẩm nổi tiếng là model Gear Fit của hãng Samsung Ngày 24 tháng
Vào năm 2014, Samsung Electronics đã giới thiệu dòng đồng hồ thông minh Samsung Gear Fit tại Mobile World Congress ở Barcelona, Tây Ban Nha Đây là thiết bị đầu tiên sử dụng màn hình Super AMOLED cong, cho phép người dùng cập nhật cuộc gọi, email, SMS, báo thức, đồng hồ bấm giờ, S-planner và các ứng dụng của bên thứ ba Đặc biệt, Gear Fit còn hỗ trợ tính năng tập thể dục và đo nhịp tim, cùng với khả năng chống nước và chống bụi đạt tiêu chuẩn IP67.
Hình 1.3: Mẫu đồng hồ thông minh Gear Fit
Đồng hồ thông minh hiện nay không chỉ hỗ trợ người dùng trong việc tập luyện thể thao mà còn trở thành món đồ thời trang và thiết bị hiển thị thông báo từ điện thoại Các thương hiệu lớn như LG, Samsung và Sony đều cung cấp nhiều mẫu đồng hồ theo dõi sức khỏe với mức giá và tính năng đa dạng Tất cả các sản phẩm này đều hướng đến mục tiêu chung là ghi nhận hoạt động hàng ngày và khuyến khích người dùng sống khỏe mạnh và vui vẻ hơn.
Hình 1.4: Một số mẫu thiết bị theo dõi sức khỏe hiện nay
Công nghệ chế tạo thiết bị đếm bước chân đã trải qua nhiều cải tiến đáng kể, từ những sản phẩm cơ khí ban đầu đến các thiết bị hiện đại hoàn toàn dựa trên vi mạch điện tử, giúp sản phẩm nhỏ gọn và hoạt động chính xác hơn Tuy nhiên, hầu hết các mẫu sản phẩm hiện nay vẫn hoạt động độc lập, độ chính xác bị ảnh hưởng bởi hoạt động ngẫu nhiên của người sử dụng Hơn nữa, các thiết bị chưa có khả năng phân biệt các hoạt động thể chất khác nhau, dẫn đến việc ghi nhận số bước chân không chính xác và tính toán khoảng cách dựa trên một sải chân cố định, gây ra sai số cho từng người dùng khác nhau.
Trong đề tài này, người thực hiện sẽ phát triển vòng đeo tay đếm bước chân sử dụng cảm biến gia tốc ba trục và thuật toán decision tree để phân biệt các hoạt động khác nhau, từ đó đảm bảo độ chính xác cao trong việc đếm số bước chân Bên cạnh đó, thuật toán cũng sẽ được cải tiến để dự đoán sải chân của người dùng, nhằm nâng cao độ chính xác trong việc tính toán khoảng cách.
Jerome và Albright đã tiến hành nghiên cứu so sánh độ chính xác của năm máy đếm bước chân thương mại, bao gồm Brookstone Talking Pedometer, Voice Zone, Sportline 343, Accusplit Alliance AL390 và Oregon Scientific PE829 Nghiên cứu được thực hiện với mười người lớn tuổi (từ 68 đến 77 tuổi) và bảy người khiếm thị (từ 29 đến 56 tuổi) sử dụng các máy đo bước chân trong 50 bước đi, leo cầu thang và xuống cầu thang Kết quả cho thấy độ chính xác của các máy đếm bước chân rất thấp, chỉ đạt từ 41 đến 67%.
%) khi đi bộ trên đất bằng, leo cầu thang có độ chính xác là từ 9 % đến 28 %, xuống cầu thang là từ 11 % đến 41 %
Waqar et al [7] đã phát triển một thuật toán cho máy đếm bước chân với ngưỡng đặt trước cho hệ thống định vị trong nhà Nghiên cứu thực nghiệm cho thấy độ chính xác trung bình đạt 86,67%, với độ chính xác thấp nhất là 82,5% và cao nhất là 95% Thuật toán này có ưu điểm là sử dụng time window để loại bỏ nhiễu từ các hoạt động không phải đi bộ, đồng thời tận dụng dữ liệu thô để xác định ngưỡng Tuy nhiên, bài báo chưa làm rõ cách xác định giá trị ngưỡng này và thực nghiệm còn hạn chế, chưa bao gồm các hoạt động khác như chạy bộ hay đi cầu thang, với chỉ 40 bước được thực hiện và lặp lại 6 lần.
Nghiên cứu của Bao & Intille là một trong những nghiên cứu sớm nhất về nhận dạng hoạt động sử dụng nhiều cảm biến gia tốc Họ đã sử dụng năm cảm biến gắn ở đùi, cổ chân, cổ tay, bắp tay và bên hông để thu thập dữ liệu từ 20 người tham gia Các phương pháp huấn luyện như decision table, C4.5 và Naive Bayes classifiers được áp dụng để phát triển mô hình phân biệt các hoạt động Kết quả cho thấy cảm biến gắn trên đùi có khả năng phân biệt tốt nhất, đạt tỷ lệ nhận dạng tổng cộng 84,26% trong môi trường phòng thí nghiệm với dữ liệu được kiểm soát.
Nghiên cứu [6] sử dụng cảm biến gia tốc ba trục 6g đeo ở hông để thu thập dữ liệu về năm loại hoạt động (đi bộ đất bằng, đi bộ lên dốc, đi bộ xuống dốc, lên cầu thang, xuống cầu thang) từ 52 đối tượng (39 nam, 13 nữ, độ tuổi từ 21 đến 64, chiều cao từ 1,53 m đến 1,88 m và cân nặng từ 42 đến 94 kg) Dữ liệu được truyền qua Bluetooth Class 1 với tốc độ lấy mẫu 50Hz, sau đó được tiền xử lý, trích xuất đặc trưng và chuẩn hóa trước khi đưa vào huấn luyện Mô hình huấn luyện cuối cùng đạt độ chính xác 96,02% trong việc nhận dạng các hoạt động Tuy nhiên, nghiên cứu chưa xem xét khả năng chống nhiễu của hệ thống và kết quả chỉ dừng lại ở việc phát triển mô hình phân biệt hoạt động mà chưa ứng dụng vào thiết bị thực tế.
Trong nghiên cứu này, chúng tôi tập trung phát triển vòng đeo tay có khả năng đếm bước chân thông qua cảm biến gia tốc được đeo trên tay Bên cạnh đó, một số phương pháp cải tiến sẽ được đề xuất để nâng cao độ chính xác trong thuật toán đếm bước chân.
- Lấy mẫu dữ liệu lúc vòng đeo tay mới khởi động để biết vị trí vòng đeo tay được đeo như thế nào (dựa trên gia tốc trọng trường)
- Time window được sử dụng để loại bỏ nhiễu
Để phát triển vòng đeo tay nhận dạng hoạt động thể chất như đi bộ, chạy bộ, leo cầu thang và xuống cầu thang, dữ liệu sẽ được thu thập và xử lý Dữ liệu thô sẽ được lấy mẫu và trích xuất đặc trưng trước khi được đưa vào mô hình huấn luyện decision tree Phương pháp decision tree được lựa chọn do tính đơn giản trong tính toán và khả năng dễ dàng tích hợp kết quả vào các MCU.
Tính cấp thiết của đề tài
Nghiên cứu và phát triển vòng đeo tay thông minh sẽ giúp người thực hiện đề tài hiểu rõ các công nghệ hiện đại đang được áp dụng trong nhiều sản phẩm, bao gồm các chuẩn giao tiếp, thu thập và xử lý dữ liệu, cũng như huấn luyện mô hình machine learning.
Mục tiêu nghiên cứu
Mục tiêu đầu tiên của đề tài đó là xây dựng được phần cứng của vòng đeo tay:
- Nghiên cứu về các chuẩn giao tiếp không dây, lựa chọn chuẩn giao tiếp phù hợp cho vòng đeo tay
- Thiết kế, xây dựng một nguyên mẫu vòng đeo tay
- Nghiên cứu nguyên lý hoạt động của thiết bị đếm bước chân, xây dựng thuật toán đếm bước chân
Dữ liệu thô từ cảm biến gia tốc sẽ được thu thập và huấn luyện thông qua phương pháp cây quyết định Kết quả của quá trình huấn luyện này sẽ được sử dụng để cải tiến thuật toán đếm bước chân.
Sau khi hoàn thiện sản phẩm vòng đeo tay, việc thử nghiệm thực tế sẽ được tiến hành để kiểm tra độ chính xác Mục tiêu chính là đảm bảo vòng đeo tay đếm bước chân đạt độ chính xác trên 90% và có khả năng nhận diện các hoạt động thể chất cơ bản như đi bộ, chạy bộ và leo cầu thang.
Nhiệm vụ nghiên cứu
Đề tài luận văn tập trung vào việc xây dựng nguyên mẫu vòng đeo tay có khả năng đếm bước chân và kết nối dữ liệu với smartphone Từ nguyên mẫu này, tác giả sẽ thu thập dữ liệu thô từ các hoạt động của tình nguyện viên, sau đó tiến hành tiền xử lý và huấn luyện với nhiều mô hình machine learning để tìm ra mô hình phân loại hoạt động có độ chính xác cao nhất Mô hình kết quả sẽ được ứng dụng vào vòng đeo tay nhằm phát hiện bước chân một cách chính xác Đề tài này giới hạn ở việc xây dựng nguyên mẫu nhằm nắm bắt các công nghệ mới, chưa hướng tới sản xuất hàng loạt.
Phương pháp nghiên cứu
Nghiên cứu các bài báo khoa học đã công bố giúp lựa chọn phương pháp tối ưu để phân biệt hoạt động thể chất và đếm bước chân Dựa trên phương pháp này, phần cứng sẽ được thiết kế và xây dựng Sau khi hoàn thành, vòng đeo tay sẽ được thử nghiệm thực tế và điều chỉnh cho phù hợp.
Bố cục luận văn
Báo cáo luận văn thực hiện dự kiến gồm có 5 chương:
- Chương 2: Cơ sở lý thuyết
- Chương 3: Thiết kế hệ thống
- Chương 4: Kết quả nghiên cứu và thực nghiệm
- Chương 5: Kết luận và hướng phát triển
Bluetooth Low Energy (BLE)
BLE (Bluetooth Low Energy) là chuẩn giao tiếp thế hệ mới (version 4.0) của Bluetooth truyền thống, kế thừa cấu trúc phần cứng và phần mềm của nó Vậy BLE có những tính năng và cải tiến mới nào?
Logo hiện nay của BLE thể hiện công nghệ tiên tiến với mức tiêu thụ năng lượng cực thấp, chỉ vài chục µA khi hoạt động Nhờ đó, bo mạch BLE có kích thước nhỏ gọn, cho phép sử dụng nguồn cung cấp nhỏ và kéo dài thời gian hoạt động Sự nhỏ gọn này giúp bo mạch BLE dễ dàng tích hợp vào nhiều đồ dùng hàng ngày như giày dép, túi xách, quần áo, vòng đeo tay và phương tiện giao thông, từ đó làm cho các thiết bị trở nên thông minh hơn.
Nhược điểm chính của BLE là tốc độ truyền dữ liệu thấp, chỉ khoảng 7kB/s đến 8kB/s Để tiết kiệm năng lượng, các chip BLE hoạt động theo chu kỳ và chỉ truyền một lượng dữ liệu hạn chế, thường chỉ vài chục bytes Nhờ đó, chip BLE có thể ở chế độ ngủ đông trong suốt thời gian không hoạt động và chỉ tỉnh dậy khi đến chu kỳ truyền nhận dữ liệu Mặc dù tốc độ thấp, nhưng vẫn đủ để truyền nhận dữ liệu cho các thiết bị IoT, vì dữ liệu thường không nhiều và không liên tục Hình 2.3 minh họa mô hình truyền nhận dữ liệu giữa hai thiết bị master và slave.
Hình 2.3: Mô hình truyền nhận dữ liệu giữa master và slave
Bảng 2.1 dưới đây cho ta cái nhìn tổng quan về các đặc tính của một số chuẩn giao tiếp wireless hiện nay
Bảng 2.1: So sánh BLE với các chuẩn kết nối không dây
Bluetooth tiêu chuẩn BLE Wifi Zigbee
Tần số hoạ ộng 2.4GHz 2.4GHz 2.4GHz 2.4GHz
Air data rate 1-3Mbps 1Mbps 54Mbps 250kbps
Throughput 0.7-2.1Mbps 305kbps Phụ thuộc 120kbps
Bảo mật 64bit, 128bit 128-bit AES SSID, WEP 128-bit AES
Công suất tiêu thụ Thấp Rất thấp Cao Thấp
Bluetooth Low Energy (BLE), còn được gọi là Bluetooth thông minh, cho phép các thiết bị gắn chip BLE giao tiếp với smartphone và với nhau qua kết nối không dây Nhờ vào khả năng chia sẻ dữ liệu và điều khiển này, BLE trở thành một phần quan trọng trong hệ sinh thái Internet of Things (IoT) hiện nay.
2.2.2 Các chế ộ hoạ ộng c a BLE
BLE hoạt động với bốn chế độ chính: peripheral, central, observer và broadcaster Thông thường, một thiết bị BLE chỉ hoạt động ở một chế độ duy nhất, nhưng trong một số ứng dụng đặc biệt, nó có thể chuyển đổi giữa nhiều chế độ trong các giai đoạn khác nhau Bài viết này sẽ tập trung vào việc tìm hiểu hai chế độ cơ bản là peripheral và central.
BLE central là thiết bị chủ động gửi yêu cầu kết nối đến các thiết bị BLE xung quanh, thường là smartphone hoặc tablet Sau khi kết nối thành công, BLE central được gọi là master, đảm nhiệm vai trò chủ trong các hoạt động đồng bộ để kết nối và truyền nhận dữ liệu.
BLE peripheral là thiết bị nhận yêu cầu kết nối, thường là các vật phẩm được gắn chip BLE Khi kết nối hoàn tất, BLE peripheral trở thành slave, tuân theo các hoạt động đồng bộ để kết nối và truyền nhận dữ liệu từ master.
Bảng 2.2 sau đây sẽ tóm tắt quá trình hoạt động của BLE central và BLE peripheral qua các giai đoạn
Bảng 2.2: Các giai đoạn hoạt động của BLE central và BLE peripheral
BLE central BLE peripheral Trước khi kết nối Nhận thông tin nhận dạng từ các thiết bị xung quanh
Phát thông tin nhận dạng của thiết bị
Gửi yêu cầu kết nối đến thiết bị muốn kết nối
Nhận yêu cầu kết nối và quyết định có kết nối hay không
Sau khi kết nối Gửi yêu cầu về các loại thông tin mà thiết bị BLE Peripheral có thể cung cấp
Gửi các loại thông tin thiết bị có thể cung cấp
Quá trình truyền dữ liệu
Nhận thông tin cập nhật từ thiết bị BLE Peripheral để thực hiện chức năng ứng dụng
Gửi dữ liệu đến thiết bị BLE Central khi có thông tin cập nhật trong thiết bị
According to the Bluetooth Low Energy (BLE) standard, a BLE Central device can simultaneously connect to multiple BLE Peripheral devices, with the number of connections dependent on the type of BLE chip used However, a BLE Peripheral device can only connect to one BLE Central device at a time.
Sau khi 2 thiết bị BLE đã kết nối với nhau xuất hiện thêm hai khái niệm BLE Server và BLE Client
- BLE Server là thiết bị BLE tạo ra dữ liệu (ví dụ như sensor)
A BLE Client refers to a BLE device that processes data, such as a smartphone or tablet It's important to distinguish between the terms BLE Server/Client and BLE Central/Peripheral, as they represent different concepts BLE Central and Peripheral indicate the role of a BLE device before a connection is established, while BLE Server and Client define the data flow between two BLE devices after the connection Consequently, a BLE Central device can function as either a BLE Server or a BLE Client after connecting, depending on whether it generates or receives and processes data Similarly, a BLE Peripheral can also act as a BLE Server or Client post-connection.
Tiếp theo là hai khái niệm còn lại trong bốn chế độ hoạt động của BLE: observer và broadcaster
BLE Observer là BLE Central nhưng chỉ nhận dữ liệu nhận dạng của các thiết bị xung quanh nhưng không bao giờ tạo kết nối
BLE Broadcaster là BLE Peripheral chỉ phát dữ liệu nhận dạng nhưng không bao giờ chấp nhận yêu cầu kết nối từ các BLE Central
2.2.3 Các quá trình hoạ ộng c a BLE
Các quá trình hoạt động chính của BLE có thể kể đến như:
- Advertising : là hoạt động phát dữ liệu nhận dạng cơ bản của thiết bị BLE
Peripheral ra môi trường xung quanh trước khi kết nối
- Scanning : là hoạt động của thiết bị BLE Central để thu thập dữ liệu nhận dạng của nhiều thiết bị BLE Peripheral xung quanh
Connecting involves the interaction between a BLE Central device and a BLE Peripheral device The BLE Central initiates the process by sending a Scan Request to gather additional identification information, to which the BLE Peripheral responds with a Scan Response The BLE Central then verifies the complete identification data from both the Advertising data and the Scan Response data before sending a Connection Request Finally, the BLE Peripheral responds with either an acceptance or rejection of the connection.
Khám phá (Discovering) là quá trình mà thiết bị BLE Client thực hiện sau khi kết nối với thiết bị BLE Server để thu thập thông tin về các loại dữ liệu mà thiết bị này có thể cung cấp Chẳng hạn, thiết bị BLE Server có thể cung cấp dữ liệu về gia tốc, nhiệt độ, độ ẩm, và nhiều thông tin khác Thiết bị BLE Client cần biết các loại dữ liệu nào có thể nhận từ BLE Server để tối ưu hóa khả năng tương tác và sử dụng thông tin.
Hình 2.4 mô tả quá trình hoạt động này của BLE
Hình 2.4: Quá trình hoạt động của BLE
2.2.4 Cá ặc tính tần số và cấu trúc truyền dữ liệu c a BLE
2.2.4.1 Tần số hoạ ộng c a BLE
Tần số hoạt động của Bluetooth Low Energy (BLE) nằm trong khoảng 2.4GHz, cụ thể từ 2402MHz đến 2480MHz Khoảng tần số này được phân chia thành 40 kênh truyền, cho phép các chip BLE thực hiện giao tiếp hiệu quả.
1 trong 40 kênh tần số để truyền dữ liệu
Giá trị tần số của mỗi kênh truyền được tính như sau: f n = 2402 + 2*n (MHz) với 0 n 39 (2.1) Các kênh tần số này sẽ được sử dụng như sau:
Kênh 2402MHz, 2426MHz và 2480MHz là ba kênh chuyên dụng cho việc truyền dữ liệu nhận dạng (advertising data) của BLE Peripheral trước khi thiết lập kết nối, được gọi là các Kênh Quảng Cáo.
- Tất cả 37 kênh còn lại sẽ được dùng để truyền dữ liệu ứng dụng giữa các thiết bị BLE sau khi kết nối và được gọi là Data Channels
Ba kênh advertising data là cần thiết để BLE Central có thể giao tiếp đồng thời với nhiều thiết bị BLE Peripheral Nếu chỉ có một kênh Advertising Channel, BLE Central sẽ gặp phải hai vấn đề: hoặc chỉ nhận được dữ liệu từ một thiết bị BLE Peripheral duy nhất, hoặc không nhận đúng dữ liệu khi nhiều thiết bị cùng sử dụng kênh đó Tương tự, 37 kênh Data Channels cho phép BLE Central tương tác với nhiều thiết bị BLE Peripheral cùng lúc Hình 2.5 minh họa cho ba kênh advertising data và 37 kênh Data.
Hình 2.5: Ba kênh Advertising và 37 kênh data của BLE
2.2.4.2 Quy trình kết nối c a BLE
BLE Central nhận dữ liệu quảng cáo từ các thiết bị BLE Peripheral xung quanh, hoạt động theo chu kỳ để tiết kiệm năng lượng Cả BLE Central và BLE Peripheral đều truyền và nhận dữ liệu không liên tục BLE Central có khái niệm "chu kỳ nhận dữ liệu nhận dạng" (scanning interval), trong đó thiết bị này sẽ thức dậy và nhận dữ liệu nhận dạng sau mỗi chu kỳ, thực hiện trên cả ba kênh.
Decision Tree
Cây quyết định (Decision tree) là một thuật toán thuộc loại học có giám sát, thường được sử dụng trong phân loại và hồi quy Thuật toán này xây dựng một mô hình dự đoán nhằm xác định giá trị của một đối tượng dựa trên tập dữ liệu với nhiều biến đầu vào Cây quyết định phân loại một quần thể thành các phân đoạn, tạo thành hình dạng giống như một cây lộn ngược với các nút gốc, nút phân tách và nút lá Điểm mạnh của thuật toán này là không cần các hệ số phương trình và có khả năng xử lý hiệu quả các tập dữ liệu lớn và phức tạp mà không yêu cầu cấu trúc tham số phức tạp.
Hình 2.7: Cấu trúc của decision tree
Cấu trúc cơ bản của một decision tree được mô tả trong hình 2.7, trong đó:
- Root node: đại diện toàn bộ quần thể hoặc tập dữ liệu và được chia thành hai hoặc nhiều tập đồng nhất
- Decision node (split node): khi một node được phân tách thành các node phụ (sub-node), nó được gọi là decision node
- Leaf node: các node không còn tiếp tục phân tách, được gọi là leaf node hoặc terminal node
- Splitting: quá trình chia tách một node thành nhiều node phụ
Bảng 2.3 trình bày dữ liệu thời tiết với bốn thuộc tính: thời tiết (nắng, âm u, mưa), nhiệt độ (nóng, ấm áp, lạnh), độ ẩm (cao, bình thường) và gió (có, không) Dựa trên các thuộc tính này, output là quyết định về việc có đi chơi golf hay không Hình 2.8 minh họa kết quả phân loại đạt được thông qua phương pháp cây quyết định.
- Nếu thời tiết là âm u thì quyết định đi chơi golf là có
- Nếu thời tiết là nắng và không có gió thì quyết định đi chơi golf là có
- Nếu thời tiết là nắng và có gió thì quyết định đi chơi golf là không
- Nếu thời tiết là mưa và độ ẩm cao thì quyết định đi chơi golf là có
- Nếu thời tiết là mưa và độ ẩm bình thường thì quyết định đi chơi golf là không
Bảng 2.3: Tập dữ liệu về thời tiết và output tương ứng
Thời tiết Nhiệ ộ Độ ẩm Gió Chơi Golf?
Mưa Nóng Cao Không Không
Mưa Nóng Cao Có Không Âm u Nóng Cao Không Có
Nắng Ấm áp Cao Không Có
Nắng Lạnh Bình thường Không Có
Nắng Lạnh Bình thường Có Không Âm u Lạnh Bình thường Có Có
Mưa Ấm áp Cao Không Không
Mưa Lạnh Bình thường Không Có
Nắng Ấm áp Bình thường Không Có
Mưa Ấm áp Bình thường Có Có Âm u Lạnh Cao Có Có Âm u Nóng Bình thường Không Có
Nắng Ấm áp Cao Có Không
Không Có Cao Bình hường
Hình 2.8: Ví dụ về decision tree ứng dụng cho một tập dữ liệu về thời tiết
Decision tree có hai dạng chính:
- Classification tree: kết quả tiên đoán là lớp phân loại của dữ liệu thuộc về
- Regression tree: kết quả tiên đoán là một giá trị thực
Huấn luyện cây quyết định (decision tree) là quá trình xây dựng cây quyết định từ các tập dữ liệu đã được phân loại Cấu trúc của cây quyết định giống như một lưu đồ, trong đó mỗi nút phân tách (split node) đại diện cho một bài kiểm tra trên một thuộc tính, mỗi nhánh là kết quả của bài kiểm tra, và mỗi nút cuối (terminal node) là tên của lớp Nút ở vị trí cao nhất trong lưu đồ được gọi là nút gốc (root node) Hiện nay, có nhiều thuật toán khác nhau để xây dựng cây quyết định.
- CART (Classification And Regression Tree)
- CHAID (CHi-squared Automatic Interaction Detector)
- MARS: mở rộng decision trees để xử lý dữ liệu số tốt hơn
Thuật toán ID3 bắt đầu với tập dữ liệu S làm nút gốc và tính toán hệ số Entropy cho từng thuộc tính trong S Sau đó, nó chọn thuộc tính có Entropy thấp nhất để phân tách tập dữ liệu, tạo ra các tập con Quá trình này tiếp tục đệ quy với từng tập dữ liệu con, chỉ xem xét các thuộc tính chưa được chọn.
Quá trình đệ quy trên các tập dữ liệu con có thể dừng lại nếu:
- Nếu toàn bộ thành phần của tập dữ liệu con đều thuộc về một lớp
Khi không còn thuộc tính nào để lựa chọn nhưng vẫn có các thành phần dữ liệu không thuộc cùng một lớp, node sẽ trở thành terminal node và được gán theo lớp phổ biến nhất trong tập dữ liệu.
Khi không còn thành phần nào trong tập dữ liệu, điều này xảy ra do không có thành phần trong tập cha ban đầu có giá trị giống với thuộc tính đã chọn Kết quả là node sẽ chuyển thành terminal node và được gán theo class phổ biến nhất trong tập dữ liệu.
Trong quá trình huấn luyện, cây quyết định được hình thành với mỗi nút phân tách đại diện cho một thuộc tính, trong khi các nút cuối cùng thể hiện tên lớp của tập con cuối cùng trong nhánh đó.
Tóm tắt lại, các bước để xây dựng decision tree theo thuật toán ID3 đó là:
- Tính toán Entropy cho toàn bộ các thuộc tính của tập dữ liệu S
- Phân tách tập S thành các tập con dựa trên thuộc tính có Entropy nhỏ nhất
- Tạo node cho decision tree chứa thuộc tính đó
- Tiếp tục quá trình với các thuộc tính còn lại trong các tập con
Entropy H(S) (2.1) là phép tính đại diện cho sự không chắc chắn trong tập dữ liệu S H(S) = (2.1) Trong đó:
- S: Tập dữ liệu entropy đang được tính (thay đổi theo mỗi chu kì thuật toán ID3)
- p(x): Tỉ lệ số phần tử trong lớp x trên số phần tử trong S
C4.5 xây dựng cây quyết định từ tập dữ liệu ban đầu tương tự như ID3, bằng cách sử dụng hệ số Entropy thông tin Tập dữ liệu huấn luyện S = s1, s2, … bao gồm các thành phần đã được phân loại Mỗi thành phần si bao gồm vector p-chiều (x1,i, x2,i, …, xp,i), trong đó xj đại diện cho các giá trị thuộc tính của các thành phần và các lớp mà si thuộc về.
Thuật toán C4.5 lựa chọn thuộc tính tốt nhất để chia tách tập dữ liệu thành các tập con hiệu quả, dựa trên hệ số Information Gain đã được chuẩn hóa Thuộc tính có hệ số Information Gain cao nhất sẽ được ưu tiên, và quá trình này sẽ tiếp tục với các tập con cho đến khi đạt được kết quả tối ưu.
Một số trường hợp cơ bản xảy ra khi thuật toán xây dựng decision tree:
- Tất cả thành phần đều thuộc về một lớp Khi điều này xảy ra, thuật toán sẽ tạo ra terminal node để decision tree lựa chọn lớp này
Khi không có thuộc tính nào có Information Gain, thuật toán C4.5 sẽ tạo ra một nút quyết định ở cấp độ cao hơn bằng cách sử dụng các giá trị trong cùng một lớp.
Khi gặp lớp chưa từng thấy, thuật toán C4.5 sẽ tạo ra một node decision cấp cao hơn bằng cách sử dụng các giá trị trong lớp đó Tóm lại, các bước để xây dựng cây quyết định bằng thuật toán C4.5 bao gồm việc phân tích và xử lý dữ liệu để tạo ra các node quyết định hiệu quả.
- Kiểm tra toàn bộ dữ liệu ban đầu
- Với từng thuộc tính, tìm tỉ lệ Information Gain chuẩn hóa của thuộc tính trên tập phân tách
- Chọn ra thuộc tính có Information Gain chuẩn hóa cao nhất
- Tạo ra split node với thuộc tính đó
- Tiếp tục đệ quy với các tập con sau khi phân tách
C4.5 có nhiều cải tiến hơn so với ID3:
C4.5 có khả năng xử lý cả thuộc tính liên tục và thuộc tính rời rạc Đối với thuộc tính liên tục, thuật toán này xác định một giá trị ngưỡng để phân chia các thuộc tính thành hai nhóm: nhóm trên ngưỡng và nhóm dưới hoặc bằng ngưỡng.
C4.5 có khả năng xử lý tập dữ liệu với các giá trị thuộc tính bị thiếu, cho phép đánh dấu những giá trị này bằng dấu “?” Những giá trị thiếu sẽ không được sử dụng trong các phép tính Information Gain và Entropy, giúp cải thiện độ chính xác của mô hình.
Xử lý các thuộc tính với nhiều đòi hỏi khác nhau
Cắt bớt các nhánh không cần thiết trong cây quyết định là một bước quan trọng trong quy trình của C4.5 Sau khi hoàn thành việc xây dựng cây quyết định, C4.5 sẽ xem xét toàn bộ cấu trúc và loại bỏ các nhánh không hữu ích, chuyển đổi chúng thành các lá cuối cùng Điều này giúp tối ưu hóa mô hình và cải thiện độ chính xác của dự đoán.
Information Gain IG(T,a) (2.2) là một dạng phương trình biến đổi của Entropy H(S):
Tập dữ liệu huấn luyện T bao gồm các cặp dữ liệu (x,y) với x có dạng (x1, x2,…, xk) và y là lớp tương ứng Giá trị của thuộc tính thứ a trong thành phần x được ký hiệu là vals(a) Thông tin thu được từ thuộc tính a được thể hiện qua độ đo Information Gain, được biểu diễn bằng hàm H().
2.4 Cross V lid ion (Đánh giá héo)
Hai vấn đề cơ bản trong việc nhận dạng mẫu: chọn mô hình và ước tính performance
Cross Validation (Đánh giá chéo)
Holdout method: chia tập dữ liệu thành hai nhóm: training set và test set
- Training set: dùng để huấn luyện bộ phân loại
Bộ dữ liệu kiểm tra (test set) được sử dụng để ước lượng tỷ lệ lỗi của bộ phân loại đã được huấn luyện Một ứng dụng phổ biến của phương pháp holdout là xác định điểm dừng cho quá trình lan truyền ngược (backpropagation error).
Tuy nhiên, Holdout method có hai nhược điểm chính:
- Nếu tập dữ liệu bị phân tán, ta sẽ không thể để ra 1 phần dữ liệu để dùng làm testing data
- Ước tính tỉ lệ lỗi của holdout method có thể sai nếu phân chia sai
Các nhược điểm này có thể được khắc phục bằng các phương pháp lấy mẫu lại khác:
- Cross validation o Random Subsampling (lấy tập mẫu con ngẫu nhiên) o K-fold-cross-validation o Leave one-out Cross-validation
Random Subsampling chia tập dữ liệu thành k tập dữ liệu con
Mỗi tập dữ liệu con chọn ngẫu nhiên một số lượng dữ liệu mẫu mà không thay thế
Ta sẽ thực hiện huấn luyện bộ phân loại với từng tập mẫu con đã tạo ra và ước tính
Hình 2.9: Cách chia tập dữ liệu trong phương pháp Random Subsampling
True error rate = trung bình của các E i :
E = (2.4) Ước tính theo phương pháp Random Subsampling tốt hơn một chút so với ước tính theo phương pháp holdout
Dữ liệu ban đầu được chia thành k tập dữ liệu có kích cỡ bằng nhau Trong số đó, một tập dữ liệu được giữ lại để đánh giá mô hình dự đoán, trong khi k-1 tập còn lại được sử dụng để huấn luyện.
K-fold cross validation tương tự với random subsampling Ưu điểm của K-fold cross validation đó là tất cả mẫu đều được lần lượt dùng làm training và testing
Hình 2.10: Cách chia tập dữ liệu theo phương pháp k-Fold Cross Validaiton
True error rate = trung bình các error
2.4.3 Leave one-out Cross Validation
Leave one-out Cross Validation là bản đơn giản hóa của k-fold-cross-validation với k được chọn bằng với tổng số mẫu
Với tập dữ liệu có N mẫu, thực hiện N thí nghiệm
Với N thí nghiệm, sử dụng N-1 mẫu làm tập huấn luyện và mẫu còn lại làm testing
Hình 2.11: Cách chia tập dữ liệu theo phương pháp Leave one-out Cross Validation
Confusion Matrix
Ma trận nhầm lẫn, hay còn gọi là ma trận lỗi, là công cụ quan trọng để đánh giá hiệu suất của các thuật toán, đặc biệt trong học máy có giám sát Mỗi hàng trong ma trận thể hiện các trường hợp dự đoán, trong khi mỗi cột phản ánh các trường hợp thực tế.
Bảng confusion (bảng 2.4) là bảng gồm hai hàng và hai cột miêu tả true positive, true negative, false positive, false negative
- True positive: dự đoán đúng với các kết quả khẳng định
- True negative: dự đoán đúng với các kết quả phủ định
- False negative: dự đoán sai với kết quả phủ định (Type II error)
Tổng số mẫu True Condition
Positive True Positive False Positive
Predicted Condition Negative False Negative True Negative
Một số thông số có thể rút ra từ bảng confusion:
- Accuracy (Độ chính xác) = (TP+TN)/total
- Misclassification Rate (Tỉ lệ lỗi) = (FP+FN)/total
- True Positive Rate = TP/actual positive
- False Positive Rate = FP/actual negative
- Specificity = 1- False Positive Rate = TN/actual negative
Board nRF51822
2.6.1 Giới thiệu về nRF51822 nRF51822 là một SoC mạnh mẽ, độ linh hoạt cao thích hợp lý tưởng cho Bluetooth Low Energy và các ứng dụng không dây 2.4GHz công suất cực thấp nRF51822 được xây dựng dựa trên bộ xử lý ARM® Cortex™ M0 với bộ nhớ trong 256kB/128kB và RAM 32kB/16kB để tăng hiệu suất ứng dụng Bộ truyền nhận dữ liệu 2.4 GHz nhúng trong module hỗ trợ cả giao tiếp BLE và Nordic Gazell 2.4GHz tương thích với các dòng sản phẩm nRF24L của Nordic Semiconductor
NRF51822 hỗ trợ kết nối với nhiều thiết bị ngoại vi analog và digital thông qua hệ thống PPI (Programmable Peripheral Interconnect) mà không cần CPU can thiệp Với 31 chân GPIO linh hoạt, nó cho phép giao tiếp nối tiếp, điều chế độ rộng xung PWM và giải điều chế vuông góc, dễ dàng kết nối đến bất kỳ chân thiết bị nào theo yêu cầu PCB Điều này mang lại khả năng thiết kế linh hoạt cho nhiều kiểu kết nối và ứng dụng khác nhau.
NRF51822 hỗ trợ giao thức BLE và 2.4GHz, bao gồm cả Gazell Chip nRF5188 yêu cầu nguồn cung cấp duy nhất và cho phép điều chỉnh điện áp từ 1.8-3.6V thông qua bộ điều chỉnh tuyến tính tích hợp Chế độ trực tiếp 1.8V và bộ chuyển đổi DC-DC kiểu Buck cung cấp điện áp từ 2.1-3.6V Việc sử dụng nguồn chuyển đổi DC-DC có thể được điều khiển trong quá trình hoạt động, cho phép nRF51822 hoạt động với nguồn tối đa 3V và tiêu thụ chỉ 10nA.
2.6.2 Thông số kỹ thuật, ính năng c a board nRF51822
- Chip đơn, độ linh hoạt cao, thiết bị đa giao thức 2.4GHz
- Bộ nhớ trong 256kB/128kB và RAM 32kB/16kB
- Hỗ trợ stack giao thức BLE
- Chế độ bảo vệ an toàn khi hoạt động
- Tương thích với dòng nRF24L của Nordic
- 3 tốc độ truyền (2Mbps/1Mbps/250kbps)
- Độ nhạy -93dBm đối với Bluetooth low energy
- Hệ thống PPI cho các ứng dụng đòi hỏi tối đa hiệu suất và đơn giản chương trình
- Hệ thống quản lý hiệu năng tự động với từng thiết bị ngoại vi
- Các chân I/O cấu hình được cho các I/O analog và digital
- Khoảng nhiệt độ hoạt động: -40 o C đến 105 o C
Các ứng dụng của nRF51822
- Giám sát sạc không dây
- Thiết bị ngoại vi PC
- Điều khiển từ xa các thiết bị điện tử
- Cảm biến tiệm cận, cảm biến báo động
- Các cảm biến theo dõi sức khỏe, luyện tập thể dục
- Các thẻ RF thông minh
- Các ứng dụng trò chơi điện tử
- Thiết bị gia dụng thông minh
- Các cảm biến thương mại và công nghiệp
Thông số kỹ thuật của nRF51822
- Dải tần số: 2.4GHz ISM ( 2.40000 – 2.4835GHz)
- Tốc độ truyền on-air: 250 kbps, 1 Mbps hoặc 2 Mbps
- Công suất ngõ ra (khả trình): 4 to -20dBm trong các bước 4dB
- Vi xử lý: 32-bit ARM Cortex M0
- Dòng tiêu thụ: - 2.6 μA khi tất cả thiết bị ngoại vi ở chế độ nghỉ
- GPIO: 31 chân cấu hình được
- Digital I/O: SPI, 2-wire, UART, Giải điều chế cầu phương
- Timers/Counter: 2 x 16 bit, 1 x 24bit, 2 x 24bit, RTC
MPU-6050
Cảm biến MPU-6050 là thiết bị theo dõi chuyển động 6 trục, bao gồm con quay hồi chuyển 3 trục và cảm biến gia tốc 3 trục, cùng với xử lý chuyển động số (DMP) trong kích thước nhỏ gọn 4x4x0.9mm Với giao tiếp I2C, cảm biến này nhận dữ liệu từ la bàn ngoài, cung cấp đầu ra chuyển động 9 trục MPU-6050 tích hợp board điều khiển và firmware hiệu chuẩn, giúp đơn giản hóa hệ thống và tối ưu hóa hiệu suất cho người dùng Ngoài ra, MPU-6050 còn có khả năng giao tiếp với nhiều cảm biến số không quán tính như cảm biến áp suất thông qua các port I2C phụ trợ.
MPU-6050 được trang bị ba bộ ADC 16 bit để số hóa tín hiệu từ con quay hồi chuyển và ba bộ ADC khác cho cảm biến gia tốc Để đảm bảo theo dõi chính xác chuyển động ở cả tốc độ nhanh và chậm, MPU-6050 sử dụng một con quay hồi chuyển khả trình với các khoảng đo linh hoạt.
250, 500, 1000 và 2000o/sec (dps) và một bộ đo gia tốc khả trình ±2g, ±4g, ±8g, and ±16g
Bộ đệm FIFO on-chip 1024 bytes trong MPU-6050 giúp giảm tổn hao công suất hệ thống bằng cách cho phép bộ xử lý đọc dữ liệu từ cảm biến theo xung và vào chế độ công suất thấp khi thu thập nhiều dữ liệu Việc xử lý on-chip và các thành phần cảm biến là cần thiết cho nhiều ứng dụng dựa trên cảm biến chuyển động MPU-6050 hỗ trợ ứng dụng MotionInterface công suất thấp cho các thiết bị di động, giảm yêu cầu xử lý cho bộ xử lý hệ thống Bằng cách cung cấp ngõ ra tích hợp MotionFusion, DMP trong MPU-6050 giúp giảm thiểu khối lượng tính toán cho bộ xử lý và hạn chế việc kiểm tra thường xuyên ngõ ra cảm biến chuyển động.
Giao tiếp với các thanh ghi thiết bị qua chuẩn I2C với tần số 400kHz, thiết bị còn tích hợp cảm biến nhiệt và bộ dao động on-chip có độ chính xác 1% trong khoảng nhiệt độ hoạt động.
InvenSense đã giảm kích thước MPU-6050 xuống còn 4x4x0.9mm trong khi vẫn cung cấp được công suất nhất, nhiễu ít hơn và giá thành thấp hơn Cảm biến MPU-
6050 có khả năng chống sốc mạnh mẽ lên đến 10,000g, cùng với các bộ lọc thông thấp linh hoạt cho con quay hồi chuyển, cảm biến gia tốc và cảm biến nhiệt.
MPU-6050 hoạt động hiệu quả với dải điện áp cung cấp từ 2.375V đến 3.46V Thiết bị này còn trang bị chân VLOGIC bên cạnh chân VDD, cho phép cài đặt mức logic cho giao tiếp I2C Điện áp VLOGIC có thể được thiết lập ở mức 1.8V ± 5% hoặc tương đương với VDD.
Con quay hồi chuyển ba trục MEMS trong MPU-6050 bao gồm các đặc điểm sau:
- Bộ cảm biến góc quay ngõ ra số trục x, trục y và trục z (con quay hồi chuyển) với các khoảng lập trình được ±250, ±500, ±1000, and ±2000°/sec
- Tín hiệu đồng bộ bên ngoài được kết nối với chân FSYNC hỗ trợ đồng bộ hóa hình ảnh, video và GPS
- Bộ ADC 16-bit tích hợp cho phép lấy mẫu đồng thời con quay hồi chuyển
- Độ ổn định về độ nhạy và ngưỡng nhiệt độ giúp giảm việc phải canh chỉnh
- Cải thiệt việc hoạt động ở nhiễu tần số thấp
- Bộ lọc thông thấp khả trình
- Dòng hoạt động con quay hồi chuyển: 3.6mA
- Hệ số cân chỉnh khoảng độ nhạy của nhà máy
- Tự kiểm tra bởi người sử dụng
- Cảm biến gia tốc ba trục MEMS trong MPU-6050 bao gồm các đặc tính sau:
- Bộ cảm biến góc quay ngõ ra số trục x, trục y và trục z (con quay hồi chuyển) với các khoảng lập trình được ±2g, ±4g, ±8g and ±16g
- Bộ ADC 16-bit tích hợp cho phép lấy mẫu đồng thời mà không cần bộ ghép kênh ngoài
- Dũng hoạt động bỡnh thường: 500àA
- Chế độ dòng tiêu thụ thấp: 10μA tại 1.25Hz, 20μA tại 5Hz, 60μA tại 20Hz, 110μA tại 40Hz
- Định vị và phát hiện định hướng
- Tự kiểm tra bởi người sử dụng
- MPU-6050 bao gồm các tính năng thêm:
- MotionFusion 9 trục thực hiện bởi DMP (Digital Motion Processor) on-chip
- Dòng hoạt động 3.9mA khi cảm biến cả 6 trục và DMP được kích hoạt
- Khoảng điện áp cung cấp 2.375-3.46V
- Điện áp tham chiếu VLOGIC hỗ trợ điện áp giao tiếp I 2 C
- Kích thước nhỏ gọn: 4x4x0.9mm
- Độ nhạy chéo giữa trục gia tốc và trục con quay nhỏ nhất
Bộ đệm FIFO 1024 bytes giúp tối ưu hóa hiệu suất năng lượng bằng cách cho phép các chip xử lý chính đọc dữ liệu trong các xung, sau đó chuyển sang chế độ công suất thấp khi MPU tiếp nhận nhiều dữ liệu hơn.
- Cảm biến nhiệt độ ngõ ra số
- Bộ lọc số khả trình cho con quay hồi chuyển, cảm biến gia tốc và cảm biến nhiệt độ
- Fast mode I 2 C 400kHz để giao tiếp với các thanh ghi
- Bộ xử lý chuyển động số nội (DMP) hỗ trợ thuật toán nhận dạng cử chỉ và xử lý chuyển động 3-D
MPU-6050 là một cảm biến tích hợp có khả năng thu thập dữ liệu từ con quay hồi chuyển và cảm biến gia tốc, đồng thời đồng bộ tốc độ lấy mẫu với tốc độ do người dùng định trước Dữ liệu mà MPU-6050 thu thập bao gồm thông tin từ ba trục con quay và ba trục gia tốc, cũng như dữ liệu về nhiệt độ.
FIFO giúp lưu trữ dữ liệu hoàn chỉnh, giảm thời gian xử lý trên bộ xử lý hệ thống, cho phép bộ xử lý truy cập dữ liệu từ FIFO một cách nhanh chóng Sau khi hoàn tất việc đọc dữ liệu, bộ xử lý có khả năng tiết kiệm năng lượng bằng cách chuyển sang chế độ ngủ đông, trong khi MPU vẫn tiếp tục thu thập dữ liệu.
- Các thanh ghi ngắt hỗ trợ các tính năng như nhận diện cử chỉ, lướt, phóng to, cuộn, phát hiện chạm và phát hiện rung
- Bộ lọc thông thấp lập trình số
- Chức năng đếm bước công suất thấp cho phép bộ xử lý ngủ đông trong khi DMP vẫn tiếp tục đếm
Sơ đồ phân bố chân nhìn từ mặt trước của MPU-6050 được mô tả trong hình 2.8
Hình 2.13: Sơ đồ phân bố chân của MPU-6050 (top view)
Bảng 2.5 dưới đây liệt kê các chân và chức năng chân của MPU-6050
Bảng 2.5: Sơ đồ chân pinout của MPU-6050
Chân Tên chân Mô tả
1 CLKIN Ngõ vào clock tham chiếu ngoài Nối với GND nếu không sử dụng
6 AUX_DA Chân dữ liệu nối tiếp Master I 2 C, dùng để kết nối sensor ngoài
7 AUX_CL Clock nối tiếp Master I 2 C, dùng để kết nối với sensor ngoài
8 VLOGIC Nguồn cung cấp cho I/O số
9 AD0 Địa chỉ LSB của slave I 2 C (AD0)
10 REGOUT Kết nối lọc điều chỉnh
11 FSYNC Ngõ vào số đồng bộ frame Nối với GND nếu không sử dụng
12 INT Ngắt ngõ ra số
13 VDD Nguồn cung cấp và điện áp cấp I/O số
19,21 RESV Dự phòng Không kết nối
20 CPOUT Kết nối với tụ nạp
22 RESV Dự phòng Không kết nối
23 SCL Xung clock cho I 2 C (SCL)
2.8 Mạch charge pin Lithium TP4056
Mạch charge TP4056 là giải pháp sạc cho pin Lithium 3.7V, như pin Ultrafire, với khả năng sạc tối đa lên đến 1A Mạch này được trang bị IC quản lý sạc, tự động ngắt khi điện áp pin xuống dưới 2.4V, đảm bảo an toàn cho pin Hình 2.9 minh họa mạch TP4056 trong ứng dụng thực tế.
Thông số kĩ thuật của mạch:
- Điện áp vào: Micro USB 4.5-5.5V DC
- Dòng charge tối đa: 1000mA
- Điện áp ngưỡng tự động ngắt: 4.2V 1%
- Điện áp ngưỡng cần charge: 2.5V
- Tích hợp tự động ngắt bảo vệ pin khi pin yếu dưới 2.4V
- Sử dụng sạc Pin 3.7V, Pin Ultrafire, Pin Lithium
- Chế độ đang sạc LED báo màu đỏ
- Chế độ sạc pin đầy LED báo màu xanh
- Mạch sạc có chế độ tự ngắt khi sạc đầy pin
Hình 2.14: Mạch charge TP4056 1A 2.9 Pin Lipo 3.7V 500mA
Pin Lipo, hay còn gọi là Lithium Polymer, là loại pin nhỏ gọn với khả năng xả lớn và tuổi thọ cao Điện áp trung bình của pin Lipo là 3.7V, trong khi điện áp tối đa khi sạc đầy đạt 4.2V.
- Điện áp trung bình 3.7VDC, charge đầy 4.2VDC
Weka
Weka, which stands for Waikato Environment for Knowledge Analysis, is a free machine learning software developed by the University of Waikato in New Zealand It is built on the Java platform and is licensed under the GNU General Public License.
Weka là một phần mềm mạnh mẽ với các công cụ trực quan và thuật toán, đi kèm với giao diện người dùng thân thiện, hỗ trợ hiệu quả cho việc phân tích dữ liệu và dự đoán mô hình Những ưu điểm nổi bật của Weka bao gồm khả năng xử lý dữ liệu linh hoạt và tính năng dễ sử dụng.
- Giao diện đồ họa người dùng (GUI): cho phép thực hiện các project machine learning mà không cần lập trình
- Java API: Weka được viết bằng ngôn ngữ Java do đó nó có thể trên hầu hết các nền tảng máy tính hiện tại
- Hỗ trợ nhiều phương pháp mô hình hóa và tiền xử lý dữ liệu
2.10.1 Giới thiệu giao diện c a Weka
Hình 2.16 là giao diện của chương trình Weka khi khởi động, bao gồm:
- Explorer: xử lý dữ liệu và thuật toán muốn sử dụng trong Experimenter
- Experimenter: giao diện để thí nghiệm với tập dữ liệu và thuật toán đã xử lý trong Explorer
Giao diện Knowledge Flow cho phép người dùng theo dõi toàn bộ quá trình huấn luyện và thực hiện các mô hình đã tạo, bao gồm việc tải và xử lý dữ liệu đầu vào, thực hiện các thuật toán, cũng như trình bày kết quả một cách trực quan và dễ hiểu.
Hình 2.16: Giao diện Weka version 3.8.1
- Preprocess: load tập dữ liệu và biến đổi về dạng mong muốn
- Classify: Chọn và chạy các thuật toán phân loại và hồi quy
- Cluster: Chọn và chạy các thuật toán phân loại nhóm
- Associate: Chạy các thuật toán liên kết để trích xuất đặc trưng của tập dữ liệu
- Select Attributes: Chạy các thuật toán thuộc tính trên tập dữ liệu để chọn ra các thuộc tính liên quan đến tính năng mong muốn dự đoán
- Visualize: Biểu diễn mối quan hệ giữa các thuộc tính
- Current relation cho biết các thông số của file dữ liệu bao gồm tên của file (Relation), số mẫu (instances) và số thuộc tính (attributes)
Hình 2.17: Giao diện của Explorer trong Weka
Hình 2.18: Giao diện Weka Experimenter
Giao diện cho phép thử nghiệm trên các thuật toán và tập dữ liệu, chạy thử nghiệm và phân tích kết quả
Hình 2.19: Giao diện Knowledge Flow
Giao diện này hỗ trợ theo dõi quá trình huấn luyện thông qua hình ảnh đồ thị, cho phép người dùng chạy các mô hình đã được tạo ra, bao gồm việc tải và biến đổi dữ liệu đầu vào, thực hiện các thuật toán, và trình bày kết quả một cách rõ ràng.
2.10.2 Chuẩn bị dữ liệu cho Weka
Weka hỗ trợ dữ liệu dưới định dạng file ".arff", hay còn gọi là Attribute-Relation File Format, là một loại file văn bản ASCII liệt kê danh sách các trường hợp với cùng một tập thuộc tính File ARFF bao gồm hai phần chính: phần đầu là thông tin tiêu đề, trong khi phần hai chứa thông tin dữ liệu.
Tiêu đề của bài viết nêu rõ mối quan hệ giữa danh sách các thuộc tính (các cột trong tập dữ liệu) và kiểu của chúng, bao gồm các khai báo dưới dạng @relation.
Các khai báo @relation, @attribute, @data không phân biệt chữ hoa chữ thường Dòng bắt đầu với % là các comments
Tên mối quan hệ được khai báo ở dòng đầu tiên trong file ARFF với cấu trúc "@relation " Trong đó, "" là một chuỗi cần được trích dẫn nếu có chứa khoảng trắng.
Khai báo thuộc tính trong tập dữ liệu bao gồm các câu lệnh được sắp xếp theo thứ tự Mỗi thuộc tính có một câu lệnh @attribute riêng, xác định tên và kiểu dữ liệu của nó Thứ tự khai báo các thuộc tính tương ứng với vị trí cột trong phần dữ liệu của tệp Ví dụ, nếu thuộc tính được khai báo ở vị trí thứ ba, thì tất cả giá trị của thuộc tính đó sẽ nằm ở cột thứ ba được phân cách bằng dấu phẩy trong Weka.
Cấu trúc của câu lệnh khai báo @attribute là:
@attribute
Với phải bắt đầu bằng kí tự chữ cái Nếu tên có khoảng trắng thì phỉa được trích dẫn
có thể là một trong bốn kiểu dữ liệu được Weka hỗ trợ:
Thuộc tính kiểu số có thể là số thực hoặc số nguyên
Thuộc tính danh định được xác định thông qua danh sách các đặc điểm danh định, bao gồm các giá trị như {danh định 1, danh định 2,…} Đối với các giá trị có chứa khoảng trắng, cần phải sử dụng dấu ngoặc kép để trích dẫn.
Thuộc tính kiểu chuỗi cho phép tạo ra các thuộc tính chứa kí tự tùy ý, mang lại lợi ích đặc biệt trong các ứng dụng tìm kiếm chữ ký tự.
Thuộc tính kiểu thời gian có dạng: @attribute thời gian []
chứa tên của thuộc tính và [] quy định cách ghi thời gian Kiểu thời gian mặc định là "yyyy-MM-dd'T'HH:mm:ss"
Phần dữ liệu của file ARFF chứa các dòng khai báo và các mẫu dữ liệu thực tế
Khai báo @data là một dòng đơn biểu thị sự bắt đầu của đoạn dữ liệu trong tệp tin Cấu trúc của khai báo là: @data
Mỗi mẫu dữ liệu được trình bày trên một dòng, với các giá trị thuộc tính ngăn cách bằng dấu phẩy Thứ tự các giá trị thuộc tính phải tuân theo quy định trong phần tiêu đề, nghĩa là giá trị tương ứng với thuộc tính thứ n sẽ nằm ở trường thứ n Các giá trị không có sẽ được biểu diễn bằng dấu hỏi (?) đơn.
Tổng quát lại, một file dữ liệu dạng ARFF phải có cấu trúc như sau:
@relaltion tên tập dữ liệu
@attribute tên_thuộc_tính_1 kiểu dữ liệu
@attribute tên_thuộc_tính_2 kiểu dữ liệu
@attribute tên_thuộc_tính_3 kiểu dữ liệu
Hình 2.20 dưới đây là một ví dụ về file ARFF chứa dữ liệu về thời tiết với một số đặc tính
Hình 2.20: Ví dụ cấu trúc file ARFF
Dòng lệnh bắt đầu với % là các dòng comment chú thích file ARFF chứa dữ liệu về thời tiết với một số đặc tính số
Dòng lệnh đầu tiên @relation weather: tên của tập dữ liệu là weather
Dòng lệnh thứ hai @attribute outlook {sunny , overcast , rainy} khai báo tên thuộc tính thứ nhất là outlook, kiểu dữ liệu là danh định
Dòng lệnh thứ hai @attribute temperature numeric khai báo tên thuộc tính thứ hai là temperature, kiểu dữ liệu là kiểu số
Dòng lệnh thứ ba @attribute humidity numeric khai báo tên thuộc tính thứ ba là humidity, kiểu dữ liệu là kiểu số
Dòng lệnh thứ tư @attribute windy {true , false} khai báo tên thuộc tính thứ tư là windy, kiểu dữ liệu là danh định
Dòng lệnh thứ năm @attribute play? {yes , no} khai báo tên thuộc tính thứ năm là play?, kiểu dữ liệu là danh định
@data khai báo đánh dấu bắt đầu phần dữ liệu của file ARFF
The first dataset includes the following attributes: the outlook is sunny, the temperature is 85, the humidity is 85, the wind is false, and the play status is no.
Dữ liệu thứ hai có các thuộc tính được sắp xếp như sau: outlook là sunny, temperature là 80, humidity là 90, windy là true, và play? là no.
The third dataset features an overcast outlook with a temperature of 83 degrees, humidity at 86%, and no wind, resulting in a decision to play.