Tại sao để tối ưu hóa xác suất đăng nhập tối đa thay vì xác suất


66

Trong hầu hết các tác vụ học máy mà bạn có thể tạo ra một số xác suất cần được tối đa hóa, chúng tôi thực sự sẽ tối ưu hóa xác suất thay vì xác suất cho một số tham số . Ví dụ, trong đào tạo khả năng tối đa, nó thường là khả năng đăng nhập. Khi thực hiện điều này với một số phương thức gradient, điều này liên quan đến một yếu tố:plogpθ

logpθ=1ppθ

Xem ở đây hoặc ở đây cho một số ví dụ.

Tất nhiên, tối ưu hóa là tương đương, nhưng độ dốc sẽ khác nhau, do đó, bất kỳ phương pháp dựa trên độ dốc nào cũng sẽ hoạt động khác nhau (đặc biệt là các phương pháp gradient ngẫu nhiên). Có bất cứ lời biện minh nào cho thấy gradient hoạt động tốt hơn gradient không?logpp


3
bạn cần lưu ý rằng chúng tôi thường tối đa hóa khả năng sử dụng các công cụ phái sinh. Mặt khác, trong nhiều trường hợp, điều kiện độc lập được áp dụng có nghĩa là Khả năng là sản phẩm của một số hàm mật độ xác suất iid. Hơn nữa, sản phẩm của nhiều giá trị nhỏ (trong khoảng [0,1]) dẫn đến một giá trị rất nhỏ. Điều này dẫn đến một khó khăn tính toán.
TPArrow

@AlejandroRodriguez kiểm tra câu trả lời của tôi ở đây để biết thêm chi tiết.
Paul

Câu trả lời:


65

Các phương thức gradient thường hoạt động tối ưu hóa tốt hơn so với vì độ dốc của thường được chia tỷ lệ tốt hơn . Nghĩa là, nó có kích thước phản ánh nhất quán và hữu ích hình học của hàm mục tiêu, giúp dễ dàng chọn kích thước bước thích hợp và đạt mức tối ưu trong ít bước hơn.p ( x ) log p ( x )logp(x)p(x)logp(x)

Để xem ý tôi là gì, hãy so sánh quá trình tối ưu hóa độ dốc cho và . Tại bất kỳ điểm , độ dốc của làNếu chúng ta nhân số đó với , chúng ta sẽ có được kích thước bước chính xác cần thiết để đạt mức tối ưu toàn cầu tại điểm gốc, bất kể gìp(x)=exp(x2)f(x)=logp(x)=x2xf(x)

f(x)=2x.
1/2xLà. Điều này có nghĩa là chúng ta không cần phải làm việc quá sức để có được kích thước bước tốt (hay "tỷ lệ học tập" trong thuật ngữ ML). Bất kể điểm ban đầu của chúng tôi là ở đâu, chúng tôi chỉ cần đặt bước của chúng tôi xuống một nửa độ dốc và chúng tôi sẽ ở điểm gốc trong một bước. Và nếu chúng ta không biết chính xác yếu tố cần thiết, chúng ta có thể chọn kích thước bước khoảng 1, thực hiện tìm kiếm một dòng và chúng ta sẽ tìm thấy kích thước bước tuyệt vời rất nhanh, một bước hoạt động tốt bất kể ở đâu là. Thuộc tính này là mạnh mẽ để dịch và nhân rộng . Mặc dù tỷ lệ sẽ làm cho tỷ lệ bước tối ưu khác nhau từ 1/2, nhưng ít nhất tỷ lệ bước sẽ giống nhau cho dù là gì , vì vậy chúng tôi chỉ phải tìm một tham số để có được tối ưu hóa dựa trên độ dốc hiệu quả kế hoạch.xf(x)f(x)x

Ngược lại, độ dốc của có các thuộc tính toàn cầu rất kém để tối ưu hóa. Ta cóĐiều này nhân với độ dốc hoàn hảo, hoạt động tốt với hệ số sẽ phân rã (nhanh hơn) theo cấp số nhân khi tăng. Tại , chúng ta đã có , do đó, một bước dọc theo vectơ gradient là khoảng lần quá nhỏ. Để có được kích thước bước hợp lý theo hướng tối ưu, chúng ta phải điều chỉnh độ dốc theo tỷ lệ nghịch với đó, một hằng số rất lớnp(x)

