1. Trang chủ
  2. » Luận Văn - Báo Cáo

ứng dụng giá trị lớn nhất nhỏ nhấttrong thuật toán gradient descent

18 1 0
Tài liệu đã được kiểm tra trùng lặp

Đ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 đề Ứng Dụng Giá Trị Lớn Nhất, Nhỏ Nhất Trong Thuật Toán Gradient Descent
Tác giả Hồ Trung Trực, Nguyễn Hoàng Bảo Nhật, Nguyễn Tấn Đạt, Phạm Thành Nhơn, Lê Nguyễn Tường Vy
Người hướng dẫn TS. Trương Quốc Trớ
Trường học Trường Đại Học Văn Lang
Chuyên ngành Toán Kỹ Thuật
Thể loại đồ án
Năm xuất bản 2023
Thành phố Thành phố Hồ Chí Minh
Định dạng
Số trang 18
Dung lượng 632,33 KB

Nội dung

Ứng dụng như thế nào?GIỚI THIỆUMục đíchRỨng dụng giá trị lớn nhất, nhỏ nhất trong thuật toán Gradient Descent là để tìm điểm cực tiểu của hàm số.. Toán Kỹ ThuậtThuật toán Gradient Descen

Trang 1

TRƯỜNG ĐẠI HỌC VĂN LANG KHOA KỸ THUẬT CƠ-ĐIỆN VÀ MÁY

TÍNH

🙞 ···☼··· 🙜

DỰ ÁN HỌC TẬP

ĐỀ TÀI: Ứng dụng giá trị lớn nhất, nhỏ nhất

trong thuật toán Gradient Descent

Giảng viên

hướng dẫn

: TS Trương Quốc Trí

Học phần : Toán Kỹ Thuật

(231_71MATT10014_04) Sinh viên thực

hiện

: Hồ Trung Trực – 2374601080186 Nguyễn Hoàng Bảo Nhật – 2374601080018

Nguyễn Tấn Đạt – 2374601080006 Phạm Thành Nhân –

2374601080017

Lê Nguyễn Tường Vy - 2374601080033

Trang 2

Toán Kỹ Thuật

Thành phố Hồ Chí Minh, tháng 12, năm 2023

Trang 3

Toán Kỹ Thuật MỤC LỤC

LỜI MỞ ĐẦU 3

GIỚI THIỆU 3

CHƯƠNG 1: CỰC ĐẠI, CỰC TIỂU 4

1 Khái niệm 4

2 Bài toán cực trị 4

CHƯƠNG 2: TỐI ƯU HÓA LÀ GÌ? 5

CHƯƠNG 3: GRADIENT DESCENT LÀ GÌ? 5

1 Gradient là gì? 5

2 Gradient Descent là gì? 6

CHƯƠNG 4: ỨNG DỤNG 7

1.Tối ưu hóa Hàm chi phí 7

2 Tối ưu hóa tham số trong Mô hình Linear Regression 8

3 Tối ưu hóa tham số trong Mô hình Logistic Regression 10

CHƯƠNG 5: VÍ DỤ VỚI PYTHON 12

CHƯƠNG 6: THẢO LUẬN 13

1 Những hạn chế 13

2 Thuật toán ML nào sử dụng phương pháp GD? 14

3 Thuật toán tối ưu khác ngoài Gradient Descent 14

KẾT LUẬN 15

TÀI LIỆU THAM KHẢO 16

Trang 4

Toán Kỹ Thuật LỜI MỞ ĐẦU

Trí tuệ nhân tạo hay (AI - Artificial Intelligence) ngày nay đã đi vào mọi hoạt động trong cuộc sống hằng ngày của chúng ta, hiển

nhiên đến mức ta không nhận ra được chúng tồn tại Cùng với tốc độ

phát triển của công nghệ ngày nay, khi mà khả năng tính toán của các

máy tính được nâng lên một tầm cao mới và lượng dữ liệu khổng lồ

được thu thập khắp nơi trên thế giới, Machine Learning (Học máy) đã

tiến thêm một bước dài dẫn đến mô hình Deep Learning (Học sâu) Một

trong những bài toán trong Deep Learning là bài toán tìm ra Loss

