Đường dẫn xuống dốc là một kỹ thuật toán học tìm trọng số và độ lệch lặp lại để tạo ra mô hình có tổn thất thấp nhất. Hiệu ứng chuyển màu dần sẽ tìm ra trọng số và độ chệch tốt nhất bằng cách lặp lại quy trình sau đây cho một số lần lặp do người dùng xác định.
Mô hình bắt đầu huấn luyện bằng các trọng số và độ lệch ngẫu nhiên gần bằng 0, sau đó lặp lại các bước sau:
Tính toán tổn thất với trọng số và độ lệch hiện tại.
Xác định hướng di chuyển các trọng số và độ lệch giúp giảm tổn thất.
Di chuyển trọng số và độ chệch các giá trị một lượng nhỏ theo hướng giúp giảm bớt.
Quay lại bước một và lặp lại quy trình cho đến khi mô hình không thể giảm thêm tổn thất.
Sơ đồ dưới đây trình bày các bước lặp lại mà thuật toán hạ gradient thực hiện để tìm trọng số và độ lệch tạo ra mô hình có tổn thất thấp nhất.
Hình 12 Giảm dần độ dốc là một quá trình lặp lại để tìm các trọng số và độ chệch tạo ra mô hình với tổn thất thấp nhất.
Nhấp vào biểu tượng dấu cộng để tìm hiểu thêm về toán học đằng sau thuật toán hạ gradient.
Ở cấp độ cụ thể, chúng tôi có thể hướng dẫn các bước giảm độ dốc bằng cách sử dụng một tập dữ liệu nhỏ có 7 ví dụ về trọng lượng của một chiếc ô tô tính theo pound và xếp hạng số dặm trên mỗi gallon của ô tô đó:
1.000 bảng Anh (tính năng) | Dặm trên galông (nhãn) |
---|---|
3,5 | 18 |
3,69 | 15 |
3,44 | 18 |
3,43 | 16 |
4,34 | 15 |
4.42 | 14 |
2,37 | 24 |
- Mô hình bắt đầu huấn luyện bằng cách đặt trọng số và độ lệch thành 0:
- Tính toán tổn thất MSE với các tham số mô hình hiện tại:
- Tính độ dốc của tiếp tuyến của hàm suy giảm ở mỗi trọng số và độ chệch:
- Di chuyển một phần nhỏ theo hướng dốc âm để tính trọng số và độ chệch tiếp theo. Hiện tại, chúng tôi sẽ tuỳ ý xác định "số lượng nhỏ" là 0,01:
Nhấp vào biểu tượng dấu cộng để tìm hiểu cách tính độ dốc.
Để có hệ số góc của các đường tiếp tuyến với trọng số và độ chệch, chúng ta sẽ lấy đạo hàm của hàm suy giảm đối với trọng số và độ chệch, sau đó giải các phương trình.
Chúng ta sẽ viết phương trình để dự đoán dưới dạng:
$ f_{w,b}(x) = (w*x)+b $.
Chúng ta sẽ viết giá trị thực tế là: $ y $.
Chúng ta sẽ tính MSE bằng cách sử dụng:
$ \frac{1}{M} \sum_{i=1}^{M} (f_{w,b}(x_{(i)}) - y_{(i)})^2 $
trong đó $i$ biểu thị ví dụ huấn luyện thứ $i$ và $M$ biểu thị số lượng ví dụ.
Đạo hàm của hàm tổn thất theo trọng số được viết như sau:
$ \frac{\partial }{\partial w} \frac{1}{M} \sum_{i=1}^{M} (f_{w,b}(x_{(i)}) - y_{(i)})^2 $
và đánh giá thành:
$ \frac{1}{M} \sum_{i=1}^{M} (f_{w,b}(x_{(i)}) - y_{(i)}) * 2x_{(i)} $
Trước tiên, chúng tôi tính tổng từng giá trị dự đoán trừ đi giá trị thực tế, rồi nhân với 2 lần giá trị tính năng. Sau đó, chúng ta chia tổng số đó cho số ví dụ. Kết quả là độ dốc của đường tiếp tuyến với giá trị của trọng số.
Nếu giải phương trình này với trọng số và độ chệch bằng 0, chúng ta sẽ nhận được -119,7 cho độ dốc của đường thẳng.
Đạo hàm thiên sai
Đạo hàm của hàm tổn thất theo độ lệch được viết là:
$ \frac{\partial }{\partial b} \frac{1}{M} \sum_{i=1}^{M} (f_{w,b}(x_{(i)}) - y_{(i)})^2 $
và đánh giá thành:
$ \frac{1}{M} \sum_{i=1}^{M} (f_{w,b}(x_{(i)}) - y_{(i)}) * 2 $
Trước tiên, chúng ta cộng từng giá trị dự đoán trừ đi giá trị thực tế rồi nhân với 2. Sau đó, chúng ta chia tổng số này cho số ví dụ. Kết quả là độ dốc của đường tiếp xúc với giá trị của độ lệch.
Nếu giải phương trình này với trọng số và độ lệch bằng 0, chúng ta sẽ có độ dốc của đường bằng -34,3.
Sử dụng trọng số và độ lệch mới để tính toán tổn thất và lặp lại. Khi hoàn tất quy trình 6 lần lặp lại này, chúng ta sẽ nhận được các kết quả có trọng số, độ lệch và tổn thất như sau:
Lặp lại | Trọng lượng | Thiên kiến | Mất mát (MSE) |
---|---|---|---|
1 | 0 | 0 | 303,71 |
2 | 1.2 | 0,34 | 170,67 |
3 | 2,75 | 0,59 | 67,3 |
4 | 3.17 | 0,72 | 50,63 |
5 | 3.47 | 0,82 | 42.1 |
6 | 3,68 | 0,9 | 37,74 |
Bạn có thể thấy rằng mức giảm sút sẽ giảm dần theo từng cân nặng và độ lệch được cập nhật. Trong ví dụ này, chúng ta đã dừng sau 6 lần lặp lại. Trong thực tế, một mô hình sẽ huấn luyện cho đến khi hội tụ. Khi một mô hình hội tụ, các lần lặp lại bổ sung không làm giảm mức hao tổn nhiều hơn vì chế độ giảm độ dốc đã tìm ra trọng số và độ chệch gần như giảm thiểu mức tổn thất.
Nếu mô hình tiếp tục huấn luyện sau khi hội tụ, tổn thất sẽ bắt đầu dao động ở mức nhỏ khi mô hình liên tục cập nhật các tham số xung quanh giá trị thấp nhất của chúng. Điều này có thể khiến bạn khó xác minh rằng mô hình đã thực sự hội tụ. Để xác nhận rằng mô hình đã hội tụ, bạn nên tiếp tục huấn luyện cho đến khi tổn thất ổn định.
Đường cong hội tụ và đường cong tổn thất của mô hình
Khi huấn luyện mô hình, bạn thường sẽ xem đường cong tổn thất để xác định xem mô hình có hội tụ hay không. Đường cong tổn thất cho biết cách tổn thất thay đổi khi mô hình huấn luyện. Sau đây là giao diện của một đường cong tổn thất thông thường. Tổn thất nằm trên trục y và số lặp lại trên trục x:
Hình 13. Đường cong tổn thất cho thấy mô hình hội tụ xung quanh điểm đánh dấu lặp lại thứ 1.000.
Bạn có thể thấy tổn thất giảm đáng kể trong vài lần lặp đầu tiên, sau đó giảm dần trước khi trở về mức ổn định ở mốc lặp thứ 1.000. Sau 1.000 lần lặp lại, chúng ta có thể chắc chắn rằng mô hình đã hội tụ.
Trong các hình sau, chúng ta vẽ mô hình tại ba điểm trong quá trình huấn luyện: bắt đầu, giữa và kết thúc. Việc trực quan hoá trạng thái của mô hình tại các ảnh chụp nhanh trong quá trình huấn luyện sẽ củng cố mối liên kết giữa việc cập nhật trọng số và độ lệch, giảm tổn thất và hội tụ mô hình.
Trong các hình này, chúng ta sử dụng trọng số và độ lệch được lấy tại một lần lặp cụ thể để biểu thị mô hình. Trong biểu đồ có các điểm dữ liệu và ảnh chụp nhanh mô hình, các đường tổn thất màu xanh dương từ mô hình đến các điểm dữ liệu cho biết mức độ tổn thất. Dòng càng dài thì tổn hao càng lớn.
Trong hình sau, chúng ta có thể thấy rằng vào khoảng lần lặp thứ hai, mô hình sẽ không dự đoán tốt do mức độ tổn thất cao.
Hình 14. Đường cong tổn thất và ảnh chụp nhanh của mô hình ở đầu quy trình huấn luyện.
Vào khoảng lần lặp thứ 400, chúng ta có thể thấy rằng tính năng giảm độ dốc đã tìm ra trọng số và độ chệch giúp tạo ra mô hình tốt hơn.
Hình 15. Đường cong tổn thất và ảnh chụp nhanh của mô hình ở giữa quá trình huấn luyện.
Và ở khoảng lặp thứ 1.000, chúng ta có thể thấy rằng mô hình đã hội tụ, tạo ra một mô hình có tổn thất thấp nhất có thể.
Hình 16. Đường cong tổn thất và ảnh chụp nhanh của mô hình gần cuối quá trình đào tạo.
Bài tập: Kiểm tra mức độ hiểu bài
Hàm hội tụ và hàm lồi
Hàm tổn thất cho các mô hình tuyến tính luôn tạo ra một bề mặt lồi. Do thuộc tính này, khi một mô hình hồi quy tuyến tính hội tụ, chúng ta biết rằng mô hình đã tìm thấy các trọng số và độ lệch tạo ra tổn thất thấp nhất.
Nếu lập biểu đồ bề mặt tổn thất cho một mô hình có một đặc điểm, chúng ta có thể thấy hình dạng lồi của mô hình đó. Sau đây là bề mặt tổn thất của tập dữ liệu dặm trên gallon được sử dụng trong các ví dụ trước. Trọng số nằm trên trục x, độ chệch trên trục y và độ lệch nằm trên trục z:
Hình 17. Bề mặt tổn thất cho thấy hình dạng lồi của nó.
Trong ví dụ này, trọng số -5,44 và độ lệch 35,94 tạo ra tổn thất thấp nhất là 5,54:
Hình 18. Bề mặt tổn thất cho thấy các giá trị trọng số và độ lệch tạo ra tổn thất thấp nhất.
Mô hình tuyến tính hội tụ khi tìm thấy mức tổn thất tối thiểu. Do đó, các vòng lặp bổ sung chỉ khiến thuật toán hạ gradient di chuyển các giá trị trọng số và độ lệch theo một lượng rất nhỏ xung quanh giá trị tối thiểu. Nếu chúng ta lập biểu đồ các trọng số và điểm thiên lệch trong quá trình giảm độ dốc, các điểm sẽ trông giống như một quả bóng lăn xuống một ngọn đồi, cuối cùng dừng lại ở điểm không còn độ dốc xuống nữa.
Hình 19. Biểu đồ suy hao cho thấy các điểm giảm độ dốc dừng ở điểm thấp nhất trên biểu đồ.
Lưu ý rằng các điểm tổn thất màu đen tạo nên hình dạng chính xác của đường cong tổn thất: mức giảm dốc trước khi dần dần dốc xuống cho đến khi đạt đến điểm thấp nhất trên bề mặt tổn thất.
Điều quan trọng cần lưu ý là mô hình hầu như không bao giờ tìm thấy giá trị tối thiểu chính xác cho mỗi trọng số và độ lệch, mà thay vào đó là tìm thấy một giá trị rất gần với giá trị đó. Điều quan trọng cần lưu ý là giá trị tối thiểu cho trọng số và độ lệch không tương ứng với tổn thất bằng 0, mà chỉ là giá trị tạo ra tổn thất thấp nhất cho tham số đó.
Việc sử dụng các giá trị trọng số và độ chệch dẫn đến mức tổn thất thấp nhất (trong trường hợp này là trọng số là -5,44 và độ lệch là 35,94), chúng ta có thể lập biểu đồ mô hình để xem mức độ phù hợp với dữ liệu:
Hình 20. Mô hình được lập biểu đồ bằng cách sử dụng các giá trị trọng số và độ lệch tạo ra tổn thất thấp nhất.
Đây sẽ là mô hình tốt nhất cho tập dữ liệu này vì không có giá trị trọng số và độ chệch nào khác tạo ra mô hình có mức tổn hao thấp hơn.