क्रॉस-एंट्रोपी क्या है?


92

मुझे पता है कि क्रॉस-एंट्रॉपी क्या है, इसके बारे में बहुत सारे स्पष्टीकरण हैं, लेकिन मैं अभी भी भ्रमित हूं।

क्या यह केवल हानि फ़ंक्शन का वर्णन करने का एक तरीका है? क्या हम हानि फ़ंक्शन का उपयोग करके न्यूनतम खोजने के लिए ढाल वंश एल्गोरिथ्म का उपयोग कर सकते हैं?


10
एसओ के लिए एक अच्छा फिट नहीं है। यहाँ डेटासाइंस बहन साइट पर एक समान प्रश्न है: datascience.stackexchange.com/questions/9302/…
मेट्रोपोलिस

जवाबों:


230

क्रॉस-एन्ट्रॉपी का उपयोग आमतौर पर दो प्रायिकता वितरण के बीच अंतर को निर्धारित करने के लिए किया जाता है। आमतौर पर "सच" वितरण (एक है कि आपके मशीन लर्निंग एल्गोरिदम मैच करने की कोशिश कर रहा है) एक-गर्म वितरण के संदर्भ में व्यक्त किया जाता है।

उदाहरण के लिए, एक विशिष्ट प्रशिक्षण उदाहरण के लिए मान लीजिए, लेबल B (संभावित लेबल A, B, और C में से) है। इस प्रशिक्षण उदाहरण के लिए एक गर्म वितरण इसलिए:

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

आप उपरोक्त "सत्य" वितरण की व्याख्या कर सकते हैं कि प्रशिक्षण उदाहरण में कक्षा ए होने की 0% संभावना है, वर्ग बी होने की 100% संभावना है, और वर्ग सी होने की 0% संभावना है।

अब, मान लीजिए कि आपका मशीन लर्निंग एल्गोरिथ्म निम्नलिखित संभावना वितरण की भविष्यवाणी करता है:

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

सही वितरण के लिए अनुमानित वितरण कितना करीब है? वह है जो क्रॉस-एन्ट्रापी नुकसान को निर्धारित करता है। इस सूत्र का उपयोग करें:

क्रॉस एन्ट्रापी लॉस फॉर्मूला

जहां p(x)वांछित संभावना है, और q(x)वास्तविक संभावना है। योग तीन वर्गों ए, बी और सी पर है। इस मामले में नुकसान 0.479 है :

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

तो यह है कि "गलत" या "दूर" आपकी भविष्यवाणी सही वितरण से है।

क्रॉस एन्ट्रापी कई संभावित नुकसान कार्यों में से एक है (एक अन्य लोकप्रिय एसवीएम काज हानि है)। इन नुकसान कार्यों को आम तौर पर जे (थीटा) के रूप में लिखा जाता है और इसका उपयोग ढाल मूल के भीतर किया जा सकता है, जो कि इष्टतम मूल्यों की ओर मापदंडों (या गुणांक) को स्थानांतरित करने के लिए एक पुनरावृत्ति एल्गोरिथ्म है। नीचे दिए गए समीकरण में, आप के J(theta)साथ बदल देंगे H(p, q)। लेकिन ध्यान दें कि आपको H(p, q)पहले मापदंडों के संबंध में व्युत्पन्न की गणना करने की आवश्यकता है ।

ढतला हुआ वंश

तो अपने मूल सवालों के सीधे जवाब देने के लिए:

क्या यह केवल हानि फ़ंक्शन का वर्णन करने का एक तरीका है?

सही, क्रॉस-एन्ट्रॉपी दो संभावना वितरण के बीच के नुकसान का वर्णन करता है। यह कई संभावित नुकसान कार्यों में से एक है।

फिर हम उपयोग कर सकते हैं, उदाहरण के लिए, न्यूनतम खोजने के लिए ढाल वंश एल्गोरिथ्म।

हां, क्रॉस-एन्ट्रापी लॉस फंक्शन का उपयोग ढाल मूल के हिस्से के रूप में किया जा सकता है।

आगे पढ़ने: TensorFlow से संबंधित मेरे अन्य उत्तरों में से एक ।


इसलिए, क्रॉस-एन्ट्रोपी प्रत्येक उदाहरण के लिए संभावनाओं के योग से नुकसान का वर्णन करता है। एक्स
थियेटिस्ट

इसलिए, क्या हम त्रुटि को क्रॉस-एंट्रोपी के रूप में वर्णित करने के बजाय, दो वैक्टर (कोसाइन समानता / कोणीय दूरी) के बीच एक कोण के रूप में त्रुटि का वर्णन कर सकते हैं और कोण को कम करने का प्रयास कर सकते हैं?
थियेटिस्ट

