Làm cách nào để kết hợp thông tin mới vào phân phối trước Dirichlet?


8

Vấn đề của tôi là thế này: Tôi có một nhóm các dự đoán mà mỗi người tạo ra một phân phối trên một tập hợp các lớp.

Những gì tôi muốn làm là trước tiên có một thông tin không có thông tin trước về cách phân phối nhãn này trông như thế nào, và sau đó cập nhật điều đó trước dự đoán của từng thành viên trong đoàn.

Vì vậy, tôi đã nghĩ đến việc sử dụng Dirichlet không thông tin trước đó, sau đó tôi sẽ cập nhật với mỗi phân phối mẫu đi kèm như một dự đoán.

Câu hỏi của tôi là: Cách tiếp cận này có hợp lệ không, và nếu có, làm thế nào tôi có thể cập nhật trước để nó được xác định rõ hơn khi nhiều mẫu được tích lũy?


Tôi biết rằng bạn có thể làm chính xác điều đó trong Phân bổ Dirichlet tiềm ẩn. Họ sử dụng dữ liệu để cập nhật Dirichlet trước cho khả năng đa quốc gia. Để biết thêm thông tin, xem những liên kết này: dirichlet.net/pdf/wallach09rethinking.pdfpeople.eecs.berkeley.edu/~jordan/papers/hdp.pdf
KenHBS

Câu trả lời:


6

Dirichlet trước là một ưu tiên thích hợp và là liên hợp trước khi phân phối đa cực. Tuy nhiên, có vẻ hơi khó khăn khi áp dụng điều này cho đầu ra của hồi quy logistic đa thức, vì hồi quy như vậy có một softmax là đầu ra, không phải là phân phối đa cực. Tuy nhiên, những gì chúng ta có thể làm là lấy mẫu từ đa thức, có xác suất được đưa ra bởi softmax.

Nếu chúng ta vẽ nó như một mô hình mạng thần kinh, nó sẽ trông như sau:

nhập mô tả hình ảnh ở đây

Chúng ta có thể dễ dàng lấy mẫu từ điều này, theo hướng chuyển tiếp. Làm thế nào để xử lý hướng ngược? Chúng ta có thể sử dụng thủ thuật tái tham số hóa, từ bài báo 'Biến đổi mã hóa tự động' của Kingma, https://arxiv.org/abs/1312.6114 , nói cách khác, chúng ta mô hình bản vẽ đa phương thức như một ánh xạ xác định, được phân phối xác suất đầu vào, và rút ra từ một biến ngẫu nhiên Gaussian tiêu chuẩn:

xngoài= =g(xtrong,ε)

ε~N(0,1)

Vì vậy, mạng của chúng tôi trở thành:

nhập mô tả hình ảnh ở đây

Vì vậy, chúng ta có thể chuyển tiếp các nhóm nhỏ các ví dụ dữ liệu, rút ​​ra từ phân phối chuẩn thông thường và truyền ngược qua mạng. Điều này khá chuẩn và được sử dụng rộng rãi, ví dụ như bài báo Kingma VAE ở trên.

Một sắc thái nhỏ là, chúng ta đang vẽ các giá trị rời rạc từ phân phối đa cực, nhưng giấy VAE chỉ xử lý trường hợp đầu ra thực liên tục. Tuy nhiên, có một bài báo gần đây, thủ thuật Gumbel, https://casmls.github.io/general/2017/02/01/GumbelSoftmax.html , tức là https://arxiv.org/pdf/1611.01144v1.pdf , và https://arxiv.org/abs/1611.00712 , cho phép rút ra từ các giấy tờ đa phương rời rạc.

Các công thức lừa Gumbel cung cấp phân phối đầu ra sau:

pα,λ(x)= =(n-1)!λn-1Πk= =1n(αkxk-λ-1ΣTôi= =1nαTôixTôi-λ)

αk

Vì vậy, chúng tôi có một mô hình:

  • chứa hồi quy logistic đa thức (lớp tuyến tính theo sau là softmax)
  • thêm một bước lấy mẫu đa cực ở cuối
  • trong đó bao gồm phân phối trước trên xác suất
  • có thể được đào tạo, sử dụng Stochastic Gradient Descent, hoặc tương tự

Biên tập:

Vì vậy, câu hỏi đặt ra:

"có thể áp dụng loại kỹ thuật này khi chúng tôi có nhiều dự đoán (và mỗi dự đoán có thể là một softmax, như trên) cho một mẫu duy nhất (từ một nhóm người học)." (xem bình luận bên dưới)

Vì vậy: có :). Nó là. Sử dụng một cái gì đó như học tập đa tác vụ, ví dụ: http://www.cs.cornell.edu/~caruana/mlj97.pdfhttps://en.wikipedia.org/wiki/Multi-task_learning . Ngoại trừ việc học đa tác vụ có một mạng duy nhất và nhiều đầu. Chúng tôi sẽ có nhiều mạng và một đầu duy nhất.

'Đầu' bao gồm một lớp trích xuất, xử lý 'trộn' giữa các lưới. Lưu ý rằng bạn sẽ cần một sự phi tuyến tính giữa lớp 'người học' và lớp 'trộn' của bạn, ví dụ ReLU hoặc tanh.

Bạn gợi ý về việc cho mỗi người 'học' rút ra đa dạng của riêng mình, hoặc ít nhất, softmax. Nhìn chung, tôi nghĩ rằng sẽ có tiêu chuẩn hơn để có lớp trộn đầu tiên, tiếp theo là một bản vẽ softmax và multinomial duy nhất. Điều này sẽ cho phương sai ít nhất, vì rút ra ít hơn. (ví dụ: bạn có thể xem bài báo 'bỏ học đa dạng', https://arxiv.org/abs/1506.02557 , kết hợp rõ ràng nhiều lần rút ngẫu nhiên, để giảm phương sai, một kỹ thuật mà họ gọi là 'xác định lại cục bộ')

Một mạng như vậy sẽ trông giống như:

nhập mô tả hình ảnh ở đây

Điều này sau đó có các đặc điểm sau:

  • có thể bao gồm một hoặc nhiều người học độc lập, mỗi người có tham số riêng
  • có thể bao gồm một ưu tiên phân phối các lớp đầu ra
  • sẽ học cách kết hợp giữa các học viên khác nhau

Lưu ý rằng đây không phải là cách duy nhất để kết hợp người học. Chúng tôi cũng có thể kết hợp chúng theo kiểu 'đường cao tốc' hơn, hơi giống như tăng tốc, đại loại như:

nhập mô tả hình ảnh ở đây

Trong mạng cuối cùng này, mỗi người học học cách khắc phục mọi sự cố do mạng gây ra cho đến nay, thay vì tạo ra dự đoán tương đối độc lập của riêng mình. Cách tiếp cận như vậy có thể hoạt động khá tốt, tức là Boosting, v.v.


1
Cảm ơn điều này thực sự hữu ích, mặc dù câu hỏi vẫn có một khía cạnh chưa được trả lời: Có thể áp dụng loại kỹ thuật này khi chúng tôi có nhiều dự đoán (và mỗi dự đoán có thể là một softmax, như trên) cho một mẫu duy nhất (từ một nhóm người học). Tôi đoán là không, vì các mẫu không phải là iid
Bar

@Bar: Điểm tốt. Cập nhật cho nhiều người học
Hugh Perkins
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.