1. Trang chủ
  2. » Giáo Dục - Đào Tạo

(Tiểu luận) đề tài nhận diện giới tính thông qua avatarmạng xã hội facebook

32 4 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 đề Nhận Diện Giới Tính Thông Qua Avatar Mạng Xã Hội Facebook
Tác giả Trịnh Thị Thảo, Vũ Thị Lan Anh, Nguyễn Phương Hải Linh, Phạm Thành Việt, Nguyễn Lê Hồng Ngọc
Người hướng dẫn Ngô Thùy Linh
Trường học Học viện Ngân Hàng
Chuyên ngành Trí Tuệ Nhân Tạo Trong Kinh Doanh
Thể loại tiểu luận
Năm xuất bản 2021
Thành phố Hà Nội
Định dạng
Số trang 32
Dung lượng 4,8 MB

Cấu trúc

  • I. Giới thiệu chung (5)
    • 1.1. Giới thiệu chúng về facebook và hoạt động quảng cáo (5)
    • 1.2. Phát biểu bài toán nhận dạng giới tính (5)
    • 1.3. Lý do chọn đề tài (6)
  • II. Chuẩn bị dữ liệu (0)
    • 2.1 Cách thức thu nhập dữ liệu (0)
    • 2.2 Kiểu dữ liệu ảnh cần thu nhập (8)
    • 2.3 Số lượng ảnh của từng kiểu dữ liệu ảnh (8)
    • 2.4 Cách thức tổ chức dữ liệu ảnh trên máy (8)
  • III. Giới thiệu tổng quan thuật toán CNN (9)
  • IV. Mã lệnh chương trình (10)
    • 4.1. Tạo thư mục dự án (10)
    • 4.2. Đọc dữ liệu và tiền xử lý ảnh (12)
    • 4.3. Xây dựng mô hình (15)
    • 4.4. Huấn luyện mô hình (20)
    • 4.5. Tìm mô hình tối ưu (22)
    • 4.6. Sử dụng mô hình (25)
  • V. Kết luận (27)
    • 5.1. Nhận định (27)
    • 5.2. Ý nghĩa trên thực tế (29)
  • Tài liệu tham khảo (31)

Nội dung

Phép tích chập là phép nhân giữa mỗi điểm ảnh trong feature vớigiá trị của điểm ảnh tương ứng trong hình ảnh đó.Cấu trúc: Trang 10 Thông thường, một ảnh sẽ được lan truyền qua lớp tích

Giới thiệu chung

Giới thiệu chúng về facebook và hoạt động quảng cáo

Facebook là mạng xã hội hàng đầu, giúp người dùng kết nối và giao lưu với những người có cùng sở thích trong cộng đồng trực tuyến.

Facebook, được thành lập bởi Mark Zuckerberg vào năm 2004 tại Đại học Harvard, đã nhanh chóng trở thành mạng xã hội thành công tại Mỹ vào năm 2006 Đến năm 2011, Facebook đã trở nên phổ biến trên toàn cầu.

Facebook hiện nay vẫn là nền tảng mạng xã hội hàng đầu với số lượng người dùng đông đảo và phổ biến toàn cầu, đặc biệt tại Việt Nam Từ cá nhân đến doanh nghiệp, mọi người sử dụng Facebook với nhiều mục đích khác nhau, bao gồm việc giữ liên lạc và quảng bá sản phẩm, nhằm đáp ứng nhu cầu xã hội của con người (Lukka & James, 2014).

Facebook Ads, hay Quảng cáo Facebook, là hình thức quảng cáo sử dụng nền tảng Facebook Hiện tại, Facebook thu về 82% doanh thu từ quảng cáo (Wolff, 2012, P 70) Quảng cáo sẽ được tự động hiển thị và phân phối dựa trên các đặc điểm cá nhân của người dùng, bao gồm nhân khẩu học, vị trí địa lý và sở thích.

Phát biểu bài toán nhận dạng giới tính

Việc phân tích và trích xuất thông tin từ khuôn mặt đã được các nhà khoa học nghiên cứu từ những năm 90, vì bức ảnh khuôn mặt chứa nhiều thông tin giá trị như danh tính, cảm xúc và giới tính Trong đó, giới tính là một thuộc tính quan trọng với nhiều ứng dụng thực tiễn, chẳng hạn như trong thống kê dân số và phân loại khách hàng.

Máy tính đọc hiểu thông tin trong bức ảnh chỉ hoạt động hiệu quả với một nhóm người nhất định, gặp khó khăn trong việc nhận dạng người thuộc cộng đồng LGBT và người chuyển giới Việc ứng dụng công nghệ này còn gây ra nhiều tranh cãi liên quan đến kỳ thị và phân biệt, làm gia tăng sự chia rẽ trong cộng đồng Ngoài ra, sự khác biệt về độ tuổi và đặc điểm nhận dạng giữa các nhóm người từ các khu vực khác nhau, như người châu Á và châu Âu, cũng tạo ra thách thức Công nghệ nhận dạng khuôn mặt yêu cầu người dùng phải quay rõ mặt về phía camera và không được che chắn bằng khẩu trang hay mũ, điều này làm giảm trải nghiệm của khách hàng.

