Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 24 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
24
Dung lượng
1,59 MB
Nội dung
ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN BÁO CÁO ĐỒ ÁN MÔN HỌC ĐỒ ÁN Đề tài: Tìm hiểu thuật tốn tối ưu thông qua thự viện AI, ML Machine Learning ❖ Giảng viên hướng dẫn ❖ Ths.Nguyễn Thị Thanh Trúc ❖ Lớp ❖ SE121.L21.PMCL ❖ Sinh viên thực ❖ Lương Việt Anh – 17520238 Tp Hồ Chí Minh, tháng 06 năm 2021 Trang NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN , ngày tháng ……… năm 2021 Người nhận xét (Ký tên ghi rõ họ tên) Trang LỜI CẢM ƠN Trong trình làm báo cáo, em nhận giúp đỡ, đóng góp ý kiến bảo nhiệt tình thầy cơ, gia đình bạn bè Em xin gửi lời cảm ơn chân thành đến cô Nguyễn Thị Thanh Trúc - giảng viên khoa Công nghệ phần mềm - Trường ĐH CNTT- ĐHQG Tp HCM người tận tình hướng dẫn, góp ý bảo em suốt q trình làm báo cáo Ngồi ra, em xin gửi lời cảm ơn đến thầy cô giáo trường ĐH CNTT- ĐHQG Tp HCM nói chung, thầy Khoa Cơng nghệ phần mềm nói riêng dạy dỗ cho em kiến thức lập trình, qua em có sở lý thuyết vững vàng từ hồn thành tốt đồ án Cuối cùng, em xin chân thành cảm ơn gia đình bạn bè, ln tạo điều kiện, quan tâm, giúp đỡ, động viên em suốt trình hồn thành đồ án Thành phố Hồ Chí Minh, ngày 26 tháng 06 năm 2021 Trang MỤC LỤC NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN LỜI CẢM ƠN MỤC LỤC I Tổng Quan 1.1 Giới thiệu đề tài 1.1.1 Tổng quan 1.1.2 Giới thiệu toán 1.2 Mục tiêu,phương pháp thực hiện,đóng góp 1.2.1.1 Mục tiêu 1.2.1.2 Phương pháp thực 1.2.1.3 Đóng góp 1.3 Cấu Trúc đồ án chuyên ngành II Cơ Sở Lý Thuyết 5 1.1 Thuật toán Gradient Descent 1.2 Ưu điểm nhược điểm Gradient Descent III Thực Nghiệm 1.1 Phân tích tốn Áp dụng Gradient descent vào toán 1.1.1.1 6 Bài toán Thiết lập công thức Loss function Biểu diễn toán 10 Thu thập xử lý liệu 11 1.2 Dữ liệu sau thu thập bao gồm 1840 dòng sau craw data: 11 Mô tả biến: 13 Xử lý liệu trước đưa vào sử dụng : 14 Trực quan hoá liệu 15 1.3 IV Phân tích tốn Bắt đầu training liệu sử dụng Gradient Descent Kết Luận 18 21 Trang I Tổng Quan 1.1 Giới thiệu đề tài 1.1.1 Tổng quan Những năm gần đây, mà khả tính tốn máy tính nâng lên tầm cao lượng liệu khổng lồ thu thập hãng công nghệ lớn, Machine Learning tiến thêm bước dài lĩnh vực đời gọi Deep Learning (Học Sâu thực không muốn dịch từ tiếng Việt) Deep Learning giúp máy tính thực thi việc tưởng chừng vào 10 năm trước: phân loại ngàn vật thể khác ảnh, tự tạo thích cho ảnh, bắt chước giọng nói chữ viết người, giao tiếp với người, hay chí sáng tác văn hay âm nhạc,khai phá liệu Từ ứng dụng vào việc dự đốn Ví dụ, bạn dự đốn giá hộ dựa liệu giá hộ bạn có Nhưng vấn đề cần phải dự đốn để có hiểu xuất nhanh nhất,đúng tài ngun từ thuật tốn tối ưu đời để giúp thực toán : Gradient Descent, Stochastic Gradient Descent, Momentum, 1.1.2 Giới thiệu tốn Trong Machine Learning nói riêng Tốn Tối Ưu nói chung, thường xun phải tìm giá trị nhỏ (hoặc đơi lớn nhất) hàm số Ví dụ hàm mát hai Linear Regression K-means Clustering Nhìn chung, việc tìm global minimum hàm mát Machine Learning phức tạp, chí bất khả thi Thay vào đó, người ta thường cố gắng tìm điểm local minimum, mức độ đó, coi nghiệm cần tìm tốn Các điểm local minimum nghiệm phương trình đạo hàm Nếu cách tìm tồn (hữu hạn) điểm cực tiểu, ta cần thay điểm local minimum vào hàm số tìm điểm làm cho hàm có giá trị nhỏ Trang Tuy nhiên, hầu hết trường hợp, việc giải phương trình đạo hàm bất khả thi Nguyên nhân đến từ phức tạp dạng đạo hàm, từ việc điểm liệu có số chiều lớn, từ việc có nhiều điểm liệu Hướng tiếp cận phổ biến xuất phát từ điểm mà coi gần với nghiệm tốn, sau dùng phép toán lặp để tiến dần đến điểm cần tìm, tức đến đạo hàm gần với Gradient Descent (viết gọn GD) biến thể phương pháp dùng nhiều Trong đồ áp dụng Gradient Descent cho toán dự đoán giá nhà mục tiêu dự đoán hay dự báo (prediction/ forecasting), hồi quy tuyến tính dùng để “khớp” mơ hình dự đoán với tập liệu quan sát (x,y) 1.2.Mục tiêu,phương pháp thực hiện,đóng góp 1.2.1.1 Mục tiêu Hiểu Được thuật tốn tối ưu Gradient Descent Tìm hiểu kiến thức deep learning để áp dụng cho toán Thu thập training liệu để đưa kết 1.2.1.2 Phương pháp thực Sử dụng ngôn ngữ python thư viện numpy,pandas ,matplotlib 1.2.1.3 Đóng góp Hệ thống lại kiến thức toán hồi quy sử dụng Gradient Descent Tìm hiểu áp dụng Gradient Descent vào toán Chạy training liệu thu đánh giá kết II Cơ Sở Lý Thuyết 1.1 Thuật toán Gradient Descent Gradient Descent thuật toán tối ưu lặp (iterative optimization algorithm) sử dụng toán Machine Learning Deep Learning (thường toán tối ưu lồi — Convex Optimization) với mục tiêu tìm tập biến nội (internal parameters) cho việc tối ưu models Trong đó: Gradient: tỷ lệ độ nghiêng đường dốc (rate of inclination or declination of a slope) Về mặt toán học, Gradient hàm số đạo hàm hàm số tương ứng với biến hàm Đối với hàm số đơn biến, sử dụng khái niệm Derivative thay cho Gradient Trang Descent: từ viết tắt descending, nghĩa giảm dần.Gradient Descent có nhiều dạng khác Stochastic Gradient Descent (SGD), Mini-batch SDG Nhưng thực thi sau: Khởi tạo biến nội Đánh giá model dựa vào biến nội hàm mát (Loss function) Cập nhật biến nội theo hướng tối ưu hàm mát (finding optimal points) Lặp lại bước 2, thỏa điều kiện dừng 1.2 Ưu điểm nhược điểm Gradient Descent Ưu điểm : Thuật toán gradient descent bản, dễ hiểu Thuật toán giải vấn đề tối ưu model neural network cách cập nhật trọng số sau vòng lặp Nhược điểm : Vì đơn giản nên thuật tốn Gradient Descent cịn nhiều hạn chế phụ thuộc vào nghiệm khởi tạo ban đầu learning rate Ví dụ hàm số có global minimum tùy thuộc vào điểm khởi tạo ban đầu cho nghiệm cuối khác Tốc độ học lớn khiến cho thuật toán khơng hội tụ, quanh quẩn bên đích bước nhảy lớn; tốc độ học nhỏ ảnh hưởng đến tốc độ training III Thực Nghiệm 1.1.Phân tích tốn Áp dụng Gradient descent vào toán 1.1.1.1 Phân tích tốn Bài tốn Trên thực tế giá nhà phụ thuộc nhiều yếu tố: diện tích, số phòng, gần trung tâm thương mại, toán đơn giản giả sử giá hộ chung cư phụ thuộc vào diện tích giá hộ chung cư Ví dụ : có bảng đồ thị quan hệ diện tích giá nhà : Trang Nếu yêu cầu ước lượng nhà 50 mét vng khoảng tiền ta phải vẽ đường thẳng gần với điểm tính giá nhà điểm 50 Trang Hình 2: Ước tính giá nhà 50 m2 Về mặt lập trình cần làm việc vậy: Training: tìm đường thẳng (model) gần điểm Mọi người vẽ đường thẳng mơ tả liệu từ hình 1, máy tính khơng, phải tìm thuật tốn Gradient descent phía (Từ model đường thẳng bị sử dụng thay lẫn phần lại viết) Inference: dự đoán xem giá ngơi nhà 50 m2 có giá dựa đường tìm phần Thiết lập cơng thức Phương trình đường thẳng có dạng y = ax + by=ax+b Trang Thay dùng kí hiệu a, b cho phương trình đường thẳng; để tiện cho biểu diễn ma trận phần sau ta w1=a,w0=b Nên phương trình viết lại thành: y=w1∗x+w0 =>Việc tìm đường thẳng thành tìm w0,w1 Để tiện cho việc thiết lập công thức, ta đặt ký hiệu cho liệu bảng liệu: (x1,y1) =(53,1600),( x2,y2) =(50,4500),… Tức nhà diện tích xi thực có giá yi Cịn giá trị mà model dự đốn kí hiệu : Loss function Việc tìm w0,w1 đơn giản làm mắt máy tính điều đấy, nên ban đầu giá trị chọn ngẫu nhiên ví dụ w0=0,w1=1 sau chỉnh dần Trang 10 Sự khác điểm x = 32 model đường thẳng y = x giá trị thực tế liệu đưa vào.Rõ ràng thấy đường y = x không gần điểm hay khơng phải đường mà ta cần tìm Ví dụ điểm x = 32 (nhà 32 m2 ) giá thật 400 triệu model dự đoán 32 triệu Nên cần hàm để đánh giá đường thẳng với tham số (w0,w1)=(0,1) có tốt hay khơng Với điểm liệu (xi,yi) độ chênh lệch giá thật giá dự đốn tính bằng: Và độ chênh lệch tồn liệu tính tổng chênh lệch điểm: Nhận xét: ● J không âm ● J nhỏ đường thẳng gần điểm liệu Nếu J = đường thẳng qua tất điểm liệu => Bài tốn tìm đường thẳng gần điểm liệu trở thành tìm Trang 11 Bài tốn tìm đường thẳng gần điểm liệu trở thành tìm w0,w1 cho hàm J nhỏ Nhưng tìm giá trị nhỏ J giống tìm giá trị nhỏ k*J (k số thực, dương) nên ta tìm giá trị nhỏ ⮚ Từ việc tìm đường thẳng (model) => tìm w0,w1 để hàm J nhỏ Giờ cần thuật tốn để tìm giá trị nhỏ hàm J Đó gradient descent 1.1.1.2 Áp dụng Gradient descent vào tốn Ta cần tìm giá trị nhỏ hàm Việc quan trọng thuật tốn gradient descent tính đạo hàm hàm số nên ta tính đạo hàm theo biến Nhắc lại kiến thức h'(x) = f(g(x))’ = f'(g)*g'(x) Ví dụ: Biểu diễn tốn Do với mơi điểm xi,yi ta cần phải tính (w0+w1∗xi−yi) nên thay tính cho điểm liệu ta biểu diễn dạng ma trận, X kích thước n * 2, Y kích thước n * (n số điểm liệu tập liệu mà ta có) Trang 12 X[:, i] hiểu ma trận kích thước n*1 lấy liệu từ cột thứ i ma trận X, python số 0, nên cột cột 0, cột thứ hai cột 1, … Phép tính sum(X) tính tổng tất phần tử ma trận X 1.2.Thu thập xử lý liệu Dữ liệu sau thu thập bao gồm 1840 dòng sau craw data: Trang 13 Code lây link craw data : Trang 14 Mô tả biến: ● DiaChi: địa chung cư, thành phố Hồ Chí Minh ● TinhTrangBDS: chung cư bàn giao chưa, hay q trìnhg xây dựng ● DienTich: diện tích thực ở(sử dụng) sổ hồng, đơn vị: triệu/m2 ● PhongNgu: số lượng phịng ngủ ● TenPhanKhu: hộ thuộc block khu chung cư ấý Vì khu chung cư có nhiều block, block vị trí khác có giá khác ● SoTang: hộ nằm tầng thứ ● PhongTam: số lượng nhà vệ sinh ● Loại: chung cư hay nhà xã hội ● GiayTo: giấy tờ pháp lý hộ, có tranh chấp hay khơng, có hợp pháp hay không ● MaCanHo: mã hộ (giống số nhà) ● TinhTrangNoiThat: hộ có nội thất hay chưa(sofa, lị vi sóng, máy lạnh, ) ● HuongCuaChinh: hướng cửa hộ ● HuongBanCong: hướng ban cơng hộ Trang 15 ● DacDiem: Đặc điểm hộ ( góc, hay giữa, ) ● Gia: giá bán hộ Xử lý liệu trước đưa vào sử dụng : ● Chỉ lấy dịng liệu có liệu về: diện tích, phịng ngủ, phịng tắm giá Và quy đổi giá tiền VNĐ sang Triệu VNĐ để liệu bớt lớn ● Dữ liệu đưa vào 1840 dòng sau xử lý cịn 1778: ● Cái nhìn tổng quan data sau xử lý chưa clean : ● Sau clean ta nhận file dataset sau: Trang 16 Trực quan hoá liệu ● Trực quan liệu giá trị dạng số: Trang 17 ⮚ ● phịng ngủ phịng tắm khơng ảnh hưởng nhiều đến giá Tương quan tình trạng bđs giá: ⮚ Có thể thấy chung cư bàn giao có thấp so với chưa bàn giao ● Tương quan tình trạng nội thất giá: Trang 18 ⮚ Nội thất bàn giao thô ưa chuộng khu hộ với giá cao ● Tương quan loại chung cư giá: ⮚ Những chung cư có giá trung bình đến cao thường Duplex ● Một số tương quan khác: Trang 19 1.3.Bắt đầu training liệu sử dụng Gradient Descent Trang 20 Kết sau chạy : Trang 21 Trang 22 Nhận Xét :Ở Hình sau code chạy đường màu đỏ giá trị dự đốn, chấm xanh giá trị thực tế.Nhưng độ xác chưa cao data nhiễu đưa vào dự đốn sai lệch lớn giá trị có giá trị từ liệu khơng so với thực tế Ở hình cho kết số lớn thị kết không mong muốn IV Kết Luận Kết đạt Hiểu thuật toán Gradient Descent Training đưa dự đoán giá nhà Trang 23 Sử dụng số thư viện để sử dụng cho machine learning Khó khăn Do liệu gây nhiễu nên kết sai lệch lớn Do chưa xử lý tốt liệu dẫn đến sai lệch lớn Tính tốn áp dụng vào tốn chưa tốt Chưa áp dụng để tính cho khu vực lớn Hướng Phát triển Sử dụng toán vào khu vực lớn Tính tốn khơng áp dụng dự đoán giá chung cư dựa vào diện tích mà áp dụng dựa thêm vào vị trí, nội thất số phịng Áp dụng hàm nhiều biến cho Gradient Descent Trang 24 ... Lý Thuyết 1.1 Thuật toán Gradient Descent Gradient Descent thuật toán tối ưu lặp (iterative optimization algorithm) sử dụng toán Machine Learning Deep Learning (thường toán tối ưu lồi — Convex... đốn để có hiểu xuất nhanh nhất,đúng tài ngun từ thuật toán tối ưu đời để giúp thực toán : Gradient Descent, Stochastic Gradient Descent, Momentum, 1.1.2 Giới thiệu toán Trong Machine Learning. .. hình dự đốn với tập liệu quan sát (x,y) 1.2.Mục tiêu,phương pháp thực hiện,đóng góp 1.2.1.1 Mục tiêu Hiểu Được thuật tốn tối ưu Gradient Descent Tìm hiểu kiến thức deep learning để áp dụng cho