क्रॉस-एन्ट्रापी लॉस स्पष्टीकरण


35

मान लीजिए कि मैं वर्गीकरण के लिए एक एनएन का निर्माण करता हूं। अंतिम परत सॉफ्टमेक्स सक्रियण के साथ घनी परत है। मेरे पास वर्गीकृत करने के लिए पांच अलग-अलग वर्ग हैं। एक भी प्रशिक्षण उदाहरण के लिए मान लीजिए, true labelहै [1 0 0 0 0]जबकि भविष्यवाणियों हो [0.1 0.5 0.1 0.1 0.2]। मैं इस उदाहरण के लिए क्रॉस एंट्रॉपी लॉस की गणना कैसे करूंगा?

जवाबों:


50

पार एन्ट्रापी सूत्र दो वितरण, में लेता , सच वितरण, और , अनुमानित वितरण, अधिक असतत चर परिभाषित और द्वारा दिया जाता हैp(x)q(x)x

H(p,q)=xp(x)log(q(x))

एक तंत्रिका नेटवर्क के लिए, गणना निम्नलिखित में से स्वतंत्र है:

  • किस तरह की परत का इस्तेमाल किया गया था।

  • किस तरह की सक्रियता का उपयोग किया गया था - हालांकि कई सक्रियण गणना के साथ संगत नहीं होंगे क्योंकि उनके आउटपुट संभाव्यता के रूप में व्याख्या करने योग्य नहीं हैं (यानी, उनके आउटपुट नकारात्मक हैं, 1 से अधिक है, या 1 के लिए योग नहीं है)। सॉफ्टमैक्स का उपयोग अक्सर मल्टीक्लास वर्गीकरण के लिए किया जाता है क्योंकि यह एक अच्छी तरह से व्यवहार की संभावना वितरण फ़ंक्शन की गारंटी देता है।

एक तंत्रिका नेटवर्क के लिए, आप आमतौर पर समीकरण को एक ऐसे रूप में देखेंगे जहां जमीनी सच्चाई सदिश और (या अंतिम परत आउटपुट से लिया गया कुछ अन्य मान) अनुमान। एक एकल उदाहरण के लिए, यह इस तरह दिखेगा:yyy^

L=ylog(y^)

जहाँ वेक्टर डॉट उत्पाद है।

आपका उदाहरण जमीनी सच्चाई पहले मूल्य को सभी संभावना देता है, और दूसरे मान शून्य हैं, इसलिए हम उन्हें अनदेखा कर सकते हैं, और बस अपने अनुमानों से मिलान शब्द का उपयोग कर सकते हैंyyy^

L=(1×log(0.1)+0×log(0.5)+...)

L=log(0.1)2.303

टिप्पणियों से एक महत्वपूर्ण बिंदु

इसका मतलब है, हानि कोई फर्क नहीं पड़ता अगर भविष्यवाणियों हैं ही होगा या ?[0.1,0.5,0.1,0.1,0.2][0.1,0.6,0.1,0.1,0.1]

हां, यह मल्टीस्केल्स लॉगलॉस की एक प्रमुख विशेषता है, यह केवल सही कक्षाओं की संभावनाओं को पुरस्कृत / दंडित करता है। मूल्य इस बात से स्वतंत्र है कि शेष संभावनाएं गलत वर्गों के बीच कैसे विभाजित होती हैं।

आप अक्सर इस समीकरण को लागत फ़ंक्शन के रूप में सभी उदाहरणों पर औसतन देखेंगे । यह हमेशा कड़ाई से विवरणों का पालन नहीं करता है, लेकिन आमतौर पर एक हानि फ़ंक्शन निम्न स्तर होता है और बताता है कि कैसे एक एकल उदाहरण या घटक एक त्रुटि मान निर्धारित करता है, जबकि एक लागत फ़ंक्शन उच्च स्तर है और बताता है कि अनुकूलन के लिए एक पूर्ण प्रणाली का मूल्यांकन कैसे किया जाता है। आकार डेटा सेट के लिए मल्टीस्केल्स लॉग लॉस पर आधारित एक लागत समारोह इस तरह दिखाई दे सकता है:N

J=1N(i=1Nyilog(y^i))

कई कार्यान्वयनों को आपके जमीनी सच मानों को एक-गर्म एन्कोडेड (एकल सच्चे वर्ग के साथ) की आवश्यकता होगी, क्योंकि यह कुछ अतिरिक्त अनुकूलन की अनुमति देता है। हालांकि, सिद्धांत रूप में क्रॉस एन्ट्रॉपी लॉस की गणना की जा सकती है - और अनुकूलित - जब यह मामला नहीं है।