Tóm lại, mặc dù gặp nhiều thách thức trong nghiên cứu và ứng dụng, bài toán nhận dạng giới tính vẫn giữ vai trò quan trọng trong nhận dạng phân lớp Đây là nền tảng cho việc phát triển các thuật toán khác, góp phần đáng kể vào nghiên cứu về con người và hành vi của họ.

Lý do chọn đề tài

Sự phát triển mạnh mẽ của nền kinh tế đã cải thiện cuộc sống con người, dẫn đến việc họ dành nhiều thời gian cho mạng xã hội Kiến thức, thông tin và xu hướng mới chủ yếu được tiếp thu qua các kênh mạng như Facebook, Instagram và báo điện tử Tính đến tháng 6 năm 2020, Việt Nam có 69.280.000 người dùng Facebook, chiếm 70,1% dân số Nhờ khả năng kết nối lớn, cá nhân và tổ chức đã tận dụng mạng xã hội để quảng bá sản phẩm và dịch vụ Nếu hoạt động quảng cáo và truyền thông khai thác tốt lợi thế của mạng xã hội, sẽ tạo ra lợi nhuận lớn.

Quảng cáo trên mạng xã hội Facebook đang được triển khai mạnh mẽ, với việc Facebook theo dõi hành vi người dùng để đề xuất sản phẩm và dịch vụ Tuy nhiên, người dùng lo ngại về sự riêng tư, liệu thông tin cá nhân của họ có bị theo dõi và sử dụng vào mục đích gì Mặc dù quảng cáo đang có những bước tiến tích cực, nhưng để phát triển bền vững trong tương lai, cần cải tiến hơn nữa Vấn đề đặt ra là làm thế nào để người dùng vượt qua lo ngại về bảo mật thông tin và an toàn cá nhân, từ đó yên tâm sử dụng Facebook và giúp sản phẩm, dịch vụ tiếp cận gần hơn với khách hàng tiềm năng.

Nhóm 1 đã chọn đề tài “Nhận diện giới tính thông qua avatar mạng xã hội Facebook”, nhằm phân loại người dùng Facebook thành các nhóm khác nhau dựa trên hình ảnh đại diện của họ.

Document continues below trí tuệ nahan t ạ o trong kinh…

Bai tap toan cho ban tinh soroban da nen trí tuệ nahan tạo… 100% (1) 10

Bài thi cu ố i kì ttnt - Trí tuệ nhân tạo trí tuệ nahan tạo… 100% (1) 21

Trí tu ệ nhân t ạ o trong kinh doanh -… trí tuệ nahan tạo… 100% (1) 22

Ch ươ ng 3 - H ướ ng dẫn cài đặt… trí tuệ nahan tạo… 100% (1)8

Dữ liệu được thu thập từ hình ảnh đại diện của người dùng Facebook, bao gồm cả thư mục ảnh có sự hiện diện của chủ tài khoản và những bức ảnh mà bạn bè đã gắn thẻ họ.

2.2 Kiểu dữ liệu ảnh cần thu nhập Ảnh được lấy trực tiếp từ facebook cá nhân của người dùng không giới hạn kích thước Nhưng bắt buộc phải thấy được khuôn mặt, đối với các trường hợp chủ sở hữu không đặt ảnh bản thân làm ảnh đại diện thì sẽ linh động chuyển sang thu thập ảnh mà người đó công khai trên trang cá nhân đã được gắn thẻ hoặc có xác thực là gương mặt chính chủ, ảnh phải rõ nét, không bị quá mờ Thuật tiện cho công đoạn phân loại giới tính.

2.3 Số lượng ảnh của từng kiểu dữ liệu ảnh

Cần thu thập số lượng ảnh đủ cho cả hai giới tính, đảm bảo sự cân bằng về số lượng và tránh trùng lặp, đồng thời không nên lấy quá nhiều ảnh của một cá nhân.

Nam 185 ảnh (trong mô hình được gán nhãn là male)

Nữ 185 ảnh (trong mô hình được gán nhãn là female)

2.4 Cách thức tổ chức dữ liệu ảnh trên máy

Số lượng dữ liệu thu thập ở mục 2.3 sẽ được phân chia thành ba nhóm chính: training, validation và test, đảm bảo không có sự chồng chéo, tức là không có hình ảnh nào bị trùng lặp.

Training gồm 150 ảnh, trong đó female có 75 ảnh và male có 75 ảnh

Validation gồm 120 ảnh, trong đó female có 60 ảnh và male có 60 ảnh

Test gồm 100 ảnh, trong đó female có 50 ảnh, male có 50 ảnh

