बहुराष्ट्रीय लॉजिस्टिक लॉस बनाम (क्रॉस एंट्रॉपी बनाम स्क्वायर एरर)


9

मैंने देखा कि कैफ (एक गहरी सीखने की रूपरेखा) ने अधिकांश मॉडल नमूनों के लिए उत्पादन परत के रूप में सॉफ्टमैक्स लॉस लेयर का उपयोग किया था ।SoftmaxWithLoss

जहां तक ​​मुझे पता है, सॉफ्टमैक्स लॉस लेयर मल्टीमोनियल लॉजिस्टिक लॉस लेयर और सॉफ्टमैक्स लेयर का संयोजन है ।

कैफ से, उन्होंने कहा कि

सॉफ्टमैक्स लॉस लेयर ग्रेडिएंट कम्प्यूटेशन अधिक संख्यात्मक रूप से स्थिर है

हालाँकि, यह स्पष्टीकरण वह उत्तर नहीं है जो मैं चाहता हूं, स्पष्टीकरण केवल परत के बजाय परत के बजाय बहुरामीय उपस्कर हानि परत और सॉफ्टमैक्स हानि परत के संयोजन की तुलना है । लेकिन अन्य प्रकार के नुकसान फ़ंक्शन के साथ तुलना नहीं करें।

हालाँकि, मैं अधिक जानना चाहूंगा कि इन 3 त्रुटि फ़ंक्शन के अंतर / फायदे / नुकसान क्या हैं जो कि पर्यवेक्षित शिक्षण परिप्रेक्ष्य में मल्टीमोनियल लॉजिस्टिक लॉस , क्रॉस एंट्रोपी (सीई) और स्क्वायर एरर (एसई) हैं? कोई सहायक लेख?


1
बस एक संकेत: मुझे लगता है कि यदि आप टैग "कैफ" को अपने प्रश्नों में जोड़ते हैं तो आपको तेजी से उत्तर मिलेगा। इसके अलावा इसे स्टैकओवरफ़्लो पर पोस्ट करने के बजाय स्टैकएक्सचेंज इसे अधिक ध्यान दे सकता है)।
mcExchange

1
संयोजन ढाल को आसान बनाता है, बस y-twillamette.edu/~gorr/classes/cs449/classify.html
जिंगपेंग वू

जवाबों:


11

