Python Cho Người Việt

Lập ra công thức xuống dốc

Một trong những bài toán thường gặp ở chương trình phổ thông là khảo sát hàm số. Bạn đọc chắc chắn đã quá quen thuộc với việc vẽ đồ thị pa-ra-bôn, hoặc tạo bảng biến thiên. Chúng ta sẽ bắt đầu từ đó.

Gọi hàm (y = x^2 – 2x – 5). Đạo hàm bậc nhất của hàm này là (y^prime = 2x – 2), có nghiệm tại (x = 1). Đồ thị của hàm này được thể hiện trong hình sau.

Nếu chúng ta lập bảng biến thiên, chúng ta sẽ có bảng sau:

Dựa vào bảng biến thiên, ta thấy rằng giá trị của hàm giảm xuống khi biến số tiến từ (-infty) đến nghiệm của đạo hàm bậc nhất và tăng lên khi biến số tiếp tục tiến về (+infty). Dựa vào đồ thị, ta thấy độ tăng hay giảm giá trị của hàm (trên trục (y)) phụ thuộc vào góc của tiếp tuyến, cũng là giá trị của đạo hàm bậc nhất. Tổng hợp hai nhận xét này, chúng ta đi đến kết luận chủ đạo của kỹ thuật xuống dốc:

  1. Khi giá trị của đạo hàm bậc nhất là âm (tức là dốc xuống), ta cần tăng giá trị của biến (đi xuống theo dốc). Khi giá trị đó là dương (tức là dốc lên), ta cần giảm giá trị của biến (đi xuống ngược dốc). Nói một cách khác, giá trị biến cần phải thay đổi theo chiều ngược lại so với dấu của đạo hàm. Đây là lý do của tên gọi của kỹ thuật này.
  2. Ta có thể dùng giá trị của đạo hàm bậc nhất để điều chỉnh độ tăng / giảm của biến.

Từ hai kết luận chủ đạo đó, ta lập ra công thức cập nhật biến theo kỹ thuật xuống dốc như sau:

Ký hiệu (x^{(t)}) có nghĩa là giá trị của biến (x) tại thời điểm (t). Dấu trừ trong công thức trên thể hiện điểm 1, và tích của (alpha) với đạo hàm bậc nhất thể hiện điểm 2.

Hệ số (alpha > 0) được gọi là tốc độ học (learning rate). Nhiều tài liệu khác sử dụng ký hiệu (eta) hay (gamma) để chỉ cùng một ý. Khi tốc độ học lớn, sự thay đổi của biến cũng cao, và ngược lại. Trong thực tế, tốc độ học thường được làm giảm dần (decay) theo thời gian nhằm tránh trường hợp biến nhảy qua nhảy lại ở hai bên điểm cực tiểu.

Cuối cùng, cài đặt kỹ thuật xuống dốc để tìm điểm cực tiểu trong ví dụ này đơn giản như sau:

Kết quả nhận được khi chạy chương trình này trùng khớp với điểm cực tiểu:

1.0