Tại sao đầu ra softmax không phải là thước đo độ không chắc chắn tốt cho các mô hình Deep Learning?


22

Tôi đã làm việc với Mạng thần kinh chuyển đổi (CNNs) một thời gian rồi, chủ yếu dựa trên dữ liệu hình ảnh để phân đoạn ngữ nghĩa / phân đoạn ngữ nghĩa. Tôi thường hình dung mức mềm của đầu ra mạng là "bản đồ nhiệt" để xem mức độ kích hoạt trên mỗi pixel của một lớp nhất định cao đến mức nào. Tôi đã hiểu các kích hoạt thấp là "không chắc chắn" / "không tự tin" và kích hoạt cao là dự đoán "chắc chắn" / "tự tin". Về cơ bản, điều này có nghĩa là diễn giải đầu ra softmax (các giá trị trong ) như một thước đo xác suất hoặc (un) của mô hình.(0,1)

( Ví dụ: tôi đã giải thích một đối tượng / khu vực có kích hoạt softmax thấp trung bình trên các pixel của nó để CNN khó phát hiện, do đó CNN "không chắc chắn" về việc dự đoán loại đối tượng này. )

Theo nhận thức của tôi, điều này thường có hiệu quả và việc thêm các mẫu bổ sung của các khu vực "không chắc chắn" vào kết quả đào tạo đã cải thiện kết quả trên những điều này. Tuy nhiên, bây giờ tôi đã nghe khá thường xuyên từ các khía cạnh khác nhau rằng sử dụng / giải thích đầu ra softmax như một biện pháp chắc chắn (không) không phải là một ý tưởng hay và thường không được khuyến khích. Tại sao?


EDIT: Để làm rõ những gì tôi đang hỏi ở đây, tôi sẽ giải thích những hiểu biết của tôi cho đến nay khi trả lời câu hỏi này. Tuy nhiên, không có lý lẽ nào sau đây làm rõ cho tôi ** tại sao nói chung đó là một ý tưởng tồi **, vì tôi đã được các đồng nghiệp, giám sát viên liên tục nói và cũng được nêu ra ở đây trong phần "1.5"

Trong các mô hình phân loại, vectơ xác suất thu được ở cuối đường ống (đầu ra softmax) thường bị hiểu nhầm là độ tin cậy của mô hình

hoặc ở đây trong phần "Bối cảnh" :

Mặc dù có thể rất khó để giải thích các giá trị được đưa ra bởi lớp softmax cuối cùng của mạng nơ ron tích chập là điểm tin cậy, chúng ta cần cẩn thận không đọc quá nhiều về điều này.


Các nguồn trên lý do rằng sử dụng đầu ra softmax làm thước đo độ không chắc chắn là xấu vì:

nhiễu loạn không thể chấp nhận được đối với ảnh thật có thể thay đổi đầu ra softmax của mạng sâu thành các giá trị tùy ý

Điều này có nghĩa là đầu ra softmax không mạnh đến "nhiễu loạn không thể nhận ra" và do đó đầu ra của nó không thể sử dụng được như xác suất.

Một bài báo khác đưa ra ý tưởng "softmax output = Tự tin" và lập luận rằng với mạng trực giác này có thể dễ dàng bị đánh lừa, tạo ra "đầu ra có độ tin cậy cao cho hình ảnh không thể nhận ra".

(...) Vùng (trong miền đầu vào) tương ứng với một lớp cụ thể có thể lớn hơn nhiều so với không gian trong vùng đó bị chiếm bởi các ví dụ đào tạo từ lớp đó. Kết quả của việc này là một hình ảnh có thể nằm trong vùng được gán cho một lớp và do đó được phân loại với một đỉnh lớn trong đầu ra softmax, trong khi vẫn cách xa các hình ảnh xuất hiện tự nhiên trong lớp đó trong tập huấn luyện.

Điều này có nghĩa là dữ liệu ở xa dữ liệu đào tạo sẽ không bao giờ có độ tin cậy cao, vì mô hình "không thể" chắc chắn về nó (vì nó chưa bao giờ nhìn thấy nó).

Tuy nhiên: Không phải điều này thường chỉ đơn giản là đặt câu hỏi về các đặc tính tổng quát của NN nói chung sao? Tức là các NN bị mất softmax không khái quát tốt cho (1) "nhiễu loạn không thể nhận biết" hoặc (2) các mẫu dữ liệu đầu vào cách xa dữ liệu huấn luyện, ví dụ như các hình ảnh không thể nhận ra.

Theo lý do này tôi vẫn không hiểu, tại sao trong thực tế với dữ liệu không bị thay đổi một cách trừu tượng và giả tạo so với dữ liệu đào tạo (tức là hầu hết các ứng dụng "thực"), diễn giải đầu ra softmax là "xác suất giả" là một điều xấu ý tưởng. Rốt cuộc, họ dường như thể hiện tốt những gì mô hình của tôi chắc chắn, ngay cả khi điều đó không đúng (trong trường hợp đó tôi cần sửa mô hình của mình). Và không chắc chắn mô hình luôn luôn "chỉ" một xấp xỉ?


4
(-,)(0,1)

2
(0,1)(0,1)

