1. Trang chủ
  2. » Luận Văn - Báo Cáo

Báo cáo btl thuộc học phần học máy nhận diện khuôn mặt bằng k nearest neighbors

33 1 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Học máy nhận diện khuôn mặt bằng K-Nearest Neighbors
Tác giả Nguyễn Đình Đức Anh, Ninh Tiến Đạt, Lê Chí Tài
Người hướng dẫn TS Lê Thị Thủy
Trường học Trường Đại học Công nghiệp Hà Nội
Chuyên ngành Công nghệ thông tin
Thể loại Báo cáo BTL
Năm xuất bản 2022
Thành phố Hà Nội
Định dạng
Số trang 33
Dung lượng 1,2 MB

Nội dung

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 1

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI

KHOA CÔNG NGHỆ THÔNG TIN

Trang 2

MỤ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 3

2.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 4

DANH 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 5

LỜ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 6

MỞ ĐẦ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 7

Bả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 8

CHƯƠ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 10

Cá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 12

Có 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 13

CHƯƠ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 14

nhấ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ẽ

Ngày đăng: 22/03/2024, 22:37

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w