p(x)=f(x)p(x)=2xexp(x2).
2xexp(x2)xx=5exp(x2)=1.410111011 p (x) p (x)1011. Độ dốc có tỷ lệ xấu như vậy tệ hơn là vô dụng cho mục đích tối ưu hóa - tốt hơn hết là chúng ta chỉ nên thử một bước đơn vị theo hướng khó khăn hơn là đặt bước của chúng ta bằng cách mở rộng theo ! (Trong nhiều biến, trở nên hữu ích hơn một chút vì ít nhất chúng ta có được thông tin định hướng từ độ dốc, nhưng vấn đề mở rộng vẫn còn.)p(x)p(x)

Nói chung, không có gì đảm bảo rằng sẽ có các thuộc tính tỷ lệ gradient lớn như ví dụ về đồ chơi này, đặc biệt là khi chúng ta có nhiều hơn một biến. Tuy nhiên, đối với hầu hết mọi vấn đề không cần thiết, sẽ diễn ra theo cách tốt hơn so với . Điều này là do khả năng là một sản phẩm lớn với một loạt các điều khoản và nhật ký biến sản phẩm đó thành một khoản tiền, như đã lưu ý trong một số câu trả lời khác. Với các điều khoản trong khả năng được xử lý tốt từ quan điểm tối ưu hóa, nhật ký của họ nói chung là hoạt động tốt và tổng số các chức năng hoạt động tốt là hoạt động tốt. Theo cách cư xử tốt, ý tôi làlogp(x)logp(x)p(x)f(x)không thay đổi quá nhiều hoặc quá nhanh, dẫn đến một hàm gần như bậc hai, dễ dàng tối ưu hóa bằng các phương thức gradient. Tổng của một công cụ phái sinh là đạo hàm của tổng, bất kể thứ tự của công cụ phái sinh là gì, giúp đảm bảo rằng một số lượng lớn các điều khoản tổng có đạo hàm thứ hai rất hợp lý!


4
+1 Câu trả lời này đưa ra và nhấn mạnh những điểm đi vào trọng tâm của vấn đề.
whuber

47

Dòng chảy

Máy tính sử dụng biểu diễn dấu phẩy động số giới hạn của các phân số, nhân rất nhiều xác suất được đảm bảo rất gần với không.

Với , chúng tôi không có vấn đề này.log


3
+1 cho sự ổn định về số - câu trả lời này và câu trả lời của Yuril là một!
Alec Teal

1
Bạn có thể tính toán sản phẩm trong không gian nhật ký, do đó, nó trở thành một tổng và sau đó chuyển lại. Hoặc bạn tính tương đương với . Vì vậy, sự ổn định số không phải là câu hỏi. logpθppθ
Albert

1
Hãy nhớ rằng bạn đã đề cập, là phép nhân của xác suất của tất cả các sự kiện trong mẫu và là thành phần chịu sự điều chỉnh. pp
Uri Goren

5
@Filip Thuật ngữ trong chủ đề này là hơi khó hiểu. Chúng ta đang thảo luận về mật độ xác suất , không phải xác suất. Mật độ là tùy ý: chúng phụ thuộc vào các đơn vị đo lường. Hơn nữa, đối với các cỡ mẫu đủ, mật độ xác suất của bất kỳ mẫu đơn giản nào từ một mô hình tham số cuối cùng sẽ nhỏ hơn . Trong các vấn đề lớn (với hàng triệu dữ liệu), mật độ xác suất thường xuyên là hoặc nhỏ hơn. Ngay cả một mẫu có kích thước từ phân phối chuẩn cũng gần như chắc chắn có mật độ xác suất nhỏ hơn . 212721000000802127
whuber

4
@FilipHaglund: whuber là chính xác, tuy nhiên, thực tế là mật độ của nó không phải là quan sát quan trọng ở đây. Chúng ta cũng có thể thảo luận về một quy trình riêng biệt và nói về xác suất thực tế (và trên thực tế, OP không nói bất cứ điều gì loại trừ trường hợp này). Nhưng chúng ta đang nói về xác suất cho các kết quả rất cụ thể (ví dụ, một triệu quan sát theo cách nào đó). Một kết quả cụ thể duy nhất là không thể, nhưng trong các tỷ lệ suy luận của Bayes về xác suất rất quan trọng, vì vậy chúng ta cần biết xác suất nhỏ hơn một xác suất nhỏ từ một xác suất khác.
Meni Rosenfeld

