Tại sao các hàm chi phí sử dụng lỗi vuông?


73

Tôi mới bắt đầu với một số máy học, và cho đến bây giờ tôi đã xử lý hồi quy tuyến tính trên một biến.

Tôi đã học được rằng có một giả thuyết, đó là:

hθ(x)= =θ0+θ1x

Để tìm ra các giá trị tốt cho các tham số θ0θ1 chúng tôi muốn giảm thiểu sự khác biệt giữa kết quả tính toán và kết quả thực tế của dữ liệu thử nghiệm của chúng tôi. Vì vậy, chúng tôi trừ

hθ(x(Tôi))-y(Tôi)

cho tất cả Tôi từ 1 đến m . Do đó, chúng tôi tính tổng trên chênh lệch này và sau đó tính trung bình bằng cách nhân tổng với 1m . Càng xa càng tốt. Điều này sẽ dẫn đến:

1mΣTôi= =1mhθ(x(Tôi))-y(Tôi)

Nhưng đây không phải là những gì đã được đề xuất. Thay vào đó, khóa học gợi ý lấy giá trị bình phương của chênh lệch và nhân với . Vậy công thức là:12m

12mΣTôi= =1m(hθ(x(Tôi))-y(Tôi))2

Tại sao vậy? Tại sao chúng ta sử dụng hàm vuông ở đây và tại sao chúng ta nhân với thay vì?12m1m


3
Câu hỏi liên quan tại stats.stackexchange.com
user1205197

Ngoài ra hãy xem lời giải thích của Chris McCormick trên goo.gl/VNiUR5
vimdude

bởi vì đó là sự phân kỳ của Bregman
Andrew

Câu trả lời:


41

Chức năng mất mát của bạn sẽ không hoạt động bởi vì nó incentivizes thiết θ1 với bất kỳ giá trị hữu hạn và θ0 đến - .

Hãy gọi r(x,y)= =1mΣTôi= =1mhθ(x(Tôi))-ycácchoh.

Mục tiêu của bạn là làm cho r càng gần 0 càng tốt, không chỉ giảm thiểu nó . Giá trị âm cao cũng tệ như giá trị dương cao.

EDIT: Bạn có thể truy cập này bằng cách giới hạn nhân tạo không gian tham số Θ (ví dụ như bạn muốn |θ0|<10 ). Trong trường hợp này, các tham số tối ưu sẽ nằm trên một số điểm nhất định trên đường biên của không gian tham số. Xem https://math.stackexchange.com/q/896388/12467 . Đây không phải điều bạn muốn.

Tại sao chúng ta sử dụng mất vuông

Lỗi bình phương buộc h(x)y khớp nhau. Nó được thu nhỏ ở mức bạn= =v , nếu có thể và luôn luôn là 0 , vì đó là một hình vuông của số thực bạn-v .

|bạn-v|cũng sẽ hoạt động cho mục đích trên, như(bạn-v)2viết sai rồi , vớiviết sai rồi một số nguyên dương. Cái đầu tiên trong số này thực sự được sử dụng (nó được gọi làmất1 ; bạn cũng có thể gặp phảitổn thất2 , một tên gọi khác của lỗi bình phương).

Vì vậy, tại sao mất bình phương tốt hơn so với những gì? Đây là một câu hỏi sâu sắc liên quan đến mối liên hệ giữa suy luận thường xuyên và suy luận Bayes . Nói tóm lại, lỗi bình phương liên quan đến nhiễu Gaussian .

Nếu dữ liệu của bạn không phù hợp với tất cả các điểm chính xác, tức là h(x)-y không bằng không đối với một số điểm là không có vấn đề gì θ bạn chọn (như sẽ luôn luôn xảy ra trong thực tế), mà có thể là do tiếng ồn . Trong bất kỳ hệ thống phức tạp nào, sẽ có nhiều nguyên nhân độc lập nhỏ cho sự khác biệt giữa mô hình h của bạn và thực tế y : lỗi đo lường, các yếu tố môi trường, v.v ... Theo Định lý giới hạn trung tâm (CLT), tổng nhiễu sẽ được phân phối Thông thường , tức là theo Phân phối Gaussian . Chúng tôi muốn chọn phù hợp nhất θtính đến phân phối tiếng ồn này. Giả sử R= =h(X)-Y , một phần của y rằng mô hình của bạn không thể giải thích, sau sự phân bố Gaussian VIẾT SAI RỒI(μ,σ) . Chúng tôi đang sử dụng vốn vì hiện tại chúng tôi đang nói về các biến ngẫu nhiên.