19.Lê Th ị Minh Hi ề n trí tuệ nahan tạo… 100% (1) 8

D ự báo th ờ i ti ế t qu… trí tuệ nahan tạo… 75% (4)22

III Giới thiệu tổng quan thuật toán CNN Để dạy thuật toán nhận diện đối tượng trong hình ảnh, ta sử dụng một loại mạng nơ- ron nhân tạo (Artificial Neural Network): Convolutional Neural Network (CNN – Mạng nơ-ron tích chập) Tên của nó được dựa trên phép tính quan trọng được sử dụng trong mạng đó là tích chập CNN là một trong những mô hình Deep Learning tiên tiến giúp cho chúng ta xây dựng được những hệ thống thông minh với độ chính xác cao như hiện nay. Đặc trưng:

CNN phân tích hình ảnh bằng cách chia chúng thành các mảnh nhỏ gọi là feature (đặc trưng) Mỗi feature được xem như một hình ảnh mini, tương ứng với các mảng hai chiều nhỏ Những feature này sẽ được khớp với các khía cạnh chung của bức ảnh, đảm bảo rằng mỗi feature tương ứng với một khía cạnh cụ thể, từ đó tạo thành một bức tranh tổng thể.

Khi CNN xem một hình ảnh mới, nó không xác định được vị trí và sự khớp nối của các đặc trưng, vì vậy nó thử nghiệm ở nhiều vị trí khác nhau Quá trình này tạo ra một bộ lọc, được gọi là filter Để thực hiện điều này, CNN sử dụng phép toán tích chập, trong đó mỗi điểm ảnh trong feature được nhân với giá trị của điểm ảnh tương ứng trong hình ảnh.

CNN consists of essential layers including the Convolutional layer, Non-Linearity activation layer, Pooling layer, and Fully Connected layer, which are interconnected in a specific sequence.

Mạng nơ-ron tích chập (CNN) hoạt động bằng cách lan truyền hình ảnh qua các lớp tích chập và lớp kích hoạt phi tuyến đầu tiên, tiếp theo là lớp lấy mẫu Quá trình này có thể được lặp lại nhiều lần với bộ ba lớp tích chập, lớp kích hoạt phi tuyến và lớp lấy mẫu, trước khi kết nối đầy đủ được áp dụng để tính toán xác suất của các đối tượng trong ảnh Cấu trúc cơ bản của mạng CNN bao gồm: lớp tích chập (Convolution Layer), lớp kích hoạt phi tuyến, lớp lấy mẫu (Pooling Layer) và lớp kết nối đầy đủ (Fully Connected Layer).

IV Mã lệnh chương trình

4.1 Tạo thư mục dự án

Gmail thực hiện: hongoc106@gmail.com Đăng nhập vào Gmail thực hiện => Chọn google drive

4.2 Đọc dữ liệu và tiền xử lý ảnh

TensorFlow là thư viện mã nguồn mở hàng đầu thế giới hỗ trợ học máy và học sâu, được phát triển bởi các nhà nghiên cứu của Google Thư viện này cung cấp các phép toán mạnh mẽ, giúp đơn giản hóa và tăng tốc độ giải quyết các bài toán phức tạp, đặc biệt trong việc tạo mạng nơ-ron và mô hình học sâu TensorFlow có thể được sử dụng trực tuyến thông qua Google Colab Kiến trúc của TensorFlow được chia thành ba phần chính: tiền xử lý dữ liệu, xây dựng mô hình, và huấn luyện cũng như sử dụng mô hình.

Numpy (Numeric Python) là thư viện toán học mạnh mẽ và phổ biến trong Python, giúp xử lý ma trận và mảng một cách hiệu quả Thư viện này cung cấp khả năng xử lý dữ liệu nhanh chóng, tối ưu hóa hiệu suất cho các tác vụ tính toán phức tạp.

-Keras: chạy trên thư viện máy mã nguồn mở như Tensorflow, dễ sử dụng, xây dựng model nhanh, hỗ trợ xây dựng CNN

-Matplotlib: thư viện vẽ đồ thị để trực quan hóa bộ dữ liệu => suy luận những thống kê cần thiết

Khai báo các thư viện sử dụng

Kết nối với google drive để đọc và lưu file

Chuẩn bị dữ liệu

Kiểu dữ liệu ảnh cần thu nhập

Ảnh được lấy từ Facebook cá nhân của người dùng không giới hạn kích thước, nhưng phải rõ ràng thấy được khuôn mặt Nếu người dùng không sử dụng ảnh bản thân làm ảnh đại diện, có thể thu thập ảnh đã được gắn thẻ hoặc xác thực là gương mặt chính chủ trên trang cá nhân Ảnh cần phải rõ nét, không bị mờ, điều này thuận tiện cho việc phân loại giới tính.

Số lượng ảnh của từng kiểu dữ liệu ảnh

