Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 11 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
11
Dung lượng
646,99 KB
Nội dung
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN ĐIỆN ********** BÁO CÁO ĐỒ ÁN THIẾT KẾ ĐỀ TÀI : DỰ ĐỐN TUỔI VÀ PHÂN LOẠI GIỚI TÍNH DỰA TRÊN PHƯƠNG PHÁP HỌC SÂU Giáo viên hướng dẫn : PGS.TS Hoàng Sĩ Hồng Sinh viên thực : - Nguyễn Xuân Công – 20173697 - Nguyễn Phùng Thái Cường – 20173716 Hà Nội, 09-2021 MỤC LỤC CHƯƠNG 1: HỌC SÂU VÀ THỊ GIÁC MÁY TÍNH…………………………………………3 Giới thiệu Học sâu (Deep Learning – DL) Thị giác Máy tính (Computer Vision – CV) ……………………………………………………………………………………………3 Các kiến trúc CNN……………………………………………………………………………3 CHƯƠNG 2: BỘ DỮ LIỆU VÀ TIỀN XỬ LÝ DỮ LIỆU .6 Bộ dữu liêu huấn luyện……………………………………………………………………….6 Tiền xử lý liệu…………………………………………………………………………… CHƯƠNG 3: XÂY DỰNG MƠ HÌNH VÀ HUẤN LUN MƠ HÌNH Xây dựng mơ hình Xây dựng hàm mát Phương pháp tối ưu hóa mơ hình Quá trình huấn luyện mơ hình CHƯƠNG 4: ĐÁNH GIÁ KẾT QUẢ 10 Kết 10 Kết luận 10 Chương 1: Học sâu Thị giác Máy tính Giới thiệu Học sâu (Deep Learning - DL) Thị giác Máy tính (Computer Vision - CV) CV lĩnh vực khoa học nằm Trí tuệ nhân tạo Khoa học máy tính bao gồm việc thu nhận, xử lý ảnh kỹ thuật số có khả nhìn hiểu giống người Các thuật tốn phân tích xử lý xác định tiêu chí đặc trưng ảnh video sử dụng từ đưa dự đốn nhiệm vụ đưa định Một mơ hình xây dựng từ thuật toán giúp gải điều Mơ hình tạo qúa trình huấn luyện giúp “dịch” liệu thị giác dựa thông tin đặc điểm ngữ cảnh giống người Một kỹ thuật sử dụng nhiều CV DL DL kỹ thuật Học máy - Machine Learning DL giống loại mạng thần kinh sâu – deep neural network xử lý liệu lớn theo cách não người thực DL sử dụng thuật toán kiểm tra chi tiết hình ảnh giải mã nhiều cấp độ Với DL, máy tự đào tạo dựa tệp liệu đầu vào lớn sức tính tốn mạnh mẽ Một thuật toán sử dụng nhiều CV Mạng nơ ron tích chập (convolutional neural network – CNN) Nó kiến trúc đa lớp dùng để tính tốn thu gọn liệu cho số gần để so sánh với liệu biết nhằm định nghĩa, phân loại liệu đầu vào Có nhiều loại kiến trúc kể đến AlexNet, GoogleNet, VGGNet,… Các cách DL để nâng cao, cải thiện CV sử dụng phát vật thể (object detection), định vị trí (Localization) phân vùng vật thể (semantic segmentation),… Các kiến trúc CNN a LeNET-5 (1998) LeNet-5 kiến trúc áp dụng mạng tích chập chiều giáo sư Yan Lecun, cha đẻ kiến trúc CNN Model ban đầu đơn giản bao gồm convolutional layers + fully-connected layers Mặc dù đơn giản có kết tốt so với thuật toán machine learning truyền thống khác phân loại chữ số viết tay SVM, kNN Trong kiến trúc mạng nơ ron đầu tiên, để giảm chiều liệu, Yan Lecun sử dụng Sub-Sampling Layer Average-Pooling Layer (các layer nhằm mục đích giảm chiều liệu mà không thay đổi đặc trưng cịn gọi Sub-Sampling Layer) Kiến trúc khó hội tụ nên ngày chúng thay MaxPooling Đầu vào mạng LeNet có kích thước nhỏ (chỉ 32x32) layers nên số lượng tham số khoảng 60 nghìn b AlexNET (2012) AlexNet mạng CNN giới thiệu vào năm 2012 Alex Krizhevsky dành chiến thắng thi ImageNet với cách biệt lớn so với vị trí thứ hai Lần Alex net phá vỡ định kiến trước cho đặc trưng học từ mơ hình khơng tốt đặc trưng tạo thủ cơng (thơng qua thuật tồn SUFT, HOG, SHIFT) Ý tưởng AlexNet dựa LeNet Yan Lecun cải tiến điểm: Tăng kích thước đầu vào độ sâu mạng Sử dụng lọc (kernel hoặc filter) với kích thước giảm dần qua layers để phù hợp với kích thước đặc trưng chung đặc trưng riêng Sử dụng local normalization để chuẩn hóa layer giúp cho q trình hội tụ nhanh c VGG -16 (2014) Với VGG-16, quan điểm mạng nơ ron sâu giúp ích cho cải thiện độ xác mơ hình tốt Về kiến trúc VGG-16 đặc điểm AlexNet có cải tiến: Kiến trúc VGG-16 sâu hơn, bao gồm 13 layers tích chập chiều (thay so với AlexNet) layers fully connected Lần VGG-16 xuất khái niệm khối tích chập (block) Đây kiến trúc gồm tập hợp layers CNN lặp lại giống Kiến trúc khối khởi nguồn cho dạng kiến trúc hình mẫu thường gặp mạng CNN kể từ VGG-16 kế thừa lại hàm activation ReLU AlexNet VGG-16 kiến trúc thay đổi thứ tự block xếp nhiều layers CNN + max pooling thay xen kẽ layer CNN + max pooling VGG-16 sử dụng lọc kích thước nhỏ 3x3 thay nhiều kích thước lọc AlexNet Kích thước lọc nhỏ giúp giảm số lượng tham số cho mơ hình mang lại hiệu tính tốn Mạng VGG-16 sâu so với AlexNet số lượng tham số lên tới 138 triệu tham số Đây mạng mà có số lượng tham số lớn Kết xếp thứ liệu ImageNet validation thời điểm public Ngồi cịn phiên VGG-16 VGG-19 tăng cường thêm layers độ sâu Bắt đầu từ VGG-16, hình mẫu chung cho mạng CNN tác vụ học có giám sát xử lý ảnh bắt đầu hình thành mạng trở nên sâu sử dụng block dạng [Conv2D*n + Max Pooling] Chương 2: Bộ liệu tiền xử lý liệu Bộ liệu huấn luyện Bộ liệu UTKFace liệu khn mặt có quy mô lớn (trải dài từ đến 116 tuổi) Bộ liệu bao gồm 20000 ảnh với thích tuổi, giới tính dân tộc Hình ảnh đa dạng tư thế, nét mặt, ánh sáng, khớp cắn, độ phân giải, vv Bộ liệu sử dụng cho nhiều tốn, từ nhận diện khn mặt, dự đoán tuổi, xác định tư khn mặt, vv… Dưới dây số ví dụ liệu UTKFace Hình Một vài ví dụ tập liệu UTKFace Chú thích liệu Nhãn ảnh định dạng sau: [age]_[gender]_[race]_[date&time].jpg [age] số tự nhiên từ đến 106, biểu thị độ tuổi [gender] 0(name) 1(nữ) [race] số tự nhiên từ đến 4, thích cho White, Black, Asian, Indian,… [date&time] biểu diễn theo định dạng yyyymmddHHMMSSFF, ngày hình ảnh sưu tầm cho UTKFace Để biết chi tiết liệu UTKFace, xin mời xem chi tiết link bên dưới: https://susanqq.github.io/UTKFace/ Tiền xử lý liệu Với bước tiền xử lý liệu, em thực số bước sau: Tiến hành loại bỏ ảnh có chất lượng qua việc kiểm tra thủ cơng lượt Đưa tất hình ảnh kích thước 198x198x3 Chuyển đổi giá trị pixel tất ảnh đầu dải [0,1] Phân tích cú pháp nhãn tách thành nhãn riêng biệt gồm Age Gender Dữ liệu bao gồm 24104 ảnh chia làm tập train, validation test cụ thể: Tập train gồm 13810 ảnh Tập validation gồm 7062 ảnh Tập test gồm gồm 3232 ảnh Sau bước tiền xử lý liệu, em thực khảo sát liệu số trường phân phối thuộc tính age, gender Hình Phân phối liệu tuổi biễu diễn theo dạng cột Phân phối liệu tuổi tập liệu cho thấy cân tuổi, việc huấn luyện gặp khó khăn Chương 3: Xây dựng mơ hình huấn lun mơ hình Xây dựng mơ hình Với đầu u cầu dự đốn tuổi xác giới tính,em xây dựng mơ hình one-input multi-output có cấu trúc sau: Nhánh 1: Nhánh trích xuất đặc trưng tuổi Nhánh 2: Nhánh trích xuất đặc trưng giới tính Xây dựng hàm mát Do mơ hình xây dựng theo cấu trúc nhánh-2 đầu nên tương ứng tồn hàm mát nhánh Với nhánh trích xuất đặc trưng tuổi, em lựa chọn hàm mát MSE (Mean Squared Error) nhánh lại, em sử dụng Binary Cross Entropy Giải thích cho lựa chọn này, Cross Entropy thực tốt cho việc tối ưu với nhãn dạng one-hot vector, MSE tốt với đầu hồi quy (khi đầu cho nhánh trích xuất đặc trưng tuổi số thực chuyển đổi nằm dải [0,1]) Cuối cùng, em thực cộng hàm mát nhánh theo tỷ lệ 4, 0.01 sau: 𝐿𝑡𝑜𝑡𝑎𝑙 = ∗ 𝐿𝑎𝑔𝑒 + 0,01 ∗ 𝐿𝑔𝑒𝑛𝑑𝑒𝑟 Trong đó: 𝐿𝑎𝑔𝑒 = 𝐿𝑀𝑆𝐸 : Hàm mát nhánh trích xuất đặc trưng tuổi 𝐿𝑔𝑒𝑛𝑑𝑒𝑟 = 𝐿𝐵𝐶𝐸 : Hàm mát nhánh trích xuất đặc trưng giới tính Hình Cấu trúc mơ hình nhánh Việc lựa chọn tỷ lệ thay đổi bước khởi tạo ban đầu Sở dĩ, em lựa chọn tỷ lệ – 0,01 nhánh trích xuất đặc trưng giới tính hội tụ sớm nhánh trích xuất đặc trưng tuổi nên cần đánh trọng số lớn cho hàm mát nhánh giới tính Phương pháp tối ưu hóa mơ hình Trong trường hợp này, em sử dụng phương pháp tối ưu tham số học Adam với hệ số học ban đầu 0.001 giảm số lượng epoch tăng theo công thức sau: 𝑙𝑟_𝑟𝑎𝑡𝑒 = 𝑙𝑟_𝑟𝑎𝑡𝑒/𝑒𝑝𝑜𝑐ℎ𝑠 Hình Phương pháp tối ưu hóa Adam Q trình huấn luyện mơ hình Mơ hình huấn luyện Google Colab với 120 kỷ nguyên học Mô hình hồn tồn khơng sử dụng phương pháp transfer learning mà huấn luyện từ đầu Có sử dụng checkpoint để theo dõi tham số học, kiến trúc mơ hình, trạng thái tham số tối ưu tránh trường hợp huấn luyện bị gián đoạn mạng mà lưu lại mơ hình Chương 4: Đánh giá kết Kết Kết đánh giá test mơ sau: Bảng Đánh giá test sau trình huấn luyện Total loss 0.2935 Age loss 0.0662 Gender loss 0.2857 Age Mean Absolute Error 0.1129 Gender Accuracy 0.9048 Một số hình ảnh dự đốn sau q trình huấn luyện mơ hình: Hình Một vài kết dự đoán Kết luận Qua q trình huấn luyện mơ hình, mơ hình dự đốn tuổi phân loại giới tính cấu trúc nhiều đầu em đạt xác suất dự đoán giới tính 90,5 % sai số khoảng 10 tuổi dự đoán tuổi Do thách thách thức toán dự đốn tuổi xác, thách thức liệu, phương pháp tiền xử lý chưa tốt nên hiệu mơ hình cịn nhiều hạn chế 10 Do thời gian kiến thức cịn hạn chế nên khơng tránh khỏi sai xót, em mong thầy nhận xét góp ý thêm để hoàn thiện tương lai Dưới phần code lập trình em tải lên github: https://github.com/KongBe1999/Age_Gender_Classification 11