Sự phân bố Gaussian có hai tham số, có nghĩa là μ= =E[R]= =1mΣTôihθ(X(Tôi))-Y(Tôi))và phương saiσ2= =E[R2]= =1mΣTôi(hθ(X(Tôi))-Y(Tôi)))2. Xemở đâyđể hiểu các điều khoản tốt hơn.

  • Cân nhắc μ , đó là lỗi hệ thống đo lường của chúng tôi. Sử dụng h'(x)= =h(x)-μ để sửa chữa cho lỗi có hệ thống, do đó μ'= =E[R']= =0 (tập thể dục cho người đọc). Không có gì khác để làm ở đây.

  • σ đại diện chosai số ngẫu nhiên, hay còn gọi làtiếng ồn. Khi chúng ta đã quan tâm đến thành phần nhiễu có hệ thống như ở điểm trước, bộ dự đoán tốt nhất thu được khiσ2= =1mΣTôi(hθ(X(Tôi))-Y(Tôi)))2được thu nhỏ. Nói cách khác, công cụ dự đoán tốt nhất là công cụ có phân phối chặt chẽ nhất (phương sai nhỏ nhất) xung quanh giá trị dự đoán, tức là phương sai nhỏ nhất. Giảm thiểu tổn thất bình phương nhỏ nhất cũng giống như giảm thiểu phương sai! Điều đó giải thích tại sao tổn thất bình phương nhỏ nhất hoạt động cho một loạt các vấn đề. Tiếng ồn cơ bản rất thường là Gaussian, vì CLT, và giảm thiểu lỗi bình phương hóa ra làđiềuđúngđắn!

Đồng thời đưa cả hai giá trị trung bình và phương sai vào tài khoản, chúng tôi bao gồm một xu hướng hạn trong phân loại của chúng tôi (để xử lý lỗi hệ thống μ ), sau đó giảm thiểu thiệt hại vuông.

Câu hỏi tiếp theo:

  • Mất bình phương tối thiểu = lỗi Gaussian. Có phải mọi chức năng mất khác cũng tương ứng với một số phân phối tiếng ồn? Đúng. Ví dụ, 1 lỗ (giảm thiểu giá trị tuyệt đối thay vì lỗi bình phương) tương ứng với phân phối Laplace (Nhìn vào công thức cho PDF trong hộp thông tin - nó chỉ là Gaussian với |x-μ| thay vì (x-μ)2 ). Một mất mát phổ biến cho phân phối xác suất là phân kỳ KL . -Phân phối Gaussian được thúc đẩy rất tốt vì Định lý giới hạn trung tâm, mà chúng ta đã thảo luận trước đó. Khi nào phân phối Laplace đúng mô hình tiếng ồn? Có một số trường hợp nó đã phát sinh một cách tự nhiên, nhưng nó phổ biến hơn như một regularizer để thực thi thưa thớt : các 1 mất là ít nhất lồi trong số tất cả thiệt hại lồi.

    • Như Jan đề cập trong các bình luận, tối thiểu hóa độ lệch bình phương là giá trị trung bình và tối thiểu hóa tổng của độ lệch tuyệt đốitrung vị . Tại sao chúng ta muốn tìm trung vị của phần dư thay vì trung bình? Không giống như trung bình, trung vị không bị loại bỏ bởi một ngoại lệ rất lớn. Vì vậy, 1 mất mát được sử dụng để tăng độ bền. Đôi khi một sự kết hợp của cả hai được sử dụng.
  • Có những tình huống mà chúng ta giảm thiểu cả Trung bình và Phương sai? Đúng. Tra cứu Bias-Variance Trade-off . Ở đây, chúng tôi đang xem xét một bộ phân loại hθH và yêu cầu mà trong số đó là tốt nhất. Nếu chúng ta hỏi bộ phân loại nào là tốt nhất cho một vấn đề, thì việc giảm thiểu cả sai lệch và phương sai trở nên quan trọng. Nó chỉ ra rằng luôn có sự đánh đổi giữa họ và chúng tôi sử dụng chính quy để đạt được sự thỏa hiệp.

Về 12 nhiệm kỳ

