cross-entropy คืออะไร?


95

ฉันรู้ว่ามีคำอธิบายมากมายว่าครอสเอนโทรปีคืออะไร แต่ฉันก็ยังสับสน

เป็นเพียงวิธีการอธิบายฟังก์ชันการสูญเสียหรือไม่? เราสามารถใช้อัลกอริทึมการไล่ระดับสีเพื่อค้นหาค่าต่ำสุดโดยใช้ฟังก์ชันการสูญเสียได้หรือไม่?


11
ไม่เหมาะสำหรับ SO นี่เป็นคำถามที่คล้ายกันในเว็บไซต์datascience sister
Metropolis

คำตอบ:


233

ครอสเอนโทรปีมักใช้เพื่อหาจำนวนความแตกต่างระหว่างการแจกแจงความน่าจะเป็นสองแบบ โดยปกติการแจกแจงแบบ "จริง" (การแจกแจงแบบที่อัลกอริทึมแมชชีนเลิร์นนิงของคุณพยายามจับคู่) จะแสดงในรูปของการกระจายแบบจุดเดียว

ตัวอย่างเช่นสมมติว่าสำหรับอินสแตนซ์การฝึกอบรมที่เฉพาะเจาะจงป้ายกำกับที่แท้จริงคือ B (จากป้ายกำกับ A, B และ C ที่เป็นไปได้) ดังนั้นการกระจายแบบร้อนแรงสำหรับอินสแตนซ์การฝึกอบรมนี้จึงเป็น:

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

คุณสามารถตีความการแจกแจงจริงข้างต้นเพื่อหมายความว่าอินสแตนซ์การฝึกอบรมมีความน่าจะเป็น 0% ที่จะเป็นคลาส A ความน่าจะเป็น 100% ที่จะเป็นคลาส B และความน่าจะเป็น 0% ที่จะเป็นคลาส C

ตอนนี้สมมติว่าอัลกอริทึมการเรียนรู้ของเครื่องของคุณทำนายการแจกแจงความน่าจะเป็นดังต่อไปนี้:

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

การกระจายที่คาดการณ์ไว้ใกล้กับการแจกแจงจริงมากแค่ไหน? นั่นคือสิ่งที่การสูญเสียข้ามเอนโทรปีกำหนด ใช้สูตรนี้:

สูตรการสูญเสียเอนโทรปีข้าม

p(x)การแจกแจงความน่าจะเป็นที่แท้จริงอยู่ที่ไหนและq(x)การแจกแจงความน่าจะเป็นที่คาดการณ์ไว้ ผลรวมมากกว่าสามคลาส A, B และ C ในกรณีนี้การสูญเสียคือ0.479 :

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

ดังนั้นการทำนายของคุณจึง "ผิด" หรือ "ห่างไกล" นั้นมาจากการแจกแจงที่แท้จริง

เอนโทรปีแบบไขว้เป็นหนึ่งในฟังก์ชันการสูญเสียที่เป็นไปได้จำนวนมาก (อีกฟังก์ชันหนึ่งที่นิยมคือการสูญเสียบานพับ SVM) โดยทั่วไปฟังก์ชันการสูญเสียเหล่านี้จะเขียนเป็น J (theta) และสามารถใช้ภายในการไล่ระดับสีซึ่งเป็นอัลกอริทึมแบบวนซ้ำเพื่อย้ายพารามิเตอร์ (หรือสัมประสิทธิ์) ไปยังค่าที่เหมาะสมที่สุด ในสมการดังต่อไปนี้คุณจะเข้ามาแทนที่ด้วยJ(theta) H(p, q)แต่โปรดทราบว่าคุณต้องคำนวณอนุพันธ์ของH(p, q)พารามิเตอร์ก่อน

การไล่ระดับสี

ดังนั้นเพื่อตอบคำถามเดิมของคุณโดยตรง:

เป็นเพียงวิธีการอธิบายฟังก์ชันการสูญเสียหรือไม่?

ถูกต้องครอสเอนโทรปีอธิบายการสูญเสียระหว่างการแจกแจงความน่าจะเป็นสองแบบ เป็นหนึ่งในฟังก์ชันการสูญเสียที่เป็นไปได้มากมาย

จากนั้นเราสามารถใช้ตัวอย่างเช่นอัลกอริทึมการไล่ระดับสีเพื่อค้นหาค่าต่ำสุด

ใช่ฟังก์ชันการสูญเสียเอนโทรปีข้ามสามารถใช้เป็นส่วนหนึ่งของการไล่ระดับสีได้

อ่านเพิ่มเติม: หนึ่งในคำตอบอื่น ๆของฉันที่เกี่ยวข้องกับ TensorFlow


ดังนั้น cross-entropy จะอธิบายการสูญเสียโดยผลรวมของความน่าจะเป็นสำหรับแต่ละตัวอย่าง X
นักแสดง