34
  1. Logarit của xác suất của nhiều xác suất chung đơn giản hóa thành tổng số logarit của các xác suất riêng lẻ (và quy tắc tổng hợp dễ hơn quy tắc sản phẩm để phân biệt)

    log(iP(xi))=ilog(P(xi))

  2. Logarit của một thành viên trong gia đình phân phối xác suất theo cấp số nhân (bao gồm cả bình thường có mặt ở khắp mọi nơi) là đa thức trong các tham số (nghĩa là khả năng tối đa giảm xuống bình phương nhỏ nhất cho phân phối bình thường)

    log(exp(12x2))=12x2

  3. Hình thức thứ hai là cả hai nhiều hơn số lượng ổn địnhbiểu tượng dễ dàng hơn để phân biệt so với trước đây.

  4. Cuối cùng nhưng không kém phần quan trọng, logarit là một phép biến đổi đơn điệu bảo tồn các vị trí của điểm cực trị (đặc biệt, các tham số ước tính trong khả năng tối đa là giống hệt nhau đối với công thức gốc và biến đổi log)


5
Lý do 2 không thể được nhấn mạnh đủ. Để tối đa hóa khả năng ghi nhật ký cho một mô hình tuyến tính có nhiễu Gaussian, bạn chỉ cần giải một bài toán bình phương nhỏ nhất, giải quyết một hệ phương trình tuyến tính.
Paul

Lý do 1 và 3 chỉ mô tả cách tính toán. Bạn có thể tính toán theo cách đó và sau đó chuyển đổi lại (nhân với ) để nhận . Nó thực sự khá phổ biến để tính toán trong không gian log để ổn định số. Nhưng điều đó không giải thích tại sao bạn sử dụng gradient đó. Lý do 4 cũng không phải là lý do tại sao độ dốc tốt hơn. Bạn có thể làm điều đó với nhiều biến đổi khác, quá. Lý do 2 là thú vị nhưng tôi vẫn không chắc chắn chính xác tại sao độ dốc của đa thức tốt hơn độ dốc của hàm khác. ppθlogp
Albert

@Albert đạo hàm của một đa thức là một đa thức thấp hơn một độ (đặc biệt, bậc hai đi theo tuyến tính), trong khi các hàm mũ không chỉ đơn giản dưới sự phân biệt
TemplateRex

@TemplateRex: Vâng, điều đó rõ ràng. Nhưng tôi đang hỏi về các đặc tính hội tụ trong phương pháp gradient ngẫu nhiên.
Albert

25

Việc lấy đạo hàm của logarit sẽ dễ dàng hơn nhiều so với lấy đạo hàm của sản phẩm, có chứa, nhân 100 số.


10
Thêm vào đó bạn giảm các vấn đề số tiềm ẩn khi các thuật ngữ trở nên rất nhỏ hoặc lớn.
Bjorn

8
Ngược lại, OP ngầm cung cấp một cách tuyệt vời để tính đạo hàm của bất kỳ sản phẩm nào của các hàm không âm: nhân tổng các đạo hàm của các bản ghi với chính sản phẩm đó. (Phép nhân này được thực hiện tốt nhất theo thuật toán logarit, loại bỏ các vấn đề về số được đề cập trong bình luận của @ Bjorn.) Vì vậy, "easy" không cung cấp sức mạnh giải thích thực sự, cũng không giải quyết câu hỏi có ý nghĩa hơn về việc so sánh độ dốc .
whuber

10

Theo nguyên tắc chung, vấn đề tối ưu hóa cơ bản và dễ dàng nhất là tối ưu hóa chức năng bậc hai. Bạn có thể dễ dàng tìm thấy tối ưu của một chức năng như vậy bất kể bạn bắt đầu từ đâu. Làm thế nào biểu hiện này phụ thuộc vào phương pháp cụ thể nhưng chức năng của bạn càng gần với một bậc hai thì càng tốt.

