1. Trang chủ
  2. » Cao đẳng - Đại học

Tìm hiểu thuật toán tối ưu thông qua thự viện AI, ML machine learning

24 73 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

Định dạng
Số trang 24
Dung lượng 1,59 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Nhưng vấn đề là cần phải dự đoán để có hiểu xuất nhanh nhất,đúngnhất và ít tài nguyên nhất từ đó các thuật toán tối ưu được ra đời đểgiúp thực hiện các bài toán như trên như : Gradient D

Trang 1

ĐẠ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 1

Đề tài: Tìm hiểu thuật toá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 hiện ❖

Lương Việt Anh – 17520238

Tp Hồ Chí Minh, tháng 06 năm 2021

Trang 2

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 và ghi rõ họ tên)

Trang 3

Ngoài ra, em cũng xin gửi lời cảm ơn đến những thầy cô giáo trong trường

ĐH CNTT- ĐHQG Tp HCM nói chung, các thầy cô trong Khoa Công nghệ phầnmềm nói riêng đã dạy dỗ cho em kiến thức về lập trình, qua đó em có được cơ sở

Trang 4

1.1 Phân tích bài toán và Áp dụng Gradient descent vào bài toán 6

1.3 Bắt đầu training dữ liệu sử dụng Gradient Descent 18

Trang 5

Từ đó chúng ta có thể ứng dụng nó vào việc dự đoán Ví dụ, bạn cóthể dự đoán giá của căn hộ dựa trên các dữ liệu về giá các căn hộ bạn

đã có

Nhưng vấn đề là cần phải dự đoán để có hiểu xuất nhanh nhất,đúngnhất và ít tài nguyên nhất từ đó các thuật toán tối ưu được ra đời đểgiúp thực hiện các bài toán như trên như : Gradient Descent,Stochastic Gradient Descent, Momentum,

1.1.2 Giới thiệu bài toán

Trong Machine Learning nói riêng và Toán Tối Ưu nói chung,chúng ta thường xuyên phải tìm giá trị nhỏ nhất (hoặc đôi khi là lớnnhất) của một hàm số nào đó Ví dụ như các hàm mất mát trong haibài Linear Regression và K-means Clustering Nhìn chung, việc tìmglobal minimum của các hàm mất mát trong Machine Learning là rấtphức tạp, thậm chí là bất khả thi Thay vào đó, người ta thường cốgắng tìm các điểm local minimum, và ở một mức độ nào đó, coi đó lànghiệm cần tìm của bài toán

Các điểm local minimum là nghiệm của phương trình đạo hàm bằng

0 Nếu bằng một cách nào đó có thể tìm được toàn bộ (hữu hạn) cácđiểm cực tiểu, ta chỉ cần thay từng điểm local minimum đó vào hàm

Trang 6

Tuy nhiên, trong hầu hết các trường hợp, việc giải phương trìnhđạo hàm bằng 0 là bất khả thi Nguyên nhân có thể đến từ sự phức tạpcủa dạng của đạo hàm, từ việc các điểm dữ liệu có số chiều lớn, hoặc

từ việc có quá nhiều điểm dữ liệu

Hướng tiếp cận phổ biến nhất là xuất phát từ một điểm mà chúng tacoi là gần với nghiệm của bài toán, sau đó dùng một phép toán lặp đểtiến dần đến điểm cần tìm, tức đến khi đạo hàm gần với 0 GradientDescent (viết gọn là GD) và các biến thể của nó là một trong nhữngphương pháp được dùng nhiều nhất