1
ठीक है। इसका अर्थ है कि, यदि भविष्यवाणियाँ [०.१ ०.५ ०.१ ०.२] या [०.९ ०.०. ०.१ ०.१] के नुकसान की कोई बात नहीं होगी!
नैन

@ नैन: यह आपके उदाहरण के लिए सही है। क्रॉस-एन्ट्रापी नुकसान इस बात पर निर्भर नहीं करता है कि गलत वर्ग संभावनाओं के मूल्य क्या हैं।
नील स्लेटर

8

नील का जवाब सही है। हालाँकि, मुझे यह इंगित करना महत्वपूर्ण है कि जबकि नुकसान गलत वर्गों (केवल सही वर्ग और बाकी लोगों के बीच वितरण) के बीच वितरण पर निर्भर नहीं करता है, इस नुकसान समारोह की ढाल अलग-अलग वर्गों के आधार पर गलत तरीके से प्रभाव डालती है गलत वे हैं। इसलिए जब आप मशीन लर्निंग में क्रॉस-इन का उपयोग करते हैं तो आप [0.1 0.5 0.1 0.1 0.2] और [0.1 0.6 0.1 0.1] के लिए अलग-अलग वज़न बदल देंगे। ऐसा इसलिए है क्योंकि सही वर्ग के स्कोर को अन्य सभी वर्गों के स्कोर द्वारा सामान्य किया जाता है ताकि इसे एक संभावना में बदल दिया जा सके।


3
क्या आप इसे एक उचित उदाहरण के साथ विस्तृत कर सकते हैं?
नैन

@ लुकास एडम्स, क्या आप कृपया एक उदाहरण दे सकते हैं?
koryakinp

EACH y_i (सॉफ्टमैक्स आउटपुट) wr EACH logit z (या पैरामीटर w ही) के व्युत्पन्न EVERY y_i पर निर्भर करता है। medium.com/@aerinykim/…
एरोन

2

आइए देखें कि नुकसान की ढाल कैसे व्यवहार करती है ... हमारे पास एक नुकसान फ़ंक्शन के रूप में क्रॉस-एन्ट्रॉपी है, जो कि द्वारा दिया गया है

