Mục tiêu của machine learning nói chung làhiểu cấu trúc dữ liệu và điều chỉnh dữ liệu đó thành các model mà mọi người có thểhiểu và sử dụng.Các ứng dụng của Machine Learning đã quá quen
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
Trang 2MỤC LỤC
DANH MỤC HÌNH ẢNH 4
LỜI CẢM ƠN 5
MỞ ĐẦU 6
CHƯƠNG 1: TỔNG QUAN 7
1.1 Tìm hiểu về Machine Learning (Học Máy) 7
1.1.1 Khái niệm 7
1.1.2 Vai trò của Machine Learning 7
1.1.3 Một số kỹ thuật trong Machine Learning 7
1.1.3 Một số phương pháp của Machine Learning 8
1.2 Tìm hiểu về bài toán nhận dạng khuôn mặt 10
1.2.1 Tổng quan về bài toán nhận dạng khuôn mặt 10
1.2.2 Ứng dụng của công nghệ nhận diện khuôn mặt trong đời sống hiện nay 11
CHƯƠNG 2 : CÁC PHƯƠNG PHÁP GIẢI QUYẾT VẤN ĐỀ 12
2.1 Thuật toán K-Nearest Neighbor (KNN) 12
2.1.1 Định nghĩa 12
2.1.2 Quy trình làm việc của thuật toán KNN 12
2.1.3 Ví dụ minh họa 12
2.1.4 Ví dụ về KNN nhiễu 13
2.1.5 Khoảng cách trong không gian vector 13
2.1.6 Ưu điểm của thuật toán 13
2.1.7 Nhược điểm của thuật toán 13
2.2 Naive Bayes 14
2.2.1 Định nghĩa 14
2.2.2 Cách hoạt động 14
2.2.3 Ưu điểm của thuật toán 15
2.2.4 Nhược điểm của thuật toán 15
2.3 Convolutional Neural Network (CNN) 16
2.3.1 Định nghĩa 16
Trang 32.3.2 Lớp tích chập - Convolution Layer 17
2.3.3 Cách hoạt động 18
2.3.4 Ưu điểm của thuật toán 20
2.3.5 Nhược điểm của thuật toán 20
2.4 Support Vector Machine (SVM) 20
2.4.1 Định nghĩa 20
2.4.2 Ví dụ minh họa 21
2.4.3 Ưu điểm của thuật toán 21
2.4.4 Nhược điểm của thuật toán 22
CHƯƠNG 3 : XÂY DỰNG MÔ HÌNH 23
3.1 Nhận diện khuôn mặt bằng KNN (K-Nearest Neighbors) 23
3.1.1 Lí do chọn KNN (K-Nearest Neighbors) 23
3.1.2 Các thư viện được sử dụng nhận dạng 23
3.3 Bộ dữ liệu huấn luyện thuật toán 25
3.4 Thực hiện xây dựng mô hình 26
Tài liệu Tham khảo 32
Trang 4DANH MỤC HÌNH ẢN
Hình 1.1 Học có giám sát (supervised learning) 8
Hình 1.2 Học không có giám sát (unsupervised learning) 8
Hình 1.3 Học bán giám sát (semi-supervised learning) 9
Hình 1.4 Học tăng cường (reinforcement learning) 10
Hình 2.1 Ví dụ minh họa của thuật toán KNN 12
Hình 2.2 KNN nhiễu 13
Hình 2.3 Mô hình Navie Bayes 14
Hình 2.4 Công thức Navie Bayes 14
Hình 2.5 Vector X 15
Hình 2.6 Dự đoán Y 15
Hình 2.7 Mảng ma trận RGB 6x6x3 16
Hình 2.8 Mô hình train của mạng 16
Hình 2.9 Mô hình lớp tích chập 17
Hình 2.10 Ma trận có bộ lọc 3x3 17
Hình 2.11 Feature map 17
Hình 2.12 Khi áp dụng các Kernel khác nhau 18
Hình 2.13 Lớp tích chập hoạt động với stride là 2 18
Hình 2.14 Chuyển các giá trị tuyến tính 19
Hình 2.15 Max Pooling 2x2 20
Hình 2.16 Ví dụ mô hình SVM 21
Hình 2.17 Ví dụ mô hình SVM 21
Hình 3.8 Minh họa việc thực hiện test kết quả 26
Hình 3.9: Minh họa kích thước ảnh 26
Trang 5LỜI CẢM ƠN
Lời đầu tiền nhóm chúng em xin gửi lời cảm ơn sâu sắc đến giáo viên người trựctiếp hướng dẫn , giảng dạy chúng em trong suốt quá trình học tập , nghiên cứu vàhoàn thành đề tài.Nhận dạng khuôn mặt là một công nghệ luôn được quan tâm , pháttriển cũng như áp dụng vào rất nhiều lĩnh vực hiện nay Từ vấn đề bảo mật cho đến cácvấn đề liên quan đến việc điểm danh , chấm công ,…Vì vậy , đã có rất nhiều phươngpháp được áp dụng để giải quyết vấn đề này như : mô hình Navie Bayes , mô hìnhSVM (Support Vector Machine) ,mô hình CNN (Convolutional Neural Network) hay
mô hình KNN (K-Nearest Neighbor) , Mỗi mô hình đều có điểm mạnh riêng củamình và đều cho ra kết quả và độ chính xác cao Tuy nhiên nhóm bọn em đã thực hiệnchọn mô hình KNN (K-Nearest Neighbors) để làm giải quyết vấn đề đề tài kết thúcmôn của mình.Trong quá trình nghiên cứu và làm đề tài, do năng lực, kiến thức, trình
độ bản thân chúng em còn hạn hẹp nên không tránh khỏi những thiếu sót và chúng emmong mỏi nhận được sự thông cảm và những góp ý từ quý thầy cô cũng như các bạntrong lớp Chúng em xin chân thành cảm ơn
Hà Nội , ngày 11 tháng 6 năm 2022
Thành viên NhómNguyễn Đình Đức AnhNinh Tiến Đạt
Lê Chí Tài
Trang 6MỞ ĐẦU
Những năm gần đây,AI nổi lên như một bằng chứng của cuộc cách mạng côngnghiệp lần thứ 4 Trí tuệ nhân tạo có thể được định nghĩa như một ngành của khoa họcmáy tính liên quan đến việc tự động hóa các hành vi thông minh.Machine learning làmột lĩnh vực của trí tuệ nhân tạo (AI) Mục tiêu của machine learning nói chung làhiểu cấu trúc dữ liệu và điều chỉnh dữ liệu đó thành các model mà mọi người có thểhiểu và sử dụng.Các ứng dụng của Machine Learning đã quá quen thuộc với conngười: xe tự hành của Google và Tesla, hệ thống tự tag khuôn mặt trên Facebook, hệthống gợi ý sản phẩm của Amazon, hệ thống gợi ý phim của Netflix …, chỉ là một vàitrong vô vàn những ứng dụng của trí tuệ nhân tạo và cụ thể là Machine Learning.Xuhướng phát triển công nghệ thông tin ngày càng tăng, song song với nó lượng dữ liệuđược sinh ra cũng ngày lớn Vì vậy nhu cầu để xử lý dữ liệu cũng lớn hơn, MachineLearnig đang góp phần giải quyết vấn đề này Một trong những thuật toán thường dùngtrong Machine Learning đó là thuật toán K-Nearest Neighbor Ứng dụng của thuật toánnày được sử dụng rất nhiều và rộng rãi trong các bài toán phân lớp
NHÓM 5
Trang 7Bảng phân công công việc
1 Nguyễn Đình Đức Anh -Tìm hiểu về nhận dạng khuôn mặt.
-Tìm hiểu về nhận diện khuôn mặt bằng K-Nearest Neighbor.
-Xây dựng chương trình.
3 Ninh Tiến Đạt -Các phương pháp để nhận dạng khuôn
mặt
Trang 8CHƯƠNG 1: TỔNG QUAN 1.1 Tìm hiểu về Machine Learning (Học Máy)
1.1.1 Khái niệm
Là một lĩnh vực của trí tuệ nhân tạo liên quan đến việc nghiên cứu và xây dựngcác kĩ thuật cho phép các hệ thống học tự động từ dữ liệu để giải quyết các vấn đề cụthể Ví dụ các mát có thể học cách phân loại thư điện tử có phải thư rác hay không và
tự động sắp xếp vào các thư mục tương ứng.Machine Learning có liên quan thống kêvới cả hai lĩnh vực đều nghiên cứu việc phân tích dữ liệu, nhưng khác với thống kê,học máy tập trung vào sự phức tạp của các giải thuật trong việc thực thi tínhtoán.Machine Learning có hiện nay được áp dụng rộng rãi bao gồm truy tìm dữ liệu,máy phân tích thị trường chứng khoán, nhận dạng tiếng nói và chữ viết …
1.1.2 Vai trò của Machine Learning
Ngày nay, hầu hết các ngành nghề khi phải làm việc với lượng dữ liệu lớn đang dần nhận thấy sự quan trọng của machine learning Nhiều ngành nghề đã áp dụng chúng vào trong thực tiễn
Dịch vụ tài chính: Có thể thấy ngành nghề này liên quan đến những con số và
dữ liệu rất cao, chúng được sử dụng để xác định những thông tin quan trọng về
dữ liệu và ngăn chặn gian lận Phân tích được các cơ hội đầu tư tránh những rủiro
Chính phủ: Các cơ quan an ninh cộng đồng và các đơn vị công ích đã sử dụngcho các ứng dụng như phân tích dữ liệu cảm biến, phát hiện gian lận và hành vitrộm cắp danh tính
Chăm sóc sức khỏe: Các thiết bị đeo trên người là ứng dụng dựa trên machinelearning, chúng có thể phân tích cảm biến để đánh giá sức khỏe của bệnh nhântheo thời gian thực và đưa ra cảnh báo kịp thời
Dầu khí: ngành dầu khí sử dụng để tìm kiếm những nguồn năng lượng mới.Phân tích được các chất khoáng phía dưới lòng đất và dự đoán lỗi cảm biến củanhững máy lọc dầu
Giao thông vận tải: Phân tích mô hình và xu hướng cho các địa hình cho ngànhvận tải Đưa ra những tuyến đường hiệu quả hơn và dự đoán những vấn đề tiềm
ẩn về lợi nhuận
1.1.3 Một số kỹ thuật trong Machine Learning
Trợ lý cá nhân ảo (Virtual Personal Assistants)
Nhận dạng khuôn mặt , giọng nói , vân tay , chữ , số ,…
Chuyển đổi lời nói thành văn bản
Xử lý ngôn ngữ tự nhiên
Trang 9 Chuyển đổi văn bản thành giọng nói
Ứng dụng trong các mạng xã hội
Tự động phân loại
1.1.3 Một số phương pháp của Machine Learning
- Học có giám sát (supervised learning) :
Hình 1.1 Học có giám sát (supervised learning)
Học máy có giám sát yêu cầu thực hiện huấn luyện thuật toán với cả dữ liệu đầuvào sẽ được gắn nhãn Các thuật toán học tập có giám sát phù hợp với các tác vụsau:
● Phân loại nhị phân: Chia dữ liệu thành hai loại
● Phân loại nhiều lớp: Lựa chọn giữa nhiều hơn hai loại câu trả lời
● Mô hình hồi quy: Dự đoán các giá trị liên tục
● Ghép nối: Kết hợp các dự đoán của nhiều mô hình học máy để tạo ra dựđoán chính xác
- Học không có giám sát (unsupervised learning) :
Hình 1.2 Học không có giám sát (unsupervised learning)
Trang 10Các thuật toán học máy không giám sát không yêu cầu dữ liệu phải đượcgắn nhãn Hầu hết các loại học sâu, bao gồm cả mạng thần kinh nhân tạo, đều làcác thuật toán không được giám sát Các thuật toán học tập không giám sát tốtcho các tác vụ sau:
● Phân cụm: Tách tập dữ liệu thành các nhóm dựa trên sự giống nhau
● Phát hiện bất thường: Xác định các điểm dữ liệu bất thường trong tập dữliệu
● Khai thác liên kết: Xác định các tập hợp các mục trong tập dữ liệuthường xuyên xảy ra cùng nhau
Giảm kích thước: Giảm số lượng biến trong tập dữ liệu
- Học bán giám sát (semi-supervised learning) :
Hình 1.3 Học bán giám sát (semi-supervised learning)
Học máy bán giám sát hoạt động khi các nhà khoa học cung cấp một lượngnhỏ dữ liệu đào tạo được gắn nhãn cho một thuật toán Từ đó, thuật toán tìm hiểucác kích thước của tập dữ liệu, sau đó nó có thể áp dụng cho dữ liệu mới, chưađược gắn nhãn Hiệu suất của các thuật toán thường được cải thiện khi chúng đàotạo trên các tập dữ liệu được gắn nhãn Tuy nhiên việc ghi nhãn dữ liệu có thể tốnthời gian và tốn kém Học máy bán giám sát đặt nền tảng trung gian giữa hiệusuất của học máy có giám sát và hiệu quả của học máy không giám sát Một sốlĩnh vực sử dụng phương pháp học máy bán giám sát bao gồm:
Dịch máy: Dạy các thuật toán dịch ngôn ngữ dựa trên ít hơn một từ điểnđầy đủ các từ
Phát hiện gian lận: Xác định các trường hợp gian lận khi bạn chỉ có mộtvài ví dụ tích cực
Trang 11 Dán nhãn dữ liệu: Các thuật toán được đào tạo trên tập dữ liệu nhỏ cóthể học cách áp dụng nhãn dữ liệu cho các tập lớn hơn một cách tự động.
- Học tăng cường (reinforcement learning) :
Hình 1.4 Học tăng cường (reinforcement learning)
Học máy tăng cường hoạt động bằng cách lập trình một thuật toán với mộtmục tiêu riêng biệt và một bộ quy tắc được chỉ định để hoàn thành mục tiêu đó.Các nhà khoa học cũng lập trình thuật toán để tìm kiếm phần thưởng tích cực –
mà nó nhận được khi thực hiện một hành động có lợi cho mục tiêu cuối cùng –
và tránh các hình phạt – mà nó nhận được khi thực hiện một hành động khiến nócàng xa mục tiêu cuối cùng Học máy tăng cường thường được sử dụng trong cáclĩnh vực như:
● Robot: Robot có thể học cách thực hiện các nhiệm vụ trong thế giới thựcbằng cách sử dụng kỹ thuật này
● Trò chơi video: Học máy tăng cường đã được sử dụng để dạy bot chơimột số trò chơi điện tử
● Quản lý nguồn lực: Với nguồn lực hữu hạn và một mục tiêu xác định,việc học máy tăng cường có thể giúp doanh nghiệp lập kế hoạch phân bổnguồn lực
1.2 Tìm hiểu về bài toán nhận dạng khuôn mặt
1.2.1 Tổng quan về bài toán nhận dạng khuôn mặt
Bài toán nhận diện khuôn mặt là một bài toán phổ biến trong AI, nó có tên tiếnganh thường gọi là Face recognition:
Input: 1 ảnh chứa mặt người (có thể là một người hoặc nhiều hơn)
Output: xuất ra tên của người tương ứng có trong k người ở cơ sở dữliệu
Trang 12Có rất nhiều phương pháp được sử dụng để giải quyết bài toán nhận dạng khuônmặt người từ một ảnh đầu vào hoặc nguồn video trực tiếp Có thể kể tới như SupportVector Machine (SVM) , Convolutional Neural Network (CNN) , Naive Bayes , K-Nearest Neighbors (KNN) ,… Nhưng có thể nói thuật toán KNN nổi trội trong đókhi nó có thể dể dàng xây dựng , huấn luyện và thực thi một cách dễ dàng.
1.2.2 Ứng dụng của công nghệ nhận diện khuôn mặt trong đời sống hiện nay
Với việc sử dụng công nghệ nhận diện khuôn mặt có thể mang đến một loạt cáclợi ích tiềm năng, bao gồm:
Không cần phải trực tiếp tiếp xúc với thiết bị để xác thực (các kỹ thuật
xác Thực sinh trắc học dựa trên tiếp xúc khác như máy quét dấu vân tay,
có thể không hoạt động chính xác nếu có vết bẩn trên tay của mộtngười)
Cải thiện mức độ bảo mật
Yêu cầu xử lý ít hơn so với các kỹ thuật xác thực sinh trắc học khác
Dễ dàng tích hợp với các tính năng bảo mật hiện có
Độ chính xác được cải thiện theo thời gian
Có thể được sử dụng để giúp tự động hóa việc xác thực
Nhìn chung, công nghệ nhận diện khuôn mặt đã đang được áp dụng rộng rãi hiệnnay và có thể trong tương lai, công nghệ này sẽ càng phát triển hơn nữa, áp dụng hữuích trong cuộc sống công nghệ hóa hiện đại.Với các ứng dụng được áp dụng rộng rãinhư :
Mở khóa điện thoại
Tìm người mất tích
Hỗ trợ người mù
Nhận diện mọi người trên mạng xã hội
Giúp các giao dịch diện ra an toàn và thuận tiện hơn
Trang 13CHƯƠNG 2 : CÁC PHƯƠNG PHÁP GIẢI QUYẾT VẤN ĐỀ.
2.1 Thuật toán K-Nearest Neighbor (KNN)
2.1.1 Định nghĩa
K-láng giềng gần nhất (K Nearest Neighbor - KNN) là một trong những thuậttoán học có giám sát đơn giản nhất trong Machine Learning Ý tưởng của KNN là tìm
ra output của dữ liệu dữ trên thông tin của những dữ liệu training gần nó nhất
2.1.2 Quy trình làm việc của thuật toán KNN.
Bước 1: Xác định tham số K = số láng giềng gần nhất
Bước 2: Tính khoảng cách đối tượng cần phân lớp với tất cả các đối tượng trongtraining data
Bước 3: Sắp xếp khoảng cách theo thứ tự tăng dần và xác định K láng giềng gầnnhất với đối tượng cần phân lớp
Bước 4: Lấy tất cả các lớp của K láng giềng gần nhất
Bước 5: Dựa vào phần lớn lớp của K để xác định lớp cho đối tượng cần phân lớp
2.1.3 Ví dụ minh họa
Hình 2.1 Ví dụ minh họa của thuật toán KNN
Bài toán được đặt ra: Bạn có điểm của một môn học nhưng bạn không biết thuộcloại nào (Giỏi, khá) Giả sử bạn không biết bất kỳ quy tắc nào để phân loại cả.Ta dễdàng thấy: Hình vuông đỏ biểu diễn cho những bạn có điểm Khá, hình tam giác xanhbiểu diễn cho những bạn có điểm Giỏi Điểm chấm xanh lá là điểm của mình muốntìm thuộc loại nào.Có một cách giải quyết là bạn phải đi khảo sát những người xungquanh Để biết điểm của mình thuộc loại nào thì bạn phải đi hỏi những đứa có điểmgần số điểm mình nhất Giả sử trong lớp 50 đứa, mình khảo sát 3 đứa gần điểm mình
Trang 14nhất và được dữ liệu như hình trên Với K = 3 dựa theo hình trên ta dễ dàng nhận ra cóhai hình tam giác xanh và một hình vuông đỏ có khoảng cách gần nhất với điểm chấmxanh và với tỷ lệ tam giác xanh nhiều hơn hình vuông đỏ ta có thể đoán được điểm củamình là điểm Khá.
2.1.5 Khoảng cách trong không gian vector
Trong không gian một chiều, khoảng cách giữa hai điểm là trị tuyệt đối giữa hiệugiá trị của hai điểm đó Trong không gian nhiều chiều, khoảng cách giữa hai điểm cóthể được định nghĩa bằng nhiều hàm số khác nhau, trong đó độ dài đường thằng nổihai điểm chỉ là một trường hợp đặc biệt trong đó Nhiều thông tin bổ ích (cho MachineLearning) có thể được tìm thấy tại Norms (chuẩn) của vector trong tab Math
2.1.6 Ưu điểm của thuật toán
●Dễ sử dụng và cài đặt
●Việc dự đoán kết quả của dữ liệu mới dễ dàng
● Độ phức tạp tính toán nhỏ
2.1.7 Nhược điểm của thuật toán
●KNN nhiễu dễ đưa ra kết quả không chính xác khi K nhỏ
Trang 15●Cần thời gian lưu training set, khi dữ liệu training và test tăng lên nhiều sẽ mất nhiều thời gian tính toán.
2.2 Naive Bayes
2.2.1 Định nghĩa
Naive Bayes Classification (NBC) là một thuật toán thuộc vào nhóm học máy cógiám sát, dựa trên định lý Bayes về lý thuyết xác suất để đưa ra các phán đoán cũngnhư phân loại dữ liệu dựa trên các dữ liệu được quan sát và thống kê, được ứng dụngrất nhiều trong các lĩnh vực Machine learning dùng để đưa các dự đoán có độ chínhxác cao, dựa trên một tập dữ liệu đã được thu thập
Hình 2.3 Mô hình Navie Bayes
P(X|y) gọi là likelihood: xác suất của đặc trưng X khi đã biết mục tiêu y
P(y) gọi là prior probability của mục tiêu y
Trang 16 P(X) gọi là prior probability của đặc trưng X
Ở đây, X là vector các đặc trưng, có thể viết dưới dạng:
Hình 2.5 Vector X
Trong mô hình Naive Bayes, có hai giả thiết được đặt ra:
Các đặc trưng đưa vào mô hình là độc lập với nhau Tức là sự thay đổi giátrị của một đặc trưng không ảnh hưởng đến các đặc trưng còn lại
Các đặc trưng đưa vào mô hình có ảnh hưởng ngang nhau đối với đầu ramục tiêu
Khi đó, kết quả mục tiêu y để P(y|X) đạt cực đại trở thành:
Hình 2.6 Dự đoán Y
Chính vì hai giả thiết gần như không tồn tại trong thực tế trên, mô hình này mớiđược gọi là naive (ngây thơ) Tuy nhiên, chính sự đơn giản của nó với việc dự đoán rấtnhanh kết quả đầu ra khiến nó được sử dụng rất nhiều trong thực tế trên những bộ dữliệu lớn, đem lại kết quả khả quan Một vài ứng dụng của Naive Bayes có thể kể đếnnhư: lọc thư rác, phân loại văn bản, dự đoán sắc thái văn bản,
2.2.3 Ưu điểm của thuật toán
Hoạt động tốt cho nhiều bài toán/miền sữ liệu và ứng dụng
Đơn giản nhưng đủ tốt để giải quyết nhiều bài toán như phân lớp vănbản, lọc spam,
Cho phép kết hợp tri thức tiền nghiệm (prior knowledge) và dữ liệu quansát được (obserwed data)
Tốt khi có sự chệnh lệch số lượng giữa các lớp phân loại
Huấn luyện mô hình (ước lượng tham số) dễ và nhanh
2.2.4 Nhược điểm của thuật toán
Các thuộc tính trong các đối tượng thường phụ thuộc lẫn nhau
Vấn đề Zero khi phân lớp, nếu có một đối tượng X nào (trong dữ liệuhuấn luyện) không có thuộc tính lớp Ck, có thuộc tính Fi nhận một giátrị cụ thể vij, thì xác suất điều kiện P(Fi = xij | Ck) sẽ luôn bằng 0)
Không được huấn luyện bằng phượng pháp tối ưu mạnh và chặt chẽ