Cần thu thập số lượng ảnh đồng đều cho cả hai giới tính, đảm bảo sự cân bằng về số lượng và tránh tình trạng trùng lặp hình ảnh Đồng thời, không nên lấy quá nhiều ảnh của một cá nhân.

Nam 185 ảnh (trong mô hình được gán nhãn là male)

Nữ 185 ảnh (trong mô hình được gán nhãn là female)

Cách thức tổ chức dữ liệu ảnh trên máy

Số lượng dữ liệu thu thập ở mục 2.3 sẽ được phân chia đều thành ba nhóm chính: training, validation và test, đảm bảo không có sự chồng chéo, tức là không có ảnh bị trùng lặp.

Training gồm 150 ảnh, trong đó female có 75 ảnh và male có 75 ảnh

Validation gồm 120 ảnh, trong đó female có 60 ảnh và male có 60 ảnh

Test gồm 100 ảnh, trong đó female có 50 ảnh, male có 50 ảnh

19.Lê Th ị Minh Hi ề n trí tuệ nahan tạo… 100% (1) 8

D ự báo th ờ i ti ế t qu… trí tuệ nahan tạo… 75% (4)22

Giới thiệu tổng quan thuật toán CNN

Để dạy thuật toán nhận diện đối tượng trong hình ảnh, chúng ta sử dụng mạng nơ-ron tích chập (CNN - Convolutional Neural Network), một loại mạng nơ-ron nhân tạo Tên gọi của nó xuất phát từ phép tính tích chập quan trọng được áp dụng trong mạng CNN là một trong những mô hình Deep Learning tiên tiến, giúp xây dựng các hệ thống thông minh với độ chính xác cao hiện nay.

CNN phân tích hình ảnh bằng cách chia chúng thành các mảnh nhỏ gọi là feature (đặc trưng) Mỗi feature được xem như một hình ảnh mini, tương đương với các mảng hai chiều nhỏ Các feature này sẽ được khớp với những khía cạnh chung của bức ảnh, giúp xác định mối liên hệ giữa chúng và tạo thành một bức tranh hoàn chỉnh.

Khi CNN xem một hình ảnh mới, nó không biết vị trí và sự khớp của các đặc trưng, vì vậy nó thử nghiệm ở nhiều vị trí khác nhau Quá trình này tạo ra một bộ lọc, được gọi là filter Để thực hiện điều này, CNN sử dụng phép toán tích chập, là phép nhân giữa mỗi điểm ảnh trong đặc trưng với giá trị của điểm ảnh tương ứng trong hình ảnh.

CNN consists of essential layers, including the Convolutional layer, Non-Linearity layer, Pooling layer, and Fully Connected layer These layers are interconnected in a specific sequence to process and analyze data effectively.

Mạng CNN thường hoạt động bằng cách lan truyền ảnh qua các lớp tích chập và lớp kích hoạt phi tuyến đầu tiên, sau đó các giá trị được tính toán sẽ tiếp tục qua lớp lấy mẫu Quá trình này có thể lặp lại nhiều lần với bộ ba lớp tích chập, lớp kích hoạt phi tuyến và lớp lấy mẫu Cuối cùng, thông tin được lan truyền qua lớp kết nối đầy đủ để xác định xác suất ảnh chứa vật thể nào Cấu trúc cơ bản của mạng CNN bao gồm: lớp tích chập (Convolution Layer), lớp kích hoạt phi tuyến, lớp lấy mẫu (Pooling Layer) và lớp kết nối đầy đủ (Fully Connected Layer).

Mã lệnh chương trình

Tạo thư mục dự án

Gmail thực hiện: hongoc106@gmail.com Đăng nhập vào Gmail thực hiện => Chọn google drive

Đọc dữ liệu và tiền xử lý ảnh

TensorFlow là thư viện mã nguồn mở hàng đầu cho học máy và học sâu, được phát triển bởi các nhà nghiên cứu của Google Với khả năng hỗ trợ các phép toán học phức tạp, TensorFlow giúp đơn giản hóa và tăng tốc quá trình giải quyết các bài toán học máy và học sâu, từ việc tạo mạng nơ-ron đến xây dựng mô hình học sâu Người dùng có thể sử dụng TensorFlow trực tuyến thông qua Google Colaboratory Kiến trúc của TensorFlow bao gồm ba phần chính: tiền xử lý dữ liệu, xây dựng mô hình, và huấn luyện cũng như sử dụng mô hình.

Numpy (Numeric Python) là một thư viện toán học mạnh mẽ và phổ biến trong Python, giúp xử lý ma trận và mảng một cách hiệu quả Thư viện này cho phép người dùng thực hiện các phép toán phức tạp với tốc độ xử lý dữ liệu nhanh chóng.

-Keras: chạy trên thư viện máy mã nguồn mở như Tensorflow, dễ sử dụng, xây dựng model nhanh, hỗ trợ xây dựng CNN

-Matplotlib: thư viện vẽ đồ thị để trực quan hóa bộ dữ liệu => suy luận những thống kê cần thiết

