GIỚI THIỆU
Tổng Quan
Hiện nay, vấn đề an ninh bảo mật ngày càng trở nên quan trọng 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 cao Nhận dạng khuôn mặt, một trong những phương pháp được quan tâm, cho phép phân biệt con người một cách hiệu quả Việc thu thập và xử lý thông tin từ ảnh để nhận diện đối tượng đang được ứng dụng rộng rãi, mang lại nhiều lợi ích mà không cần can thiệp vào đố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 nhận dạng khuôn mặt từ ảnh số, với các hệ thống nhận dạng offline đạt độ tin cậy cao, tuy nhiên, các hệ thống online vẫn còn nhiều hạn chế.
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 sẽ đượ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 dự án 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 128 chiều Cuối cùng, sử dụng các thuật toán Machine Learning để huấn luyện 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 logic Tên gọi "Deep Learning" xuất phát từ việc nó liên quan đến việc khám phá sâu vào nhiều lớp của mạng, bao gồm cả lớp ẩn Càng học sâu, khả năng trích xuất thông tin phức tạp càng tăng lê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 của 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 là yếu tố quan trọng trong Deep learning, cho phép máy tính hoạt động hiệu quả mà không cần lập trình mở rộng nhờ vào Machine learning Thông qua Deep learning, 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 đang ngày càng trở nên phổ biến và góp phần quan trọng 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 sự tự động hóa mạnh mẽ trong thế giới hiện đại.
Deep learning ngày càng trở nên quan trọng do sự gia tăng lượng dữ liệu khổng lồ mà thế giới tạo ra, điều này đòi hỏi một cấu trúc xử lý dữ liệu quy mô lớn Công nghệ này tận dụng khối lượng dữ liệu ngày càng phong phú và sự sẵn có của chúng để đạt được những 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 những kết luận đáng tin cậy Deep learning sẽ tiếp tục ảnh hưởng mạnh mẽ đến cả lĩnh vực kinh doanh và cuộc sống cá nhân, đồng thời mở 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 phương pháp 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 thực hiện việc này qua nhiều cấp độ phân cấp, bắt đầu từ việc học những thông tin đơn giản Khi các cấp độ tăng lên, thông tin được phát triển và mở rộng, cho phép máy thu thập thêm dữ liệu và kết hợp với kiến thức đã học Cuối cùng, hệ thống sẽ tạo ra một thông tin tổng hợp, có khả năng xử lý các 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 ứng 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 của bạn, mang đến trải nghiệm giao tiếp gần gũi và tự nhiên hơn thông qua các mạng lưới thần kinh sâu Những trợ lý này không chỉ hỗ trợ bạn trong việc mua sắm, điều hướng và ghi chú, mà còn có thể chuyển đổi thông tin thành văn bản và đặt lịch hẹn cho các dịch vụ như 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ệ thiết bị 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 hoặc trong điều kiện ánh sáng kém Mỗi lần mở khóa, Deep Learning phân tích hàng ngàn điểm dữ liệu để tạo bản đồ độ sâu khuôn mặt, từ đó thuật toán xác định xem đó có phải là bạn hay không.
Cá nhân hóa đang trở thành xu hướng chủ đạo 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 cho phép họ đề xuất các bộ phim và sản phẩm dựa trên "mẫu" hành vi của người dùng Nhờ vào việc phân tích sở thích, lịch sử duyệt web, và mối quan hệ với các thương hiệu, diễn viên, nghệ sĩ, các doanh nghiệp này có khả năng cung cấp trải nghiệm mua sắm và giải trí được cá nhân hóa, đáp ứng nhu cầu của từng khách hàng một cách hiệu quả.
Xử lý ngôn ngữ tự nhiên (NLP) là công nghệ quan trọng, nâng cao khả năng của AI từ tốt đến tuyệt vời Các tổ chức đang áp dụng học sâu để cải thiện độ phức tạp trong các ứng dụng NLP Những ứ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 đang phát triển mạnh mẽ Sự can thiệp của con người trong các công việc liên quan đến ngôn ngữ và viết lách sẽ dần trở nên không cần thiết.
Chăm sóc sức khỏe đang trải qua sự chuyển mình mạnh mẽ với việc ứng dụng công nghệ như trợ lý ảo, bài tập phục hồi sức khỏe và các công cụ hỗ trợ quyết định cho chuyên gia Công nghệ giúp phát hiện sớm bệnh tật và cải thiện quy trình chăm sóc bệnh nhân thông qua việc ghi lại dữ liệu sinh lý và tâm lý liên tục Trong khi đó, lĩnh vực ô tô tự lái cũng đang phát triển nhanh chóng, với Uber AI Labs tại Pittsburg dẫn đầu trong việc biến giấc mơ xe tự lái thành hiện thực Công nghệ Deep Learning cho phép xe tự lái học hỏi từ hàng triệu tình huống, giúp cải thiện khả năng điều hướng và đảm bảo an toàn cho hành khách Dữ liệu từ cảm biến, GPS và bản đồ địa lý được tích hợp để tối ưu hóa lộ trình và phản ứng với các yếu tố như giao thông và người đi bộ.
Học sâu đang tiến bộ nhanh chóng trong việc 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à các tác phẩm văn học nổi tiếng như của 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 khả năng sử dụng chính tả, dấu câu, ngữ pháp, văn phong và giọng điệu một cách hoàn hảo Điều này đã dẫn đến việc tạo ra nhiều chú thích và tiêu đề trên các nền tảng khác nhau, phản ánh những gì chúng ta có thể mong đợi trong tương lai.
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, đối tượng và phân tích chữ viết tay Hiện nay, với sự phát triển của Deep learning, máy tính có khả năng nhận diện hình ảnh một cách chính xác Công nghệ này dựa trên xử lý hình ảnh kỹ thuật số và trí tuệ nhân tạo, đặc biệt là học máy, giúp máy tính hiểu nội dung trong hình ảnh 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 cũng đã 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 lĩnh vực này.
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 (Face Recognition) 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 bằng cách so sánh hình ảnh chụp trực tiếp hoặc hình ảnh kỹ thuật số với bản ghi đã lưu trữ Phương pháp này thuộc lĩnh vực nghiên cứu của sinh trắc học, tương tự như nhận dạng vân tay (Fingerprint Recognition) và nhận dạng mống mắt (Iris Recognition).
Nhận dạng khuôn mặt, mặc dù có sự 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 đến mức ứng dụng rộng rãi, nhận dạng khuôn mặt vẫn đối mặt với nhiều thách thức và tiếp tục là một lĩnh vực nghiên cứu hấp dẫn Đặc biệt, nhận dạng khuôn mặt có nguồn dữ liệu phong phú hơn, vì có thể thu thập từ nhiều ảnh và video liên quan đến con người trên mạng, đồng thời í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, nơi mà dữ liệu cần có sự hợp tác trong môi trường được kiểm soát.
Giới thiệu Convolutional Neural Network
Mạng nơron tích chập (CNN) bao gồm nhiều lớp chập kết hợp với các lớp kết nối, thiết kế để khai thác cấu trúc 2 chiều của hình ảnh hoặc tín hiệu Kiến trúc này sử dụng các kết nối cục bộ và trọng số ràng buộc, giúp tạo ra các đặc trưng không thay đổi Một trong những lợi ích nổi bật của CNN là khả năng dễ dàng huấn luyệ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 các lớp chập và lớp lấy mẫu con, tiếp theo là các lớp kết nối Đầu vào cho lớp chập là hình ảnh có kích thước m x m x r, với m là chiều cao và chiều rộng, và r là số kênh (ví dụ, hình ảnh RGB có r = 3) Lớp chập sử dụng k bộ lọc kích thước n < n < 4, trong đó n nhỏ hơn kích thước hình ảnh và q có thể bằng hoặc nhỏ hơn r Các bộ lọc này tạo ra k bản đồ đặc trưng kích thước m – n + 1 thông qua việc xoắn với hình ảnh Mỗi bản đồ được lấy mẫu con bằng cách áp dụng hợp nhất trung bình hoặc lớn nhất trên khu vực 2 x 2, với p trong khoảng từ 2 đến 5 Trước hoặc sau khi lấy mẫu con, một bias bổ sung và hàm 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
Trong quá trình xử lý hình ảnh, các bộ lọc huấn luyện và bias bổ sung được áp dụng để tạo ra nhiều bản đồ đặc trưng trong lớp C1 Mỗi bản đồ đặc trưng trong lớp S2 được hình thành thông qua việc tổng hợp các bản đồ tương ứng từ 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 một chiều để phục vụ cho bước nhận diện.
Tổng quan về Machine Learning
Machine Learning là một thuật ngữ chỉ việc dạy máy tính cải thiện hiệu suất khi thực hiện nhiệm vụ Nó đề cập đến các hệ thống mà khả năng thực hiện nhiệm vụ của máy tính sẽ tăng lên sau nhiều lần thực hiện Cơ bản, machine learning sử dụng thuật toán để phân tích thông tin, 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 chi tiết cho từng hành động, máy tính được trang bị khả năng tự học và cải thiện.
“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à quá trình mà trong đó thuật toán xây dựng một hàm ánh xạ dữ liệu tới kết quả mong muốn, thường được áp dụng trong bài toán phân loại Trong phương pháp này, chương trình học cách xấp xỉ một hàm ánh xạ từ một vector tới các lớp khác nhau bằng cách phân tích các mẫu dữ liệu, từ đó xác định kết quả 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 giao thông phổ biến nhất, đặc biệt khi kết hợp với các dịch vụ di chuyển như Grab và Be Ứng dụng này không chỉ cung cấp chỉ đường cho người dùng mà còn phân tích quãng đường tối ưu và thời gian di chuyển nhanh nhất Dữ liệu lịch sử về các tuyến đường được thu thập theo thời gian cùng với thông tin từ người dùng như vị trí và tốc độ trung bình Google sử dụng các thuật toán Machine Learning để tổng hợp dữ liệu lớn về lưu lượng giao thông, từ đó dự đoán lưu lượng trong tương lai và điều chỉnh tuyến đường một cách tối ưu 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 để tự động gắn thẻ bạn bè trên nền tảng của mình Tính năng này tìm kiếm và so sánh khuôn mặt với cơ sở dữ liệu của Facebook, từ đó đề xuất người dùng gắn thẻ thông qua công nghệ DeepFace.
Trợ lý cá nhân ảo giúp 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, mang lại hiệu quả cao trong việc cải thiện trải nghiệm người dùng.
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 mộ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 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 nhất của Machine Learning, giúp theo dõi và phân tích hồ sơ giao dịch của khách hàng để phát hiện các mẫu đáng ngờ Trong lĩnh vực này, các thuật toán máy học hoạt động như một công cụ phân loại, nhận diện và ngăn chặn hành vi gian lận hiệu quả.
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 backend như TensorFlow, CNTK, hoặc Theano, trong đó TensorFlow là lựa chọn phổ biến nhất do sự hỗ trợ và cập nhật liên tục Keras nổi bật với cú pháp đơn giản hơn nhiều so với TensorFlow, giúp người dùng dễ dàng tiếp cận và xây dựng các mô hình học sâu mà không cần quá nhiều kiến thức về các thư viện phức tạp Vì vậy, tôi quyết định chọn Keras kết hợp với TensorFlow làm nền tảng cho các mô hình của mình.
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 lưới thần kinh sâu được phát triển bởi các nhà nghiên cứu của Google vào năm 2015, nhằm mục đích trích xuất các đặc điểm từ hình ảnh khuôn mặt của con người.
Hình 7.FaceNet lấy hình ảnh khuôn mặt làm đầu vào và xuất ra vector embedding
FaceNet sử dụng hình ảnh khuôn mặt làm đầu vào và chuyển đổi chúng thành một vector 128 chiều, đại diện cho các đặc điểm quan trọng nhất của khuôn mặt Vector này, được gọi là nhúng (embeddings), chứa đựng tất cả thông tin cần thiết từ hình ảnh Cụ thể, FaceNet nén khuôn mặt thành một vector gồm 128 số, và khuôn mặt cần định danh cũng sẽ có nhúng tương tự.
Facenet là một loại mạng siêu đối xứng (siamese network) được thiết kế để biểu diễn hình ảnh trong không gian Euclide n chiều, thường là 128 chiều Mục tiêu của Facenet 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 chúng.
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 lớp bottleneck nhằm giảm chiều dữ liệu.
Các thuật toán embedding thường gặp phải hạn chế về 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 hiệu suất tính toán, việc áp dụng thuật toán PCA nhằm giảm chiều dữ liệu là cần thiết.
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 ảnh thuộc cùng một lớp hoặc sự khác nhau khi ảnh thuộc các lớp khác nhau Điều này dẫn đến việc mô hình không thể học đồng thời cả sự giống nhau và 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 để 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, đồng thời 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 the most powerful library for machine learning algorithms written in Python It offers a comprehensive set of tools for tackling various 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 học hỏi và dễ dàng phát triển các giải pháp hiệu quả cho bài toán của mình.
Thư viện scikit-learn, được cấp phép bản quyền chuẩn FreeBSD, tương thích với 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 là một phương pháp đánh giá hiệu quả của thuật toán học giám sát, trong đó sử dụng dữ liệu kiểm thử (validation data) để kiểm tra độ chính xác của mô hình trong quá trình huấn luyện.
Datasets là tập hợp các bộ dữ liệu được tích hợp sẵn trong thư viện, với nhiều bộ đã được chuẩn hóa nhằm tối ưu hóa hiệu suất trong quá trình huấn luyện, chẳng hạn như iris và digit.
Dimensionality reduction aims to decrease the number of important attributes in a dataset through techniques such as data representation, feature selection, and aggregation A notable example of this is the Principal Component Analysis (PCA) algorithm, which effectively simplifies data while preserving its essential characteristics.
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 nhằm cải thiện hiệu suất dự đoán vượt trội 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 wide 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, making them essential for various predictive tasks in data science.
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, mô hình hiện tại chưa đạt độ chính xác cao khi nhận diện khuôn mặt của người già và trẻ em Để cải thiện điều này, cần bổ sung thêm 200 ảnh từ UTK Faces.
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
Lưu trữ các mảng đã chuyển đổi từ ảnh khuôn mặt là cần thiết do quá trình trích xuất khuôn mặt và vector embedding sử dụng deep learning mất nhiều thời gian Việc này giúp tiết kiệm thời gian cho những lần sử dụng sau.
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