H(p,q)=i=1np(xi)log(q(xi))=(p(x1)log(q(x1))++p(xn)log(q(xn))

यहाँ से जा रहे हैं .. हम कुछ संबंध में व्युत्पन्न जानना चाहेंगे : चूंकि भेदभाव के कारण अन्य सभी शर्तें रद्द कर दी गई हैं। हम इस समीकरण को एक कदम आगे ले जा सकते हैं xi

xiH(p,q)=xip(xi)log(q(xi)).
xiH(p,q)=p(xi)1q(xi)q(xi)xi.

इससे हम देख सकते हैं कि हम अभी भी केवल सही वर्गों को दंडित कर रहे हैं (जिसके लिए का मान है )। अन्यथा हमारे पास बस शून्य का एक ढाल है।p(xi)

मुझे आश्चर्य है कि सॉफ्टवेयर पैकेज 0 के अनुमानित मूल्य से कैसे निपटते हैं, जबकि सच्चा मूल्य शून्य से बड़ा था ... क्योंकि हम उस मामले में शून्य से विभाजित कर रहे हैं।


मुझे लगता है कि आप क्या चाहते हैं व्युत्पन्न wrt पैरामीटर लेना है, न कि x_i।
एरोन

1

आइए सूचना सिद्धांत में एन्ट्रापी को समझने के साथ शुरू करें: मान लीजिए कि आप "आबाहा" अक्षर की एक स्ट्रिंग का संचार करना चाहते हैं। आप आसानी से 8 * "ए" के रूप में कर सकते हैं। अब एक और स्ट्रिंग "जिटिकफका" लें। क्या इस तार को संप्रेषित करने का एक संकुचित तरीका है? वहाँ नहीं है। हम यह कह सकते हैं कि दूसरी स्ट्रिंग का एन्ट्रापी अधिक है, इसे संवाद करने के लिए, हमें अधिक "बिट्स" जानकारी की आवश्यकता है।

यह सादृश्य संभावनाओं पर भी लागू होता है। यदि आपके पास वस्तुओं का एक सेट है, तो उदाहरण के लिए फल, उन फलों की द्विआधारी एन्कोडिंग होगी जहां n फलों की संख्या है। 8 फलों के लिए आपको 3 बिट्स की आवश्यकता होती है, और इसी तरह। इसे देखने का एक और तरीका यह है कि किसी को यादृच्छिक पर एक फल का चयन करने की संभावना को देखते हुए 1/8 है, यदि फल का चयन किया जाता है तो अनिश्चितता में कमी होती है जो 3. अधिक विशेष रूप से है,log2(n)log2(1/8)

i=1818log2(18)=3
यह एन्ट्रोपी हमें कुछ संभावित संभावनाओं के साथ शामिल अनिश्चितता के बारे में बताती है; संभावना वितरण में अधिक अनिश्चितता / भिन्नता, बड़ी एन्ट्रापी है (उदाहरण के लिए 1024 फल, यह 10 होगा)।

"क्रॉस" -entropy में, जैसा कि नाम से पता चलता है, हम दो अलग-अलग प्रोबायरी डिस्ट्रीब्यूशन में अंतर समझाने के लिए आवश्यक बिट्स की संख्या पर ध्यान केंद्रित करते हैं। सबसे अच्छा मामला परिदृश्य यह है कि दोनों वितरण समान हैं, इस मामले में कम से कम बिट्स की आवश्यकता होती है अर्थात सरल एन्ट्रॉपी। गणितीय शब्दों में,

H(y,y^)=iyiloge(y^i)

जहां पूर्वानुमानित संभाव्यता सदिश (सॉफ्टमैक्स आउटपुट) है, और जमीनी सच्चाई सदिश (जैसे एक-गर्म) है। हम प्राकृतिक लॉग का उपयोग करते हैं इसका कारण यह है कि अंतर करना आसान है (रेफरी। ग्रेडिंग ग्रेडिएंट्स) और इसका कारण यह है कि हम ग्राउंड ट्रूथ वेक्टर का लॉग नहीं लेते हैं, क्योंकि इसमें 0 का बहुत सम्‍मिलन है जो योग को सरल बनाता है।y^y

निचला रेखा: आम तौर पर, उस दूरी को समझाने के लिए आवश्यक जानकारी (बिट्स) के संदर्भ में दो संभाव्यता वितरणों के बीच की दूरी के रूप में क्रॉस-एंट्रोपी के बारे में सोच सकता है। यह एक नुकसान को परिभाषित करने का एक अच्छा तरीका है जो नीचे चला जाता है क्योंकि संभावना वैक्टर एक दूसरे के करीब हो जाते हैं।


0

मैं लुकास से असहमत हूं। उपरोक्त मान पहले से ही संभाव्य हैं। ध्यान दें कि मूल पोस्ट ने संकेत दिया कि मूल्यों में सॉफ्टमैक्स सक्रियण था।

त्रुटि को केवल "हॉट" वर्ग पर वापस प्रचारित किया जाता है और संभावना क्यू (i) नहीं बदलती है यदि अन्य वर्गों के भीतर संभावनाएं एक-दूसरे के बीच स्थानांतरित हो जाती हैं।


2
लुकास सही है। ओपी द्वारा वर्णित वास्तुकला के साथ, फिर सभी लॉग पर ढाल (आउटपुट के विपरीत) शून्य नहीं है, क्योंकि सॉफ्टमैक्स फ़ंक्शन उन सभी को जोड़ता है। तो "हॉट" वर्ग में [ढाल] त्रुटि सभी आउटपुट न्यूरॉन्स के लिए प्रचारित करती है।
नील स्लेटर

नील और लुकास के लिए +1
एरॉन

-1

समस्या यह है कि संभाव्यता एक 'जटिल' फ़ंक्शन से आ रही है जो दिए गए मान में अन्य आउटपुट को शामिल करती है। परिणाम अंतर-जुड़े हुए हैं, इसलिए इस तरह हम वास्तविक परिणाम के बारे में नहीं प्राप्त कर रहे हैं, लेकिन प्रत्येक और हर परिणाम के लिए अंतिम सक्रियण फ़ंक्शन (सॉफ्टमैक्स) के सभी इनपुट द्वारा।

मुझे deepnotes.io/softmax-crossentropy पर बहुत अच्छा विवरण मिला है जहाँ लेखक दिखाता है कि वास्तविक व्युत्पन्न ।piyi

Gombru.github.io/2018/05/23/cross_entropy_loss पर अन्य स्वच्छ विवरण ।

मुझे लगता है कि अंतिम सक्रियण परत के रूप में एक सरल सिग्मॉइड का उपयोग करने से स्वीकृत उत्तर मिल जाएगा, लेकिन सॉफ्टमैक्स का उपयोग करना अलग उत्तर का संकेत देता है।


1
स्टैक एक्सचेंज में आपका स्वागत है। हालाँकि आपने जो लिखा है वह क्रॉस-एन्ट्रापी नुकसान की गणना के बारे में ओपी के सवाल का जवाब नहीं लगता है।
user12075
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.