Khai báo các thư viện sử dụng

Kết nối với google drive để đọc và lưu file

Mô hình sẽ được huấn luyện thông qua tập Training, là tệp dữ liệu lớn nhất với 150 ảnh, dùng để rèn luyện máy học Tập dữ liệu này giúp máy học nhận diện và ghi nhớ các đặc điểm quan trọng Tập Training bao gồm hai phần: Input, tức là dữ liệu đầu vào (trong trường hợp này là ảnh), và Output, là kết quả tương ứng với tập Input (nhãn), trong đó Input là ảnh của nam.

Validation là quá trình kiểm tra độ chính xác của mô hình máy học thông qua việc sử dụng các cặp giá trị Input và Output Mục tiêu của validation là đánh giá sai số giữa giá trị mà mô hình dự đoán và giá trị mong muốn trong quá trình huấn luyện.

Khai báo đường dẫn thư mục chứa dữ liệu ảnh để Huấn luyện và kiểm định mô hình => chạy dữ liệu

Gắn nhãn dữ liệu: “female”, “male”

Phân loại ảnh là một bài toán học có giám sát, yêu cầu dữ liệu huấn luyện và kiểm định phải được gắn nhãn Các ảnh được gắn nhãn dựa trên tên thư mục chứa chúng, với tên và thứ tự các nhãn tương ứng với tên và thứ tự các thư mục của ảnh huấn luyện và kiểm định, trong trường hợp này là female và male.

Trong quá trình sắp xếp dữ liệu, female được đặt trước male theo thứ tự chữ cái và quy định trong khai báo dữ liệu Điều này đảm bảo tính nhất quán và chính xác trong việc gán biến female trước Khi nhóm thử thay đổi thứ tự, mọi lần nhận dạng ảnh đều xảy ra lỗi, với tỷ lệ nhận dạng sai giới tính lên đến 85% trong số 50 bức ảnh thử nghiệm, hoặc chỉ cho ra một kết quả duy nhất cho tất cả ảnh.

Để đơn giản hóa việc xử lý dữ liệu đầu vào mà không cần xử lý từng bức ảnh, chúng ta sẽ sử dụng lớp ImageDataGenerator từ Keras Lớp này giúp dễ dàng truy cập vào hệ thống tệp dữ liệu ảnh.

Tham số rescale=1/255 giúp chuẩn hóa dữ liệu ảnh về giá trị trong khoảng [0,1], đảm bảo rằng các giá trị pixel được điều chỉnh phù hợp cho các mô hình học máy Việc này giúp cải thiện hiệu suất và độ chính xác của các thuật toán xử lý ảnh.

-Một file ảnh JPY được lưu trong máy tính dưới dạng một ma trận dữ liệu số có giá trị trong khoảng [0,255]

Tìền xử lý dữ liệu với ImageDataGenerator => Chạy dữ liệu Đọc dữ liệu Train và Validation (phân loại ảnh đa lớp: 2 lớp) =>chạy dữ liệu

-train_data_gen.flow_from_directory: hàm được sử dụng để chuẩn bị dữ liệu từ thư mục train_data, chỉ định kích thước của hình ảnh

-train_image_files_path: đường dẫn tới ảnh huấn luyện

Kích thước mục tiêu (target_size) được thiết lập là (50, 50) nhằm biến đổi tất cả các ảnh huấn luyện về cùng một kích thước 50x50 pixel Điều này rất quan trọng vì các ảnh trong tập dữ liệu ban đầu có kích thước lớn và không đồng nhất, việc điều chỉnh về kích thước đồng bộ sẽ nâng cao hiệu quả của mô hình Trong quá trình học máy, hình ảnh sẽ được phân tích thành các điểm ảnh nhỏ, dẫn đến việc có rất nhiều tham số đầu vào Cụ thể, với kích thước 50x50 pixel, tổng số tham số đầu vào sẽ lên tới 7500 (50x50x3).

- class_mode=’categorical’ giúp phân loại ảnh đa lớp (2 lớp)

- validation_data_gen.flow_from_directory: hàm được sử dụng để chuẩn bị dữ liệu thử nghiệm cho mô hình

- valid_image_files_path: đường dẫn tới ảnh thử nghiệm

- target_size = (50, 50) có tác dụng biến đổi các ảnh huấn luyện về cùng 1 kích thước [50x50]

- Kết quả chạy ta có:

Xây dựng mô hình

-Thiết lập tham số để huấn luyện mô hình => chạy dữ liệu

-Mô hình gồm 5 tầng: Input image => CNN1 => CNN2 => Fully connected layer => Output

Lớp Convolutional (tích chập) trong mạng nơ-ron tích chập (CNN) tạo ra các liên kết cục bộ giữa các điểm ảnh thay vì kết nối toàn bộ Các liên kết này được xác định thông qua phép tích chập giữa giá trị điểm ảnh trong một vùng ảnh cục bộ và các bộ lọc (filters) có kích thước nhỏ, giúp cải thiện khả năng nhận diện đặc trưng trong hình ảnh.

