Entropy chéo là gì?


93

Tôi biết rằng có rất nhiều lời giải thích về entropy chéo là gì, nhưng tôi vẫn còn bối rối.

Nó chỉ là một phương pháp để mô tả hàm mất mát? Chúng ta có thể sử dụng thuật toán giảm độ dốc để tìm giá trị nhỏ nhất bằng cách sử dụng hàm mất mát không?


10
Không phù hợp với SO. Đây là một câu hỏi tương tự trên trang web chị em của khoa học dữ liệu
Metropolis

Câu trả lời:


231

Entropy chéo thường được sử dụng để định lượng sự khác biệt giữa hai phân phối xác suất. Thông thường, phân phối "đúng" (phân phối mà thuật toán học máy của bạn đang cố gắng đối sánh) được thể hiện dưới dạng phân phối một nóng.

Ví dụ: giả sử đối với một phiên bản huấn luyện cụ thể, nhãn là B (trong số các nhãn có thể có là A, B và C). Do đó, phân phối một nóng cho phiên bản đào tạo này là:

Pr(Class A)  Pr(Class B)  Pr(Class C)
        0.0          1.0          0.0

Bạn có thể giải thích phân phối "true" ở trên có nghĩa là phiên bản huấn luyện có 0% xác suất là lớp A, 100% xác suất là lớp B và 0% xác suất là lớp C.

Bây giờ, giả sử thuật toán học máy của bạn dự đoán phân phối xác suất sau:

Pr(Class A)  Pr(Class B)  Pr(Class C)
      0.228        0.619        0.153

Phân phối dự đoán gần với phân phối thực đến mức nào? Đó là những gì mà sự mất mát entropy chéo xác định. Sử dụng công thức này:

Công thức mất entropy chéo

Trong trường hợp p(x)là xác suất truy nã, và q(x)xác suất thực tế. Tổng của ba lớp A, B và C. Trong trường hợp này, khoản lỗ là 0,479 :

H = - (0.0*ln(0.228) + 1.0*ln(0.619) + 0.0*ln(0.153)) = 0.479

Vì vậy, đó là cách dự đoán của bạn "sai" hoặc "khác xa" so với phân phối đúng.

Entropy chéo là một trong nhiều chức năng có thể mất (một chức năng phổ biến khác là mất bản lề SVM). Các hàm mất mát này thường được viết dưới dạng J (theta) và có thể được sử dụng trong gradient descent, là một thuật toán lặp đi lặp lại để di chuyển các tham số (hoặc hệ số) về phía giá trị tối ưu. Trong phương trình dưới đây, bạn sẽ thay thế J(theta)bằng H(p, q). Nhưng lưu ý rằng bạn cần phải tính đạo hàm của H(p, q)đối với các tham số trước.

xuống dốc

Vì vậy, để trả lời trực tiếp các câu hỏi ban đầu của bạn:

Nó chỉ là một phương pháp để mô tả hàm mất mát?

Đúng, entropy chéo mô tả sự mất mát giữa hai phân phối xác suất. Nó là một trong nhiều chức năng có thể mất.

Sau đó, chúng ta có thể sử dụng, ví dụ, thuật toán giảm độ dốc để tìm điểm tối thiểu.

Có, chức năng mất entropy chéo có thể được sử dụng như một phần của quá trình giảm độ dốc.

Đọc thêm: một trong những câu trả lời khác của tôi liên quan đến TensorFlow.


do đó, cross-entropy mô tả sự mất mát theo tổng xác suất cho mỗi ví dụ X.
theateist

vì vậy, chúng ta có thể thay vì mô tả sai số dưới dạng entropy chéo, hãy mô tả sai số dưới dạng góc giữa hai vectơ (độ tương đồng cosin / khoảng cách góc) và cố gắng giảm thiểu góc?
theateist

1
rõ ràng đó không phải là giải pháp tốt nhất, nhưng tôi chỉ muốn biết, về lý thuyết, nếu chúng ta có thể sử dụng cosine (dis)similarityđể mô tả lỗi thông qua góc và sau đó cố gắng giảm thiểu góc.
theateist

2
@Stephen: Nếu bạn nhìn vào ví dụ tôi đưa ra, p(x)sẽ là danh sách xác suất sự thật cơ bản cho mỗi lớp, sẽ là [0.0, 1.0, 0.0. Tương tự như vậy, q(x)là danh sách xác suất dự đoán cho mỗi lớp [0.228, 0.619, 0.153],. H(p, q)sau đó - (0 * log(2.28) + 1.0 * log(0.619) + 0 * log(0.153))là 0,479. Lưu ý rằng thường sử dụng np.log()hàm của Python , đây thực sự là nhật ký tự nhiên; nó không quan trọng.
stackoverflowuser2010

1
@HAr: Đối với mã hóa một lần của nhãn true, chỉ có một lớp khác 0 mà chúng tôi quan tâm. Tuy nhiên, entropy chéo có thể so sánh bất kỳ hai phân phối xác suất nào; không nhất thiết phải có một trong hai xác suất nóng.
stackoverflowuser2010

3

Nói tóm lại, entropy chéo (CE) là thước đo giá trị dự đoán của bạn cách nhãn thật bao xa.

Dấu thập ở đây đề cập đến việc tính toán entropy giữa hai hoặc nhiều đối tượng / nhãn đúng (như 0, 1).

Và bản thân thuật ngữ entropy đề cập đến tính ngẫu nhiên, vì vậy giá trị lớn của nó có nghĩa là dự đoán của bạn khác xa với các nhãn thực.

Vì vậy, trọng số được thay đổi để giảm CE và do đó cuối cùng dẫn đến giảm sự khác biệt giữa dự đoán và nhãn thực và do đó độ chính xác tốt hơn.


1

Thêm vào các bài viết ở trên, dạng mất entropy chéo đơn giản nhất được gọi là binary-cross-entropy (được sử dụng làm hàm mất để phân loại nhị phân, ví dụ: với hồi quy logistic), trong khi phiên bản tổng quát là phân loại-cross-entropy (được sử dụng như hàm mất mát cho các vấn đề phân loại nhiều lớp, ví dụ, với mạng nơ-ron).

Ý tưởng vẫn như cũ:

  1. khi xác suất lớp được tính toán theo mô hình (softmax) trở nên gần bằng 1 đối với nhãn đích đối với trường hợp huấn luyện (được biểu diễn bằng mã hóa một nóng, ví dụ,), tổn thất CCE tương ứng giảm xuống 0

  2. nếu không nó sẽ tăng lên khi xác suất dự đoán tương ứng với lớp mục tiêu trở nên nhỏ hơn.

Hình dưới đây thể hiện khái niệm (lưu ý rằng BCE trở nên thấp khi cả y và p đều cao hoặc cả hai đều thấp đồng thời, tức là có một thỏa thuận):

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

Entropy chéo có liên quan chặt chẽ với entropy tương đối hoặc phân kỳ KL tính toán khoảng cách giữa hai phân phối xác suất. Ví dụ, ở giữa hai pmfs rời rạc, mối quan hệ giữa chúng được thể hiện trong hình sau:

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

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.