Tôi thích cách bạn diễn đạt điều này: "Sau tất cả, họ dường như thể hiện tốt những gì mô hình của tôi chắc chắn, ngay cả khi điều đó không đúng (trong trường hợp tôi cần sửa mô hình của mình)."
HeyWatch This

Câu trả lời:


14

Câu hỏi này có thể được trả lời chính xác hơn các câu trả lời hiện tại. Khắc phục độ lệch giữa các xác suất dự đoán (đầu ra của lớp softmax của mạng nơ ron) và xác suất thực của chúng (đại diện cho một khái niệm về độ tin cậy), được gọi là đường cong hiệu chuẩn hoặc độ tin cậy.

Vấn đề với nhiều mạng nơ-ron sâu là, mặc dù chúng có xu hướng hoạt động tốt để dự đoán, nhưng xác suất dự đoán được ước tính của chúng được tạo ra bởi đầu ra của lớp softmax không thể được sử dụng một cách đáng tin cậy như xác suất thực (như độ tin cậy cho mỗi nhãn). Trong thực tế, họ có xu hướng quá cao - mạng lưới thần kinh 'quá tự tin' trong dự đoán của họ.

Chuan Go et. al., làm việc với Kilian Weinberger, đã phát triển một giải pháp hiệu quả để hiệu chỉnh xác suất dự đoán của các mạng thần kinh trong bài báo này: https://arxiv.org/pdf/1706.04599.pdf

Bài viết này cũng giải thích cách xác suất dự đoán có thể được hiểu là các biện pháp độ tin cậy khi xác suất dự đoán được hiệu chuẩn chính xác.


1
Cảm ơn bạn @cgnorthcutt, tôi đã được nghe người ta nhắc đến điều này nhiều lần và đã tìm kiếm bài báo này kể từ đó, tài liệu tham khảo thực sự hay
Théophile Pace

Những lời cảm ơn tốt đẹp. Đây là một liên kết đến bản tóm tắt (thay vì bài báo) cho những người quan tâm: arxiv.org/abs/1706.04599
Waylon Flinn

3

Cái được gọi là softmax trong ML có cùng phương trình với phương trình logistic đa thức . Cái sau có thể được sử dụng để tính xác suất. Trong thực tế, nó được sử dụng rộng rãi trong việc ước tính xác suất mặc định trong khung rủi ro cạnh tranh cho các khoản thế chấp, ví dụ, xem biểu thức. 4 trong bài báo này .

Do đó, tôi sẽ nói rằng trực giác của bạn không hoàn toàn sai lệch. Tuy nhiên, trong ví dụ mô hình thế chấp ở trên, biến phụ thuộc là số liệu xác suất của các khoản cho vay mặc định. Bạn có một nhóm các khoản thế chấp và quan sát số lượng mặc định. Một thế chấp duy nhất có thể là hiện tại hoặc mặc định, xác suất mặc định của nó là không thể quan sát được. Chúng tôi chỉ quan sát các sự kiện rời rạc. Tuy nhiên, chúng tôi làm mô hình xác suất.

Điều này khác với học máy như thế nào? Nó phụ thuộc. Tôi có thể quyết định áp dụng nó để mặc định thế chấp, sau đó nó sẽ không khác nhiều chút nào. Mặt khác trong các ứng dụng khác nhau, điều này có thể không hoạt động. Nếu bạn không mô hình hóa xác suất rõ ràng như trong ví dụ của tôi, thì đầu ra mô hình của bạn có thể không đại diện cho xác suất phù hợp.


Cảm ơn câu trả lời. Vì vậy, điều này có thể hiểu được: Trong một số trường hợp, nó thực sự sẽ là một cách tiếp cận hợp lệ, tuy nhiên nó thường không phải là một ý tưởng tốt bởi vì nó không mạnh mẽ và người ta không (dễ dàng) biết liệu nó có thể áp dụng trong một nhiệm vụ nhất định không?
Honeybear

Tôi sẽ không đưa ra các thuật ngữ như "mạnh mẽ" vì chúng có ý nghĩa rất cụ thể trong thống kê, nhưng bạn có ý chính trong tranh luận của tôi. Nếu bạn đang mô hình hóa xác suất cụ thể, cuối cùng bạn có thể sử dụng phương trình softmax tại một thời điểm nào đó và sẽ ổn khi diễn giải đầu ra là xác suất. Trong trường hợp chung, đầu ra softmax không tương ứng với xác suất.
Aksakal

1

Softmax phân phối 'xác suất' 0-1 giữa các lớp có sẵn. Nó không thể hiện sự không ổn định, nó không phải là một chức năng PDF. Nếu bạn muốn thể hiện sự khôn ngoan, bạn nên xem xét các mạng lưới thần kinh Bayes. Hãy xem bài viết này: Sự không chắc chắn trong Deep Learning Một số khung xác suất khá gần đây:

Bài phát biểu thú vị của Zoubin Ghahramani (Đại học Cambridge)

Hãy xem bài viết này: Mạng mật độ hỗn hợp :

Tôi đoán bạn có thể thực hiện nó và thêm làm lớp cuối cùng vào CONVNET. Nếu bạn thực hiện thì đừng quên chia sẻ là quan tâm ;-) Chúc may mắn


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.