-Tầng CNN1 gồm 32 bộ lọc kích thước 3x3 Tầng CNN1 kết nối với đầu vào nên phải mô tả rõ thông tin của đầu vào (input_shape= (50,50,3))

-MaxPooling2D: lớp Pooling thường được dùng giữa các convolutional, dùng để giảm kích thước dữ liệu, nhưng vẫn giữ được những thuộc tính quan trọng Kích thước

Tầng CNN2 bao gồm 64 bộ lọc kích thước 3x3, cho phép máy đọc và phân tích thông tin sâu sắc hơn Do tầng này không kết nối trực tiếp với đầu vào, nên không cần phải mô tả input_shape.

Công thức toán học: f(s)=max (0, s)

Hình ảnh 1: công thức Relu

-Flatten: chuyển ảnh từ dạng ma trận về mảng 1 chiều

The Dense layer represents a fully connected layer where each unit from the previous layer is connected to every unit in the current layer A Dense layer with 256 units indicates that there are 256 outputs from the linear regression in this model, while a Dense layer in the second hidden layer with 512 units signifies that there are 512 outputs from the linear regression in this layer.

Hàm softmax là một công cụ quan trọng trong việc xác định xác suất xuất hiện của một lớp trong tổng số các lớp có thể Nó chuyển đổi một vector k chiều với các giá trị thực thành một vector k chiều khác có tổng bằng 1, giúp xác định lớp mục tiêu cho các đầu vào Dù giá trị đầu vào có thể dương, âm, bằng 0 hoặc lớn hơn 1, hàm softmax luôn đảm bảo rằng kết quả cuối cùng nằm trong khoảng (0, 1].

Hàm softmax là công cụ tối ưu để tính toán xác suất tối đa cho các tham số trong mô hình Với những tính chất đặc trưng, hàm softmax rất phù hợp cho việc diễn giải xác suất, mang lại lợi ích lớn trong lĩnh vực Học máy.

Chuẩn hóa softmax giúp giảm thiểu tác động của các giá trị cực trị và dữ liệu ngoại lai mà không cần phải chỉnh sửa dữ liệu gốc.

Sau khi ảnh được xử lý qua hai lớp CNN, mô hình đã nhận diện được các đặc điểm quan trọng của ảnh Kết quả đầu ra từ lớp CNN cuối cùng sẽ là một ma trận, sau đó được chuyển đổi thành một vector một chiều.

Thiết lâp các tham số để huấn luyện mô hình:

-Compile: chọn các tham số để huấn luyện mô hình

Thuật toán tối ưu hóa là yếu tố quan trọng trong việc huấn luyện mô hình Neural Network, giúp học và tối ưu hóa các đặc điểm của dữ liệu đầu vào Để cải thiện quá trình training, chúng ta sử dụng thuật toán RMSprop, được thiết kế đặc biệt cho mạng nơ-ron, nhằm khắc phục vấn đề tỷ lệ học giảm dần.

Tốc độ học (learning rate - Lr) là một siêu tham số quan trọng trong huấn luyện mạng nơ-ron, có giá trị nằm trong khoảng từ 0 đến 1 Để xác định giá trị tối ưu cho Lr, cần kiểm tra và điều chỉnh mô hình, với các giá trị phổ biến thường từ 0.01 đến 0.0001 Tốc độ học quyết định mức độ thay đổi của các trọng số trong mô hình, giúp quá trình huấn luyện diễn ra nhanh hơn, nhưng nếu không được điều chỉnh hợp lý, có thể dẫn đến giảm độ chính xác của mô hình.

-Hàm mất mát Loss: tính toán sai số giữa giá trị học được và giá trị thực tế, sử dụng ’categorical_crossentropy’ để dự đoán nhiều lớp

-Metric=[‘acc’] dùng để đánh giá độ chính xác của model

Chúng ta sẽ biên dịch mạng nơ-ron bằng lệnh 'model.compile', sử dụng hàm loss là categorical_crossentropy Tiêu chí huấn luyện được đặt là accuracy và metric acc sẽ được dùng để đánh giá độ chính xác của mô hình.

Huấn luyện mô hình

Để huấn luyện mô hình, ta gọi ‘model.fit’

-model.fit: yêu cầu trình tạo dữ liệu đầu vào để chạy mô hình, bao gồm: train_generator và validation_generator

Epochs là số lần mà mô hình được đào tạo trên toàn bộ tập dữ liệu trong mạng lưới trí tuệ nhân tạo (ANN) Một epoch hoàn thành khi toàn bộ dữ liệu huấn luyện được đưa vào mạng nơ-ron một lần, bao gồm cả hai bước backward và forward.

