GIỚI THIỆU
Tổng Quan
Hiện nay, an ninh bảo mật đang trở thành một yêu cầu cấp thiết trên toàn cầu, dẫn đến sự phát triển của các hệ thống nhận dạng con người với độ tin cậy ngày càng cao Nhận dạng khuôn mặt, một trong những phương pháp quan trọng để phân biệt con người, đang nhận được nhiều sự quan tâm Việc thu thập và xử lý thông tin từ ảnh để nhận diện đối tượng ngày càng phổ biến, cho phép thu thập thông tin mà không cần tác động trực tiếp đến đối tượng Sự tiến bộ trong khoa học máy tính đã tạo điều kiện thuận lợi cho việc nhận dạng khuôn mặt từ ảnh số Mặc dù các hệ thống nhận dạng offline hiện nay đã đạt độ tin cậy cao, nhưng các hệ thống online vẫn còn nhiều hạn chế cần khắc phục.
Trong đồ án này, chúng em sẽ tiếp tục nghiên cứu bài toán nhận dạng offline, trong đó các đối tượng được thu thập thành các file dữ liệu và chuyển về trung tâm để phân tích Phần đầu của nghiên cứu sẽ tập trung vào bài toán nhận dạng thông thường, trong khi phần hai sẽ chuyên sâu vào nhận dạng giới tính.
1.1.2 Mục tiêu của đồ án
Sử dụng thư viện Multi Task Convolutional Neural Network để trích xuất khuôn mặt từ ảnh đầu vào, sau đó áp dụng mô hình đã được huấn luyện trước FaceNet để giảm chiều dữ liệu các vector khuôn mặt xuống còn 128 chiều Cuối cùng, các thuật toán Machine Learning được sử dụng để huấn luyện mô hình và lựa chọn mô hình tốt nhất.
Input: Ảnh chụp mặt người.
Output: Giới tính của người đó.
- Tìm hiểu về Machine Learning và Deep Learning
- Các thuật toán nhận diện
- Nghiên cứu thư viện Multi Taks Convolutional Neural Network và FaceNet
- Xây dựng chương trình nhận dạng giới tính con người sử dụng Machine Learning.
- Ứng dụng đề tài phục vụ cho việc nghiên cứu về nhiều lĩnh vực.
Phương pháp – kết quả
- Phương pháp nghiên cứu lý thuyết:
+ Tìm hiểu tổng quan về Machine Learning và bài toán nhận diện khuôn mặt trong thị giác máy tính.
- + Tìm hiểu thư viện Multi Taks Convolutional Neural Network và FaceNet.
+ Tìm hiểu thư viện Keras và một số thư viện khác.
- Phương pháp nghiên cứu thực nghiệm:
+ Tiến hành phân tích và cài đặt trên Python
+ Tiến hành training data cho máy học.
- Tạo ra chương trình nhận dạng giới tính thông qua ảnh có sẵn thực trên hệ điều hành Window.
Cấu Trúc đồ án
Nội dung chính của chuyên đề được chia thành 4 phần như sau:
Chương 1: Giới thiệu: Chương này trình bày một cách tổng quan về mục tiêu, đối tượng và phạm vi nghiên cứu, các hướng tiếp cận để giải quyết bài toán nhận dạng và kết quả dự tính.
Chương 2: Cơ sở lý thuyết: Tìm hiểu phương pháp máy học và tìm hiểu các thư viện, ứng dụng Machine Learning và bài toán nhận diện khuôn mặt.
Chương 3: Xây dựng ứng dụng: Trên cơ sở thư viện mã nguồn mở xây dựng chương trình nhận diện giới tính con người qua ảnh có sẵn, cùng với những phân tích chương trình.
Chương 4: Kết luận và hướng phát triển: Đánh giá kết quả và hướng phát triển nghiên cứu.
CƠ SỞ LÝ THUYẾT
Tổng quan về Deep Learning và bài toán nhận diện khuôn mặt trong thị giác máy tính
2.1.1 Tổng quan về Deep Learning
Deep Learning là một nhánh của Trí tuệ nhân tạo, sử dụng kỹ thuật học máy để giúp máy tính và thiết bị hoạt động một cách hợp lý Tên gọi "Deep Learning" xuất phát từ việc nó khai thác nhiều lớp trong mạng, bao gồm cả lớp ẩn Việc học sâu hơn cho phép trích xuất thông tin phức tạp hơn.
Phương pháp Deep Learning sử dụng các chương trình phức tạp để mô phỏng trí thông minh con người, giúp máy móc nhận diện và phân loại các họa tiết khác nhau Nhận dạng mẫu đóng vai trò quan trọng trong Deep Learning, cho phép máy tính hoạt động mà không cần lập trình mở rộng nhờ vào Machine Learning Qua đó, máy móc có khả năng xử lý các tệp hình ảnh, văn bản và âm thanh, thực hiện các tác vụ tương tự như con người.
Hình 1.Deep Learning là gì ? 2.1.1.2 Tầm quan trọng của Deep Learning
Deep Learning ngày càng trở nên phổ biến và đóng góp lớn vào việc nâng cao sự tiện lợi trong cuộc sống hàng ngày Xu hướng này dự kiến sẽ tiếp tục phát triển trong tương lai, từ công nghệ hỗ trợ đỗ xe tự động đến nhận diện khuôn mặt tại sân bay, Deep Learning đang thúc đẩy mạnh mẽ quá trình tự động hóa trong thế giới hiện đại.
Deep learning ngày càng trở nên quan trọng do sự gia tăng nhanh chóng của lượng dữ liệu mà thế giới đang tạo ra, điều này tạo ra nhu cầu lớn về cấu trúc dữ liệu Công nghệ này tận dụng khối lượng dữ liệu khổng lồ và khả năng truy cập dễ dàng để đạt được kết quả chính xác thông qua các mô hình học tập lặp.
Phân tích lặp đi lặp lại các bộ dữ liệu lớn giúp loại bỏ lỗi và sự khác biệt trong quá trình tìm kiếm, dẫn đến kết luận đáng tin cậy Deep learning sẽ tiếp tục ảnh hưởng mạnh mẽ đến lĩnh vực kinh doanh và cá nhân, đồng thời tạo ra nhiều cơ hội việc làm trong tương lai.
2.1.1.3 Deep Learning hoạt động như thế nào ?
Deep learning là một phương pháp học máy dựa trên các thuật toán lặp để mô phỏng trí thông minh của con người Mạng lưới thần kinh nhân tạo sử dụng các cấp độ phân cấp để xử lý thông tin, bắt đầu từ những khái niệm đơn giản và dần dần phát triển thành những thông tin phức tạp hơn Mỗi cấp độ mới giúp máy học tiếp thu thêm kiến thức và kết hợp với những gì đã học được ở các cấp độ trước Cuối cùng, hệ thống tổng hợp thông tin để tạo ra đầu ra có ý nghĩa, phục vụ cho tư duy logic phức tạp.
Hình 2.Cách thức hoạt động của Deep Learning
2.1.1.4 Các thuật toán Deep Learning sử dụng
Hình 3.Các thuật ngữ Deep Learning
2.1.1.5 Một số ứng dụng của Deep Learning
Trợ lý ảo như Amazon Echo, Google Assistant, Alexa và Siri đang sử dụng công nghệ học sâu để tạo ra trải nghiệm người dùng cá nhân hóa Chúng có khả năng nhận diện giọng nói và ngữ điệu, mang đến trải nghiệm tương tác gần gũi với con người thông qua các mạng lưới thần kinh sâu Những trợ lý này hỗ trợ người dùng trong việc mua sắm, điều hướng, ghi chú, chuyển đổi văn bản và thậm chí đặt lịch hẹn tại thẩm mỹ viện.
Nhận dạng khuôn mặt trên iPhone sử dụng công nghệ Deep Learning để xác định các điểm dữ liệu từ khuôn mặt của bạn, giúp mở khóa điện thoại và nhận diện bạn trong hình ảnh Công nghệ này bảo vệ điện thoại khỏi việc mở khóa không mong muốn và mang lại trải nghiệm mượt mà, ngay cả khi bạn thay đổi kiểu tóc, giảm cân hay trong điều kiện ánh sáng yếu Mỗi lần mở khóa, Deep Learning tạo bản đồ độ sâu khuôn mặt bằng cách sử dụng hàng ngàn điểm dữ liệu, cho phép thuật toán xác định chính xác danh tính của bạn.
Cá nhân hóa đang trở thành xu hướng quan trọng trong thương mại và giải trí, với các ông lớn như Amazon và Netflix đầu tư mạnh vào công nghệ Deep Learning Hệ thống này giúp cung cấp trải nghiệm mua sắm và giải trí được cá nhân hóa, với các gợi ý phim và sản phẩm dựa trên "mẫu" hành vi của người dùng Những doanh nghiệp này phát triển mạnh nhờ khả năng đưa ra các tùy chọn phù hợp với sở thích, thói quen truy cập gần đây, và mối quan hệ với các thương hiệu, diễn viên, nghệ sĩ, cùng với lịch sử duyệt web của người dùng trên nền tảng của họ.
Xử lý ngôn ngữ tự nhiên (NLP) là công nghệ then chốt trong sự tiến bộ của trí tuệ nhân tạo, giúp nâng cao khả năng sử dụng và tính tinh vi của các ứng dụng AI Các tổ chức đang áp dụng học sâu để cải thiện độ phức tạp trong NLP, với các ứng dụng phổ biến như tóm tắt tài liệu, trả lời câu hỏi, mô hình hóa ngôn ngữ, phân loại văn bản và phân tích tình cảm Sự phát triển này có thể dẫn đến việc giảm bớt sự cần thiết của can thiệp con người trong lĩnh vực ngôn ngữ và viết lách.
Chăm sóc sức khỏe đã trải qua sự phát triển mạnh mẽ với những cải tiến như phát hiện sớm bệnh tật, hình ảnh định lượng và phẫu thuật robot, cùng với các công cụ hỗ trợ quyết định cho chuyên gia Trong khi đó, ô tô tự lái đang được phát triển mạnh mẽ bởi Uber AI Labs tại Pittsburg, với Deep Learning là nền tảng chính cho các sáng kiến này Các thử nghiệm trên xe tự lái cho thấy khả năng học hỏi từ hàng triệu tình huống, giúp xe điều hướng an toàn và thoải mái nhờ vào dữ liệu từ cảm biến, GPS và lập bản đồ địa lý, cho phép nhận diện đường đi, biển báo và các yếu tố giao thông như tắc nghẽn và người đi bộ.
Học sâu đang nhanh chóng phát triển khả năng tạo ra văn bản gốc, bao gồm cả thơ ca, nhờ vào việc sử dụng các bộ dữ liệu lớn từ internet và tác phẩm của các tác giả nổi tiếng như Shakespeare Các mô hình học sâu học hỏi và mô phỏng sự sáng tạo của con người, với sự hoàn hảo trong chính tả, dấu câu, ngữ pháp, văn phong và giọng điệu Điều này đã dẫn đến việc tạo ra chú thích và tiêu đề trên nhiều nền tảng, chứng minh cho tiềm năng tương lai của công nghệ này.
Nhận dạng hình ảnh là một lĩnh vực quan trọng trong công nghệ, sử dụng mạng thần kinh chuyển đổi để xử lý hình ảnh kỹ thuật số, bao gồm nhận dạng khuôn mặt, nhận dạng đối tượng và phân tích chữ viết tay Công nghệ này dựa trên trí tuệ nhân tạo và phương pháp học máy, cho phép máy tính nhận diện nội dung trong hình ảnh một cách chính xác Ngoài ra, các ứng dụng như tô màu hình ảnh đen trắng và thêm âm thanh vào phim câm đã trở thành những thách thức thú vị cho các nhà khoa học dữ liệu và chuyên gia trong ngành.
Hình 4.Ứng dụng của Deep Learning 2.1.2 Bài toán nhận dạng khuôn mặt trong thị giác máy tính
Nhận dạng khuôn mặt là một phương pháp sinh trắc học nhằm xác định hoặc xác minh danh tính cá nhân thông qua việc so sánh hình ảnh chụp trực tiếp hoặc hình ảnh kỹ thuật số với dữ liệu đã được lưu trữ Đây là một lĩnh vực nghiên cứu quan trọng trong ngành Biometrics, tương tự như nhận dạng vân tay và nhận dạng mống mắt.
Nhận dạng khuôn mặt tương đồng với nhận dạng vân tay và mống mắt, nhưng khác biệt chủ yếu nằm ở bước trích chọn đặc trưng Trong khi nhận dạng vân tay và mống mắt đã phát triển và được áp dụng rộng rãi, nhận dạng khuôn mặt phong phú hơn nhờ khả năng nhận diện người trong nhiều hình ảnh và video trên mạng Hơn nữa, nhận dạng khuôn mặt ít yêu cầu sự tương tác có kiểm soát so với nhận dạng vân tay và mống mắt, mà thường cần sự hợp tác trong môi trường kiểm soát.
Giới thiệu Convolutional Neural Network
Mạng Nơron Chập (CNN) bao gồm nhiều lớp chập và lớp kết nối, được thiết kế để tận dụng cấu trúc 2 chiều của hình ảnh đầu vào hoặc tín hiệu tiếng nói Kiến trúc này sử dụng kết nối cục bộ và trọng số ràng buộc để tạo ra các đặc trưng không thay đổi Một lợi ích nổi bật của CNN là khả năng huấn luyện dễ dàng hơn và số lượng tham số ít hơn so với các mạng kết nối đầy đủ có cùng số đơn vị ẩn.
CNN bao gồm nhiều lớp chập và lớp lấy mẫu con tùy chọn, tiếp theo là các lớp kết nối Đầu vào cho lớp chập là một hình ảnh có kích thước m x m x r, trong đó m là chiều cao và chiều rộng, r là số kênh (ví dụ như ảnh RGB có r = 3) Lớp chập sử dụng k bộ lọc với kích thước n < n < 4, với n nhỏ hơn kích thước hình ảnh và q có thể bằng hoặc nhỏ hơn số kênh r Kích thước bộ lọc tăng lên để tạo ra cấu trúc kết nổi cục bộ, mỗi bộ lọc xoắn với hình ảnh để tạo ra k bản đồ đặc trưng có kích thước m – n + 1 Mỗi bản đồ được lấy mẫu con thông qua việc hợp nhất trung bình hoặc lớn nhất trên khu vực 2 x 2, với phạm vi p từ 2 (cho hình ảnh nhỏ) đến 5 (cho đầu vào lớn hơn) Trước hoặc sau khi lấy mẫu con, một bias bổ sung và hàm kích hoạt phi tuyến được áp dụng cho mỗi bản đồ đặc trưng.
Hình 6.Kiến trúc CNN trong nhận diện hành động con người
Chập hình ảnh đầu vào với các bộ lọc huấn luyện và bias bổ sung tạo ra nhiều bản đồ đặc trưng trong lớp C1 Mỗi bản đồ đặc trưng trong S2 được tổng hợp từ các bản đồ tương ứng trong lớp C1 Quá trình chập và tổng hợp cực đại trong lớp C3 và S4 tương tự như ở lớp C1 và S2 Cuối cùng, các đặc trưng sau khi tổng hợp cực đại trong lớp S4 được mã hóa thành một vector 1 chiều.
Tổng quan về Machine Learning
Machine Learning là thuật ngữ chỉ việc dạy máy tính cải thiện hiệu suất trong các nhiệm vụ qua việc lặp lại Cụ thể, nó liên quan đến các hệ thống mà hiệu suất của máy tính sẽ tốt hơn sau nhiều lần thực hiện Khả năng cơ bản của machine learning là sử dụng thuật toán để phân tích dữ liệu, học hỏi từ đó và đưa ra quyết định hoặc dự đoán liên quan Thay vì lập trình phần mềm với hướng dẫn chi tiết, máy tính tự động điều chỉnh hành động dựa trên kinh nghiệm.
“huấn luyện” bằng cách sử dụng lượng dữ liệu và các thuật toán để học cách thực hiện nhiệm vụ.
Có 2 loại Máy học chính bao gồm học có giám sát (supervised learning) và học không giám sát (unsupervised learning).
Học có giám sát là phương pháp trong đó thuật toán xây dựng một hàm ánh xạ dữ liệu đến kết quả mong muốn Một ví dụ điển hình của học có giám sát là bài toán phân loại, trong đó chương trình cần học cách xấp xỉ một hàm ánh xạ từ một vector đến các lớp khác nhau bằng cách phân tích các mẫu dữ liệu và kết quả tương ứng của hàm đó.
- Học không giám sát - mô hình hóa một tập dữ liệu, không có sẵn các ví dụ đã được gắn nhãn.
2.3.2 Một vài ứng dụng của Machine Learning
Google Maps hiện nay là ứng dụng phổ biến nhất cho việc điều hướng giao thông, đặc biệt khi các dịch vụ di chuyển như Grab và Be ngày càng phát triển Ứng dụng này không chỉ cung cấp thông tin về quãng đường tối ưu và thời gian di chuyển nhanh nhất mà còn phân tích dữ liệu lịch sử và nguồn thông tin khác Nhờ vào các thuật toán Machine Learning phức tạp, Google Maps có khả năng dự đoán lưu lượng giao thông trong tương lai và điều chỉnh tuyến đường của người dùng một cách hiệu quả nhất.
- Mạng xã hội Facebook: Một trong những ứng dụng phổ biến nhất của Machine
Facebook sử dụng công nghệ nhận diện khuôn mặt và nhận dạng hình ảnh để gợi ý người dùng gắn thẻ bạn bè tự động Tính năng này dựa trên DeepFace, cho phép Facebook xác định khuôn mặt phù hợp trong cơ sở dữ liệu của họ, từ đó nâng cao trải nghiệm người dùng trên nền tảng mạng xã hội.
Trợ lý cá nhân ảo là công cụ hỗ trợ người dùng tìm kiếm thông tin hữu ích thông qua các yêu cầu bằng văn bản hoặc giọng nói Ứng dụng của Machine Learning trong lĩnh vực này rất đa dạng, giúp cải thiện khả năng hiểu và phản hồi của trợ lý.
Chuyển đổi lời nói thành văn bản
Xử lý ngôn ngữ tự nhiên
Chuyển đổi văn bản thành giọng nói giúp bạn dễ dàng truy cập thông tin chỉ bằng cách đặt câu hỏi đơn giản như "Lịch trình của tôi vào ngày mai là gì?" hoặc "Các chuyến bay có sẵn cho chuyến công tác của tôi?" Trợ lý cá nhân sẽ tìm kiếm thông tin cần thiết hoặc nhớ lại các truy vấn trước đó để cung cấp câu trả lời chính xác và nhanh chóng.
Phát hiện gian lận là một trong những tính năng quan trọng hàng đầu của Machine Learning, giúp nhận diện các giao dịch đáng ngờ Khi khách hàng thực hiện giao dịch, mô hình máy học sẽ phân tích kỹ lưỡng hồ sơ của họ để tìm kiếm các mẫu bất thường Trong lĩnh vực Machine Learning, phát hiện gian lận được xem như một hình thức phân loại hoạt động.
Thư viện Keras
Keras là một thư viện nơ-ron mã nguồn mở được viết bằng ngôn ngữ lập trình
Python Nó có khả năng chạy trên đầu trang của Tensorflow, Microsoft Cognitive Toolkit,
R, Theano hoặc StripeML Được thiết kế để cho phép thử nghiệm nhanh với các mạng thần kinh sâu, nó tập trung vào việc thân thiện với người dùng, mô-đun và mở rộng.
Keras là một thư viện deep learning 'high-level' sử dụng các backend như TensorFlow, CNTK hoặc Theano, mặc dù Theano sẽ không còn được duy trì Keras nổi bật với cú pháp đơn giản hơn nhiều so với TensorFlow Trong bài viết này, tôi sẽ tập trung vào việc giới thiệu các mô hình sử dụng Keras với TensorFlow làm backend.
Một số tính năng của Keras:
- Keras ưu tiên trải nghiệm của người lập trình
- Keras đã được sử dụng rộng rãi trong doanh nghiệp và cộng đồng nghiên cứu
- Keras giúp dễ dàng biến các thiết kế thành sản phẩm
- Keras hỗ trợ huấn luyện trên nhiều GPU phân tán
- Keras hỗ trợ đa backend engines và không giới hạn bạn vào một hệ sinh thái.
Thư viện FaceNet
FaceNet là một mạng nơ-ron sâu được phát triển để trích xuất đặc trưng từ hình ảnh khuôn mặt Được công bố vào năm 2015 bởi các nhà nghiên cứu của Google, công nghệ này đã mở ra nhiều ứng dụng trong nhận diện khuôn mặt và phân tích hình ảnh.
FaceNet là một công nghệ xử lý hình ảnh khuôn mặt, biến đổi hình ảnh đầu vào thành vector nhúng (embeddings) chứa thông tin quan trọng Quá trình này nén khuôn mặt thành một vector gồm 128 số, giúp định danh khuôn mặt một cách hiệu quả Mỗi khuôn mặt cần nhận diện sẽ có một vector nhúng tương tự, đảm bảo tính chính xác trong việc nhận diện.
Facenet là một mạng siam có khả năng biểu diễn hình ảnh trong không gian Euclidean n chiều, thường là 128 chiều Mục tiêu của nó là giảm khoảng cách giữa các vector embedding, từ đó tăng cường mức độ tương đồng giữa các bức ảnh.
Hầu hết các thuật toán nhận diện khuôn mặt trước Facenet đều sử dụng một vector nhúng (embedding) để biểu diễn khuôn mặt, thông qua một layer bottleneck nhằm giảm chiều dữ liệu.
Các thuật toán embedding thường gặp hạn chế là yêu cầu số lượng chiều lớn (thường từ 1000 trở lên), điều này ảnh hưởng đến tốc độ xử lý Để cải thiện tốc độ tính toán, thường cần áp dụng thêm thuật toán PCA nhằm giảm chiều dữ liệu.
Hàm loss function chỉ đo khoảng cách giữa hai bức ảnh, do đó trong quá trình huấn luyện, mô hình chỉ có thể học một trong hai khả năng: sự giống nhau khi hai ảnh thuộc cùng một lớp hoặc sự khác nhau khi chúng thuộc các lớp khác nhau Điều này dẫn đến việc mô hình không thể đồng thời học được cả sự giống nhau và sự khác nhau trong cùng một lượt huấn luyện.
Facenet đã giải quyết cả 2 vấn đề trên bằng các hiệu chỉnh nhỏ nhưng mang lại hiệu quả lớn:
Mạng cơ sở sử dụng mạng nơ-ron tích chập (CNN) để giảm chiều dữ liệu xuống còn 128 chiều, giúp tăng tốc độ suy diễn và dự báo mà vẫn đảm bảo độ chính xác cao.
Hàm triplet loss được sử dụng làm loss function giúp học được sự tương đồng giữa hai bức ảnh trong cùng một nhóm và phân biệt các bức ảnh không cùng nhóm Phương pháp này mang lại hiệu quả vượt trội so với các kỹ thuật trước đây.
Thư viện Sklearn
Scikit-learn (Sklearn) is a powerful library for machine learning algorithms written in Python It offers a comprehensive set of tools for tackling machine learning and statistical modeling tasks, including classification, regression, clustering, and dimensionality reduction.
Thư viện này kết hợp nhiều thuật toán hiện đại và cổ điển, giúp bạn dễ dàng học hỏi và áp dụng các giải pháp hiệu quả cho vấn đề của mình.
Thư viện scikit-learn, được cấp phép bản quyền chuẩn FreeBSD, hoạt động trên nhiều nền tảng Linux và thường được sử dụng làm tài liệu học tập Để cài đặt scikit-learn, trước tiên bạn cần cài đặt thư viện SciPy (Scientific Python).
- Numpy: Gói thư viện xử lý dãy số và ma trận nhiều chiều
- SciPy: Gói các hàm tính toán logic khoa học
- Matplotlib: Biểu diễn dữ liệu dưới dạng đồ thị 2 chiều, 3 chiều
- IPython: Notebook dùng để tương tác trực quan với Python
- SymPy: Gói thư viện các kí tự toán học
- Pandas: Xử lý, phân tích dữ liệu dưới dạng bảng
Thư viện tập trung vào việc mô hình hóa dữ liệu Nó không tập trung vào việc truyền tải dữ liệu, biến đổi hay tổng hợp dữ liệu.
Sau đây là một số nhóm thuật toán được xây dựng bởi thư viện scikit-learn:
- Clustering: Nhóm thuật toán Phân cụm dữ liệu không gán nhãn Ví dụ thuật toán
Kiểm thử chéo, hay còn gọi là cross validation, là một phương pháp đánh giá hiệu quả của thuật toán học giám sát Nó sử dụng dữ liệu kiểm thử (validation data) trong quá trình huấn luyện mô hình để đảm bảo rằng mô hình có khả năng tổng quát tốt trên dữ liệu chưa thấy.
Datasets là tập hợp các bộ dữ liệu được tích hợp sẵn trong thư viện, bao gồm những bộ dữ liệu như iris và digit Hầu hết các bộ dữ liệu này đã được chuẩn hóa, giúp nâng cao hiệu suất trong quá trình huấn luyện.
Dimensionality reduction aims to reduce the number of significant attributes in a dataset through methods such as data representation, feature selection, and aggregation A prominent example of this technique is the Principal Component Analysis (PCA) algorithm, which effectively simplifies data while preserving essential information.
Các phương pháp tập hợp, hay còn gọi là ensemble methods, kết hợp nhiều thuật toán học máy để cải thiện hiệu suất dự đoán, vượt trội hơn so với từng thuật toán riêng lẻ.
- Feature extraction: Trích xuất đặc trưng Mục đích là để định nghĩa các thuộc tình với dữ liệu hình ảnh và dữ liệu ngôn ngữ.
- Feature selection: Trích chọn đặc trưng Lựa chọn các đặc trưng có ý nghĩa trong việc huấn luyện mô hình học giám sát.
- Parameter Tuning: Tinh chỉnh tham số Các thuật toán phục vụ việc lựa chọn tham số phù hợp để tối ưu hóa mô hình.
- Manifold Learning: Các thuật toán học tổng hợp và Phân tích dữ liệu đa chiều phức tạp.
Supervised learning encompasses a broad range of machine learning algorithms, including linear models, discriminant analysis, naive Bayes, lazy methods, neural networks, support vector machines, and decision trees These models are designed to learn from labeled data, enabling them to make predictions or classifications based on new, unseen inputs.
XÂY DỰNG ỨNG DỤNG
Yêu cầu hệ thống
- Thư viện Multi Task Convolutional Neural Network và FaceNet
Các bước thực hiện
Dữ liệu gồm 2200 bức ảnh từ 2 bộ dữ liệu là CelebA và UTK Faces gồm 919 nam và 1281 nữ
Bộ dữ liệu Celeb chủ yếu chứa hình ảnh khuôn mặt của người nổi tiếng, tuy nhiên, độ chính xác của mô hình vẫn chưa cao khi áp dụng cho khuôn mặt người già và trẻ em Do đó, cần bổ sung thêm 200 ảnh từ UTK Faces để cải thiện hiệu suất của mô hình.
Phân chia bộ dữ liệu: Trainingset: 80% và Testset: 20%
3.2.2 Cài đặt thư viện Multi Task Convolutional Neural Network để trích xuất khuôn mặt
3.2.3 Cài đặt một số thư viện khác
Để tiết kiệm thời gian cho các lần sử dụng sau, việc lưu trữ các mảng đã chuyển đổi từ ảnh khuôn mặt là cần thiết, vì quá trình trích xuất khuôn mặt và vector embedding sử dụng deep learning thường mất nhiều thời gian thực thi.
Asarray: chuyển ảnh về pixels
Expand_dims: mở rộng chiều cho tương ứng đầu vào của model facenet.
3.2.4 Liên kết Googgle Collab và Google Drive
Lấy toàn bộ dữ liệu huấn luyện, dữ liệu nén
3.2.5 Phân chia bộ train và bộ test
Phân chia bộ train và bộ test để trích xuất khuôn mặt bằng train_test_split do sklearn hỗ trợ theo tỉ lệ train 80% và test 20%
Chuyển đổi tử ảnh sang vector số thực
3.2.7 Kiểm tra độ chính xác
Sử dụng hàm cross_val_score do sklearn hỗ trợ để đánh giá
Dưới đây là kết một vài quả dự đoán chính xác của model.
Hình 8.Kết quả chương trình