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

18 0 0
Tài liệu đã được kiểm tra trùng lặp
ứng dụng giá trị lớn nhất nhỏ nhấttrong thuật toán gradient descent

Đ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

Ứ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 LANGKHOA KỸ THUẬT CƠ-ĐIỆN VÀ MÁY

DỰ ÁN HỌC TẬP

ĐỀ TÀI: Ứng dụng giá trị lớn nhất, nhỏ nhấttrong thuật toán Gradient DescentGiả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

: 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 –

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ậtMỤC LỤC

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ậtLỜ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ộttrong 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Ệ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ố 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ề ứngdụ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.qPhương pháp/ lý thuyết liên quan

Trang 5

Toán Kỹ ThuậtThuậ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 ratrong 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: https://towardsdatascience.com/gradient-descent-unraveled-

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

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ố?

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ặctrọ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ậtCHƯƠNG 3: GRADIENT DESCENT LÀ

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

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.

Mục tiêu của thuật toán giảm độ dốc là tốithiể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

Weight ( wj¿ δf(w

δwj −αδf (

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

1 w22w1-4.48-8.960.9020.07

ωj +1=ωj−α δδωj f

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: https://medium.com/@hunter-j-phillips/a-simple-introduction-to-gradient-

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 ápdụ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ậtGradient 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).

(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 raYluôn dương Điều này có nghĩa là sự chênh lệch được lặp lại trên Ŷ Ymộ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 nphương của tất cả các điểm này và chia cho Đây là một cách dễ ndàng để đánh giá hiệu suất của mô hình trên tất cả các điểm cùng mộtlúc Ví dụ:

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

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:

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

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

(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ậtChú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ụnggiá 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

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(θ)=−1m ∑

[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à:

(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:

(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

Trang 15

Tối ưu cục bộ: Giảm độ dốc có thể hội tụ đến tối ưu cục bộ thay vìtối ưu toàn cục, đặc biệt nếu hàm chi phí có nhiều đỉnh và đáy.

Không ổn định: Gradient descent có thể bị không ổn định trong trường hợp hàm số có nhiều điểm cực trị Trong trường hợp này, thuật toán có thể bị "vọt" ra khỏi điểm tối ưu và hội tụ đến một điểm cực trị khác.

Tốc độ học quá lớn sẽ khiến cho thuật toán không hội tụ, quanh quẩn bên đích vì bước nhảy quá lớn; hoặc tốc độ quá nhỏ ảnh hưởng đến tốc độ training.

Nếu ta chọn điểm xuất phát mà trong lân cận của nó hàm số không đổi thì Gradient Descent sẽ kết thúc chỉ sau một lần lặp mà không đưa ra được kết quả chính xác Đây cũng là hạn chế của Gradient Descent Tuy nhiên, với các thuật toán Machine Learning mà ta học trong khóa học này, sẽ không có trường hợp nàonhư vậy.

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

Trang 16

Toán Kỹ Thuật

Một số thuật toán học máy sử dụng phương pháp giảm độ dốc, bao gồm hồi quy tuyến tính, hồi quy logistic, mạng nơ-ron, Các thuật toánnày sử dụng phương pháp giảm độ dốc để tối ưu hóa các hàm chi phí tương ứng và cải thiện hiệu suất của chúng trên dữ liệu huấn luyện.

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

Trong các bài toán Machine Learning, thuật toán Gradient Descentthường được sử dụng phổ biến nhất vì tính đơn giản và hiệu quả Tuynhiên, trong một số trường hợp, các thuật toán khác có thể mang lạihiệu quả tốt hơn như:q

Newton's Method: có tốc độ hội tụ nhanh hơn Gradient Descent,nhưng lại đòi hỏi nhiều tính toán hơn.

Conjugate Gradient Method, Quasi-Newton Method : độ hội tụnhanh hơn GD nhưng ít tính toán hơn Newton’t Method.

Bayesian Optimization: giải quyết bài toán tối ưu hóa phức tạp,trong đó hàm mục tiêu không thể được tính toán một cách trựctiếp.

Trang 17

Toán Kỹ ThuậtKẾT LUẬN

Với kiến thức hiện có của mình, nhóm em đã hoàn thành các yêucầu ở trên khi thực hiện đề tài Ứng dụng giá trị lớn nhất, giá trịnhỏ nhất trong thuật toán Gradient Descent Tuy nghiên, đề tài

đã hoàn thành nhưng nhóm em chắc chắn vẫn không thể tránh khỏinhững thiếu sót, hoặc cũng sẽ có những chỗ vướng mắc, chính vì vậy,nhóm em mong được sự góp ý giúp đỡ của thầy giáo để bài này được

hoàn thiện hơn!q

Nhóm em xin gửi lời cảm ơn chân thành và biết ơn đến thầyTrương Quốc Trí là giảng viên dạy môn Toán Kỹ Thuật của lớp71K29KHDL01 (Khoa Học Dữ Liệu khóa 29) đã tận tình hướng dẫnnhóm em và cả lớp Khoa Học Dữ Liệu khóa 29 trong quá trình học,

nghiên cứu và thực hiện đề tài môn này.

Nhóm em xin chân thành cảm ơn thầy!

Trang 18

Toán Kỹ ThuậtTÀI LIỆU THAM KHẢO

TIẾNG VIỆT[1]

https://machinelearningcoban.com/2017/01/12/gradientdescent/[2]

https://machinelearningcoban.com/2017/01/16/gradientdescent2/[7] https://monkey.edu.vn/ba-me-can-biet/giao-duc/kien-thuc-co-ban/cuc-tri-cua-ham-so

TIẾNG ANH[3]

[4] deep-dive-cf04e8115f21

https://towardsdatascience.com/gradient-descent-algorithm-a-[5] 3274c895d12d

https://towardsdatascience.com/gradient-descent-unraveled-[6] descent-in-machine-learning-169f59ca391e

https://rohan-dawkhar.medium.com/the-power-of-gradient-[8] 3274c895d12d

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

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

Tài liệu liên quan