Với epochs0, mô hình được huấn luyện 30 lần trên toàn bộ tập dữ liệu, nhằm cải thiện độ chính xác và giảm sai số của dữ liệu thử nghiệm Mỗi lần lặp, mô hình sẽ đưa ra dự đoán và sử dụng thuật toán huấn luyện để tối ưu hóa những dự đoán đó Quá trình này lặp lại 30 lần, trong đó hàm fit sẽ tìm kiếm mối quan hệ giữa dữ liệu đào tạo và các nhãn thực tế, nhằm xác định mối liên hệ chính xác nhất.

-Validation_step tương tự như step_per_epoch nhưng được chạy trên các dữ liệu xác nhận thiết lập thay vì chạy trên dữ liệu huấn luyện

-Verbose được sử dụng trong khi đào tạo mô hình giúp cải thiện độ chính xác

-Loss và acc là sai số và độ chính xác của tập Training; val_loss và val_acc là sai số và độ chính xác của tập Validation

-Loss càng nhỏ thì acc trên tập Training càng cải thiện, tương tự, val_loss càng nhỏ thì val_acc trên tập Validation sẽ càng tốt.

Tìm mô hình tối ưu

Lớp CNN thứ nhất có 32 bộ lọc, mỗi bộ lọc có kích thước 3x3

Lớp CNN thứ hai có 64 bộ lọc, mỗi bộ lọc có kích thước 3x3

- Một lớp ẩn với bộ lọc là 512

- Validation_steps = 1 Độ chính xác của mô hình ban đầu là 84% có 8 ảnh sai trên 50 ảnh được thử

Thay đổi kích thước ảnh

-Với kích thước 100x100 mô hình đạt được với độ chính xác là 82%, dự đoán sai 9 ảnh trên 50 ảnh Hiệu suất mô hình bị giảm

-Với kích thước ảnh 150x150 mô hình đạt được độ chính xác là 76%, dự đoán sai 12 ảnh trên 50 ảnh Hiệu suất mô hình bị giảm

-Với kích thước ảnh 200x200 mô hình đạt được độ chính xác là 82%, dự đoán sai 9 ảnh trên 50 ảnh Hiệu suất mô hình bị giảm

Tăng kích thước ảnh không làm giảm hiệu suất của mô hình so với phiên bản gốc Mặc dù số lượng ảnh dự đoán đúng trên 50 bức ảnh kiểm tra khá ổn định, nhưng độ chính xác của mô hình không tăng lên Do đó, nên giữ kích thước ảnh ban đầu là 50x50.

Tăng lớp CNN của mô hình

Lớp CNN 1 với 32 bộ lọc

Lớp CNN 2 với 64 bộ lọc

Lớp CNN 3 sử dụng 128 bộ lọc và đạt độ chính xác 76% cho mô hình tổng thể Đối với việc nhận dạng giới tính, độ chính xác đạt 80% với 12/50 ảnh nhận dạng chính xác, trong khi có 10 ảnh bị nhận dạng sai Kết quả này cho thấy sự giảm sút so với mô hình ban đầu.

Lớp CNN 1 với 32 bộ lọc

Lớp CNN 2 với 64 bộ lọc

Lớp CNN 3 với 128 bộ lọc

Lớp CNN 4 với 256 bộ lọc Độ chính xác mô hình là 58%, có 21 ảnh sai trên 50 ảnh được đưa vào kiểm tra. Giảm mạnh so với mô hình gốc

Việc tăng số lượng lớp CNN không cải thiện hiệu suất của mô hình, mà ngược lại, nó khiến mô hình trở nên cồng kềnh và khó khăn trong việc đưa ra kết quả nhanh chóng và chính xác.

Thay đổi bộ lọc của các lớp CNN

Lớp CNN 1 với 32 bộ lọc

Lớp CNN 2 sử dụng 32 bộ lọc, đạt độ chính xác 78% Trong số 50 ảnh được kiểm tra, mô hình nhận dạng sai 11 ảnh, cho thấy hiệu suất giảm so với mô hình gốc ban đầu.

Lớp CNN 1 với 64 bộ lọc

Lớp CNN 2 sử dụng 64 bộ lọc đạt độ chính xác 78%, với 11 ảnh sai trên tổng số 50 ảnh thử nghiệm Hiệu suất của mô hình này giảm so với mô hình gốc ban đầu.

Lớp CNN 1 với 64 bộ lọc

Lớp CNN 2 với 128 bộ lọc đạt độ chính xác 83%, với 8 ảnh sai trong tổng số 50 ảnh được kiểm tra Hiệu suất của mô hình đã được cải thiện đáng kể.

Lớp CNN 1 với 128 bộ lọc

Lớp CNN 2 với 128 bộ lọc đạt độ chính xác 82%, dự đoán sai 9 trên 50 ảnh kiểm tra, cho thấy hiệu suất có sự giảm nhẹ so với mô hình gốc Việc tăng số lượng bộ lọc trong các lớp CNN giúp mô hình duy trì hiệu suất ổn định mà không trở nên cồng kềnh.