1/2 không quan trọng và thực tế, cả m - cả hai đều là hằng số. Giá trị tối ưu của θ sẽ giữ nguyên trong cả hai trường hợp.

  • Biểu thức cho gradient trở nên đẹp hơn với 12 , vì 2 từ hạn vuông hủy bỏ.

    • Khi viết mã hoặc thuật toán, chúng ta thường quan tâm nhiều hơn đến độ dốc, vì vậy nó giúp giữ cho nó ngắn gọn. Bạn có thể kiểm tra tiến độ chỉ bằng cách kiểm tra định mức của gradient. Hàm mất mát đôi khi được bỏ qua từ mã vì nó chỉ được sử dụng để xác nhận câu trả lời cuối cùng.
  • Các m rất hữu ích nếu bạn giải quyết vấn đề này với gradient descent. Sau đó, độ dốc của bạn trở thành trung bình của m thuật ngữ thay vì tổng, vì vậy thang đo của nó không thay đổi khi bạn thêm nhiều điểm dữ liệu.

    • Tôi đã gặp phải vấn đề này trước đây: Tôi kiểm tra mã với một số điểm nhỏ và nó hoạt động tốt, nhưng khi bạn kiểm tra nó với toàn bộ tập dữ liệu, có sự mất độ chính xác và đôi khi vượt quá, tức là độ dốc của bạn trở thành nanhoặc inf. Để tránh điều đó, chỉ cần bình thường hóa số lượng điểm dữ liệu.
  • Các quyết định thẩm mỹ này được sử dụng ở đây để duy trì tính nhất quán với các phương trình trong tương lai nơi bạn sẽ thêm các điều khoản chính quy . Nếu bạn bao gồm m , tham số quy tắc λ sẽ không phụ thuộc vào kích thước tập dữ liệu m và nó sẽ được interpretable hơn trên vấn đề.


bạn nói, "khi bạn lấy đạo hàm, biểu thức sẽ đẹp hơn, bởi vì 2 hủy bỏ 2 từ số hạng vuông". Nhưng tại sao chúng ta muốn lấy đạo hàm của nó?
DrGeneral

Chúng tôi thường tối ưu hóa tổn thất bằng cách sử dụng độ dốc giảm dần, đòi hỏi phải lấy Đạo hàm. Tôi đã không đề cập đến điều này bởi vì nó phải rõ ràng từ bối cảnh của câu hỏi này.
Khắc nghiệt

1
Khắc nghiệt, Tha thứ cho sự ngây thơ của tôi, nhưng tại sao không sử dụng giá trị tuyệt đối thay vì hình vuông?
Alexander Suraphel

1
Lỗi tuyệt đối cũng có thể hoạt động, nhưng trong trường hợp đó, bạn sẽ hồi quy về trung vị dự kiến ​​thay vì trung bình. Lấy một danh sách nhỏ các con số và xem mức độ tổn thất khác nhau như thế nào bằng cách thay đổi ước tính của bạn (đối với cả bình phương và sai số tuyệt đối)
Jan van der Vegt

@AlexanderSuraphel Xin lỗi vì sự chậm trễ trong việc trả lời :) Tôi đã thêm một phần ở trên để giải quyết vấn đề đó
Harsh

25