ดังนั้นเราสามารถแทนที่จะอธิบายข้อผิดพลาดเป็นเอนโทรปีข้ามอธิบายข้อผิดพลาดเป็นมุมระหว่างเวกเตอร์สองตัว (ความคล้ายคลึงกันของโคไซน์ / ระยะเชิงมุม) และพยายามลดมุมให้น้อยที่สุดได้หรือไม่?
สาว

1
เห็นได้ชัดว่ามันไม่ใช่ทางออกที่ดีที่สุด แต่ฉันแค่อยากรู้ว่าในทางทฤษฎีถ้าเราสามารถใช้cosine (dis)similarityอธิบายข้อผิดพลาดผ่านมุมแล้วพยายามย่อมุมให้น้อยที่สุด
สาว

2
@Stephen: ถ้าคุณดูตัวอย่างที่ผมให้, จะเป็นรายการของความน่าจะพื้นความจริงสำหรับแต่ละชั้นเรียนซึ่งจะเป็นp(x) [0.0, 1.0, 0.0ในทำนองเดียวกันคือรายการของความน่าจะคาดการณ์ไว้สำหรับแต่ละชั้นเรียนที่q(x) แล้วซึ่งออกมาเป็น 0.479 โปรดทราบว่าเป็นเรื่องปกติที่จะใช้ฟังก์ชันของ Python ซึ่งเป็นบันทึกธรรมชาติ มันไม่สำคัญ [0.228, 0.619, 0.153]H(p, q)- (0 * log(2.28) + 1.0 * log(0.619) + 0 * log(0.153))np.log()
stackoverflowuser2010

1
@HAr: สำหรับการเข้ารหัสที่แท้จริงเพียงครั้งเดียวมีเพียงคลาสเดียวที่ไม่ใช่ศูนย์ที่เราสนใจ อย่างไรก็ตามครอสเอนโทรปีสามารถเปรียบเทียบการแจกแจงความน่าจะเป็นสองแบบ ไม่จำเป็นว่าหนึ่งในนั้นจะมีความน่าจะเป็นที่ร้อนแรงเพียงครั้งเดียว
stackoverflowuser2010

3

ในระยะสั้น cross-entropy (CE) คือการวัดว่าค่าที่คาดการณ์ของคุณอยู่ห่างจากป้ายกำกับจริงแค่ไหน

กากบาทในที่นี้หมายถึงการคำนวณเอนโทรปีระหว่างสองคุณสมบัติขึ้นไป / ป้ายกำกับจริง (เช่น 0, 1)

และคำว่าเอนโทรปีเองก็หมายถึงการสุ่มดังนั้นค่าที่มากจึงหมายความว่าการคาดการณ์ของคุณอยู่ห่างไกลจากฉลากจริง

ดังนั้นน้ำหนักจึงเปลี่ยนไปเพื่อลด CE และสุดท้ายนำไปสู่การลดความแตกต่างระหว่างการคาดคะเนและฉลากจริงและทำให้ความแม่นยำดีขึ้น


1

เมื่อเพิ่มโพสต์ข้างต้นรูปแบบที่ง่ายที่สุดของการสูญเสียเอนโทรปีแบบข้ามเรียกว่าไบนารี - ข้ามเอนโทรปี (ใช้เป็นฟังก์ชันการสูญเสียสำหรับการจำแนกไบนารีเช่นการถดถอยโลจิสติกส์) ในขณะที่เวอร์ชันทั่วไปคือการแบ่งประเภท - ข้ามเอนโทรปี (ใช้ เป็นฟังก์ชันการสูญเสียสำหรับปัญหาการจำแนกหลายชั้นเช่นด้วยโครงข่ายประสาทเทียม)

แนวคิดยังคงเหมือนเดิม:

  1. เมื่อความน่าจะเป็นของคลาสที่คำนวณโดยโมเดล (softmax) ใกล้เคียงกับ 1 สำหรับป้ายกำกับเป้าหมายสำหรับอินสแตนซ์การฝึกอบรม (แสดงด้วยการเข้ารหัสแบบร้อนเดียวเช่น) การสูญเสีย CCE ที่สอดคล้องกันจะลดลงเป็นศูนย์

  2. มิฉะนั้นจะเพิ่มขึ้นเมื่อความน่าจะเป็นที่คาดการณ์ไว้ที่สอดคล้องกับคลาสเป้าหมายมีขนาดเล็กลง

รูปต่อไปนี้แสดงให้เห็นถึงแนวคิด (สังเกตจากรูปที่คริสตศักราชจะต่ำเมื่อทั้ง y และ p สูงหรือทั้งสองอย่างต่ำพร้อมกันกล่าวคือมีข้อตกลง):

ป้อนคำอธิบายภาพที่นี่

Cross-entropyมีความสัมพันธ์อย่างใกล้ชิดกับเอนโทรปีสัมพัทธ์หรือKL-divergenceที่คำนวณระยะห่างระหว่างการแจกแจงความน่าจะเป็นสองแบบ ตัวอย่างเช่นในระหว่าง pmf สองตัวที่ไม่ต่อเนื่องความสัมพันธ์ระหว่างกันจะแสดงในรูปต่อไปนี้:

ป้อนคำอธิบายภาพที่นี่

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.