Tìm hiểu và tối ưu hóa các tham số trong thuật toán ramdom forest

43 838 6
Tìm hiểu và tối ưu hóa các tham số trong thuật toán ramdom forest

Đ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

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC NHA TRANG KHOA CÔNG NGHỆ THÔNG TIN ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC TÌM HIỂU VÀ TỐI ƯU CÁC THAM SỐ TRONG THUẬT TOÁN RANDOM FOREST Giáo viên hướng dẫn: Th.S PHẠM THỊ KIM NGOAN Sinh viên thực hiện: NGUYỄN THÀNH ĐÔ Lớp: 53CNTT MSSV: 53130019 Tháng 6/2015 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC NHA TRANG KHOA CÔNG NGHỆ THÔNG TIN ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC TÌM HIỂU VÀ TỐI ƯU CÁC THAM SỐ TRONG THUẬT TOÁN RANDOM FOREST Giáo viên hướng dẫn: Th.S PHẠM THỊ KIM NGOAN Sinh viên thực hiện: NGUYỄN THÀNH ĐÔ Lớp: 53CNTT MSSV: 53130019 Tháng 6/2015 NHẬN XÉT KẾT QUẢ ĐỒ ÁN Họ tên sinh viên: Mã số sinh viên: …………………… Lớp: ……………… Hệ:……………………… Khoa Công nghệ Thông tin, Trường Đại học Nha Trang Nội dung đồ án: Đánh giá kết đồ án: ………………… ngày … tháng … năm …… Giáo viên hướng dẫn LỜI MỞ ĐẦU Trong năm gần đây, lĩnh vực nghiên cứu ngành Công nghệ thông tin phát triển mạnh mẽ, nhiều thuật toán đời với nhiều hướng nghiên cứu khác Trong học máy hướng nghiên cứu xuất từ lâu đạt nhiều thành tựu Nhiều thuật toán học máy ứng dụng thực tế mang lại hiệu lĩnh vực như: nhận dạng chữ viết tay, nhận dạng mặt người, máy tìm kiếm,… Các thuật toán dùng phổ biến như: Cây định, Mạng Nơ-ron nhân tạo, KMean, Random Forest Mỗi thuật toán có số tham số tham số ảnh hưởng lớn đến kết thuật toán, việc tối ưu tham số quan trọng cần thiết Trong đồ án tìm hiểu tối ưu số tham số thuật toán Random Forest, thực nghiệm ứng dụng nhận dạng chữ viết tay rời rạc cài đặt ứng dụng ước lượng tuổi từ gương mặt thuật toán Random Forest Em xin chân thành cảm ơn cô Phạm Thị Kim Ngoan tận tình hướng dẫn em hoàn thành đồ án MỤC LỤC CHƯƠNG TỔNG QUAN 1.1 Giới thiệu học máy 1.2 Giới thiệu thuật toán Random Forest 1.3 Vấn đề tối ưu tham số Random Forest 1.4 Ứng dụng Random Forest uớc lượng tuổi từ gương mặt CHƯƠNG CƠ SỞ LÝ THUYẾT 10 2.1 Thuật toán Random Forest 10 2.1.1 Định nghĩa 10 2.1.2 Mô hình thuật toán 10 2.1.3 Thuật toán 11 2.1.4 Ví dụ minh họa 11 2.1.5 Đặc điểm Random Forest 12 2.2 Phương pháp lấy mẫu Bootstrap 13 2.2.1 Giới thiệu Bootstrap 13 2.2.2 Thuật toán Bootstrap 14 2.2.3 Đặc điểm Bootstrap 14 2.2.4 Bootstrap Random Forest 15 2.3 Cây phân lớp 15 2.3.1 Giới thiệu 15 2.3.2 Một số thuật toán xây dựng định 17 2.3.3 Đặc điểm Cây định 17 2.4 Một số số đo chọn lựa thuộc tính 18 2.4.1 Độ lợi thông tin( Information Gain ) 18 2.4.2 Tỉ lệ độ lợi( Gain Ratio ) 20 2.4.3 Gini Index( Gini ) 21 2.4.4 Nhận xét 22 CHƯƠNG TỐI ƯU THAM SỐ TRONG RANDOM FOREST 24 3.1 Tối ưu số 24 3.2 Lựa chọn số đo lựa chọn thuộc tính 26 3.3 Lựa chọn số thuộc tính phân chia 27 3.4 Chương trình minh họa thuật toán Random Forest 29 CHƯƠNG ỨNG DỤNG RANDOM FOREST ƯỚC LƯỢNG TUỔI TỪ GƯƠNG MẶT 31 4.1 Mô tả ứng dụng 31 4.1.1 Chức 31 4.1.2 Môi trường cài đặt 31 4.1.3 Hoạt động 32 4.2 Cơ sở ước lượng tuổi từ gương mặt 32 4.2.1 Các đặc trưng ảnh gương mặt 33 4.2.2 Cơ sở tri thức 34 4.3 Thuật toán dò gương mặt ảnh 34 4.3.1 Đặc trưng Haar like 35 4.3.2 Thuật toán AdaBoost 36 4.4 Ước lượng tuổi dùng Random Forest 38 4.5 Đánh giá ứng dụng 38 4.5.1 So sánh với ứng dụng tương tự 38 4.5.2 Độ xác ứng dụng thay đổi tham số 39 4.5.3 Nhận xét 40 4.6 Khó khăn ước lượng tuổi từ gương mặt 41 4.6.1 Tập huấn luyện 41 4.6.2 Đặc trưng gương mặt 41 4.6.3 Chất lượng ảnh 41 CHƯƠNG KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 42 5.1 Kết luận 42 5.2 Hướng phát triển 42 DANH MỤC BẢNG, SƠ ĐỒ, HÌNH Bảng 2.1: Tập liệu minh họa thuật toán Random Forest 11 Bảng 2.2: Bảng liệu cho định 16 Bảng 2.3: Bảng liệu ví dụ Information Gain 19 Bảng 4.1: Bảng so sánh kết ứng dụng How-old.net 38 Bảng 4.2: Bảng kết ứng dụng với số khác 39 Bảng 4.3: Bảng kết ứng dụng với số thuộc tính lựa chọn khác 40 Bảng 4.4: Bảng tần xuất độ tuổi FG-NET 40 Biểu đồ 3.1: Kết thực nghiệm số 25 Biểu đồ 3.2: Biểu đồ kết thực nghiệm số đo lựa chọn thuộc tính 27 Biểu đồ 3.3: Biểu đồ kết thực nghiệm lựa chọn thuộc tính phân chia 28 Sơ đồ 4.1: Sơ đồ hoạt động ứng dụng ước lượng tuổi từ gương mặt 32 Hình 2.1: Mô hình thuật toán Random Forest 10 Hình 2.2: Hình định rừng 12 Hình 2.3: Hình ảnh Bootstrap Random Forest 15 Hình 2.4: Hình ảnh Cây định 16 Hình 3.1: Hình ảnh ký tự tập MNISTrain 25 Hình 3.2: Hình ảnh chương trình minh họa Random Forest 29 Hình 4.1: Hình ảnh minh họa ứng dụng ước lượng tuổi từ gương mặt 31 Hình 4.2: Hình ảnh đặc trưng gương mặt 33 Hình 4.3: Hình ảnh minh họa dò tìm gương mặt ảnh 34 Hình 4.4: Hình ảnh cửa sổ 10x10 36 Hình 4.5: Hình ảnh kết ứng dụng sai khác với người 41 CHƯƠNG TỔNG QUAN 1.1 Giới thiệu học máy Học máy ngành khoa học máy tính nhằm nghiên cứu, phát triển thuật toán, thuật giải với mục đích đưa tri thức vào máy tính, cụ thể thuật giải dựa tập liệu rút trích quy luật từ chúng, làm cho máy tính giải toán mà thuật toán bình thường khó thực tìm kiếm, nhận dạng, dự đoán Các thuật toán học máy phân loại theo kết thuật toán Các loại thuật toán thường sử dụng như: Học có giám sát, học không giám sát, học nửa giám sát, học tăng cường Học máy ngày phát triển có nhiều thuật toán đời như: Mạng nơ-ron nhân tạo, Cây định, K-Mean, Máy vector hỗ trợ Học máy có ứng dụng rộng rãi nhiều lĩnh vực khác như: máy truy tìm liệu, chuẩn đoán y khoa, phát thẻ tín dụng giả, phân tích thị trường chứng khoán, phân loại chuỗi DNA, nhận dạng tiếng nói chữ viết, dịch tự động, chơi trò chơi cử động rô-bốt Thuật toán Random Forest thuật toán học máy đời muộn thuật toán học máy khác, thuật toán Random Forest kế thừa ưu điểm thuật toán khác đồng thời khắc phục hạn chế mặt số lượng liệu độ phức tạp liệu 1.2 Giới thiệu thuật toán Random Forest Thuật ngữ Random Forest xuất lần vào năm 1995, sau kết hợp với kỹ thuật lựa chọn thuộc tính ngẫu nhiên Leo Breiman năm 1996 Năm 2001 Leo Breiman xây dựng thuật toán Random Forest có bổ sung thêm lớp ngẫu nhiên để phân lớp Ngoài việc sử dụng mẫu liệu khác nhau, rừng ngẫu nhiên thay đổi để xây dựng phân loại hồi quy khác Các gói thư viện cài đặt thuật toán Random Forest xây dựng ngôn ngữ Fortran Leo Breiman Cutler Random Forest mô hình hóa tập phân lớp Tuy nhiên Random Forest sử dụng mẫu ngẫu nhiên cho việc chọn lựa thuộc tính ngẫu nhiên phân chia Thuật toán Random Forest tỏ xác nhanh huấn luyện không gian liệu lớn với nhiều thuộc tính, việc sử dụng kết dự đoán tất rừng phân lớp hồi quy giúp cho kết thuật toán xác Thuật toán Random Forest ứng dụng tác vụ phân lớp hồi quy Về phân lớp nhận dạng chữ viết tay rời rạc, ứng dụng hồi quy ước lượng tuổi từ hình ảnh gương mặt Các ứng dụng trình bày chi tiết chương chương đồ án Để cải thiện hiệu thuật toán ứng dụng, việc chuẩn bị tập mẫu phong phú cần lựa chọn số tham số phù hợp để nâng cao độ xác ứng dụng 1.3 Vấn đề tối ưu tham số Random Forest Đối với thuật toán nói chung Random Forest nói riêng, việc tối ưu tham số quan trọng cần thiết Khi thay đổi giá trị cách tính giá trị số tham số thuật toán làm thay đổi độ xác, thời gian thực thi tài nguyên hệ thống thuật toán Như thuật toán Mạng Nơ-ron nhân tạo, thay đổi ngưỡng lỗi cao làm tăng độ xác làm thời gian huấn luyện kéo dài Random Forest có số tham số huấn luyện, nên việc lựa chọn tham số cho thuật toán đạt hiệu cao tốt cần thiết huấn luyện đưa vào ứng dụng cụ thể 1.4 Ứng dụng Random Forest uớc lượng tuổi từ gương mặt Đối với người, việc ước lượng tuổi từ hình ảnh gương mặt dễ dàng máy tính tác vụ khó khăn Các thuật toán học máy đời giúp máy tính thực tác vụ khó khăn Thuật toán Random Forest với ứng dụng hồi quy ước lượng tuổi từ hình ảnh gương mặt dựa vào đặc trưng hình ảnh gương mặt Việc xác định gương mặt tuổi từ hình ảnh gương mặt ứng dụng vấn đề an ninh như: xác định có người lớn tuổi phòng mẫu giáo có gắn máy quay xác định tuổi người ảnh CHƯƠNG CƠ SỞ LÝ THUYẾT 2.1 Thuật toán Random Forest 2.1.1 Định nghĩa Random Forest thuật toán học máy dựa kỹ thuật lắp ghép, kết hợp phân lớp Random Forest xây dựng phân lớp cách lựa chọn ngẫu nhiên nhóm nhỏ thuộc tính nút để phân chia cho mức phân lớp Ngoài tập mẫu lựa chọn ngẫu nhiên phương pháp Bootstrap từ tập mẫu ban đầu Số lượng phân lớp rừng không hạn chế thuật toán sử dụng kết dự đoán tất rừng làm kết cuối thuật toán 2.1.2 Mô hình thuật toán Random Forest Bootstrap … Bootstrap T Decision Tree … Decision Tree T Hình 2.1: Mô hình thuật toán Random Forest 10 Từ kết số thuộc tính m 196, nên chọn k √𝑚 = 14 cho kết nhỉnh m/2 m 3.4 Chương trình minh họa thuật toán Random Forest Chương trình minh họa thuật toán Random Forest với mục đích kiểm tra độ xác thuật toán với thông số khác Hình 3.2: Hình ảnh chương trình minh họa Random Forest Chương trình cài đặt ngôn ngữ Java, máy tính cần có Java Runtime Environment trở lên để chạy chương trình Chương trình cài đặt thuật toán Random Forest với thông số thay đổi như: số cây, số thuộc tính lựa chọn phân chia số đo lựa chọn thuộc tính với mục đích kiểm tra độ xác thuật toán tập mẫu tập kiểm tra Các file đầu vào cần đảm bảo theo tiêu chuẩn: - File huấn luyện: file dạng văn bản, dòng liệu, dòng số ngăn cách khoảng trắng biểu diễn giá trị thuộc tính - File nhãn lớp: số dòng số dòng file huấn luyện, dòng số giá trị nhãn lớp tương ứng với file huấn luyện 29 - File kiểm tra file nhãn lớp kiểm tra tương tự file Chương trình kiểm tra độ xác thuật toán Random Forest thời gian huấn luyện độ xác vần chưa thực đạt hiệu cao, cần có thời gian tinh chỉnh, tối ưu cấu trúc liệu, giảm thời gian thực thi tăng độ xác thuật toán 30 CHƯƠNG ỨNG DỤNG RANDOM FOREST ƯỚC LƯỢNG TUỔI TỪ GƯƠNG MẶT 4.1 Mô tả ứng dụng 4.1.1 Chức Ứng dụng Website cho phép tải hình, trích lấy hình ảnh gương mặt hiển thị tuổi ước lượng gương mặt Hình ảnh ứng dụng Hình 4.1: Hình ảnh minh họa ứng dụng ước lượng tuổi từ gương mặt 4.1.2 Môi trường cài đặt - Ứng dụng cài đặt C# dùng MVC NET - Một số kỹ thuật sử dụng web ajax thư viện jquery - Sử dụng thư viện Egmu CV để dò tìm gương mặt ảnh 31 4.1.3 Hoạt động Sơ đồ hoạt động: Mô hình dự đoán tuổi huấn luyện Ảnh gương mặt Ảnh gốc Phát gương mặt Dự đoán tuổi Random Forest Ảnh gương mặt n Tuổi gương mặt … Tuổi gương mặt n Sơ đồ 4.1: Sơ đồ hoạt động ứng dụng ước lượng tuổi từ gương mặt Kí hiệu: - Ảnh gốc: ảnh gốc người dùng tải lên - Phát gương mặt: dùng thuật toán AdaBoost kết hợp đặc trưng Haar like để dò gương mặt ảnh gốc - Ảnh gương mặt: Các ảnh gương mặt dò ảnh gốc, ảnh gương mặt vùng ảnh gốc cắt - Dự đoán tuổi Random Forest: Sử dụng Mô hình dự đoán tuổi huấn luyện để ước lượng tuổi cho ảnh gương mặt - Tuổi gương mặt: tuổi dự đoán cho ảnh gương mặt 4.2 Cơ sở ước lượng tuổi từ gương mặt Cơ sở ước lượng tuổi từ hình gương mặt thuật toán giống việc người nhìn hình ảnh gương mặt ước lượng tuổi cho gương mặt Con người ước lượng tuổi từ hình ảnh nhìn vào đặc trưng trán, da mặt, tóc,… 32 dựa vào tri thức có như: trán nhăn tuổi trung niên, trán nhăn da mặt khô tuổi cao; da mịn, căng, nếp nhăn tuổi niên Để cho tuổi người cho giá trị mang tính ước lượng Thuật toán học máy ước lượng tuổi từ gương mặt dựa vào đặc trưng người có sở tri thức tập huấn luyện 4.2.1 Các đặc trưng ảnh gương mặt Ảnh gốc Xám hóa Ảnh xám Các vùng đặc trưng quan trọng Hình 4.2: Hình ảnh đặc trưng gương mặt - Thuật toán lấy toàn ảnh gương mặt làm mảng đặc trưng theo phương pháp Zonning với k =5 Ảnh gương mặt co kích thước 100x100 sau lặp từ xuống từ trái sang phải, lần lấy cửa sổ 5x5 gồm 25 điểm ảnh tính tổng giá trị màu, lấy trung bình giá trị đặc trưng Kết thúc ta mảng đặc trưng 400 giá trị 33 - Nếu ảnh độ tuổi khác với hình ảnh gương mặt khác phân biệt phương pháp Ví dụ vùng trán nhăn giá trị điểm ảnh vùng khác với giá trị vùng ảnh trán trơn Việc xác định vùng đặc trưng quan trọng trán, gò má, cằm,… chưa thể xác - định 4.2.2 Cơ sở tri thức - Đối với người, sở tri thức cho việc dự đoán tuổi trình học hỏi, quan sát từ lúc có nhận thức Đối với thuật toán sở tri thức tập huấn luyện kết huấn luyện(mô hình dự đoán) Trong ước lượng tuổi từ ảnh gương mặt, tập huấn luyện tập ảnh gương mặt với tuổi biết, qua trình huấn luyện, quy luật rút cho gương mặt không xác định tuổi, thuật toán dựa vào quy luật để ước lượng tuổi cho gương mặt - Mỗi người có sở tri thức khác nhau, chuyên gia bác sĩ lĩnh vực liên quan đến tuổi gương mặt có khả dự đoán tuổi xác người bình thường bác sĩ có sở tri thức lĩnh vực chuyên sâu Thuật toán tương tự, mô hình có tập huấn luyện đa dạng, phong phú cho kết dự đoán xác mô hình nghèo nàn tập huấn luyện - Tập huấn luyện ứng dụng sử dụng FG-NET gồm 1002 ảnh gương mặt với độ tuổi ảnh khoảng từ đến 69 tuổi 4.3 Thuật toán dò gương mặt ảnh Ứng dụng sử dụng thuật toán AdaBoost kết hợp đặc trưng Haar like để dò tìm gương mặt ảnh Để dò gương mặt ảnh I có kích thước WxH, dùng cửa sổ Wi có kích thước wxh rê hết ảnh I để xem thử cửa sổ Wi có phải gương mặt hay không, cửa sổ Wi thực chất vùng ảnh I Ảnh I Cửa sổ Wi h H w W Hình 4.3: Hình ảnh minh họa dò tìm gương mặt ảnh 34 Việc rê cửa sổ Wi thực chất xem vùng ảnh có vị trí pixel (0,0) đến pixel(w,h) có phải ảnh gương mặt không, xem vùng ảnh có vị trí pixel (0,1) đến pixel(w+1,h) có phải ảnh gương mặt không,… Việc rê cửa sổ dần kích thước cửa sổ lên (w+1),(h+1), (w+1),(h+2),… Ví dụ: cửa sổ có kích thước 21x21, ta xem vùng ảnh (0,0) đến (21,21) có phải gương mặt hay không, vùng ảnh (0,1) đến (21,22) có phải gương mặt hay không, … Sau tăng kích thước cửa sổ lên 21x22, 21x23,… Trong trình rê cửa sổ đánh dấu vùng ảnh gương mặt để dò vùng để nhằm tốc độ dò tìm Để đánh giá cửa sổ Wi gương mặt, ta tính đặc trưng Haar like cửa sổ dùng AdaBoost để xem đặc trưng có ảnh gương mặt Như đặc trưng Haar like cho mảng số đặc trưng cửa sổ Wi, thuật toán AdaBoost đánh giá mảng gương mặt hay không, mảng gương mặt cửa sổ Wi ảnh gương mặt 4.3.1 Đặc trưng Haar like Đặc trưng Haar like Viola Jones đề xuất Đầu vào: ảnh nhị phân Wi ( cửa sổ Wi ) Đầu ra: mảng đặc trưng ảnh Đặc trưng Haar like có đặc trưng bản, sau mở rộng đặc trưng khác Bốn đặc trưng bản: C : đặc trưng phân cách mũi bên má B: đặc trưng đôi mắt Đặc trưng A D : đặc trưng thêm vào Hình 4.4: Hình ảnh minh họa đặc trưng Haar like 35 Một đặc trưng A, B, C, D hình hình chữ nhật kề nhau, ví dụ đặc trưng A có hình chữ nhật Mảng đặc trưng tính việc rê đặc trưng A,B,C,D khắp ảnh Wi với kích thước hình chữ nhật tăng dần tương tự rê cửa sổ Wi khắp ảnh I, vị trí tính giá trị đặc trưng F, sau nối lại thành mảng đặc trưng Giá trị đặc trưng F = abs( tổng pixel hình chữ nhật trắng – tổng pixel hình chữ nhật đen ) Ví dụ: ảnh Wi kích thước 10x10, đặc trưng A với kích thước hình chữ nhật 1x1 1x2, ví trí rê (1,1) F = abs( – 2) = Hình 4.5: Hình ảnh cửa sổ 10x10 Kích thước mảng đặc trưng lớn, với ảnh 24x24 kích thước 162,336 giá trị 4.3.2 Thuật toán AdaBoost AdaBoost giải thuật phân lớp phi tuyến Freund Schapire đề xuất năm 1995 Giải thuật AdaBoost thích hợp cho toán phân lớp có giá trị như: nam nữ, khách hàng mua hay không mua, ảnh mặt người hay không,… Tương tự thuật toán học máy khác, AdaBoost cần có trình huấn luyện tạo mô hình sử dụng mô hình để phân lớp cho đối tượng Thuật toán AdaBoost phát biểu đơn giản sau: Sau huấn luyện cho hàm gọi fn() trọng số w 36 Cho mảng đặc trưng F cần phân lớp, nhân phần tử F với w, cho F vào hàm fn() hàm fn() cho kết gần -1 nhãn lớp F -1, ngược lại nhãn lớp F Ta mã hóa -1 không mặt người, mặt người, tùy toán Ví dụ: Sau huấn luyện thuật toán AdaBoost cho hàm fn() = sum(xi) với i thuộc [1,n], n số phần tử mảng trọng số w = 0.5 Cho mảng F =[1, -2, 0.5], cần phân lớp F Gọi Fw mảng F sau nhân với trọng số w, Fw = [ 0.5, -1, 0.25] fn(Fw) = 0.5 + (-1) + 0.25 = -0.25 ( -0.25 >> -1) Vậy nhãn lớp F -1 Thuật toán AdaBoost không đơn giản trên, mà phức tạp, việc huấn luyện tạo hàm fn() trọng số w việc chuẩn hóa mảng F đòi hỏi trình huấn luyện lâu dài Quá trình huấn luyện thuật toán AdaBoost: - Quá trình huấn luyện, AdaBoost kết hợp phân loại yếu để tạo nên phân loại mạnh, phân loại hàm fn() trọng số w, phân loại yếu tỷ lệ dự đoán sai mức - Qua trình huấn luyện lặp lặp lại, tạo phân loại từ việc cập nhật trọng số w phân loại trước - Qua trình lặp T lần cho phân loại thứ T phân loại mạnh, lặp tạo phân loại mà tỷ lệ phân lớp xác đạt mứt đặt - Ban đầu tạo phân loại yếu với hàm fn() trọng số w đó, hàm fn() tùy toán mà xác định AdaBoost dự đoán gương mặt: Đầu vào: tập huấn luyện có D (x1, y1), (x2, y2) … (xD, yD), xi mảng đặc trưng từ Haar like, yi nhãn lớp xi , yi thuộc {-1, 1}, 1: gương mặt, -1 không gương mặt Đầu ra: phân loại mạnh để dự đoán mảng đặc trưng gương mặt 37 4.4 Ước lượng tuổi dùng Random Forest - Trong ước lượng tuổi gương mặt, thuật toán Random Forest ứng dụng huấn luyện tập mẫu gồm 1002 gương mặt từ FG-NET, tuổi có giá trị từ đến 69 - Số 500 - Phương pháp trích chọn đặc trưng phương pháp Zonning với k = 5, ảnh gương mặt co kích thước 100x100, mảng đặc trưng ảnh 400 - Số thuộc tính phân chia nút √400 = 20 - Để ước lượng tuổi, thuật toán Ranom Forest sử dụng phương pháp hồi quy [2], giá trị tuổi ước lượng cho gương mặt giá trị trung bình tất giá trị dự đoán rừng Việc sử dụng hồi quy thay cho phân lớp số lớp 69 lớp, xem nhiều cho ứng dụng phân lớp, đồng thời thuật toán cho kết dự đoán gần với tuổi thật tuổi thật gương mặt gương mặt ước lượng không nằm tập huấn luyện mà dựa vào đặc trưng ảnh để ước lượng 4.5 Đánh giá ứng dụng 4.5.1 So sánh với ứng dụng tương tự Ứng dụng đánh giá với Website tương tự how-old.net với 100 ảnh kiểm tra Neutral Faces lấy trang web: http://agingmind.utdallas.edu/facedb/view/neutral-faces Kết quả: Độ xác độ lệch tuổi Bảng 4.1: Bảng so sánh kết ứng dụng How-old.net Độ lệch 10 Ứng dụng (%) 11 19 31 40 48 57 64 38 How-old.net(%) 11 13 18 24 32 38 41 51 54 60 Qua kết cho thấy website how-old.net hco kết nhỉnh nhiên nhìn chung độ xác ứng dụng chưa cao 4.5.2 Độ xác ứng dụng thay đổi tham số - Lựa chọn số đo thông tin chia tách: Do liệu mẫu sau rút trích đặc trưng kiểu số liên tục nhị phân nên sử dụng độ đo Gini Index - Số cây: Thực thay đổi số quan sát độ xác ứng dụng, tương tự mục 4.5.1, kiểm tra 100 ảnh Neutral faces Kết quả: độ xác độ lệch tuổi Bảng 4.2: Bảng kết ứng dụng với số khác Độ lệch 10 10 50 10 14 16 19 25 30 37 46 100 11 14 15 21 26 35 46 53 500 250 12 12 14 19 19 23 31 39 11 13 18 26 34 42 52 59 11 19 31 40 48 57 64 Từ kết cho thấy với số khác độ xác không thay đổi nhiều, số tăng độ xác không tăng - Số thuộc tính lựa chọn phân chia Thực thay đổi số thuộc tính phân chia với k tương ứng 20 (√400 ), 200 (400/2) 400, sau quan sát độ xác ứng dụng 39 Kết quả: Độ xác độ lệch tuổi Bảng 4.3: Bảng kết ứng dụng với số thuộc tính lựa chọn khác Độ lệch 20 10 200 10 14 16 19 25 30 37 44 2 12 21 28 37 48 55 62 400 3 12 14 20 27 29 Từ kết cho thấy độ xác không thay đổi đáng kể thi thay đổi số thuộc tính chọn lựa phân chia, nhiên giá trị k=20 cho kết cao với độ lệch tuổi 4.5.3 Nhận xét - Kết dự đoán xác thấp huấn luyện chưa đa dạng độ tuổi gương mặt - Giá trị dự đoán hồi quy ước lượng gần độ tuổi thật có ảnh hưởng đến kết cuối - Dựa vào bảng phân bố độ tuổi bên dưới, ta thấy tần xuất độ tuổi không tập huấn luyện so sánh với kết đa số dự đoán lệch vùng độ tuổi chiếm đa số tập huấn luyện Bảng 4.4: Bảng tần xuất độ tuổi FG-NET Độ tuổi 1-9 10 - 19 20 - 29 30 - 39 40 - 49 50 - 59 60 - 69 Tỷ lệ FG-NET(%) 37.03 33.83 14.37 7.88 4.59 1.5 0.8 40 4.6 Khó khăn ước lượng tuổi từ gương mặt 4.6.1 Tập huấn luyện Tập huấn luyện tập ảnh gương mặt với tuổi tương ứng, việc sưu tầm hình ảnh với độ tuổi để có đa dạng gương mặt gặp nhiều khó khăn Tập huấn luyện đa dạng, phong phú đủ dân tộc, nhiều vùng miền giúp thuật toán dự đoán xác 4.6.2 Đặc trưng gương mặt Việc trích chọn đặc trưng gương mặt để dự đoán tuổi yếu tố giúp tăng độ xác Hiện có phương pháp nghiên cứu như: Active Appearance Model (AAM) – mô hình thống kê hình dáng điểm ảnh quan trọng gương mặt( landmark point), Gabor Filter – lọc để trích chọn giá trị đặc trưng ảnh Các phương pháp không phương pháp Zonning, mà khó cài đặt, cần có trình tìm hiểu để hiểu áp dụng phương pháp 4.6.3 Chất lượng ảnh Ứng dụng cho kết độ tuổi khác người với hình ảnh gương mặt khác = = = 23 Hình 4.6: Hình ảnh kết ứng dụng sai khác với người Xét gương mặt người thời điểm, thuật toán cho độ tuổi khác tùy góc chụp, độ tương phản,… hình ảnh gương mặt lúc cười, lúc bình thường Để cho độ xác mong muốn, ảnh cần thể hoàn cảnh tốt Hoặc tác vụ hiệu chỉnh, làm nét ảnh từ ảnh chất lượng thuật toán 41 CHƯƠNG KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 5.1 Kết luận Qua đồ án hoàn thành yêu cầu đề tài đặt ra, cụ thể là: - Hiểu cài đặt thuật toán Random Forest - Nghiên cứu thực nghiệm tối ưu số tham số Random Forest nhận dạng chữ viết tay tập MNIST:  Số cây: thực nghiệm nhiều lần với số 1, 10, 20, 50, 100, 200, 500, 1000 so sánh kết  Độ đo thông tin để phân nhánh cây: thực nghiệm ba số đo Information Gain, Gain Ratio Gini so sánh  Số thuộc tính lựa chọn phân chia: thực nghiệm ba giá trị bậc hai, nửa tổng số thuộc tính tất thuộc tính để so sánh - Xây dựng ứng dụng ước lượng tuổi từ hình ảnh gương mặt:  Thực nghiệm thay đổi số tham số số cây, số thuộc tính lựa chọn để chọn tham số tốt  So sánh với ứng dụng How-old.net tập Neutral Faces Thông qua nghiên cứu thuật toán Random Forest ứng dụng, cho thấy Random Forest thuật toán hiệu quả, xác cao, cần đầu tư phát triển cho ứng dụng thực tiễn đời sống Bản thân hoàn thành đồ án nhiên nhiều thiếu xót, cần đào sâu nghiên cứu trau dồi thêm nhiều kiến thức 5.2 Hướng phát triển Trong thời gian tới, đề tài mở rộng tối ưu thuật toán Random Forest tham số khác phương pháp lấy mẫu, phân lớp phát triển ứng dụng có ích cho đời sống xã hội Việc chuyển từ thuật toán sang ứng dụng cụ thể gặp nhiều khó khăn, cần có thời gian để phát triển ứng dụng, cải biến cấu trúc liệu, giảm thời gian thực thi để nâng cao khả ứng dụng thuật toán 42 Tài liệu tham khảo Tiếng Việt: [1] Đồng Thị Ngọc Lan, Nghiên cứu xây dựng phương pháp trích chọn thuộc tính nhằm tăng hiệu phân lớp liệu đa chiều, năm 2012 [2] Huỳnh Minh Trí, Tìm hiểu nâng cao hiệu nhận dạng chữ viết tay rời rạc dựa kỹ thuật lấy đặc trưng phát triển ứng dụng, đồ án tốt nghiệp đại học, khoa Công nghệ thông tin, trường đại học Nha trang, năm 2014 [3] Huỳnh Tuấn Anh , Bài giảng Khai phá liệu, khoa Công nghệ thông tin, trường đại học Nha trang, năm 2011 [4] Nguyễn Đình Cường, Xử lý ảnh, khoa Công nghệ thông tin, trường đại học Nha trang, năm 2011 Tiếng Anh: [5] Albert Montillo1, Haibin Ling, AGE REGRESSION FROM FACES USING RANDOM FORESTS [6] Eric Debreuve, An introduction to random forests, University Nice Sophia Antipolis / CNRS / InriaLabs: I3S / Inria CRI SA-M / iBV, 2011 [7] JOHN MINGERS , An Empirical Comparison of Selection Measures for DecisionTree Induction, School ofIndustrial and Business Studies, University of Warwick, Coventry CV AL, U.K [8] J Ross Quinlan ,C4.5 Programs for Machine Learning (Morgan Kaufmann Series in Machine Learning), 1993 [9] L Breiman, J H Friedman, R A Olshen, and C J Stone.Classification and Regression Trees Wadsworth,Belmont,CA, 1984 [10] L Breiman, RandomForest, Statistics Department University of California Berkeley, CA 94720, 2001 [11]http://en.wikipedia.org/wiki/Viola%E2%80%93Jones_object_detection_framewor k [12] http://en.wikipedia.org/wiki/AdaBoost 43 [...]... SỐ TRONG RANDOM FOREST Như đề cập trong chương 1, việc tối ưu các tham số trong Random Forest là rất quan trọng và cần thiết, một số tham số có ảnh hưởng rất lớn đến kết quả cũng như hiệu suất khi huấn luyện thuật toán Trong đồ án, tôi đã nghiên cứu tối ưu các tham số: số cây, số đo lựa chọn thuộc tính và số thuộc tính lựa chọn phân chia Các thực nghiệm cài đặt trên môi trường Java trình bày trong. .. chương 3.1 Tối ưu số cây Số cây là một trong các tham số quan trọng trong Random Forest Việc chọn lựa số cây trong rừng có ảnh hưởng rất lớn đến kết quả mô hình tạo ra từ thuật toán Qua quá trình nghiên cứu và thực nghiệm nhận dạng chữ viết tay rời rạc, tôi đưa ra các nhận xét sau: - Không nên sử dụng số cây quá ít(1, 2 cây) vì làm giảm độ chính xác thuật toán - Số cây là tùy bộ dữ liệu - Số cây tăng... tính và miền giá trị thuộc tính lớn 22 Việc chọn cách tính nào để có hiệu quả cao tùy thuộc vào rất nhiều yếu tố, trong đó cấu trúc dữ liệu ảnh hưởng rất lớn đến kết quả của các thuật toán Chẳng hạn như thuật toán ID3 và CART cho hiệu quả phân lớp rất cao đối với các trường dữ liệu rời rạc và số trong khi đó các thuật toán như C4.5 có hiệu quả hơn đối với các dữ liệu nhị phân 23 CHƯƠNG 3 TỐI ƯU THAM. .. sự thay thế thì theo ước tính có khoảng 1/3 các phần tử không có nằm trong mẫu này Điều này có nghĩa là chỉ có khoảng 2/3 các phần tử trong tập huấn luyện tham gia vào trong các tính toán, và 1/3 các phần tử này được gọi là dữ liệu out-of-bag Dữ liệu out-of-bag được sử dụng để ước lượng lỗi tạo ra từ việc kết hợp các kết quả từ các cây tổng hợp trong Random Forest cũng như dùng để ước tính độ quan trọng... họa Random Forest Chương trình được cài đặt bằng ngôn ngữ Java, máy tính cần có Java Runtime Environment 7 trở lên để chạy được chương trình Chương trình cài đặt thuật toán Random Forest với các thông số có thể thay đổi được như: số cây, số thuộc tính lựa chọn phân chia và số đo lựa chọn thuộc tính với mục đích kiểm tra độ chính xác của thuật toán trên tập dữ mẫu và tập kiểm tra Các file đầu vào cần đảm... hiện cả thuật toán, ta có thể sử dụng nhiều máy để xây dựng các cây sau đó ghép lại thành rừng 12 - Các sai số được giảm thiểu do kết quả của Random Forest được tổng hợp thông qua nhiều người học (Cây phân lớp) - Việc chọn ngẫu nhiên tại mỗi bước trong Random Forest sẽ làm giảm mối tương quan giữa các người học trong việc tổng hợp các kết quả - Lỗi chung của một rừng các cây phân lớp phụ thuộc vào lỗi... 33% trong khi với số cây 1,000 là 77% - Độ chính xác là 77% cho các số cây 500, 700 và 1,000 Do Random Forest tổng hợp kết quả các cây để đưa ra kết quả cuối cùng nên nếu số cây ít không phản ánh được các ưu điểm thuật toán Đồng thời việc mỗi cây chỉ sở hữu khoảng 2/3 dữ liệu từ tập mẫu cho quá trình huấn luyện nên nếu số cây ít thì có khả năng toàn bộ tập mẫu không được sử dụng trọn vẹn 25 Nếu số cây... tốt tùy vào số đo được sử dụng khi phân chia tập mẫu tại mỗi nút, các số đo lựa chọn thuộc tính khi phân nhánh được trình bày trong mục 2.4 2.4 Một số số đo chọn lựa thuộc tính Trong quá trình xây dựng cây phân lớp, cần chọn thuộc tính tốt nhất để phân chia cây Tại mỗi nút của cây cần chọn giá trị của thuộc tính tốt nhất để phân chia cây thành các nhánh Một số độ đo được dùng trong các thuật toán xây... của từng cây trong rừng cũng như mối tương quan giữa các cây b Hạn chế: - Dữ liệu huấn luyện cần được đa dạng hóa và cân bằng về số nhãn lớp Việc không cân bằng nhãn lớp khiến kết quả dự đoán của thuật toán có thể lệch về số đông nhãn lớp - Thời gian huấn luyện của rừng có thể kéo dài tùy số cây và số thuộc tính phân chia c Out of bag Random Forest sử dụng Bootstrap để tạo tập mẫu cho các cây Khi tập... 58 k = sqrt(m) k=m/2 k=m Số thuộc tính lựa chọn Biểu đồ 3.3: Biểu đồ kết quả thực nghiệm lựa chọn thuộc tính phân chia 28 Từ kết quả trên do số thuộc tính m là 196, nên chọn k là √𝑚 = 14 cho kết quả nhỉnh hơn m/2 và m 3.4 Chương trình minh họa thuật toán Random Forest Chương trình minh họa thuật toán Random Forest với mục đích kiểm tra độ chính xác thuật toán với các thông số khác nhau Hình 3.2: Hình ... Random Forest Mỗi thuật toán có số tham số tham số ảnh hưởng lớn đến kết thuật toán, việc tối ưu tham số quan trọng cần thiết Trong đồ án tìm hiểu tối ưu số tham số thuật toán Random Forest, ... Vấn đề tối ưu tham số Random Forest Đối với thuật toán nói chung Random Forest nói riêng, việc tối ưu tham số quan trọng cần thiết Khi thay đổi giá trị cách tính giá trị số tham số thuật toán làm... CHƯƠNG TỐI ƯU THAM SỐ TRONG RANDOM FOREST Như đề cập chương 1, việc tối ưu tham số Random Forest quan trọng cần thiết, số tham số có ảnh hưởng lớn đến kết hiệu suất huấn luyện thuật toán Trong đồ

Ngày đăng: 01/04/2016, 11:15

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan