Tải bản đầy đủ (.pdf) (18 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (632.33 KB, 18 trang )

<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="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: Tố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

</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2">

Toán Kỹ Thuật

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

</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3">

Toán Kỹ Thuật

MỤ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 tốn tối ưu khác ngồi Gradient Descent...14

KẾT LUẬN...15

TÀI LIỆU THAM KHẢO...16

</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="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 tố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 tốn trong Deep Learning là bài tố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 tố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 tố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 tố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

</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="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 tố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ố.

<small>Hình 1.1: Mơ phỏng maxima, minima và global, local (Nguồn: tốn tìm cực trị

A = f’’xx(a, b), B = f’’xy(a, b), C = f’’yy(a, b), D = AC - B<small>2</small>

</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">

Tố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à q 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 tố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.

</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">

Toán Kỹ Thuật

CHƯƠNG 3: GRADIENT DESCENT LÀ

1.Gradient là gì?

Độ dốc: Trong phép tính vectơ, độ dốc là dạng tổng qt 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à tố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∂x<sub>1</sub>

2.Gradient Descent là gì?

Giảm độ dốc (GD) là một thuật tố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ố.

</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8">

Tốn Kỹ Thuật

<small>Hình 3.1: Mơ phỏng Gradient Descent(Nguồn: toán Gradient Descent:

1. Dự đoán một điểm khởi tạo θ=θ<sub>0</sub>.

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

Mục tiêu của thuật tố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í

</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9">

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

<small>Weight ( </small>w<sub>j</sub>¿ <sup>δf(w</sup>

δw<sub>j</sub> <sup>−α</sup>δf (

f (w<small>j</small>)<small>)</small> α f (w<small>j</small> δf(w<small>j</small>)δw<sub>j</sub>

<small>1</small> w<small>22w1-4.48-8.960.9020.07</small>

ω<sub>j +1</sub>=ω<sub>j</sub>−α <sup>δ</sup>δω<sub>j</sub> <sup>f</sup>

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

</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10">

Tố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).

(Y<small>i</small>− ŷ<small>i</small>)<small>2</small>

Hàm này tìm ra sự khác biệt giữa dự đố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− )<small>2</small>

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ự đố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.

</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="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ự đốn bằng phương trình tuyến tính của độ cao (h).

w<sub>i,dự đốn</sub>=α.h β<sub>i</sub>+

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ự đố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:

(w<small>i,thựctế</small>−w<small>i,dự đốn</small>)<small>2</small>Gradient của MSE theo α (độ dốc):

h<sub>i</sub>.(w<small>i,thựctế</small>−w<small>i,dự đoán</small> )Gradient của MSE theo β (giao điểm):

(w<small>i,thực tế</small>−w<small>i,dự đoán</small> )Cập nhật các tham số:

α=α−learning_rate. ∇<small>α</small>MSEβ=β−learning_rate. ∇<sub>β</sub>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ự đố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.

<small>Hình 4.3: Quá trình trươc và sau áp dụng Gradient Descent(Nguồn: class="text_page_counter">Trang 12</span><div class="page_container" data-page="12">

Tố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ự đốn khơng tốt và sau đó là chính xác (α=6,04, β=-230,5).

<small>Hình 4.4: Q trình áp dụng thuật tốn Gradient Descent(Nguồn: ư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ự đố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ự đốn làm hàm chi phí có thể đưa ra đồ thị lượn sóng, chứa nhiều cực t

<small>Hình 4.5: Đồ thị biểu diễn kết quả dự đốn.(Nguồn: 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 tố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:

</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="13">

cost

(

h<sub>θ</sub>(x),y

)

=− y<small>(i )</small>× log

(

h<sub>θ</sub>(x<small>(i )</small>)

)

−(1− y <small>(i )</small>)× log

(

h<sub>θ</sub>(x<small>( i )</small>)

)

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

J(θ)=<sup>−1</sup>m

[

y<small>( i )</small>× log

(

h<sub>θ</sub>(x<small>( i)</small>)

)

+(1− y<small>(i )</small>)×log

(

h<sub>θ</sub>(x<small>( i)</small>)

)]

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ố θ<sub>j</sub>

θ<sub>j</sub>←θ<sub>j</sub>−α <sup>∂</sup>∂θ<sub>j</sub><sup>J (θ)</sup>

Để hồn thành thuật tốn, chúng ta cần giá trị <sup>∂</sup>

∂θ<sub>j</sub><sup>J</sup><sup>(</sup><sup>θ</sup><sup>)</sup>, đó là:

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

(h<sub>θ</sub>(x<small>(i)</small>)− y<small>(i )</small>)x<small>( )</small><sub>j</sub><small>i</small>

</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="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 <sub>θ</sub> dẫn đến chi phí tối thiểu.

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

<small>Hình 5.1: Ví dụ Gradient Descent trong Linear Regression </small>

Kết quả:

<small>Hình 5.2: Kết quả chương trình</small>

</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="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 tồ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 tố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 q lớn sẽ khiến cho thuật tốn khơng hội tụ, quanh quẩn bên đích vì bước nhảy q 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 tố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 tốn ML nào sử dụng phương pháp GD?

</div><span class="text_page_counter">Trang 16</span><div class="page_container" data-page="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 ngồi Gradient Descent

Trong các bài tốn Machine Learning, thuật tố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 tố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 tốn hơn.

Conjugate Gradient Method, Quasi-Newton Method : độ hội tụnhanh hơn GD nhưng ít tính tố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 tốn một cách trựctiếp.

</div><span class="text_page_counter">Trang 17</span><div class="page_container" data-page="17">

Tốn Kỹ Thuật

KẾT LUẬN

Với kiến thức hiện có của mình, nhóm em đã hồ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 tốn Gradient Descent. Tuy nghiên, đề tài

đã hồ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

hồ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 Tố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 q 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!

</div><span class="text_page_counter">Trang 18</span><div class="page_container" data-page="18">

Toán Kỹ Thuật

TÀI LIỆU THAM KHẢO

TIẾNG VIỆT[1]

ANH[3]

[4] deep-dive-cf04e8115f21

3274c895d12d

descent-in-machine-learning-169f59ca391e

3274c895d12d

</div>

×