1
जाहिरा तौर पर यह सबसे अच्छा समाधान नहीं है, लेकिन मैं सिर्फ जानना चाहता था, सिद्धांत रूप में, अगर हम cosine (dis)similarityकोण के माध्यम से त्रुटि का वर्णन करने के लिए उपयोग कर सकते हैं और फिर कोण को कम करने का प्रयास कर सकते हैं।
थियेटिस्ट

2
@ स्टीफन: यदि आप मेरे द्वारा दिए गए उदाहरण को देखते हैं, p(x)तो प्रत्येक वर्ग के लिए जमीनी सच्चाई की संभावनाओं की सूची होगी, जो कि होगी [0.0, 1.0, 0.0। इसी तरह, q(x)प्रत्येक वर्ग के लिए अनुमानित संभावना की सूची है [0.228, 0.619, 0.153]H(p, q)इसके बाद - (0 * log(2.28) + 1.0 * log(0.619) + 0 * log(0.153)), जो 0.479 निकला है। ध्यान दें कि पायथन के np.log()फ़ंक्शन का उपयोग करना सामान्य है , जो वास्तव में प्राकृतिक लॉग है; इससे कोई फर्क नहीं पड़ता।
stackoverflowuser2010 23

1
@ आरएआर: सच्चे लेबल के एक-हॉट एन्कोडिंग के लिए, केवल एक गैर-शून्य वर्ग है जिसकी हम परवाह करते हैं। हालांकि, क्रॉस-एन्ट्रॉपी किसी भी दो संभावना वितरण की तुलना कर सकते हैं; यह आवश्यक नहीं है कि उनमें से एक में एक-गर्म संभावना हो।
stackoverflowuser2010 20

2

संक्षेप में, क्रॉस-एन्ट्रॉपी (सीई) यह मापता है कि सच्चे लेबल से आपका अनुमानित मूल्य कितनी दूर है।

यहां क्रॉस दो या अधिक विशेषताओं / सच्चे लेबल (जैसे 0, 1) के बीच एन्ट्रापी की गणना करने को संदर्भित करता है।

और शब्द एन्ट्रापी ही यादृच्छिकता को संदर्भित करता है, इसलिए इसका बड़ा मूल्य मतलब है कि आपकी भविष्यवाणी वास्तविक लेबल से बहुत दूर है।

इसलिए वज़न को सीई को कम करने के लिए बदल दिया जाता है और इस तरह अंत में भविष्यवाणी और सच्चे लेबल के बीच अंतर कम हो जाता है और इस प्रकार बेहतर सटीकता होती है।


1

उपरोक्त पदों में जोड़कर, क्रॉस-एन्ट्रापी लॉस का सबसे सरल रूप बाइनरी-क्रॉस-एन्ट्रोपी (बाइनरी वर्गीकरण के लिए नुकसान फ़ंक्शन के रूप में उपयोग किया जाता है, जैसे कि लॉजिस्टिक रिग्रेशन के साथ) के रूप में जाना जाता है , जबकि सामान्यीकृत संस्करण श्रेणीबद्ध-क्रॉस-एन्ट्रॉपी (उपयोग किया जाता है) बहु-वर्ग वर्गीकरण समस्याओं के लिए हानि फ़ंक्शन के रूप में, जैसे तंत्रिका नेटवर्क के साथ)।

विचार एक ही रहता है:

  1. जब मॉडल-गणना (सॉफ्टमैक्स) वर्ग-संभाव्यता प्रशिक्षण उदाहरण के लिए लक्ष्य लेबल के करीब 1 हो जाता है (एक-गर्म-एन्कोडिंग, उदाहरण के लिए प्रतिनिधित्व किया जाता है), तो संबंधित सीसीई हानि शून्य तक घट जाती है

  2. अन्यथा यह तब तक बढ़ जाता है जब लक्ष्य वर्ग के अनुरूप अनुमानित संभावना छोटी हो जाती है।

निम्नलिखित आंकड़ा अवधारणा को प्रदर्शित करता है (चित्र से सूचना कि BCE कम हो जाता है जब y और p दोनों उच्च होते हैं या दोनों एक साथ कम होते हैं, अर्थात, एक समझौता होता है):

यहां छवि विवरण दर्ज करें

क्रॉस-एन्ट्रॉपी सापेक्ष एंट्रॉपी या केएल -डायवर्जेंस से निकटता से संबंधित है जो दो प्रायिकता वितरण के बीच दूरी की गणना करता है। उदाहरण के लिए, दो असतत pmfs के बीच, उनके बीच का संबंध निम्नलिखित आकृति में दिखाया गया है:

यहां छवि विवरण दर्ज करें

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.