Giảm dần độ dốc

học sâu
toán học
giảm độ dốc
Giảm dần độ dốc cover image

Giới thiệu

Hãy tưởng tượng rằng chúng ta có một hàm $f(x)$ và chúng ta muốn tìm giá trị tối thiểu của nó. Bạn sẽ làm gì?

Đơn giản phải không? Ta chỉ cần giải phương trình sau:

$$f'(x) = 0$$

Vấn đề là việc tìm ra công thức của $f'$ không phải lúc nào cũng dễ dàng vì chúng có xu hướng cực kỳ phức tạp, đặc biệt là trong học sâu nơi chúng ta xử lý các hàm phức tạp. Vì vậy, chúng ta cần tìm một phương pháp khác có thể cung cấp cho chúng ta giá trị tối thiểu của hàm mà không cần tìm công thức đạo hàm $f'$.

Hãy xây dựng trực giác

Giả sử chúng ta có hàm f với đồ thị tương ứng:

Graph 1

Hãy bắt đầu với một điểm ngẫu nhiên $x_{0}$. Mục tiêu là di chuyển điểm này và làm cho nó ngày càng gần $x*$ sao cho $f'($x*$) = 0$. Vì vậy, vấn đề có thể được chia thành hai phần:

  • Chúng ta nên di chuyển điểm $x$ theo hướng nào? Trái hay phải?

  • Chúng ta nên di chuyển nó bao nhiêu?

Phương hướng

Hãy xây dựng một số trực giác để trả lời câu hỏi đầu tiên. Hãy xem xét điểm sau:

Graph 2

Graph 3

Lưu ý rằng:

  • khi điểm $x_{0}$ ở bên phải điểm tối ưu $x*$ thì đường tiếp tuyến của nó đi lên.

  • khi điểm $x_{0}$ ở bên phải điểm tối ưu $x*$ thì đường tiếp tuyến của nó đi xuống.

Hướng của một đường được xác định bởi dấu của độ dốc của nó:

  • Một đường đi lên $\ngụ ý$ độ dốc $a$ là dương.

  • Một đường đi xuống $\ngụ ý$ độ dốc $a$ là âm.

Lưu ý rằng: \

Độ dốc của tiếp tuyến của hàm số tại một điểm $x_{0}$ không lớn hơn đạo hàm tại điểm đó $f'(x_{0})$:

$$ tangent(x*{0}): g(x) = f'(x*{0}).(x-x*{0}) + f(x*{0}) $$

Vì vậy, để trả lời câu hỏi "Chúng ta nên di chuyển $x_{0}$ ?":

  • $f'(x_{0}) < 0$ $\implies$ $x_{0}$ ở bên phải $x*$ $\implies$ Chúng ta cần di chuyển $x_{0}$ sang trái.

  • $f'(x_{0}) > 0$ $\implies$ $x_{0}$ sang bên trái của $x*$ $\implies$ Chúng ta cần di chuyển $x_{0}$ sang bên phải.

##Các bước

Bây giờ là câu hỏi thứ hai, Chúng ta nên di chuyển $x_{0}$ bao nhiêu?

Hãy xem các ví dụ sau:

Graph 4

Graph 5

Chúng ta có thể kết luận rằng:

  • $x_{0}$ gần với $x*$ => Độ dốc của tiếp tuyến nhỏ => $f'(x_{0})$ nhỏ.

  • $x_{0}$ ở xa $x*$ => Độ dốc của tiếp tuyến lớn => $f'(x_{0})$ lớn.

Bằng cách trả lời cả hai câu hỏi, chúng tôi kết luận rằng chỉ kiến ​​thức về đạo hàm tại điểm $x_{0}$ mới có thể cung cấp cho chúng tôi nhiều hiểu biết sâu sắc về hướng và khoảng cách của điểm tối ưu $x_{0}$.

Giảm dần độ dốc

Giảm dần độ dốc là công thức của câu trả lời cho hai câu hỏi trước. Đó là một thuật toán lặp tối ưu hóa xấp xỉ $x*$ tối thiểu của hàm bắt đầu từ điểm ban đầu ngẫu nhiên $x_{0}$. Thuật toán được phát biểu như sau:

$$ x*{n+1} = x*{n} - lr \times \frac{\mathrm{d} f}{\mathrm{d} x_{n}} $$

Ở đâu:

  • $ \frac{\mathrm{d} f}{\mathrm{d} x*{n}} $ không lớn hơn đạo hàm của $f$ tại điểm $x*{n}$.

  • $lr$ là hằng số dương xác định mức độ lớn của các bước.

Lưu ý rằng:

  • $x_{n}$ nằm ở bên phải của $x*$ => $\frac{\mathrm{d} f}{\mathrm{d} x_{n}} > 0 $ => $ x_{n+ 1} = x_{n} - dương $ => $x_{n}$ di chuyển sang trái.

  • $x_{n}$ nằm ở bên trái của $x*$ => $\frac{\mathrm{d} f}{\mathrm{d} x_{n}} < 0$ => $ x*{n +1} = x*{n} + dương $ => $x_{n}$ di chuyển sang phải.

  • $x_{n}$ gần với $x*$ => $\frac{\mathrm{d} f}{\mathrm{d} x_{n}}$ gần với $0$ => Cập nhật nhỏ cho $x_{ n}$.

Câu đố

  • Khi nào việc giảm độ dốc dừng lặp lại:

  • Khi $x_{n}$ đủ nhỏ.

  • Khi $x_{n}$ gần với $x_{0}$ .

  • Khi $\frac{\mathrm{d} f}{\mathrm{d} x_{n}} = 0 $. XXX

  • Chúng ta chọn $x_{0}$ như thế nào:

  • Chúng tôi chọn ngẫu nhiên. XXX

  • Chúng ta lấy nó ở lân cận $x{n}$.

  • Tùy vào vấn đề.

  • Tại sao chúng ta cần giảm độ dốc:

  • Vì máy tính không đủ mạnh để tính đạo hàm.

  • Bởi vì việc tìm ra công thức đạo hàm của các mô hình deep learning cực kỳ khó khăn. XXX

  • Bởi vì hàm có nhiều cực tiểu cục bộ.


Career Services background pattern

Dịch vụ nghề nghiệp

Contact Section background image

Hãy giữ liên lạc

Code Labs Academy © 2024 Đã đăng ký Bản quyền.