Function thấp nhất hay tính và tìm ra giá trị cực đại (Maximum) tìm

cách đưa về giá trị cực tiểu (Minimum) Để làm được những điều này,

phổ biến nhất chúng ta có thể áp dụng thuật toán Gradient Descent

Vậy Gradient Descent là gì? Nó được hình thành và vận hành ra sao?

Ứng dụng như thế nào?

GIỚI THIỆU Mục đíchR

Ứng dụng giá trị lớn nhất, nhỏ nhất trong thuật toán Gradient Descent

là để tìm điểm cực tiểu của hàm số Trong nhiều bài toán tối ưu, mục

tiêu là tìm giá trị nhỏ nhất của hàm số Thuật toán Gradient Descent

dựa trên ý tưởng rằng giá trị của hàm số sẽ giảm dần khi chúng ta di

chuyển theo hướng ngược với gradient của hàm số

Các nội dung thực hiện trong trong đề tài:

Trong bài sẽ trình bày cái nhìn tổng thể về cực đại, cực tiểu và thuật

toán tối ưu hóa Gradient Descent Từ cơ sở đó, trình bày chi tiết về ứng

dụng giá trị lớn nhất, giá trị nhỏ nhất trong Gradient Descent thông

qua 2 ứng dụng: Gradient Descent trong One Dimension (1D), Giảm

dần độ dốc với lỗi bình phương trung bình (MSE) Hơn nữa, tìm hiểu

thêm ví dụng trong python và thảo luận các vấn để liên quan đến GD.q

Phương pháp/ lý thuyết liên quan

Giá trị lớn nhất, giá trị nhỏ nhấtR

Giá trị lớn nhất, giá trị nhỏ nhất của hàm số là những giá trị của

hàm số cao nhất, thấp nhất trong miền của hàm số.q

Gradient Descent

Gradient Descent là một thuật toán tối ưu được sử dụng để tìm

giá trị cực tiểu của một hàm số.q

Trang 5

Toán Kỹ Thuật Thuật toán Gradient Descent

Thuật toán này hoạt động bằng cách bắt đầu từ một điểm bất kỳ

trong miền của hàm số, sau đó liên tục cập nhật điểm đó theo

hướng ngược với gradient của hàm số tại điểm đó

CHƯƠNG 1: CỰC ĐẠI, CỰC TIỂU

1.Khái niệm

Trong toán học, maxima và minima là hai khái niệm được sử dụng để

mô tả các điểm trong đồ thị của một hàm số, nơi hàm số đạt được giá

trị lớn nhất hoặc nhỏ nhất (Vd: tìm giá trị nhỏ nhất của hàm chi phí)

Maxima là điểm trong đồ thị của một hàm số nơi hàm số đạt được giá trị lớn nhất trong một vùng nhất định

Minima là điểm trong đồ thị của một hàm số nơi hàm số đạt được giá trị nhỏ nhất trong một vùng nhất định

Local và global là hai từ được sử dụng để phân biệt giữa các điểm cực trị xảy ra trong một vùng nhất định và các điểm cực trị xảy ra

trong toàn bộ miền xác định của hàm

Local maxima là điểm cực trị lớn nhất trong một vùng nhất định

Local minima là điểm cực trị nhỏ nhất trong một vùng nhất định

Global maxima là điểm cực trị lớn nhất trong toàn bộ miền xác định của hàm số

Global minima là điểm cực trị nhỏ nhất trong toàn bộ miền xác định của hàm số