Thay đổi kích thước bộ lọc convolutional của các lớp CNN

Lớp CNN 1 có 32 bộ lọc, mỗi bộ lọc có kích thước 5x5

Lớp CNN 2 sử dụng 64 bộ lọc với kích thước 5x5, đạt độ chính xác 74% Mô hình dự đoán sai 13 trên 50 ảnh kiểm tra, tuy nhiên, hiệu suất của mô hình này giảm so với mô hình ban đầu.

Lớp CNN 1 có 32 bộ lọc, mỗi bộ lọc có kích thước 7x7

Lớp CNN 2 sử dụng 64 bộ lọc với kích thước 7x7, đạt độ chính xác 80% Mô hình dự đoán sai 10 trên tổng số 50 ảnh được đưa vào Tuy nhiên, hiệu suất của mô hình đang có xu hướng giảm.

Như vậy việc thay đổi kích thước bộ lọc không làm cho mô hình hoạt động hiệu quả hơn Nên vẫn giữ nguyên kích thước bộ lọc ban đầu 3x3

Lớp ẩn 1 có 256 bộ lọc

Lớp ẩn 2 có 512 bộ lọc Độ chính xác của mô hình đạt được là 86%, dự đoán sai 7 trên 50 ảnh đưa vào kiểm tra Hiệu suất mô hình tăng

Lớp ẩn 1 có 512 bộ lọc

Lớp ẩn 2 có 512 bộ lọc Độ chính xác là 70%, dự đoán sai 15 ảnh trong tổng số 50 ảnh được kiểm tra. Hiệu suất mô hình giảm

Lớp ẩn 1 có 512 bộ lọc

Lớp ẩn 2 có 1024 bộ lọc Độ chính xác 66%, dự đoán sai 17 trong tổng 50 ảnh được kiểm tra Hiệu suất mô hình giảm mạnh. lớp ẩn 1 có 512 bộ lọc

Lớp ẩn 2 có 512 bộ lọc

Lớp ẩn 3 có 512 bộ lọc Độ chính xác 64%, dự đoán sai 18 trên tổng số 50 ảnh được kiểm tra Hiệu suất của mô hình bị giảm

- Lớp ẩn có 256 bộ lọc Độ chính xác của mô hình là 72%, dự đoán sai 14 ảnh trên 50 ảnh Hiệu suất mô hình giảm

- Lớp ẩn có 1024 bộ lọc Độ chính xác của mô hình là 82%, dự đoán sai 9 trên 50 ảnh Hiệu suất mô hình giảm

- Lớp ẩn có 128 bộ lọc Độ chính xác là 64%, dự đoán sai 18 trên 50 ảnh Hiệu suất mô hình giảm

Nếu bộ lọc lớp ẩn được giữ ở mức 1024, mô hình sẽ duy trì hiệu suất ổn định tương tự như mô hình gốc, với sự giảm sút không đáng kể Tuy nhiên, khi giảm số lượng bộ lọc ở lớp ẩn, hiệu suất của mô hình sẽ giảm mạnh Do đó, cần giữ nguyên số lượng bộ lọc ở lớp ẩn như trong mô hình gốc để đảm bảo hiệu suất.

Mô hình tối ưu cuối cùng

-Kích thước ảnh đầu vào 50x50

Lớp CNN thứ nhất có 32 bộ lọc, mỗi bộ lọc có kích thước 3x3

Lớp CNN thứ hai có 64 bộ lọc, mỗi bộ lọc có kích thước 3x3

Lớp ẩn thứ nhất 256 bộ lọc

Lớp ẩn thứ hai 512 bộ lọc

Sử dụng mô hình

-Sau đó tải hình ảnh muốn dự đoán

-img=image.load_img(path,target_size0,100)): tải 1 hình ảnh và thay đổi kích thước hình ảnh thành (100,100)

-hàm img_to_array() dùng để them các kênh cho RGB và cho hình ảnh màu xám

-expand_dim() được sử dụng để thêm số lượng hình ảnh

-np.vstack: nối mảng theo chiều dọc

Batch_size là số lượng mẫu dữ liệu trong một batch, giúp chia nhỏ tập dữ liệu để huấn luyện Do không thể đưa toàn bộ dữ liệu vào huấn luyện trong một epoch, việc phân chia dữ liệu thành các phần (số lượng batch) với kích thước batch_size là cần thiết Ví dụ, nếu tập dữ liệu có 100 mẫu, thì batch_size có thể được đặt là 10.

Để thử nghiệm mô hình, bạn chỉ cần nhấn chạy đoạn mã code Sau khi thực hiện, một hộp thoại "Choose files" sẽ xuất hiện, cho phép bạn chọn ảnh cần phân loại Hãy chờ đợi để nhận kết quả phân loại.

Ngày đăng: 03/01/2024, 13:42

TRÍCH ĐOẠN

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

TÀI LIỆU LIÊN QUAN