Hồi quy tuyến tính: Phương pháp giảm độ dốc

Đườ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. Phương pháp hạ gradient tìm trọng số và độ lệ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:

  1. Tính toán tổn thất với trọng số và độ lệch hiện tại.

  2. Xác định hướng di chuyển các trọng số và độ lệch giúp giảm tổn thất.

  3. Di chuyển các giá trị trọng số và độ lệch một lượng nhỏ theo hướng làm giảm tổn thất.

  4. Quay lại bước 1 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. Hình minh hoạ quy trình giảm độ dốc.

Hình 12 Phương pháp hạ gradient là một quy trình lặp lại để tìm trọng số và độ lệch tạo ra mô hình có 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 ta có thể thực hiện các bước trong thuật toán giảm dần theo độ dốc bằng cách sử dụng một tập dữ liệu nhỏ gồm 7 ví dụ về trọng lượng của ô tô tính bằng pound và số dặm trên mỗi gallon:

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
  1. Mô hình bắt đầu huấn luyện bằng cách đặt trọng số và độ lệch thành 0:
  2. $$ \small{Weight:\ 0} $$ $$ \small{Bias:\ 0} $$ $$ \small{y = 0 + 0(x_1)} $$
  3. Tính toán tổn thất MSE với các tham số mô hình hiện tại:
  4. $$ \small{Loss = \frac{(18-0)^2 + (15-0)^2 + (18-0)^2 + (16-0)^2 + (15-0)^2 + (14-0)^2 + (24-0)^2}{7}} $$ $$ \small{Loss= 303.71} $$
  5. Tính độ dốc của tiếp tuyến với hàm mất mát tại mỗi trọng số và độ lệch:
  6. $$ \small{Weight\ slope: -119.7} $$ $$ \small{Bias\ slope: -34.3} $$

    Nhấp vào biểu tượng dấu cộng để tìm hiểu cách tính độ dốc.

    Để có được độ dốc cho các đường tiếp xúc với trọng số và độ lệch, chúng ta lấy đạo hàm của hàm tổn thất theo trọng số và độ lệch, sau đó giải 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 trọng số

    Đạ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 ta cộng từng giá trị dự đoán trừ đi giá trị thực tế rồi nhân với hai lần giá trị đặc điểm. Sau đó, chúng ta chia tổng số đó cho số ví dụ. Kết quả là độ dốc của đường tiếp xúc 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à độ lệch bằng 0, chúng ta sẽ có độ dốc của đường bằng -119,7.

    Đạo hàm của độ lệch

    Đạ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.

  7. Di chuyển một lượng nhỏ theo hướng của độ dốc âm để nhận được trọng số và độ lệch tiếp theo. Hiện tại, chúng ta sẽ tự ý xác định "khoản tiền nhỏ" là 0,01:
  8. $$ \small{New\ weight = old\ weight - (small\ amount * weight\ slope)} $$ $$ \small{New\ bias = old\ bias - (small\ amount * bias\ slope)} $$ $$ \small{New\ weight = 0 - (0.01)*(-119.7)} $$ $$ \small{New\ bias = 0 - (0.01)*(-34.3)} $$ $$ \small{New\ weight = 1.2} $$ $$ \small{New\ bias = 0.34} $$

Sử dụng trọng số và độ lệch mới để tính toán tổn thất và lặp lại. Sau khi hoàn tất quy trình lặp lại 6 lần, chúng ta sẽ có các trọng số, độ lệch và tổn thất sau:

Lặp lại Cân nặ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 tổn thất sẽ giảm đi với mỗi trọng số 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 phép lặp lại bổ sung sẽ không làm giảm tổn thất nhiều hơn vì phương pháp hạ gradient đã tìm thấy các trọng số và độ lệch gần như giảm thiểu 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. Dưới đây là hình dạng của một đường cong tổn hao điển hình. Mất mát nằm trên trục y và số lần lặp lại nằm trên trục x:

Hình 13. Biểu đồ của đường cong tổn hao cho thấy sự sụt giảm mạnh rồi giảm dần.

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 rằng 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 3 đ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 nhiều.

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à biểu đồ tương ứng của mô hình, nghiêng ra khỏi các điểm dữ liệu.

Hình 14. Đường cong tổn thất và ảnh chụp nhanh của mô hình ở đầu quá trình huấn luyện.

Ở khoảng lặp thứ 400, chúng ta có thể thấy rằng thuật toán hạ gradient đã tìm thấy trọng số và độ lệch tạo ra mô hình tốt hơn.

Hình 15. Đường cong tổn thất và biểu đồ tương ứng của mô hình, cắt qua các điểm dữ liệu nhưng không ở góc tối ưu.

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à biểu đồ tương ứng của mô hình, phù hợp với dữ liệu.

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 huấn luyện.

Bài tập: Kiểm tra mức độ hiểu bài

Vai trò của thuật toán giảm dần theo độ dốc trong hồi quy tuyến tính là gì?
Phương pháp hạ gradient là một quy trình lặp lại để tìm trọng số và độ lệch tốt nhất giúp giảm thiểu tổn thất.
Phương pháp hạ gradient giúp xác định loại tổn thất cần sử dụng khi đào tạo mô hình, ví dụ: L1 hoặc L2.
Phương pháp hạ gradient không liên quan đến việc lựa chọn hàm tổn thất để huấn luyện mô hình.
Phương pháp hạ gradient sẽ xoá các giá trị ngoại lai khỏi tập dữ liệu để giúp mô hình đưa ra dự đoán chính xác hơn.
Phương pháp hạ gradient không làm thay đổi tập dữ liệu.

Hàm hội tụ và hàm lồi

Hàm tổn thất cho 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, độ lệch nằm trên trục y và tổn hao nằm trên trục z:

Hình 17. Biểu đồ 3D của bề mặt tổn thất.

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. Biểu đồ 3D của bề mặt tổn thất, với (-5,44, 35,94, 5,54) ở dưới cùng.

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 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. Bề mặt tổn thất 3D lồi với các điểm giảm độ dốc di chuyển đến điểm thấp nhất.

Hình 19. Biểu đồ tổn thất cho thấy các điểm xuống dốc theo độ 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 ra hình dạng chính xác của đường cong tổn thất: giảm mạnh trước khi dần dần giảm 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ố đó.

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 (trong trường hợp này là trọng số -5,44 và độ lệch 35,94), chúng ta có thể lập biểu đồ mô hình để xem mô hình đó phù hợp với dữ liệu như thế nào:

Hình 20. Biểu đồ về số cân tính theo nghìn so với số dặm trên mỗi gallon, với mô hình 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à độ lệch nào khác tạo ra mô hình có tổn thất thấp hơn.