Trong đồ này chúng tôi sẽ áp dụng Gradient Descent cho bàitoán về dự đoán giá nhà mục tiêu là 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ớitập dữ liệu quan sát được của (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 toán tối ưu Gradient Descent

 Tìm hiểu về kiến thức deep learning để có thể áp dụng cho bài toán

 Thu thập và training bộ dữ liệu để đưa ra kết quả 1.2.1.2 Phương pháp thực hiện

 Sử dụng ngôn ngữ python và các thư việnnumpy,pandas ,matplotlib

1.2.1.3 Đóng góp

 Hệ thống lại kiến thức bài toán hồi quy sử dụng Gradient Descent

 Tìm hiểu và áp dụng Gradient Descent vào bài toán

 Chạy training bộ dữ liệu thu được và đánh giá kết quả

II Cơ Sở Lý Thuyết

1.1 Thuật toán Gradient Descent

Gradient Descent là một thuật toán tối ưu lặp (iterative optimizationalgorithm) được sử dụng trong các bài toán Machine Learning và DeepLearning (thường là các bài toán tối ưu lồi — Convex Optimization) với mụctiêu là tìm một tập các biến nội tại (internal parameters) cho việc tối ưu models.Trong đó:

 Gradient: là tỷ lệ độ nghiêng của đường dốc (rate of inclination ordeclination of a slope) Về mặt toán học, Gradient của một hàm số

là đạo hàm của hàm số đó tương ứng với mỗi biến của hàm Đốivới hàm số đơn biến, chúng ta sử dụng khái niệm Derivative thaycho Gradient

Trang 7

 Descent: là từ viết tắt của descending, nghĩa là giảm dần.GradientDescent có nhiều dạng khác nhau như Stochastic Gradient Descent(SGD), Mini-batch SDG Nhưng về cơ bản thì đều được thực thinhư sau:

1 Khởi tạo biến nội tại

2 Đánh giá model dựa vào biến nội tại và hàm mất mát (Lossfunction)

3 Cập nhật các biến nội tại theo hướng tối ưu hàm mất mát(finding optimal points)

4 Lặp lại bước 2, 3 cho tới khi thỏa điều kiện dừng

1.2 Ưu điểm và nhược điểm của Gradient Descent

Ưu điểm :

 Thuật toán gradient descent cơ bản, dễ hiểu Thuật toán đã giảiquyết được vấn đề tối ưu model neural network bằng cách cập nhậttrọng số sau mỗi vòng lặp

III Thực Nghiệm

1.1.Phân tích bài toán và Áp dụng Gradient descent vào bài toán

1.1.1.1 Phân tích bài toán

 Bài toán

Trên thực tế giá nhà thì phụ thuộc rất nhiều yếu tố: diện tích, sốphòng, gần trung tâm thương mại, nhưng để cho bài toán đơn giảngiả sử giá căn hộ chung cư chỉ phụ thuộc vào diện tích giá căn hộchung cư

Ví dụ : có bảng đồ thị quan hệ giữa diện tích và giá nhà :

Trang 8

Nếu giờ yêu cầu ước lượng nhà 50 mét vuông khoảng bao nhiêutiền thì ta sẽ phải vẽ một đường thẳng gần với các điểm trên nhất vàtính giá nhà ở điểm 50.

Trang 9

Hình 2: Ước tính giá căn nhà 50 m2

Về mặt lập trình cũng cần làm 2 việc như vậy:

 Training: tìm đường thẳng (model) gần các điểm trên nhất Mọi người

có thể vẽ ngay được đường thẳng mô tả dữ liệu từ hình 1, nhưng máytính thì không, nó phải đi tìm bằng thuật toán Gradient descent ở phíadưới (Từ model và đường thẳng có thể bị sử dụng thay thế lẫn nhautrong phần còn lại của bài viết)

 Inference: dự đoán xem giá của ngôi nhà 50 m2 có giá bao nhiêu dựatrên đường tìm được ở phần trê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 10

Thay vì dùng kí hiệu a, b cho phương trình đường thẳng; để tiện cho biểudiễn ma trận phần sau ta sẽ w1=a,w0=b

Nên phương trình được viết lại thành: y=w1∗x+w0

=>Việc tìm đường thẳng giờ thành tìm w0,w1.

Để tiện cho việc thiết lập công thức, ta sẽ đặt ký hiệu cho dữ liệu ở bảng dữliệu: (x1,y1) =(53,1600),( x2,y2) =(50,4500),….

Tức là nhà diện tích xi thực sự có giá yi Còn giá trị mà model hiện tại đang

dự đoán kí hiệu là :

 Loss function

Việc tìm w0,w1 có thể đơn giản nếu làm bằng mắt nhưng máy tính

không biết điều đấy, nên ban đầu giá trị được chọn ngẫu nhiên ví dụ w0=0,w1=1 sau đấy được chỉnh dần

Trang 11

Sự khác nhau tại điểm x = 32 của model đường thẳng y = x và giá trị thực

tế ở dữ liệu đưa vào.Rõ ràng có thể thấy đường y = x không hề gần cácđiểm hay không phải là đường mà ta cần tìm Ví dụ tại điểm x = 32 (nhà

32 m2 ) giá thật là 400 triệu nhưng giá mà model dự đoán chỉ là 32 triệu.Nên giờ cần 1 hàm để đánh giá là đường thẳng với bộ tham số(w0,w1)=(0,1) có tốt hay không Với mỗi điểm dữ liệu (xi,yi) độ chênh

lệch giữa giá thật và giá dự đoán được tính bằng: .Và độchênh lệch trên toàn bộ dữ liệu tính bằng tổng chênh lệch của từng điểm:

Trang 12

Bài toán tìm đường thẳng gần các điểm dữ liệu nhất trở thành tìm w0,w1sao cho hàm J nhỏ nhất Nhưng vì tìm giá trị nhỏ nhất của J cũng giốngtìm giá trị nhỏ nhất của k*J (k là số thực, dương) nên ta sẽ đi tìm giá trịnhỏ nhất của

⮚ Từ việc tìm đường thẳng (model) => tìm w0,w1 để hàm J nhỏ nhất.Giờ cần một thuật toán để tìm giá trị nhỏ nhất của hàm J Đó chính làgradient descent

1.1.1.2 Áp dụng Gradient descent vào bài toán

Ta cần tìm giá trị nhỏ nhất của hàm

Việc quan trọng nhất của thuật toán gradient descent là tính đạohàm của hàm số nên giờ ta sẽ đi tính đạo hàm theo từng 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 bài toán

Do với môi điểm xi,yi ta cần phải tính (w0+w1∗xi−yi) nên thay vì tính

cho từng điểm dữ liệu một ta sẽ biểu diễn dưới dạng ma trận, X kích thước n *

2, Y kích thước n * 1 (n là số điểm dữ liệu trong tập dữ liệu mà ta có)

Trang 13

X[:, i] hiểu là ma trận kích thước n*1 lấy dữ liệu từ cột thứ i của ma trận

X, nhưng do trong python chỉ số bắt đầu từ 0, nên cột đầu tiên là cột 0, cột thứhai là cột 1, … Phép tính sum(X) là tính tổng tất cả các phần tử trong ma trậnX

1.2.Thu thập và xử lý dữ liệu

1 Dữ liệu sau khi thu thập được bao gồm 1840 dòng sau khi craw data:

Trang 14

Code lây link và craw data :

Trang 15

2 Mô tả các biến:

DiaChi: địa chỉ của chung cư, ở thành phố Hồ Chí Minh

TinhTrangBDS: là chung cư này đã bàn giao chưa, hay vẫn

còn đang trong quá trìnhg xây dựng

DienTich: diện tích thực ở(sử dụng) trên sổ hồng, đơn vị:

triệu/m2

PhongNgu: số lượng phòng ngủ.

TenPhanKhu: căn hộ đó thuộc block nào trong khu chung cư

ấý Vì 1 khu chung cư có rất nhiều block, các block ở vị trí khác nhau

sẽ có giá khác nhau

SoTang: căn hộ nằm ở tầng thứ mấy.

PhongTam: số lượng nhà vệ sinh.

Loại: chung cư hay nhà ở xã hội.

GiayTo: giấy tờ pháp lý của căn hộ, có đang tranh chấp hay

không, có hợp pháp hay không

MaCanHo: mã căn hộ (giống như số nhà).

TinhTrangNoiThat: căn hộ đã có nội thất hay chưa(sofa, lò vi

sóng, máy lạnh, )

HuongCuaChinh: hướng cửa chính của căn hộ.

Trang 16

DacDiem: Đặc điểm căn hộ ( căn trong góc, hay căn chính

giữa, )

Gia: giá bán của căn hộ.

3 Xử lý dữ liệu trước khi đưa vào sử dụng :

● Chỉ lấy các dòng dữ liệu có dữ liệu về: diện tích, phòng ngủ,phòng tắm và giá Và quy đổi giá tiền VNĐ sang Triệu VNĐ để dữliệu bớt lớn

● Dữ liệu đưa vào là 1840 dòng sau khi xử lý còn 1778:

● Cái nhìn tổng quan về data sau khi xử lý chưa clean :

● Sau khi clean ta nhận được một file dataset như sau:

Trang 17

4 Trực quan hoá dữ liệu

● Trực quan dữ liệu giá trị dạng số:

Trang 18

⮚ phòng ngủ và phòng tắm không ảnh hưởng nhiều đến giá

● Tương quan giữa tình trạng bđs và giá:

⮚ Có thể thấy những chung cư đã được bàn giao có thấphơn so với chưa được bàn giao

● Tương quan giữa tình trạng nội thất và giá:

Trang 19

⮚ Nội thất được bàn giao thô được ưa chuộng trong nhữngkhu căn hộ với giá cao

● Tương quan giữa loại chung cư và giá:

⮚ Những căn chung cư có giá trung bình đến cao thường là Duplex

● Một số tương quan khác:

Trang 20

1.3.Bắt đầu training dữ liệu sử dụng Gradient Descent

Trang 21

Kết quả sau khi chạy :

Trang 23

Nhận Xét :Ở Hình 1 sau khi code chạy đường màu đỏ là giá trị dự đoán,

chấm xanh là giá trị thực tế.Nhưng độ chính xác chưa cao do những data nhiễu được đưa vào thì dự đoán sẽ sai lệch rất lớn và giá trị có nhưng giá trị

từ dữ liệu không đúng so với thực tế Ở hình 2 cho ra kết quả nhưng do số lớn nó hiện thị kết quả không như mong muốn

IV Kết Luận

 Kết quả đạt được

 Hiểu về thuật toán Gradient Descent

Trang 24

 Sử dụng được một số thư viện để sử dụng cho machine learning

 Khó khăn

 Do bộ dữ liệu có thể gây nhiễu nên kết quả sai lệch vẫn lớn

 Do chưa xử lý tốt bộ dữ liệu dẫn đến sai lệch lớn

 Tính toán áp dụng vào bài toán chưa được tốt

 Chưa áp dụng để tính cho khu vực lớn

 Hướng Phát triển

 Sử dụng bài toán vào một khu vực lớn hơn

 Tính toán sẽ không chỉ áp dụng dự đoán giá chung cư dựa vào diện tích

mà sẽ áp dụng dựa thêm vào vị trí, nội thất và số phòng

 Áp dụng hàm nhiều biến cho Gradient Descent

Ngày đăng: 05/09/2021, 20:49

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w