Hình 1.1: Mô phỏng maxima, minima và global, local (Nguồn:

2.Bài toán tìm cực trị

A = f’’xx(a, b), B = f’’xy(a, b), C = f’’yy(a, b), D = AC - B2

Trang 6

Toán Kỹ Thuật

• D > 0 và A < 0 => P(a, b) là local maximum (cực đại địa phương)

• D > 0 và A > 0 => P(a, b) là local minimum (cực tiểu địa phương)

• D < 0 => P(a, b) là saddle point (điểm yên ngựa)

• D = 0 và A < 0 => no conclusion (không có kết quả)

Bài toán cho hàm đa biến:

Giả sửu ta có hàm số hai biến f(x,y)=xy−2x−2y−x2 −y2 Tìm giá trị

lớn nhất hoặc nhỏ nhất của hàm số?

Giải:

Đạo hàm toàn phần của hàm số f(x,y) theo và là:x y f’x = y - 2 - 2xq

f’y = x - 2 - 2y Giải hệ phương trình f’ = 0 và f’ = 0, ta được nghiệm (x y x,y)=(-2 ; -2)

Để kiểm tra xem điểm P = (-2 ; -2) có phải là điểm cực trị của hàm số

f’(x,y) hay không, ta tính đạo hàm bậc hai của hàm số:

A = f’’ =q - 2(xx)

B = f’’ = q 1(xy)

C = f’’ =q - 2(yy)

D = AC – B = (- 2).(- 2) – (1) = 3 > 02 2

A < 0 , D > 0 q => P(-2,-2) là một cực đại địa phương (Local Maxima)

Tuy nhiên, xét đến trường hợp ngoài đời sống Chúng ta rất khó biết

được phương trình thực tế của các quá trình trong cuộc sống thực mà

chúng ta đang giải quyết Ngoài ra, có rất nhiều biến liên quan đến

phương trình Cách tìm cực trị này sẽ không hữu ích trong những

trường hợp đó Phương trình ML thực tế là đa chiều và có rất nhiều yếu

tố tác động Và bài toán tìm giá trị lớn nhất, nhỏ nhất (cực trị) ở trên sẽ

không hiệu quả Vì vậy, cần tối ưu hóa quá trình này

CHƯƠNG 2: TỐI ƯU HÓA LÀ GÌ?

Trong học máy, tối ưu hóa là quá trình tìm kiếm các tham số hoặc trọng số lý tưởng để tối đa hóa hoặc giảm thiểu hàm chi phí hoặc tổn

thất Các ứng dụng phổ biến: Chi phí tối thiểu, lợi nhuận tối đa, sai sót

tối thiểu, thiết kế tối ưu, quản lý tối ưu, nguyên tắc biến đổi

Có một số nhóm thuật toán chính trong danh mục này:bracketing, local descent, first-order, and second-order Trong

danh mục này, thuật toán giảm độ dốc (Gradient Descent) là phổ biến

nhất

Trang 7

Toán Kỹ Thuật CHƯƠNG 3: GRADIENT DESCENT LÀ

GÌ?

1.Gradient là gì?

Độ dốc: Trong phép tính vectơ, độ dốc là dạng tổng quát hóa nhiều

biến của đạo hàm Độ dốc của hàm vô hướng f(x₁, x₂, x₃, …., xₙ) [sau

đây gọi tắt là f] được ký hiệu là f , trong đó (ký hiệu nabla) được gọi ∇ ∇

là toán tử del Nó gói tất cả thông tin phái sinh từng phần vào một

vectơ

∇ f =[∂f

∂x1

∂f

∂x2

∂f

∂x3

∂f

∂xn]

2.Gradient Descent là gì?

Giảm độ dốc (GD) là một thuật toán tối ưu hóa bậc nhất lặp lại,

được sử dụng để tìm cực tiểu cục bộ (cực trị) của một hàm nhất định

Phương pháp này thường được sử dụng trong học máy (ML) và học sâu

(DL) để giảm thiểu hàm chi phí/tổn thất (ví dụ: trong hồi quy tuyến

tính).q

Giả sử hàm trong hình trên thể hiện địa hình gồ ghề của phong cảnh

đồi núi với chính bạn đang đứng trên ngọn núi trung tâm Nhiệm vụ

của bạn là đi xuống dốc càng nhanh càng tốt bằng cách bước từng

bước nhỏ cho đến khi không thể xuống thêm được nữa, tức là cho đến

khi bạn tìm thấy mức tối thiểu

Địa hình gồ ghề tương tự như hàm chi phí(hoặc hàm mất mát) Tối

thiểu hàm chi phí cũng tương tự như việc cố gắng xuống đồi Cảm

nhận độ dốc của địa hình xung quanh bạn tương tự như tính độ dốc và

bước một bước cũng tương tự như một bước lặp lại việc cập nhật các

tham số

Trang 8

Toán Kỹ Thuật

Hình 3.1: Mô phỏng Gradient Descent (Nguồn: https://ndquy.github.io/posts/gradient-descent-2/ )

Thuật toán Gradient Descent:

1 Dự đoán một điểm khởi tạo θ=θ0

2 Cập nhật θ đến khi đạt được kết quả chấp nhận được

θ=θ−η ∇θj(θ)

-Với ∇θj(θ) là đạo hàm của hàm mất mát tại θ

-Với η là tốc độ học (Learning rate) Mức độ

giảm độc dốc của các bước theo hướng cực

tiểu cục bộ lớn đến mức nào được xác định bởi

tốc độ học, tốc độ này cho biết chúng ta sẽ di

chuyển nhanh hay chậm đến trọng số tối ưu

Mục tiêu của thuật toán giảm độ dốc là tối

thiểu hóa hàm đã cho (giả sử hàm chi phí) Để

đạt được mục tiêu này, nó thực hiện lặp đi lặp lại hai bước:

Tính độ dốc (độ dốc), đạo hàm bậc nhất của hàm số tại điểm đó

Thực hiện một bước (di chuyển) theo hướng ngược lại với độ dốc, hướng ngược lại của độ dốc tăng từ điểm hiện tại lên alpha nhân với độ dốc tại điểm đó

CHƯƠNG 4: ỨNG DỤNG

1 Tối ưu hóa Hàm chi phí

Trang 9

Toán Kỹ Thuật = w², là một parabol Mức tối thiểu là (0,0)

Mức hiện tại là 31,36 và đường màu cam

độ thay đổi hiện tại của trọng số là -11,2

cần di chuyển “xuống dốc” (hoặc trở nên

m bằng 0 Đây là lúc độ dốc giảm xuống

Hình 4.1: Mô

(vớiq f ‘(w) = 2w)

ωj +1=ωj−α δ

δωjf(ωj)⟹ ωj+1=ωj−α (2ωj)

Bằng cách chia tỷ lệ độ dốc bằng một giá trị được gọi là tốc độ học

và trừ độ dốc được chia tỷ lệ khỏi giá trị hiện tại của trọng số, đầu ra sẽ

giảm thiểu Điều này có thể được nhìn thấy trong hình ảnh dưới đây

Trong mười lần lặp (w₀ đến w₉), tốc độ học 0,1 được sử dụng để giảm

thiểu hàm chi phí

Iteratio n(j¿ Weight ( wj¿ δf(w

δwj −α

δf ( δw

Loss(

f (wj)) α f (wj δf(wj)

δwj

0 -5.60

-11.2 0

1.12 31.36 0.

1 w2 2w

1 -4.48 -8.96 0.90 20.07

ωj +1=ωj−α δ

δωj f

2 -3.58 -7.17 0.72 12.85

3 -2.87 -5.73 0.57 8.22

4 -2.29 -4.59 0.46 5.26

5 -1.84 -3.67 0.37 3.37

6 -1.47 -2.94 0.29 2.16

7 -1.17 -2.35 0.23 1.38

8 -0.94 -1.88 0.19 0.88

9 -0.75 -1.50 -.15 0.56

Hình 4.2: Sử dụng tốc độ học tập là 0,1 và trọng số bắt đầu là -5,6, mười lần lặp đầu tiên (Nguồn:

Bảng này trình bày cách mỗi thành phần của công thức giúp giảm

thiểu chi phí (cực tiểu của chi phí) Bằng gradient descent, trọng số

mới trở nên dương hơn và độ dốc của gradient mới ít dốc hơn Khi độ

dốc trở nên dương hơn, mỗi lần lặp sẽ mang lại một bản cập nhật nhỏ

hơn

qqqq⇒Việc triển khai cơ bản này của việc giảm độ dốc có thể được áp

dụng cho hầu hết mọi hàm chi phí, kể cả những hàm có nhiều trọng số

Có thể xem xét một vài biến thể của sai số bình phương trung bình

2.Tối ưu hóa tham số trong Mô hình Linear

Regression

Trang 10

Toán Kỹ Thuật Gradient Descent để điều chỉnh trọng số của mô hình dự đoán sao

cho sai số giữa giá dự đoán và giá thực tế là nhỏ nhất Mục tiêu là di

chuyển theo hướng giảm gradient của hàm mất mát, nơi giá trị đạo

hàm là nhỏ nhất

Một hàmqrủi ro phổ biến cho học máy là Lỗi bình phương trung bình

(MSE)

MSE=1

n∑

i=1

n

(Yi− ŷi)2

Hàm này tìm ra sự khác biệt giữa dự đoán của mô hình ( ) và đầuŶ

ra dự kiến ( ) Sau đó, nó bình phương sự khác biệt để đảm bảo đầu raY

luôn dương Điều này có nghĩa là sự chênh lệch được lặp lại trên Ŷ Y

một tập hợp các điểm có số lượng mẫu Bằng cách tính tổng bình n

phương của tất cả các điểm này và chia cho Đây là một cách dễ n

dàng để đánh giá hiệu suất của mô hình trên tất cả các điểm cùng một

lúc Ví dụ:

^y y ( ^y y− ) (^y y− )2

1 0

-6

1 2

1 3

-1

2 3

2 0

∑( ^y− y )2 60

Ví dụ sau đây là một bài toán hồi quy tuyến tính đơn giản Có một mẫu về chiều cao (h)

và cân nặng (w) của 150 nam giới trưởng thành Trong trường hợp này, MSE có tác dụng

đo lường mức độ sai số trung bình bình phương giữa cân nặng thực tế và cân nặng được

dự đoán bởi mô hình

Khi thuật toán Gradient Descent được áp dụng và các tham số của mô hình (độ dốc và

giao điểm) được cập nhật theo hướng giảm độ dốc của MSE, mục tiêu là giảm thiểu MSE

để mô hình dự đoán gần với dữ liệu thực tế nhất có thể Khi MSE đạt đến giá trị thấp và

không thay đổi đáng kể qua các lần lặp, mô hình có thể được coi là tối ưu đối với bộ dữ

liệu huấn luyện

Trang 11

Toán Kỹ Thuật

Đối với mô hình, chúng ta có thể nói rằng cân nặng (w) có thể được dự đoán bằng

phương trình tuyến tính của độ cao (h)

wi,dự đoán=α.h βi+

Chúng em muốn tìm các tham số α và β (độ dốc và giao điểm) giúp giảm thiểu sai số

bình phương trung bình (mất mát) giữa giá trị dự đoán và giá trị thực Vì vậy, hàm mất

mát của chúng em (trong trường hợp này là “lỗi bình phương trung bình” hoặc MSE)

trông như thế này:

MSE=1N∑

i=1

N (wi,thựctế−wi,dự đoán)2 Gradient của MSE theo α (độ dốc):

∇αMSE=−2

N∑

i=1

N

hi.(wi,thựctế−wi,dự đoán ) Gradient của MSE theo β (giao điểm):

∇βMSE=−2

N∑

i=1

N (wi,thực tế−wi,dự đoán ) Cập nhật các tham số:

α=α−learning_rate ∇αMSE β=β−learning_rate ∇βMSE

Lặp lại quá trình trên cho một số lần lặp cố định

Bắt đầu bằng một dự đoán không tốt về độ dốc và độ lệch chuẩn của đường này Sau

khoảng 15 lần lặp lại quá trình giảm độ dốc, mô hình hồi quy gần như tối ưu

Hình 4.3: Quá trình trươc và sau áp dụng Gradient Descent (Nguồn: https://www.toptal.com/python/gradient-descent-in-tensorflow )

Trang 12

Toán Kỹ Thuật Chúng ta có thể thấy sai số bình phương trung bình trông như thế nào

đối với một vài đường dự đoán không tốt và sau đó là chính xác

(α=6,04, β=-230,5)

Hình 4.4: Quá trình áp dụng thuật toán Gradient Descent (Nguồn: https://www.toptal.com/python/gradient-descent-in-tensorflow )

3.Tối ưu hóa tham số trong Mô hình Logistic

Regression

Cũng tương tự mô hình Linear Regression, việc sử dụng Gradient

Descent trong mô hình Logistic Regression để điều chỉnh trọng số

của mô hình dự đoán sao cho sai số giữa giá dự đoán và giá thực tế

là nhỏ nhất và sử dụng sai số bình phương trung bình (MSE) làm

hàm chi phí Nhưng trong mô hình Logistic Regression , việc sử dụng

giá trị trung bình của chênh lệch bình phương giữa kết quả thực tế

và kết quả dự đoán làm hàm chi phí có thể đưa ra đồ thị lượn sóng,

chứa nhiều cực t

Hình 4.5: Đồ thị biểu diễn kết quả dự đoán.

(Nguồn: https://www.baeldung.com/cs/gradient-descent-logistic-regression )

Trong trường hợp này, việc tìm giải pháp tối ưu bằng phương pháp

giảm độ dốc là không thể Thay vào đó, chúng ta sử dụng hàm

logarit để biểu thị chi phí của hồi quy logistic

Khi xử lý một bài toán phân loại nhị phân, chi phí lỗi logarit phụ

thuộc vào giá trị của y Chúng ta có thể xác định chi phí cho hai

trường hợp riêng biệt:

Trang 13

Toán Kỹ Thuật

cost(hθ(x),y)={−log (hθ(x)),if y=1

−log(1−hθ(x)),if y=0

Hình 4.6: Đồ thị biểu diễn hai hàm trên

(Nguồn: https://www.baeldung.com/cs/gradient-descent-logistic-regression )

Vì đầu ra có thể là 0 hoặc 1, nên chúng ta có thể đơn giản hóa

phương trình thành:

cost(hθ(x),y)=− y(i )× log(hθ(x(i )))−(1− y (i ))× log(hθ(x( i )))

Với m phần tử trong tập dữ liệu ta có thể tính như sau:

J(θ)=−1

m ∑

i=1

m [y( i )× log(hθ(x( i)))+(1− y(i ))×log(hθ(x( i))) ]

Tiếp đến ta giảm thiểu hàm chi phí bằng Gradient Descent chúng ta

đang sử dụng hàm sigmoid làm hàm giả thuyết trong hồi quy

logistic

Để giảm thiểu hàm chi phí, chúng ta cần chạy giảm độ dốc trên

từng tham số θj

θj←θj−α ∂

∂θjJ (θ)

Để hoàn thành thuật toán, chúng ta cần giá trị ∂

∂θjJ(θ), đó là:

∂θj

J(θ)=1

m∑

i=1

m

(hθ(x( i ))− y(i )) x(i)j Đặt vào hàm gradient descent sẽ dẫn đến quy tắc cập nhật:

θj←θj−α1

m∑

i=1 m

(hθ(x(i))− y(i ))x( )ji

Trang 14

Toán Kỹ Thuật Bằng cách lặp lại qua các mẫu huấn luyện cho đến khi hội tụ, chúng

ta đạt được các tham số tối ưu θ dẫn đến chi phí tối thiểu

CHƯƠNG 5: VÍ DỤ VỚI PYTHON

Hình 5.1: Ví dụ Gradient Descent trong Linear Regression

Kết quả:

Hình 5.2: Kết quả chương trình

Ngày đăng: 08/05/2024, 15:37

HÌNH ẢNH LIÊN QUAN

Hình 4.2: Sử dụng tốc độ học tập là 0,1 và trọng số bắt đầu là -5,6, mười lần lặp đầu tiên - ứng dụng giá trị lớn nhất nhỏ nhấttrong thuật toán gradient descent
Hình 4.2 Sử dụng tốc độ học tập là 0,1 và trọng số bắt đầu là -5,6, mười lần lặp đầu tiên (Trang 9)
Hình 4.3: Quá trình trươc và sau áp dụng Gradient Descent (Nguồn:  https://www.toptal.com/python/gradient-descent-in-tensorflow ) - ứng dụng giá trị lớn nhất nhỏ nhấttrong thuật toán gradient descent
Hình 4.3 Quá trình trươc và sau áp dụng Gradient Descent (Nguồn: https://www.toptal.com/python/gradient-descent-in-tensorflow ) (Trang 11)

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

TÀI LIỆU LIÊN QUAN

w