Như TemplateRex đã lưu ý, trong rất nhiều vấn đề, xác suất tính toán hàm khả năng đến từ phân phối bình thường hoặc được xấp xỉ bởi nó. Vì vậy, nếu bạn làm việc trên nhật ký, bạn sẽ có được một hàm bậc hai đẹp. Trong khi đó, nếu bạn làm việc dựa trên xác suất, bạn có một chức năng

  1. Không lồi (nguyên nhân của các thuật toán tối ưu hóa ở mọi nơi)
  2. Vượt qua nhiều tỷ lệ một cách nhanh chóng và do đó có phạm vi rất hẹp trong đó các giá trị hàm là chỉ dẫn về nơi sẽ tìm kiếm tìm kiếm của bạn.

Chức năng nào bạn muốn tối ưu hóa, cái này hay cái này ?

(Đây thực sự là một điều dễ dàng; trong các ứng dụng thực tế, tìm kiếm của bạn có thể bắt đầu tối ưu đến mức tối ưu rằng các giá trị hàm và độ dốc, ngay cả khi bạn có thể tính toán chúng bằng số, sẽ không thể phân biệt được từ 0 và vô dụng cho mục đích tối ưu hóa thuật toán. Nhưng việc chuyển đổi sang một hàm bậc hai làm cho điều này trở thành một miếng bánh.)

Lưu ý rằng điều này là hoàn toàn phù hợp với các vấn đề ổn định số đã được đề cập. Thang đo lý do được yêu cầu để làm việc với chức năng này, chính xác là cùng một lý do rằng xác suất nhật ký được xử lý tốt hơn nhiều (để tối ưu hóa và các mục đích khác) so với ban đầu.

Bạn cũng có thể tiếp cận theo cách này. Ngay cả khi không có lợi thế cho nhật ký (có) - dù sao chúng ta cũng sẽ sử dụng thang đo log để tính đạo hàm và tính toán, vậy lý do nào để áp dụng biến đổi exp chỉ để tính toán độ dốc? Chúng tôi cũng có thể vẫn phù hợp với nhật ký.


@TemplateRex: Nhật ký của hàm dương lồi (hướng xuống) là lồi, nhưng điều ngược lại là không đúng. Các xác suất không lồi nên chúng không có gì để bảo tồn, nhưng nhật ký là lồi. Nhìn vào các biểu đồ tôi liên kết - exp (-10x ^ 2) rõ ràng là không lồi, nhưng -10x ^ 2 là.
Meni Rosenfeld

4

Bằng cách sử dụng chúng tôi tăng phạm vi động của thuật toán tối ưu hóa. Các trong các ứng dụng thường là một sản phẩm của các chức năng. Chẳng hạn, trong ước tính khả năng tối đa, nó là sản phẩm có dạng , trong đó Là hàm mật độ, có thể là lớn hơn hoặc nhỏ hơn 1, btw.lnppL(x|θ)=Πi=1nf(xi|θ)f(.)

Vì vậy, khi là rất lớn, tức là mẫu lớn, hàm likelihood của bạn thường là xa 1: nó là một trong hai rất nhỏ hoặc rất lớn, bởi vì nó là một chức năng điện .nL(.)Lf(.)n

Bằng cách ghi nhật ký, chúng tôi chỉ cần cải thiện phạm vi động của bất kỳ thuật toán tối ưu hóa nào, cho phép nó hoạt động với các giá trị cực lớn hoặc nhỏ theo cùng một cách.


0

Một số câu trả lời tốt đẹp đã được đưa ra. Nhưng tôi đã gặp một cái mới gần đây:

Thông thường, bạn được cung cấp một tập dữ liệu huấn luyện khổng lồ và bạn xác định một số mô hình xác suất và bạn muốn tối đa hóa khả năng cho . Chúng được coi là độc lập, tức là bạn có Bây giờ, bạn thường thực hiện một số loại đào tạo dựa trên độ dốc ngẫu nhiên (mini-batch), tức là trong mỗi bước, đối với mất bạn, bạn tối ưu hóa cho , tức là Xp(x|θ)xX

p(X|θ)=xXp(x|θ).
LL(X|θ)XX
θ:=θxXL(x|θ)θ.
Bây giờ, các bước ngẫu nhiên này được tích lũy cộng gộp. Do đó, bạn muốn thuộc tính nói chung Đây là trường hợp cho
L(X|θ)=xXL(x|θ).
L(x|θ)=logp(x|θ).

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.