Hệ số 1/2 chỉ đơn thuần là để thuận tiện; nó làm cho đạo hàm, là hàm thực sự được tối ưu hóa, trông đẹp hơn. 1 / m là cơ bản hơn; nó gợi ý rằng chúng ta quan tâm đến lỗi bình phương trung bình. Điều này cho phép bạn thực hiện so sánh công bằng khi thay đổi kích thước mẫu và ngăn ngừa tràn. Vì vậy, các trình tối ưu hóa "ngẫu nhiên" sử dụng tập hợp con của tập dữ liệu (m '<m). Khi bạn giới thiệu bộ chỉnh tần (thuật ngữ phụ gia cho hàm mục tiêu), sử dụng hệ số 1 / m cho phép bạn sử dụng cùng một hệ số cho bộ chỉnh tần bất kể kích thước mẫu.

Đối với câu hỏi tại sao hình vuông và không chỉ đơn giản là sự khác biệt: bạn không muốn đánh giá thấp bị phạt tương tự như đánh giá quá cao? Bình phương loại bỏ ảnh hưởng của dấu hiệu lỗi. Lấy giá trị tuyệt đối (định mức L1) cũng vậy, nhưng đạo hàm của nó không được xác định tại điểm gốc, vì vậy nó đòi hỏi sự tinh tế hơn để sử dụng. Định mức L1 có những công dụng của nó, vì vậy hãy ghi nhớ và có thể hỏi giáo viên xem anh ấy có bao quát nó không.


4
L2LpL2

6

Thước đo lỗi trong hàm mất là 'khoảng cách thống kê'; trái ngược với sự hiểu biết phổ biến và sơ bộ về khoảng cách giữa hai vectơ trong không gian Euclide. Với "khoảng cách thống kê", chúng tôi đang cố gắng ánh xạ "sự tương đồng" giữa mô hình ước tính và mô hình tối ưu vào không gian Euclide.

Không có quy tắc hạn chế nào liên quan đến việc xây dựng 'khoảng cách thống kê' này, nhưng nếu lựa chọn phù hợp thì việc giảm dần "khoảng cách" này trong quá trình tối ưu hóa sẽ chuyển thành ước lượng mô hình cải thiện dần dần. Do đó, việc lựa chọn 'khoảng cách thống kê' hoặc đo lường lỗi có liên quan đến phân phối dữ liệu cơ bản.

Trong thực tế, có một số biện pháp khoảng cách / lỗi được xác định rõ ràng cho các lớp phân phối thống kê khác nhau. Nên chọn biện pháp lỗi dựa trên sự phân phối dữ liệu trong tay. Nó chỉ xảy ra rằng phân phối Gaussian có mặt khắp nơi, và do đó, đo khoảng cách liên quan của nó, định mức L2 là thước đo lỗi phổ biến nhất. Tuy nhiên, đây không phải là quy tắc và tồn tại dữ liệu trong thế giới thực mà việc triển khai tối ưu hóa 'hiệu quả' * sẽ áp dụng một biện pháp lỗi khác với định mức L2.

Hãy xem xét tập hợp các phân kỳ Bregman . Đại diện chính tắc của biện pháp phân kỳ này là định mức L2 (lỗi bình phương). Nó cũng bao gồm entropy tương đối (phân kỳ Kullback-Liebler), khoảng cách Euclide tổng quát (chỉ số Mahalanobis) và chức năng Itakura-Saito. Bạn có thể đọc thêm về nó trong bài viết này về Phân kỳ chức năng Bregman và ước tính phân phối Bayesian .

Take-Away: Định mức L2 có một tập các thuộc tính thú vị làm cho nó trở thành lựa chọn phổ biến cho đo lường lỗi (các câu trả lời khác ở đây đã đề cập đến một số trong số này, đủ cho phạm vi của câu hỏi này) và lỗi bình phương sẽ là phù hợp sự lựa chọn hầu hết thời gian Tuy nhiên, khi phân phối dữ liệu yêu cầu, có các biện pháp lỗi thay thế để lựa chọn và sự lựa chọn phụ thuộc phần lớn vào công thức của thói quen tối ưu hóa.

* Biện pháp lỗi 'thích hợp' sẽ làm cho hàm mất mát lồi lên để tối ưu hóa, rất hữu ích, trái ngược với một số biện pháp lỗi khác trong đó hàm mất là không lồi và do đó rất khó khăn.


5

Ngoài các điểm chính do người khác tạo ra, sử dụng lỗi bình phương sẽ nhấn mạnh hơn vào lỗi lớn hơn (điều gì xảy ra với 1/2 khi bạn bình phương so với 3/2?).

Có một thuật toán di chuyển các lỗi phân số, có khả năng dẫn đến phân loại chính xác hoặc chênh lệch rất nhỏ giữa ước tính và sự thật nền tảng, nếu để một mình gần bằng 0, trong khi để lại các lỗi lớn là lỗi lớn hoặc phân loại sai, không phải là một đặc điểm mong muốn của một thuật toán.

Sử dụng lỗi bình phương sử dụng lỗi như một trọng số quan trọng ngụ ý để điều chỉnh dự đoán.


vậy, lỗi tùy ý là gì
jeza

3

Trong công thức của bạn, bạn cố gắng đạt được độ lệch trung bình của xấp xỉ của bạn từ dữ liệu được quan sát.

Nếu giá trị trung bình của xấp xỉ của bạn gần hoặc bằng giá trị trung bình của dữ liệu được quan sát (điều gì đó mong muốn và thường xảy ra với nhiều sơ đồ gần đúng) thì kết quả của công thức của bạn sẽ bằng 0 hoặc không đáng kể, vì các lỗi dương tính bù với âm lỗi. Điều này có thể dẫn đến kết luận rằng sự gần đúng của bạn là tuyệt vời ở mỗi mẫu được quan sát, trong khi nó có thể không phải là trường hợp. Đó là lý do tại sao bạn sử dụng bình phương lỗi tại mỗi mẫu và bạn thêm chúng (lần lượt từng lỗi dương).

Tất nhiên đây chỉ là một giải pháp khả thi, vì bạn có thể đã sử dụng định mức L1 (giá trị tuyệt đối của lỗi tại mỗi mẫu) hoặc nhiều cách khác, thay vì định mức L2.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.