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ủa cá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 3Bình Dương, tháng 04 năm 2022
Trang 4UBND 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
3 Tính mới và sáng tạo:
Thêm bộ lọc và hệ thần kinh nhằm cải thiện độ nhạy khi nhận diện biểu cảm tứcgiận
4 Kết quả nghiên cứu:
Xâ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à
Trang 5Giá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):
Ngày tháng năm
Trang 6Xác nhận của lãnh đạo khoa
(ký, họ và tên)
Người hướng dẫn
(ký, họ và tên)
Trang 7UBND 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 8(ký, họ và tên) thực hiện đề tài
(ký, họ và tên)
Trang 9MỤ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 103.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 11DANH MỤC NHỮNG TỪ VIẾT TẮT
Machine learning Máy họcDeep learning Học sâu
Trang 12DANH MỤC BẢNG BIỂUBảng 3.1: Phân chia tập dữ liệu 30
Trang 13DANH 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 14diệ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 155 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 16B 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
CHƯƠNG 2 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ên khuôn mặt của con người thông qua khuônmặt Mọi người rất khác nhau với độ chính xác khác nhau trong việcnhận biết biểu cảm của người khác Trong sự lan rộng của các độchính xác khác nhau này, công nghệ có thể chứng minh kênh nhậndạng biểu cảm cũng như phát triển một số mô hình để xác định biểucảm khuôn mặt chính xác của con người Các phương tiện giao tiếpbao gồm cử chỉ cơ thể, nét mặt,… ngoài lời nó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ện biểu cảmcủa con người theo phản xạ Nhận dạng biểu cảm khuôn mặt có ứngdụng trong 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át hiện nét mặt cũng là điều kiện tiên quyếtngà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ẫn phải phát triển một hệ thống phát hiện biểu cảm khuônmặt tự động Dự án này thực hiện nhận dạng khuôn mặt theo nhiềucách, bằng cách sử dụng bộ mô tả (Histogram Of OrientationGradient) 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ậpConvolutions Neural Network (CNN) trong các mô hình khác Sau đó,CNN và SVM dự đoán nhãn theo một trong các biểu cảm trên khuônmặ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ôngCHƯƠNG 3 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ựngchương trình nhận dạng khuôn mặt tự động kết hợp với hệ thống máytính, bằng cách phân loại khuôn mặt trên cơ sở mốc chuẩn được nhậpvào bằng tay Các thông số để phân loại là khoảng cách chuẩn, tỉ lệgiữa cá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át triển một kĩ thuật dựa trên vector với 21 thuộc
Trang 17tính khuôn mặt được phát hiện bằng cách sử dụng kỹ thuật phân loạitiêu chuẩn mẫu Các thuộc tính được lựa chọn đánh giá 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ôn mặt một cách hạn chế.
CHƯƠNG 4 Phát hiện biểu cảm khuôn mặt là bước phát triển tiếpsau của việc phát hiện khuôn mặt, tuy nhiên có nhiều quan điểm trongviệc định nghĩa khái niệm biểu cảm, 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ệnchí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 Tuy nhiên, nhóm của Mase và Pentland cho rằng chỉ 4 loạibiểu cảm được thể hiện một cá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ác thườ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ôngthể định lượng một cách chính xác) Cơ sở dữ liệu Radboud FacesDatabase 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
CHƯƠNG 5 Hiện nay vấn đề này vẫn đang được rất nhiều ngườiquan tâm bởi tính hấp dẫn cù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ưởng bằng một
số công cụ được Microsoft áp dụng Ngoài ra phòng nghiên cứu củacông ty Fujistu đã 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á đượcnâng lên” và “phía góc môi được kéo giã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ảm dựa trên nhận diệncá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,…
CHƯƠNG 6 Trong nước có nhiều nghiên cứu về chủ đề nhận diệnbiểu cảm như: tổng quan về ước lượng mức độ biểu cảm của người
Trang 18qua biểu cảm khuôn mặt và hướng tiếp cận dự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ực tuyếntrong ngành thực phẩm [2], sử dụng phương pháp support vectormachine và convolutional neural network để phân loại biểu cảm củakhuôn mặt [3], 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[4],…
CHƯƠNG 7 Ngoài nước có rất nhiều nghiên cứu về vấn đề nhận diệnbiểu cảm như: Leveraging Recent Advances in Deep Learning forAudio-Visual Emotion Recognition [5], Multimodal EmotionRecognition using Deep Learning Architectures [6], A Robust Methodfor Face Recognition and Face Emotion Detection System usingSupport Vector Machines [7],
CHƯƠNG 8 Hiện nay trên thị trường đã có phần mềm nhận diện biểucảm như là: “MAL Face Emotion” ra mắt vào ngày 01/04/2020, nhậndiện được 5 loại biểu cảm của từng khuôn: bình thường, vui, buồn,giận dữ và ngạc nhiê
8.1 Một số khái niệm
8.1.1 Machine learning
CHƯƠNG 9 Machine learning theo định nghĩa cơ bản là ứng dụngcá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ới một bộhướng dẫn cụ thể để hoàn thành một nhiệm vụ cụ thể, máy được “đàotạo” bằng cách sử dụng một lượng lớn dữ liệu và các thuật toán chophép nó học cách thực hiện các tác vụ Điển hình là thuật toán supportvector machine(SVM)
CHƯƠNG 10 Một trong những lĩnh vực ứng dụng tốt nhất choMachine learning trong nhiều nă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
Trang 19việ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ếtthúc Phát hiện hình dạng để xác định nếu nó có tám mặt Một phânloại để nhận dạng các chữ cái “S-T-O-P” Từ tất cả những ứng dụngphân loại, họ sẽ phát triển các thuật toán để làm cho 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?
CHƯƠNG 11 Một số khái niệm trong machine learning:
CHƯƠNG 12 - Dataset (còn gọi là data corpus hay data stock): làtập dữ liệu ở dạng nguyên thủ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.CHƯƠNG 13 - Data point: là điểm dữ liệu, mỗi điểm dữ liệu biểudiễn cho một quan sát Mỗi data point có nhiều đặc trưng hay thuộctí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)
CHƯƠNG 14 - Training data và test data: dataset thường sẽ đượcchia làm 2 tập này, training data dùng để huấn luyện cho mô hình, testdata 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àitoán chỉ cho mỗi dataset thôi thì phải chia ra Thường tỷ lệ giữa tậptrain và test sẽ là 8/2
CHƯƠNG 15 - Features vector: là vector đặc trưng, mỗi vectornày sẽ biểu diễn cho một điểm dữ liệu trong dataset Mỗi vector có nchiều biểu diễn các đặc trưng của điểm dữ liệu, mỗi đặc trưng là mộtchiề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ộttập các vector đặc trưng (features vectors)
Trang 20CHƯƠNG 16 - Model: là các mô hình được dùng để training trênmột training data theo thuật toá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ựa trên những gì chúng đãđược học.
CHƯƠNG 17 Machine learning workflow là các bước cụ thể trongmachine learning như:
CHƯƠNG 18
Hình 18.1.1.1: Machine learning workflow(website)
CHƯƠNG 19 - 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ự thuthập chúng hoặc lấy các bộ dữ liệu đã được cô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ệu mới chínhxác và máy có thể học một cách đúng đắng và đạt hiệu quả cao hơn.CHƯƠNG 20 - Preprocessing – tiền xử lý: bước này dùng đểchuẩn hóa dữ liệu, loại bỏ các thuộ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 trưng, rút gọn dữ liệunhưng vẫn đảm bảo kết quả… Bước này tốn thời gian nhất tỉ lệ thuận
Trang 21với số lượng dữ liệu bạn có Bước 1 và 2 thường chiếm hơn 70% tổngthời gian thực hiện.
CHƯƠNG 21 - 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ệubạn đã thu thập và xử lý ở hai bước đầu
CHƯƠNG 22 - 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 đánhgiá tốt hay không khác nhau Độ chính xác của mô hình đạt trên 80%được cho là tốt
CHƯƠNG 23 - Improve – cải thiện: sau khi đã đánh giá mô hình,các mô hình đạt độ chính xá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ổngthời gian của 3 bước cuối rơi vào khoảng 30% tổng thời gian thựchiện
CHƯƠNG 24 Có rất nhiều cách phân loại machine learning, thôngthường thì machine learning sẽ được phân làm hai loại chính sau:CHƯƠNG 25 - Supervised learning(học có giám sát) là việc chomá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 Yi tương ứng
Trang 22CHƯƠNG 26
Hình 26.1.1.1: Supervised learning(website)
CHƯƠNG 27 - Unsupervised learning(học không giám sát) là chomáy tính học trên dữ liệu mà không được gán nhãn, các thuật toánmachine learning sẽ tìm ra sự tương quan dữ liệu, mô hình hóa dữ liệuhay 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ống nhau mà chúng đã được học hoặc giảm số chiều dữliệu (dimension reduction)
Trang 23CHƯƠNG 28
Hình 28.1.1.1: Unsupervised learning(website)
CHƯƠNG 29 Ngoài ra, machine learning còn có thể phân làm cácloại sau: Semi-supervised learning(học bán giám sát), Deeplearning(học sâu về một vấn đề nào đó), Reinforce learning(học củngcố/tăng cường)
29.1.1 Deep learning
CHƯƠNG 30 Deep Learning là một nhánh của Machine Learning sửdụng mạng lưới thần kinh với nhiều lớp Một mạng lưới thần kinh sâuphân tích dữ liệu với các biểu diễn đã học tương tự như cách mộtngười nhìn vào một vấn đề của họ Và nó có tác dụng hỗ trợ cho máytính tự huấn luyện chính nó để có thể thực hiện mọi tác vụ tương tựnhư con người Điều này chính là giúp máy tính bắt chước con ngườicách học hỏi và suy nghĩ Điển hình là thuật toán convolutional neuralnetwork(CNN)
Trang 24CHƯƠNG 31
Hình 31.1.1.1: Deep learning(website)
CHƯƠNG 32 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 đếnnhiều thập kỷ qua Neural Networks được lấy cảm hứng từ sự hiểubiết về sinh học của bộ não loài người – sự liên kết giữa các nơ-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ào cũng có thể liên kết với các nơ-ron khác trong một khoảngcách vật lý nhất định, các mạng thần kinh nhân tạo này có các lớp rờirạc, các kết nối, và các hướng truyền dữ liệu
CHƯƠNG 33 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 đượcthực hiện Vì vậy, suy nghĩ về điểm dừng là một dấu hiệu Các thuộctính của một hình ảnh dấu hiệu “dừng” được cắt nhỏ và được “kiểmtra” bởi các nơ-ron – dạng hình trụ, màu đỏ của các động cơ cháy, cácchữ cái đặc trưng, kích thước biển báo giao thông, và sự chuyển động
Trang 25hoặc sự thiếu hụt của nó Nhiệm vụ của mạng thần kinh là để kết luậnliệu đây có phải là dấu hiệu dừng hay khô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 địnhchắc chắn đến 86% một dấu hiệu dừng, 7% rằng đó là một dấu hiệugiới hạn tố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ôngbáo đến mạng nơron cho dù đó là đúng hay sai
CHƯƠNG 34 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 qua deep learning trong một số tình huống tốthơ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ằng cách tựmình chống lại chính mình
34.1.1 Training set
CHƯƠNG 35 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ác nhau tùy thuộc vào thuậttoán và mô hình sử dụng Ví dụ, khi sử dụng môt hình Hồi quy tuyếntí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ức nghiệm ở bài trước hoặc cácthuật toán tối ưu gần đúng như gradient descent hay stochasticgradient descent Trong thuật toán K-Nearest Neighbors (K-Hàng xómgần nhất), các điểm trong tập huấn luyện là những điểm có thể là hàngxóm của nhau (gần nhau) được học theo các phương pháp tham lam.Trong thực tế, tập dữ liệu huấn luyện thườ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ìmcách tố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ợp overfitting sai số dự đoán của mô hình trên tập huấnluyện có thể rất thấp, thậm chí = 0%
35.1.1 Validation
Trang 26CHƯƠNG 36 Việc sử dụng testing set giúp chúng ta đánh giá đượchiệu quả của mô hình xây dựng cuối cùng Tuy nhiên, nếu kết quảđánh giá tệ thì sao? Rõ ràng chúng ta lại phải cố gắng điều chỉnh đểđưa ra các mô hình tốt hơn Tức là testing set đang có vẻ ảnh hưởngđôi chút đến việc huấn luyện mô hình Điều này theo một mặt nào đó
là có vẻ không công bằng Chúng ta đang cố gắng dự đoán những điềuchưa biết, chuẩn bị cho các tính huống xấu nhất cơ mà!!! Chứ khôngphải là đưa lại tình huống đã xảy ra đã biết để hiệu chỉnh lại mô hình.Chính vì lí do đó, một tập dữ liệu khác sẽ được sử dụng để đóng vaitrò đưa ra các phản hồi nhằm hiệu chỉnh các mô hinh sau quá trìnhhuấn luyện Tập dữ liệu này gọi là tập dữ liệu kiểm chứng (validationset) Thực ra, đây mới nê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ỉ cần nắm được rằng, tập validation là tập cho phéplựa chọn mô hình huấn luyện cho phù hợp, còn testing set là tập đánhgiá lại mô hình lần cuối cùng Điều này, cũng giống như các bạn họctrên lớp, có các bài kiểm tra miệng, bài tập, kiểm tra giữa kỳ để đánhgiá mức độ học của bạn, từ đó biết mình yếu phần nào, cần bổ sungphần nào để chuẩn bị cho bài thi cuối cùng vậy Và cũng do đó, nêncác đoạn phía sau này, chúng ta sẽ tạm dùng từ tiếng anh (Validationset và testing set) để giữ được nghĩa vốn có này
CHƯƠNG 37 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ấnluyệ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ấpthấp cũ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 gian cho phép lựa chọn mô hình phù hợp
CHƯƠNG 38 Validation set có tác dụng giúp tìm kiếm mô hình tốtnhấ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 địnhcái nào sẽ là mô hình tốt nhất cuối cùng bằng cách so sánh các độ đo
Trang 27hiệ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ình chẳ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
CHƯƠNG 39 Validation set cũng giúp phát hiện và dừng sớm (earlystopping) quá trình huấn luyện mô hình khi lỗi trên validation set tănglên đột biến, vì đây là dấu hiệu của mô hình overfitting Kỹ thuật earlystopping là một kỹ thuật được sử dụng khá phổ biến để tránh việcoverfitting Mặc dù nhìn có vẻ khá đơn giản, nhưng việc thực hiện nótrên thực tế lại khá phức tạp Sỡ dĩ như vậy là do lỗi dự đoán trênvalidation set có thể dao động trong quá trình huấn luyện, tạo ra nhiềucực tiểu địa phương Sự phức tạp này đã dẫn đến việc có rất nhiều cácquy tắc đặc biệt được xây dựng và đề xuất để xác định chí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ậpvalidation set
CHƯƠNG 40
Hình 40.1.1.1: Validation
CHƯƠNG 41 Như trên hình vẽ trên, ta thấy chúng ta có thể dừngviệc huấn luyện tại vị trí có sự thay đổi rõ rệt sai số trong tậpvalidation set Đây là thời điểm xảy ra overfitting
41.1.1 Testing set
CHƯƠNG 42 Mục tiêu của machine learning là tạo ra những mô hình
có khả năng tổng quát hóa để dự đoán tốt trên cả dữ liệu chưa thấybao 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
Trang 28đượ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 đã được huấ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ờigiả vờ như không biết và đưa các giá trị đầu vào của tập vào mô hình
dự đoán để nhận kết quả dự đoán đầu ra Sau đó chúng ta có thể nhìnvào các nhãn thực và so sánh nó với kết quả dự đoán của các đầu vàotương ứng này và xem liệu mô hình có dự đoán đúng hay không Việctí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ử
CHƯƠNG 43 Các lỗi dự đoán này được đánh giá thông qua rất nhiềuchỉ 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ếthơ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 lossfunctionhay objective function sử dụng để tối ưu hóa mô hình trên tập huấnluyện Nghĩa là quá trình kiểm thử và quá trình huấn luyện là hoàntoàn độc lập với nhau, cả về bộ dữ liệu lẫn cách thức so sánh chỉ số.CHƯƠNG 44 Tập dữ liệu kiểm thử tốt là một tập dữ liệu độc lập vớitậ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 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 saikhác trên testing set, thì việc rất có khả năng nó bị overfitting (xemhì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
CHƯƠNG 45
Trang 30CHƯƠNG 47
Trang 31Chương 2 Mô hình bài toán
CHƯƠNG 48 MÔ HÌNH BÀI TOÁN48.1 Quy trình thực hiện
CHƯƠNG 49 Bước 1: Tìm hiểu ngôn ngữ lập trình python và cáckhái niệm và thuật ngữ trong machine learning, deep learning, trainingset, testing set, validation
CHƯƠNG 50 Bước 2: Tìm kiếm bài báo liên quan đến nhận diệnbiểu cảm bằng nhiều phương pháp khá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ênquan
CHƯƠNG 51 Bước 3: Nắm kiến thức Python cơ bản, tìm hiểu cácthư viện keras, opencv, tensorflow và các khái niệm, một số các thuậttoán liên quan đến machine learning, deep learning Thời gian thựchiệ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
CHƯƠNG 52 Bước 4: Tìm hiểu về thuật toán convolutional neuralnetwork(CNN), supper vector machine(SVN)
CHƯƠNG 53 Bước 5: Ứng dụng sử dụng bộ dữ liệu FER2013 trênKaggle để huấn luyện và kiểm tra độ chính xác cho hệ thống
CHƯƠNG 54 Bước 6: Chạy thử chương trình và cải thiện độ chínhcho bộ dữ liệu hoặc mã nguồn huấn luyện Cung cấp thêm dữ liệu cho
hệ thống hoặc thêm các bộ lọc và mạng neural để tăng độ chính xác