Từ đây nhận diện được biểu cảm của khuôn mặt và báo cáocho người dùng thông tin tươn ứng và độ chính xác của dữ liệu.. Trong sự lan rộng củacác độ chính xác khác nhau này, công nghệ có t
Trang 1TRƯỜNG ĐẠI HỌC THỦ DẦU MỘT VIỆN KỸ THUẬT – CÔNG NGHỆ
Trang 2TRƯỜNG ĐẠI HỌC THỦ DẦU MỘT VIỆN KỸ THUẬT – CÔNG NGHỆ
Trang 3UBND TỈNH BÌNH DƯƠNG CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM TRƯỜNG ĐẠI HỌC THỦ DẦU MỘT Độc lập – Tự do – Hạnh phúc
THÔNG TIN KẾT QUẢ NGHIÊN CỨU CỦA ĐỀ TÀI
1 Thông tin chung:
- Tên đề tài: Ứng dụng máy học vào nhận diện biểu cảm của sinh viên đại học thủ dầu
Trang 4Xây dựng mô hình huấn luyện và thử nghiệm nhận diện biểu cảm khuôn mặt.Nhận diện được biểu cảm khuôn mặt cơ bản hạnh phúc, đau buồn, sợ hãi, tức giận,ngạc nhiên, bình thường.
5 Đóng góp về mặt kinh tế - xã hội, giáo dục và đào tạo, an ninh, quốc phòng và khả năng áp dụng của đề tài:
Giáo dục: hỗ trợ giảng viên cải thiện phương pháp giảng dạy cho sinh thấy đượcnhiều cách tiếp cận nâng cao sự chủ động của sinh viên trong việc nghiên cứu học tập
6 Công bố khoa học của sinh viên từ kết quả nghiên cứu của đề tài (ghi rõ họ tên
tác giả, nhan đề và các yếu tố về xuất bản nếu có) hoặc nhận xét, đánh giá của cơ sở
đã áp dụng các kết quả nghiên cứu (nếu có):
Ngày tháng năm 2022
Sinh viên chịu trách nhiệm chính
thực hiện đề tài
(ký, họ và tên)
Nhận xét của người hướng dẫn về những đóng góp khoa học của sinh viên thực
hiện đề tài (phần này do người hướng dẫn ghi):
Trang 6UBND TỈNH BÌNH DƯƠNG CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM TRƯỜNG ĐẠI HỌC THỦ DẦU MỘT Độc lập – Tự do – Hạnh phúc
THÔNG TIN VỀ SINH VIÊN CHỊU TRÁCH NHIỆM CHÍNH THỰC HIỆN ĐỀ TÀI
I SƠ LƯỢC VỀ SINH VIÊN:
Họ và tên: Phạm Thái Bảo
Sinh ngày: 19 tháng 03 năm 2002
Nơi sinh: Ninh Thuận
Lớp: D20TTNT01 Khóa: 2020-2025
Khoa: Viện kĩ thuật – công nghệ
Địa chỉ liên hệ: 424/39/8 tổ 4, khu phố 4, Phường Phú Hoà, tp Thủ Dầu Một, tỉnh BìnhDương
Điện thoại: 0369430009 Email: baophth@gmail.com
II QUÁ TRÌNH HỌC TẬP (kê khai thành tích của sinh viên từ năm thứ 1 đến năm
Trang 7Xác nhận của lãnh đạo khoa
(ký, họ và tên)
Sinh viên chịu trách nhiệm chính
thực hiện đề tài
(ký, họ và tên)
Trang 8MỤC LỤC
MỤC LỤC vii
DANH MỤC NHỮNG TỪ VIẾT TẮT ix
DANH MỤC BẢNG BIỂU x
DANH MỤC HÌNH xi
A PHẦN MỞ ĐẦU 1
1 Lí do chọn đề tài 1
2 Mục tiêu nghiên cứu 1
3 Đối tượng nghiên cứu 1
4 Phạm vi nghiên cứu 1
5 Phương pháp nghiên cứu 1
6 Ý nghĩa đề tài 2
B PHẦN NỘI DUNG 3
CHƯƠNG 1 CƠ SỞ LÍ THUYẾT 3
1.1 Tổng quan tình hình nghiên cứu 3
1.2 Một số khái niệm 5
1.2.1 Machine learning 5
1.2.2 Deep learning 8
1.2.3 Training set 10
1.2.4 Validation 10
1.2.5 Testing set 12
CHƯƠNG 2 MÔ HÌNH BÀI TOÁN 14
2.1 Quy trình thực hiện 14
2.2 Mô hình bài toán 15
2.2.1 Train model 15
2.2.2 Thuật toán được sử dụng 16
2.2.3 Test model 19
CHƯƠNG 3 THỰC NGHIỆM VÀ ĐÁNH GIÁ 22
3.1 Chuẩn bị 22
3.1.1 Cấu hình máy 22
3.1.2 Phần mềm 22
3.1.3 Ngôn ngữ lập trình 23
3.1.4 Các thư viện được sử dụng 25
Trang 93.1.5 Mô tả bộ dữ liệu 29
3.2 Tiến hành 30
3.2.1 Train model 30
3.2.2 Test model 33
3.3 Kết quả 36
3.4 Đánh giá 37
C PHẦN KẾT LUẬN 38
1 Kết quả đạt được 38
2 Khuyến nghị 38
TÀI LIỆU THAM KHẢO 40
Trang 10DANH MỤC NHỮNG TỪ VIẾT TẮT
Machine learning Máy họcDeep learning Học sâu
Trang 11DANH MỤC BẢNG BIỂUBảng 3.1: Phân chia tập dữ liệu 30
Trang 12DANH MỤC HÌNH
Hình 1.1: Machine learning workflow(website) 6
Hình 1.2: Supervised learning(website) 7
Hình 1.3: Unsupervised learning(website) 8
Hình 1.4: Deep learning(website) 9
Hình 1.5: Validation 11
Hình 1.6: Testing set(website) 12
Hình 2.1: Quy trình thực hiện(website) 14
Hình 2.2: Khởi tạo các lớp player 15
Hình 2.3: Quy trình train model 16
Hình 2.4: Cấu trúc mạng CNN(website) 18
Hình 2.5: Xử lí của mạng CNN(website) 19
Hình 2.6: Quy trình thử nghiệm nhận diện biểu cảm 20
Hình 3.1: Máy được sử dụng(website) 22
Hình 3.2: Phần mềm sử dụng 23
Hình 3.3: Python(website) 24
Hình 3.4: Numpy(website) 26
Hình 3.5: Keras(website) 26
Hình 3.6: Tensorflow(website) 27
Hình 3.7: OpenCV(website) 28
Hình 3.8: Pillow(website) 28
Hình 3.9: Matplotlib(website) 28
Hình 3.10: Tkinter(website) 29
Hình 3.11: Mô tả các biểu cảm có trong tập dữ liệu FER2013s 29
Hình 3.12: Nhận diện biểu cảm 37
Trang 13diện biểu cảm của sinh viên đại học thủ dầu một sau buổi học” làm đề tài nghiên cứu
khoa học
2 Mục tiêu nghiên cứu
Nhận diện biểu cảm khuôn mặt thông phân tích hình ảnh được lấy từ webcamhoặc băng ghi hình Đưa hình ảnh lấy được đưa vào thuật toán phân tích và đưa ra biểucảm khuôn mặt trong đó Từ đây nhận diện được biểu cảm của khuôn mặt và báo cáocho người dùng thông tin tươn ứng và độ chính xác của dữ liệu
3 Đối tượng nghiên cứu
Tập trung nghiên cứu nhận diện biểu cảm khuôn mặt người Như các bạn đã biếtbiểu cảm là sự biểu lộ, thể hiện tình cảm, tư tưởng của con người nhờ ngôn ngữ haymột số phương tiện khác Bởi lẽ trong cuộc sống, con người sẽ trải qua rất nhiềunhững niềm vui, nỗi buồn, có tình yêu thương nhưng cũng có lòng căm giận… Và có
lẽ họ cũng muốn được bộc lộ, được chia sẻ những tình cảm, biểu cảm của mình Thếnên, biểu cảm chính là một nhu cầu tất yếu của con người trong cuộc sống hằng ngày
4 Phạm vi nghiên cứu
Phạm vi nghiên cứu chỉ tập trung trong khối sinh viên lớp D20TTNT01,D21TTNT01
Trang 145 Phương pháp nghiên cứu
Phương pháp nghiên cứu lý thuyết:
- Tìm hiểu ngôn ngữ lập trình Python cơ bản, tìm hiểu các thư viện keras,opencv, tensorflow và các khái niệm, một số các thuật toán liên quan đến machinelearning, deep learning Thời gian thực hiện chiếm khoảng 50% thời gian nghiên cứu.Cần tìm hiểu kĩ lưỡng về cách thực thi của các hàm, các tham số được truyền vào vàcác giá trị đầu ra
- Tìm kiếm bài báo liên quan đến nhận diện biểu cảm bằng nhiều phương phápkhác nhau Để tham khảo và kế thừa sự phát triển về nhận diện biểu cảm khuôn mặt vàcông nghệ liên quan
- Tìm hiểu về thuật toán convolutional neural network(CNN), supper vectormachine(SVN)
Phương pháp thực nghiệm: Lập trình xây dựng ứng dụng học sâu
6 Ý nghĩa đề tài
Kết quả nghiên cứu của đề tài “ứng dụng học máy vào nhận diện biểu cảm khuônmặt của sinh viên Thủ Dầu Một sau giờ học” sẽ là căn cứ hỡ trợ giảng viên xác địnhđược biểu cảm của từng sinh trong quá trình giảng dạy Từ đó cải thiện phương phápgiảng dạy phù hợp cho sinh viên
Trang 15Chương 1 Cơ sở lí thuyết
B PHẦN NỘI DUNG CHƯƠNG 1 CƠ SỞ LÍ THUYẾT1.1 Tổng quan tình hình nghiên cứu
Nhận dạng biểu cảm trên khuôn mặt là quá trình xác định các biểu cảm trênkhuôn mặt của con người thông qua khuôn mặt Mọi người rất khác nhau với độ chínhxác khác nhau trong việc nhận biết biểu cảm của người khác Trong sự lan rộng củacác độ chính xác khác nhau này, công nghệ có thể chứng minh kênh nhận dạng biểucảm cũng như phát triển một số mô hình để xác định biểu cảm khuôn mặt chính xáccủa con người Các phương tiện giao tiếp bao gồm cử chỉ cơ thể, nét mặt,… ngoài lờinói Cử chỉ cơ thể giúp điều chỉnh giao tiếp trong lời nói, trong khi nét mặt thể hiệnbiểu cảm của con người theo phản xạ Nhận dạng biểu cảm khuôn mặt có ứng dụngtrong nhiều lĩnh vực khác nhau bao gồm khoa học lâm sàng, khoa học hành vi,… Pháthiện nét mặt cũng là điều kiện tiên quyết ngày nay đối với giao diện người - máy.Trong vài năm qua, một số tiến bộ đã được thực hiện trong lĩnh vực phát hiện nét mặt,như kỹ thuật trích xuất các đặc điểm trên khuôn mặt và phân loại biểu cảm Nhưng vẫnphải phát triển một hệ thống phát hiện biểu cảm khuôn mặt tự động Dự án này thựchiện nhận dạng khuôn mặt theo nhiều cách, bằng cách sử dụng bộ mô tả (Histogram
Of Orientation Gradient) và SVM (Máy vectơ hỗ trợ) cho mô hình đầu tiên trong khivới các chiến lược đầu vào khác nhau cho Mạng nơ-ron tích chập Convolutions NeuralNetwork (CNN) trong các mô hình khác Sau đó, CNN và SVM dự đoán nhãn theomột trong các biểu cảm trên khuôn mặt sau: bình thường, hạnh phúc, sợ hãi, buồn bã,chán ghét, tức giận, ngạc nhiên Động cơ của việc kết hợp hai hoặc nhiều kỹ thuật vàtiền xử lý để đạt được kết quả có thể so sánh được thành công
Bài toán phát hiện biểu cảm khuôn mặt đã có lịch sử nghiên cứu lâu dài Từ năm
1964, Bledsoe là người đầu tiên xây dựng chương trình nhận dạng khuôn mặt tự độngkết hợp với hệ thống máy tính, bằng cách phân loại khuôn mặt trên cơ sở mốc chuẩnđược nhập vào bằng tay Các thông số để phân loại là khoảng cách chuẩn, tỉ lệ giữacác điểm như góc, mắt, miệng, chóp mũi và chóp cằm Sau này, tại Bell Labs đã pháttriển một kĩ thuật dựa trên vector với 21 thuộc tính khuôn mặt được phát hiện bằngcách sử dụng kỹ thuật phân loại tiêu chuẩn mẫu Các thuộc tính được lựa chọn đánhgiá chủ yếu là: màu tóc, chiều dài của đôi tai, độ dày môi Năm 1986, hệ thốngWISARD dựa trên mạng nơron đã có thể nhận biết được tình trạng và biểu cảm khuônmặt một cách hạn chế
Phát hiện biểu cảm khuôn mặt là bước phát triển tiếp sau của việc phát hiệnkhuôn mặt, tuy nhiên có nhiều quan điểm trong việc định nghĩa khái niệm biểu cảm,
Trang 16Chương 1 Cơ sở lí thuyết
vốn rất không rõ ràng Matsumoto phân chia biểu cảm khuôn mặt thành 7 nhóm thểhiện chính: Vui vẻ, Ngạc nhiên, Hài lòng, Buồn bực, Cáu giận, Phẫn nộ và Sợ hãi Tuynhiên, nhóm của Mase và Pentland cho rằng chỉ 4 loại biểu cảm được thể hiện mộtcách rõ ràng là Hạnh phúc, Ngạc nhiên, Giận giữ và Căm phẫn; các loại biểu cảm khácthường không rõ ràng và tùy thuộc nhiều vào kinh nghiệm của người quan sát (tức làkhông thể định lượng một cách chính xác) Cơ sở dữ liệu Radboud Faces Database thìphân chia biểu cảm khuôn mặt thành 8 loại: Tức giận, Căm phẫn, Sợ hãi, Hạnh phúc,Buồn rầu, Bất ngờ, Khinh miệt và Trung lập Dataset Kaggle FER-F2013 thì lại chỉ có
7 loại biểu cảm: Giận dữ, Căm phẫn, Sợ hãi, Hạnh phúc, Buồn rầu, Bất ngờ và Trunglập
Hiện nay vấn đề này vẫn đang được rất nhiều người quan tâm bởi tính hấp dẫncùng những vấn đề phức tạp của nó Tính đến hiện nay đã nhận diện được 8 trạng thái
cơ bản gồm vui vẻ, rầu rĩ, sợ hãi, ghê tởm, giận dữ, ngạc nhiên, hy vọng và tin tưởngbằng một số công cụ được Microsoft áp dụng Ngoài ra phòng nghiên cứu của công tyFujistu đã phát triển nhận diện thêm những trạng thái mới như hồi hộp hoặc bối rối.Bằng việc xác định 2 thực hiện “gò má được nâng lên” và “phía góc môi được kéogiãn” xảy ra cùng lúc, AI sẽ đưa ra kết luận trạng người dùng Nhận dạng biểu cảmdựa trên nhận diện các thành phần chính (PCA) truyền thống ngoài ra còn kết hợp vớimột số thuật toán như mạng noron, cây quyết định,…
Trong nước có nhiều nghiên cứu về chủ đề nhận diện biểu cảm như: tổng quan vềước lượng mức độ biểu cảm của người qua biểu cảm khuôn mặt và hướng tiếp cậndựa trên ảnh nhiệt [1], Mô hình khai phá ý kiến và phân tích biểu cảm khách hàng trựctuyến trong ngành thực phẩm [2], sử dụng phương pháp support vector machine vàconvolutional neural network để phân loại biểu cảm của khuôn mặt [3], sử dụngphương pháp support vector machine và convolutional neural network để phân loạibiểu cảm của khuôn mặt [4],…
Ngoài nước có rất nhiều nghiên cứu về vấn đề nhận diện biểu cảm như:Leveraging Recent Advances in Deep Learning for Audio-Visual EmotionRecognition [5], Multimodal Emotion Recognition using Deep Learning Architectures[6], A Robust Method for Face Recognition and Face Emotion Detection System usingSupport Vector Machines [7],
Trang 17Chương 1 Cơ sở lí thuyết
Hiện nay trên thị trường đã có phần mềm nhận diện biểu cảm như là: “MAL FaceEmotion” ra mắt vào ngày 01/04/2020, nhận diện được 5 loại biểu cảm của từngkhuôn: bình thường, vui, buồn, giận dữ và ngạc nhiê
1.2 Một số khái niệm
1.2.1 Machine learning
Machine learning theo định nghĩa cơ bản là ứng dụng các thuật toán để phân tích
cú pháp dữ liệu, học hỏi từ nó, và sau đó thực hiện một quyết định hoặc dự đoán vềcác vấn đề có liên quan Vì vậy, thay vì code phần mềm bằng cách thức thủ công vớimột bộ hướng dẫn cụ thể để hoàn thành một nhiệm vụ cụ thể, máy được “đào tạo”bằng cách sử dụng một lượng lớn dữ liệu và các thuật toán cho phép nó học cách thựchiện các tác vụ Điển hình là thuật toán support vector machine(SVM)
Một trong những lĩnh vực ứng dụng tốt nhất cho Machine learning trong nhiềunăm qua là computer vision, mặc dù nó vẫn đòi hỏi rất nhiều kỹ năng code thủ công để
có thể hoàn thành công việc Mọi người vẫn sẽ viết các lớp phân loại bằng tay như các
bộ lọc để chương trình có thể xác định nơi mà một đối tượng bắt đầu và kết thúc Pháthiện hình dạng để xác định nếu nó có tám mặt Một phân loại để nhận dạng các chữ cái
“S-T-O-P” Từ tất cả những ứng dụng phân loại, họ sẽ phát triển các thuật toán để làmcho hình ảnh và “học” khả năng nhận diện dấu hiệu liệu nó có phải là kí hiệu stop haykhông?
Một số khái niệm trong machine learning:
- Dataset (còn gọi là data corpus hay data stock): là tập dữ liệu ở dạng nguyênthủy chưa qua xử lý mà bạn đã thu thập được ở bước data collection Một dataset sẽbao gồm nhiều data point
- Data point: là điểm dữ liệu, mỗi điểm dữ liệu biểu diễn cho một quan sát Mỗidata point có nhiều đặc trưng hay thuộc tính khác nhau, được chia làm hai loại: dữ liệu
số (numerical) và dữ liệu không phải số (ví dụ như chuỗi) (non-numerical/categorical).Data point được biểu diễn thành dòng tương ứng, mỗi dòng có thể có 1 hoặc nhiều dữliệu (chính là các đặc trưng)
Trang 18Chương 1 Cơ sở lí thuyết
- Training data và test data: dataset thường sẽ được chia làm 2 tập này, trainingdata dùng để huấn luyện cho mô hình, test data dùng để dự đoán kết quả và đánh giá
mô hình Có bài toán người ta sẽ cho sẵn hai tập này thì bạn không cần phải chia nữa,đối với bài toán chỉ cho mỗi dataset thôi thì phải chia ra Thường tỷ lệ giữa tập train vàtest sẽ là 8/2
- Features vector: là vector đặc trưng, mỗi vector này sẽ biểu diễn cho một điểm
dữ liệu trong dataset Mỗi vector có n chiều biểu diễn các đặc trưng của điểm dữ liệu,mỗi đặc trưng là một chiều và phải là dữ liệu số Các mô hình chỉ có thể huấn luyệnđược từ các vector đặc trưng này, do đó dataset cần phải chuyển về dạng một tập cácvector đặc trưng (features vectors)
- Model: là các mô hình được dùng để training trên một training data theo thuậttoán của mô hình đó Sau đó mô hình có thể dự đoán hoặc đưa ra các quyết định dựatrên những gì chúng đã được học
Machine learning workflow là các bước cụ thể trong machine learning như:
Hình 1.1: Machine learning workflow(website)
- Data collection – thu thập dữ liệu: để máy tính có thể học được bạn cần cómột bộ dữ liệu (dataset), bạn có thể tự thu thập chúng hoặc lấy các bộ dữ liệu đã đượccông bố trước đó Lưu ý là bạn phải thu thập từ nguồn chính thống, có như vậy dữ liệumới chính xác và máy có thể học một cách đúng đắng và đạt hiệu quả cao hơn
- Preprocessing – tiền xử lý: bước này dùng để chuẩn hóa dữ liệu, loại bỏ cácthuộc tính không cần thiết, gán nhãn dữ liệu, mã hóa một số đặc trưng, trích xuất đặc
Trang 19Chương 1 Cơ sở lí thuyết
trưng, rút gọn dữ liệu nhưng vẫn đảm bảo kết quả… Bước này tốn thời gian nhất tỉ lệthuận với số lượng dữ liệu bạn có Bước 1 và 2 thường chiếm hơn 70% tổng thời gianthực hiện
- Training model – huấn luyện mô hình: bước này là bước bạn huấn luyện cho
mô hình hay chính là cho nó học trên dữ liệu bạn đã thu thập và xử lý ở hai bước đầu
- Evaluating model – đánh giá mô hình: sau khi đã huấn luyện mô hình xong,chúng ta cần dùng các độ đo để đánh giá mô hình, tùy vào từng độ đo khác nhau mà
mô hình cũng được đánh giá tốt hay không khác nhau Độ chính xác của mô hình đạttrên 80% được cho là tốt
- Improve – cải thiện: sau khi đã đánh giá mô hình, các mô hình đạt độ chínhxác không tốt thì cần được train lại, chúng ta sẽ lặp lại từ bước 3, cho đến khi đạt độchính xác như kỳ vọng Tổng thời gian của 3 bước cuối rơi vào khoảng 30% tổng thờigian thực hiện
Có rất nhiều cách phân loại machine learning, thông thường thì machine learning
sẽ được phân làm hai loại chính sau:
- Supervised learning(học có giám sát) là việc cho máy tính học trên dữ liệu đãđược gán nhãn (label), hay nói cách khác, với mỗi đầu vào Xi, chúng ta sẽ có nhãn Yitương ứng
Hình 1.2: Supervised learning(website)
Trang 20Chương 1 Cơ sở lí thuyết
- Unsupervised learning(học không giám sát) là cho máy tính học trên dữ liệu
mà không được gán nhãn, các thuật toán machine learning sẽ tìm ra sự tương quan dữliệu, mô hình hóa dữ liệu hay chính là làm cho máy tính có kiến thức, hiểu về dữ liệu,
từ đó chúng có thể phân loại các dữ liệu về sau thành các nhóm, lớp (clustering) giốngnhau mà chúng đã được học hoặc giảm số chiều dữ liệu (dimension reduction)
Hình 1.3: Unsupervised learning(website)
Ngoài ra, machine learning còn có thể phân làm các loại sau: Semi-supervisedlearning(học bán giám sát), Deep learning(học sâu về một vấn đề nào đó), Reinforcelearning(học củng cố/tăng cường)
1.2.2 Deep learning
Deep Learning là một nhánh của Machine Learning sử dụng mạng lưới thần kinhvới nhiều lớp Một mạng lưới thần kinh sâu phân tích dữ liệu với các biểu diễn đã họctương tự như cách một người nhìn vào một vấn đề của họ Và nó có tác dụng hỗ trợcho máy tính tự huấn luyện chính nó để có thể thực hiện mọi tác vụ tương tự như conngười Điều này chính là giúp máy tính bắt chước con người cách học hỏi và suy nghĩ.Điển hình là thuật toán convolutional neural network(CNN)
Trang 21Chương 1 Cơ sở lí thuyết
Hình 1.1: Deep learning(website)
Một phương pháp tiếp cận thuật toán khác từ cộng đồng machine-learning,Artificial Neural Networks, được nhắc đến nhiều thập kỷ qua Neural Networks đượclấy cảm hứng từ sự hiểu biết về sinh học của bộ não loài người – sự liên kết giữa cácnơ-ron Tuy nhiên, không giống như một bộ não sinh học nơi mà bất kỳ nơ-ron nàocũng có thể liên kết với các nơ-ron khác trong một khoảng cách vật lý nhất định, cácmạng thần kinh nhân tạo này có các lớp rời rạc, các kết nối, và các hướng truyền dữliệu
Mỗi nơ-ron đảm nhiệm một chức năng – làm thế nào để biết chính xác liệu rằng
nó có liên quan đến nhiệm vụ đang được thực hiện Vì vậy, suy nghĩ về điểm dừng làmột dấu hiệu Các thuộc tính của một hình ảnh dấu hiệu “dừng” được cắt nhỏ và được
“kiểm tra” bởi các nơ-ron – dạng hình trụ, màu đỏ của các động cơ cháy, các chữ cáiđặc trưng, kích thước biển báo giao thông, và sự chuyển động hoặc sự thiếu hụt của
nó Nhiệm vụ của mạng thần kinh là để kết luận liệu đây có phải là dấu hiệu dừng haykhông Nó đi kèm với một “vector xác suất” Trong ví dụ của chúng ta, hệ thống có thểxác định chắc chắn đến 86% một dấu hiệu dừng, 7% rằng đó là một dấu hiệu giới hạntốc độ, và 5% còn lại là một con diều bị mắc kẹt trong cây,( hoặc cái gì đó tương tự)
vv … và kiến trúc mạng sau đó sẽ thông báo đến mạng nơron cho dù đó là đúng haysai
Trang 22Chương 1 Cơ sở lí thuyết
Ngày nay, khả năng nhận dạng hình ảnh của máy móc được luyện tập thông quadeep learning trong một số tình huống tốt hơn so với con người AlphaGo của Google
đã được huấn luyện chơi cờ vay – nó điều chỉnh mạng lưới thần kinh của mình bằngcách tự mình chống lại chính mình
1.2.3 Training set
Tập huấn luyện (training set) là tập dữ liệu được sử dụng để huấn luyện mô hình.Các thuật toán học máy sẽ học các mô hình từ tập huấn luyện này Việc học sẽ khácnhau tùy thuộc vào thuật toán và mô hình sử dụng Ví dụ, khi sử dụng môt hình Hồiquy tuyến tính (Linear Regression), các điểm trong tập huấn luyện được sử dụng đểtìm ra hàm số hay đường phù hợp nhất mô tả quan hệ giữa đầu vào và đầu ra của tập
dữ liệu huấn luyện bằng cách sử dụng một số phương pháp tối ưu hóa như công thứcnghiệm ở bài trước hoặc các thuật toán tối ưu gần đúng như gradient descent haystochastic gradient descent Trong thuật toán K-Nearest Neighbors (K-Hàng xóm gầnnhất), các điểm trong tập huấn luyện là những điểm có thể là hàng xóm của nhau (gầnnhau) được học theo các phương pháp tham lam Trong thực tế, tập dữ liệu huấn luyệnthường bao gồm các cặp vectơ đầu vào và vectơ đầu ra tương ứng, trong đó vector đầu
ra thường được gọi là nhãn (label hoặc target) Các thuật toán nói chung sẽ tìm cáchtối ưu sai số dự đoán trên tập huấn luyện này đến mức đủ tốt Trong trường hợpoverfitting sai số dự đoán của mô hình trên tập huấn luyện có thể rất thấp, thậm chí =0%
để đóng vai trò đưa ra các phản hồi nhằm hiệu chỉnh các mô hinh sau quá trình huấnluyện Tập dữ liệu này gọi là tập dữ liệu kiểm chứng (validation set) Thực ra, đây mớinên dịch là tập kiểm thử còn testing set phải là tập kiểm định Anh chạy thử xe, thửthuốc các kiểu rồi thì mới được đưa ra cấp chứng nhận kiểm định (bài test cuối cùng)trước khi đưa ra sử dụng Tuy nhiên, các thuật ngữ đã được đưa khá nhiều trong các tàiliệu khác tiếng Việt, do đó, ở đây chúng ta không tìm cách sửa lại nó nữa Chúng ta chỉ
Trang 23Chương 1 Cơ sở lí thuyết
cần nắm được rằng, tập validation là tập cho phép lựa chọn mô hình huấn luyện chophù hợp, còn testing set là tập đánh giá lại mô hình lần cuối cùng Điều này, cũnggiống như các bạn học trên lớp, có các bài kiểm tra miệng, bài tập, kiểm tra giữa kỳ đểđánh giá mức độ học của bạn, từ đó biết mình yếu phần nào, cần bổ sung phần nào đểchuẩn bị cho bài thi cuối cùng vậy Và cũng do đó, nên các đoạn phía sau này, chúng
ta sẽ tạm dùng từ tiếng anh (Validation set và testing set) để giữ được nghĩa vốn cónày
Tập dữ liệu kiểm chứng (validation set) cung cấp các đánh giá công bằng về sựphù hợp của mô hình trên tập dữ liệu huấn luyện trong quá trình huấn luyện.Validation set có chức năng như một sự kết hợp: nó vừa là dữ liệu huấn luyện được sửdụng để thử nghiệm, nhưng không phải là một phần của quá trình huấn luyện cấp thấpcũng không phải là một phần của thử nghiệm cuối cùng Nó là một bước chung giancho phép lựa chọn mô hình phù hợp
Validation set có tác dụng giúp tìm kiếm mô hình tốt nhất trong các ứng viênđược huấn luyện từ training set Nó được sử dụng để so sánh hiệu suất của các môhình ứng viên này và quyết định cái nào sẽ là mô hình tốt nhất cuối cùng bằng cách sosánh các độ đo hiệu suất như độ chính xác, độ nhạy cảm, độ hồi tưởng, RMSE, MSE,
… đạt được trên nó Nó giúp cho quá trình điều chỉnh các siêu tham số của mô hìnhchẳng hạn số lượng đơn vị ẩn (lớp và chiều rộng lớp) trong mạng nơron để đạt được
mô hình phù hợp
Validation set cũng giúp phát hiện và dừng sớm (early stopping) quá trình huấnluyện mô hình khi lỗi trên validation set tăng lên đột biến, vì đây là dấu hiệu của môhình overfitting Kỹ thuật early stopping là một kỹ thuật được sử dụng khá phổ biến đểtránh việc overfitting Mặc dù nhìn có vẻ khá đơn giản, nhưng việc thực hiện nó trênthực tế lại khá phức tạp Sỡ dĩ như vậy là do lỗi dự đoán trên validation set có thể daođộng trong quá trình huấn luyện, tạo ra nhiều cực tiểu địa phương Sự phức tạp này đãdẫn đến việc có rất nhiều các quy tắc đặc biệt được xây dựng và đề xuất để xác địnhchính xác thời điểm overfitting thực sự bắt đầu dựa trên lỗi dự đoán trên tập validationset
Trang 24Chương 1 Cơ sở lí thuyết
Hình 1.1: Validation
Như trên hình vẽ trên, ta thấy chúng ta có thể dừng việc huấn luyện tại vị trí có
sự thay đổi rõ rệt sai số trong tập validation set Đây là thời điểm xảy ra overfitting
1.2.5 Testing set
Mục tiêu của machine learning là tạo ra những mô hình có khả năng tổng quáthóa để dự đoán tốt trên cả dữ liệu chưa thấy bao giờ (nằm ngoài tập huấn luyện), do
đó, để biết một thuật toán hay mô hình có tốt hay không thì sau khi được huấn luyện,
mô hình cần được đánh giá hiệu quả thông qua bộ dữ liệu kiểm thử (testing set) Bộ dữliệu này được sử dụng để tính độ chính xác hoặc sai số của mô hình dự đoán đã đượchuấn luyện Chúng ta biết nhãn thực của mọi điểm trong tập hợp dữ liệu kiểm thử này,nhưng chúng ta sẽ tạm thời giả vờ như không biết và đưa các giá trị đầu vào của tậpvào mô hình dự đoán để nhận kết quả dự đoán đầu ra Sau đó chúng ta có thể nhìn vàocác nhãn thực và so sánh nó với kết quả dự đoán của các đầu vào tương ứng này vàxem liệu mô hình có dự đoán đúng hay không Việc tính tổng trung bình của toàn bộcác lỗi này chúng ta có thể tính toán được lỗi dự đoán trên tập kiểm thử
Các lỗi dự đoán này được đánh giá thông qua rất nhiều chỉ số khác nhau như độchính xác (precision), độ hồi tưởng (recall), F1-Score, RMSE, MAE,…Các chỉ số này
sẽ được trình bày chi tiết hơn trong bài tiếp theo Một lưu ý là các chỉ số đo mức độhiệu quả của mô hình này trên tập kiểm thử có thể khác với các lossfunction hayobjective function sử dụng để tối ưu hóa mô hình trên tập huấn luyện Nghĩa là quátrình kiểm thử và quá trình huấn luyện là hoàn toàn độc lập với nhau, cả về bộ dữ liệulẫn cách thức so sánh chỉ số
Tập dữ liệu kiểm thử tốt là một tập dữ liệu độc lập với tập dữ liệu huấn luyện (đểngoài và không được tham gia vào quá trình huấn luyện), nhưng tuân theo cùng một
Trang 25Chương 1 Cơ sở lí thuyết
phân phối xác suất như tập dữ liệu huấn luyện Điều này giúp cho việc đánh giá không
bị thiên vị Nếu một mô hình phù hợp với trainining set nhưng lại sai khác trên testingset, thì việc rất có khả năng nó bị overfitting (xem hình bên dưới) Ngược lại, sai sốkhông quá nhiều thì thường chúng là một mô hình phù hợp
Hình 1.1: Testing set(website)
Với mô hình màu xanh lá, lỗi dự đoán trên cả training set và testing set là khôngchênh lệch nhau quá nhiều, ngược lại với mô hình màu cam, lỗi dự đoán trên testingset lớn hơn rất nhiều so với trên training set Do đó mô hình màu cam nhiều khả năng
bị overfitting hơn mô hình màu xanh sỡ dĩ có điều này là do các mô hình overfitting
có các tham số có variance khá cao và vì vậy chỉ những sai khác nhỏ trên dữ liệu đầuvào cũng có thể tạo ra những sai khác lớn trên giá trị đầu ra, điều đó dẫn đến sai sốtrên tập testing sẽ cao hơn đột biến
Trang 26Chương 1 Cơ sở lí thuyết
CHƯƠNG 2