मेरी राय में, हानि फ़ंक्शन उद्देश्य फ़ंक्शन है जो हम चाहते हैं कि हमारे तंत्रिका नेटवर्क इसके अनुसार अपने वजन को अनुकूलित करें। इसलिए, यह कार्य-विशिष्ट है और किसी तरह अनुभवजन्य भी है। बस स्पष्ट होने के लिए, बहुराष्ट्रीय लॉजिस्टिक लॉस और क्रॉस एंट्रॉपी लॉस समान हैं (कृपया http://ufldl.stanford.edu/wiki/index.php/Softmax_Regression देखें )। मल्टीमोनियल लॉजिस्टिक लॉस का लागत समारोह इस तरह है J(θ)=1m[i=1my(i)loghθ(x(i))+(1y(i))log(1hθ(x(i)))].

यह आमतौर पर वर्गीकरण समस्या के लिए उपयोग किया जाता है। स्क्वायर त्रुटि की तरह समीकरण है 12Ni=1Nxi1xi222.

इसलिए, आमतौर पर इसका उपयोग कुछ निर्माण त्रुटियों को कम करने के लिए किया जाता है।

EDIT: @MartinThoma मल्टीनोमियल लॉजिस्टिक लॉस का उपरोक्त फॉर्मूला सिर्फ बाइनरी केस के लिए है, सामान्य केस के लिए, यह , जहां K श्रेणियों की संख्या है।J(θ)=[i=1mk=1K1{y(i)=k}logP(y(i)=k|x(i);θ)]


2
Caffe में, MultinomialLogisticLoss है , तो जो गलत यहाँ है? 1Nn=1Nlog(pn,ln)
moi

गलत नहीं है, द्विआधारी चर है, अंत में, इसे आपके सूत्रीकरण में कम किया जा सकता है। yi
बीहैकर

मुझे लगा कि मल्टीओमाइल लॉजिस्टिक लॉस दूसरे समन के बिना था, इसलिएJ(θ)=1m[i=1my(i)loghθ(x(i))]
मार्टिन थोमा

1
@MartinThoma मेरा फॉर्मूला केवल बाइनरी केस के लिए है, सामान्य केस के लिए, यहJ(θ)=[i=1mk=1K1{y(i)=k}logP(y(i)=k|x(i);θ)]
beahacker

@beahacker क्या आप मुझे बता सकते हैं कि मार्टिन थोमा द्वारा इंगित किए गए दूसरे समन को बहुराष्ट्रीय मामले में शामिल क्यों नहीं किया गया है। मैं यह समझने की कोशिश कर रहा हूं कि ऐसा क्यों किया जाता है। कम से कम आप मुझे देखने के लिए कुछ संसाधन की ओर इशारा कर सकते हैं।
नंदेश

2

मैं अधिक जानना चाहूंगा कि इन 3 त्रुटि फ़ंक्शन के अंतर / फायदे / नुकसान क्या हैं जो कि पर्यवेक्षित शिक्षण परिप्रेक्ष्य में मल्टीमोनियल लॉजिस्टिक लॉस, क्रॉस एंट्रोपी (सीई) और स्क्वायर एरर (एसई) हैं?

बहुराष्ट्रीय लॉजिस्टिक नुकसान क्रास एन्ट्रॉपी के समान ही है। इस फ़ंक्शन ( सॉफ्टमैक्स में लागत फ़ंक्शन ) को देखें: the जहां m नमूना संख्या है, K वर्ग संख्या है।

J(θ)=i=1mk=1K1{y(i)=k}logp(y(i)=kx(i);θ)

संकेतक फ़ंक्शन ( ) यह निर्धारित करता है कि क्रॉस एन्ट्रॉपी परिभाषा में bellow 0 या 1 है , जिसे प्रशिक्षण डेटा में एक गर्म के रूप में लेबल किया गया है, और सॉफ्टमैक्स की सशर्त संभावना है (क्यू (x) जैसा कि दिखाया गया है bellow)। 1{y(i)=k}p(x)p(y(i)=kx(i);θ)

xp(x)logq(x)

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

कोई सहायक लेख?

लिंक में मौजूद लोगों को छोड़कर, आपको यह चित्रण करने की सलाह देते हैं: https://github.com/rasbt/python-machine-learning-book/blob/master/faq/softmax_regression.md


1
MSE को एक (बाइनरी) क्लासिफायरियर पर लागू किया जाता है जिसे बैरियर स्कोर कहा जाता है।
डेव

0

SHORT ANSWER अन्य उत्तरों के अनुसार मल्टीमोनियल लॉजिस्टिक लॉस और क्रॉस एंट्रोपी लॉस समान हैं।

क्रॉस Entropy घटाने sigmoids सक्रियण समारोह के साथ एनएन के लिए एक वैकल्पिक लागत समारोह कृत्रिम रूप से शुरू की पर निर्भरता खत्म करने के लिए है अद्यतन समीकरणों पर। कुछ बार यह शब्द सीखने की प्रक्रिया को धीमा कर देता है। वैकल्पिक तरीकों को नियमित रूप से लागत समारोह किया जाता है।σ

इस प्रकार के नेटवर्कों में आउटपुट के रूप में संभाव्यताएं हो सकती हैं, लेकिन बहुराष्ट्रीय नेटवर्क में सिग्मोइड्स के साथ ऐसा नहीं होता है। सॉफ्टमैक्स फ़ंक्शन आउटपुट को सामान्य करता है और उन्हें सीमा में बाध्य करता है । यह MNIST वर्गीकरण में उदाहरण के लिए उपयोगी हो सकता है।[0,1]

कुछ इन्साइट्स के साथ लंबे समय तक

जवाब काफी लंबा है लेकिन मैं संक्षेप में बताने की कोशिश करूंगा।

पहले आधुनिक कृत्रिम न्यूरॉन्स जिनका उपयोग किया गया है वे सिग्मोइड हैं जिनका कार्य है:

σ(x)=11+ex
जिसका निम्नलिखित आकार है: यहाँ छवि विवरण दर्ज करें

वक्र अच्छा है क्योंकि यह गारंटी देता है कि उत्पादन सीमा ।[0,1]

एक लागत समारोह की पसंद के बारे में, एक प्राकृतिक विकल्प द्विघात लागत फ़ंक्शन है, जिसकी व्युत्पत्ति मौजूद होने की गारंटी है और हम जानते हैं कि यह एक न्यूनतम है।

अब परतों के साथ द्विघात लागत फ़ंक्शन के साथ प्रशिक्षित सिग्मोइड के साथ एक एनएन पर विचार करें ।L

हम लागत फ़ंक्शन को सेट के लिए आउटपुट लेयर में चुकता त्रुटियों के योग के रूप में परिभाषित करते हैं :X

C=12NxNj=1K(yj(x)ajL(x))2

जहां आउटपुट लेयर में j-th न्यूरॉन है , वांछित आउटपुट है और प्रशिक्षण उदाहरणों की संख्या है।ajLLyjN

सरलता के लिए आइए एक इनपुट के लिए त्रुटि पर विचार करें:

C=j=1K(yj(x)ajL(x))2

अब लेयर में न्यूरॉन के लिए एक सक्रियण आउटपुट , है:jaj

aj=kwjkaj1+bj=wjaj1+bj

अधिकांश समय (यदि नहीं हमेशा) एनएन ढाल वंश तकनीकों में से एक है, जो मूल रूप से वजन को अद्यतन करने होते हैं साथ प्रशिक्षित किया जाता है और पूर्वाग्रहों न्यूनीकरण के दिशा की ओर छोटे कदम से। लक्ष्य वजन और दिशाओं में एक छोटे से परिवर्तन को लागू करने की दिशा में है जो लागत फ़ंक्शन को कम करता है।wb

निम्नलिखित चरणों के लिए छोटे चरण:

ΔCCviΔvi

हमारे वज़न और पूर्वाग्रह हैं। यह एक लागत समारोह है जिसे हम कम से कम करना चाहते हैं, अर्थात, उचित मान । मान लीजिए कि हम चुनते हैं , तो: viΔvi

Δvi=ηCvi
ΔCη(Cvi)

जिसका अर्थ है कि पैरामीटर में परिवर्तन ने द्वारा लागत फ़ंक्शन को कम कर दिया ।ΔviΔC

-th आउटपुट न्यूरॉन पर विचार करें :j

C=12(y(x)ajL(x)2
ajL=σ=11+e(wjaj1+bj)

मान लीजिए कि हम को अपडेट करना चाहते हैं, जो कि न्यूरॉन से लेयर में -th न्यूरॉन के लिए \ ell लेयर में वेट है । तो हमारे पास हैं:wjkk1j

wjkwjkηCwjk
bjbjηCbj

श्रृंखला नियम का उपयोग करके व्युत्पन्न लेना:

Cwjk=(ajL(x)y(x))σak1
Cbj=(ajL(x)y(x))σ

आप सिग्मायॉइड के व्युत्पन्न पर निर्भरता देखते हैं (पहले में दूसरे में डब्ल्यूटी है , लेकिन यह बहुत कुछ नहीं बदलता है क्योंकि दोनों प्रतिपादक हैं)।wb

अब एक सामान्य एकल चर सिग्मॉइड लिए व्युत्पन्न है: z

dσ(z)dz=σ(z)(1σ(z))

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

क्रॉस-एन्ट्रापी फ़ंक्शन का प्रेरणा

यह देखने के लिए कि मूल रूप से क्रॉस-एन्ट्रापी कैसे व्युत्पन्न हुई है, मान लीजिए कि किसी को पता चला है कि शब्द सीखने की प्रक्रिया को धीमा कर रहा है। हम आश्चर्यचकित कर सकते हैं कि क्या शब्द गायब करने के लिए एक लागत समारोह चुनना संभव है । मूल रूप से एक चाहते हो सकता है:σσ

Cw=x(ay)Cb=(ay)
श्रृंखला-नियम से हमारे पास: श्रृंखला नियम में से एक के साथ वांछित समीकरण की तुलना, एक हो जाता है कवर-अप विधि का उपयोग:
Cb=Caab=Caσ(z)=Caσ(1σ)
Ca=aya(1a)
Ca=[ylna+(1y)ln(1a)]+const
पूर्ण लागत समारोह प्राप्त करने के लिए, हमें सभी प्रशिक्षण नमूनों की औसत से करनी चाहिए जहां स्थिरांक प्रत्येक प्रशिक्षण उदाहरण के लिए व्यक्तिगत स्थिरांक का औसत है।
Ca=1nx[ylna+(1y)ln(1a)]+const

सूचना सिद्धांत के क्षेत्र से आने वाली क्रॉस-एन्ट्रॉपी की व्याख्या करने का एक मानक तरीका है। मोटे तौर पर, विचार यह है कि क्रॉस-एन्ट्रॉपी आश्चर्य का एक उपाय है। हम कम आश्चर्यचकित हो जाते हैं यदि आउटपुट है जो हम उम्मीद करते हैं ( ), और उच्च आश्चर्य अगर उत्पादन अप्रत्याशित है।ay

Softmax

एक द्विआधारी वर्गीकरण के लिए क्रॉस-एन्ट्रॉपी सूचना सिद्धांत में परिभाषा जैसा दिखता है और मूल्यों को अभी भी संभाव्यता के रूप में व्याख्या किया जा सकता है।

बहुराष्ट्रीय वर्गीकरण के साथ यह अब सच नहीं है: आउटपुट तक का नोट करते हैं ।1

यदि आप चाहते हैं कि आप तक योग करें तो आप सॉफ्टमैक्स फ़ंक्शन का उपयोग करते हैं, जो आउटपुट को सामान्य करता है ताकि योग ।11

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

तथापि

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