सॉफ्टमैक्स क्लासिफायर में, सामान्यीकरण करने के लिए एक्सप फंक्शन का उपयोग क्यों करें?


30

मानक सामान्यीकरण के विपरीत सॉफ्टमैक्स का उपयोग क्यों करें? इस प्रश्न के शीर्ष उत्तर के टिप्पणी क्षेत्र में, @Kilian Batzner ने 2 प्रश्न उठाए, जो मुझे बहुत भ्रमित करते हैं। ऐसा लगता है कि कोई भी संख्यात्मक लाभ के अलावा कोई स्पष्टीकरण नहीं देता है।

मुझे क्रॉस-एन्ट्रॉपी लॉस का उपयोग करने के कारण मिलते हैं, लेकिन यह सॉफ्टमैक्स से कैसे संबंधित है? आपने कहा "सॉफ्टमैक्स फ़ंक्शन को भविष्यवाणियों और सच्चाई के बीच क्रॉस-एंट्रोपी को कम करने की कोशिश के रूप में देखा जा सकता है"। मान लीजिए, मैं मानक / रैखिक सामान्यीकरण का उपयोग करूंगा, लेकिन फिर भी क्रॉस-एंट्रॉपी लॉस का उपयोग करूंगा। फिर मैं क्रॉस-एंट्रॉपी को कम से कम करने की भी कोशिश करूंगा। तो संख्यात्मक लाभों को छोड़कर सॉफ्टमैक्स को क्रॉस-एन्ट्रॉपी से कैसे जोड़ा जाता है?

संभावित दृष्टिकोण के लिए: लॉग संभावनाओं को देखने के लिए प्रेरणा क्या है? तर्क थोड़ा सा लगता है जैसे "हम सॉफ्टमैक्स में ई ^ एक्स का उपयोग करते हैं, क्योंकि हम एक्स को लॉग-प्रोबैबिलिटी के रूप में व्याख्या करते हैं"। उसी तर्क के साथ हम कह सकते हैं, हम सॉफ्टमैक्स में e ^ e ^ e ^ x का उपयोग करते हैं, क्योंकि हम x को लॉग-लॉग-लॉग-प्रायिकता (यहां अतिशयोक्ति) के रूप में व्याख्या करते हैं। मुझे सॉफ्टमैक्स के संख्यात्मक लाभ मिलते हैं, लेकिन इसका उपयोग करने के लिए सैद्धांतिक प्रेरणा क्या है?


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

@Emre धन्यवाद! लेकिन "अधिकतम कार्य की तरह व्यवहार" का क्या मतलब है? इसके अलावा, अगर मेरे पास एक और फ़ंक्शन है जो अलग-अलग है, तो मोनोटोन बढ़ रहा है और गैर-नकारात्मक परिणामों की ओर जाता है, क्या मैं इसका उपयोग सूत्र में एक्सप फ़ंक्शन को बदलने के लिए कर सकता हूं?
हंस

जब आप का उपयोग कर सामान्य करते हैं max, तो सबसे बड़ा तर्क 1 से मैप किया जाता है, जबकि बाकी शून्य से मैप किया जाता है, जो घातीय फ़क्शन की वृद्धि के कारण होता है।
Emre

जवाबों:


37

यह सिर्फ संख्यात्मक से अधिक है। सॉफ्टमैक्स का एक त्वरित अनुस्मारक:

P(y=j|x)=exjk=1Kexk

जहाँ एक इनपुट वेक्टर है जिसकी लंबाई K की संख्या के बराबर है । सॉफ्टमैक्स फ़ंक्शन में 3 बहुत अच्छे गुण हैं: 1. यह आपके डेटा को सामान्य करता है (एक उचित संभावना वितरण को आउटपुट करता है), 2. विभेदीकरण है, और 3. यह आपके द्वारा उल्लिखित एक्सपे का उपयोग करता है। कुछ महत्वपूर्ण बिंदु:xK

  1. नुकसान फ़ंक्शन सीधे सॉफ्टमैक्स से संबंधित नहीं है। आप मानक सामान्यीकरण का उपयोग कर सकते हैं और फिर भी क्रॉस-एंट्रोपी का उपयोग कर सकते हैं।

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

  3. अब मैं आपके प्रश्न पर पहुँचता हूँ। softmax में प्राकृतिक घातीय समारोह है। सामान्य होने से पहले , हम x को e x के ग्राफ में बदल देते हैं :exex

प्राकृतिक घातीय कार्य

यदि 0 है तो y = 1 , यदि x 1 है, तो y = 2.7 है , और यदि x 2 है, तो y = 7 है ! एक बहुत बड़ा कदम! यह वह है जिसे हमारे अप्राकृतिक लॉग स्कोर का गैर-रेखीय परिवर्तन कहा जाता है। सॉफ्टमैक्स में सामान्यीकरण के साथ संयुक्त घातीय फ़ंक्शन की दिलचस्प संपत्ति यह है कि एक्स में उच्च स्कोर कम स्कोर की तुलना में अधिक संभावित है।xy=1xy=2.7xy=7x

एक उदाहरण है कहें , और आपका लॉग स्कोर x वेक्टर [ 2 , 4 , 2 , 1 ] है । सरल argmax फ़ंक्शन आउटपुट:K=4x[2,4,2,1]

[0,1,0,0]

आर्ग्मैक्स लक्ष्य है, लेकिन यह अलग नहीं है और हम इसके साथ अपने मॉडल को प्रशिक्षित नहीं कर सकते हैं :( एक साधारण सामान्यीकरण, जो अलग है, जो निम्न संभावनाओं को उत्पन्न करता है:

[0.2222,0.4444,0.2222,0.1111]

यह वास्तव में argmax से बहुत दूर है! :( जबकि सॉफ्टमैक्स आउटपुट:

[0.1025,0.7573,0.1025,0.0377]

यह argmax के बहुत करीब है! क्योंकि हम प्राकृतिक घातीय का उपयोग करते हैं, हम मानक स्कोर के साथ तुलना करने पर सबसे बड़े स्कोर की संभावना को कम करते हैं और कम स्कोर की संभावना को कम करते हैं। इसलिए सॉफ्टमैक्स में "अधिकतम"।


3
बढ़िया जानकारी। हालांकि, उपयोग करने के बजाय e, निरंतर 3, या 4 का उपयोग करने के बारे में क्या? क्या परिणाम समान होंगे?
चोक यान चेंग

7
@CheokYanCheng, हाँ। लेकिन eएक अच्छा व्युत्पन्न है;)
वेगा

मैंने देखा है कि सॉफ्टमैक्स का परिणाम आमतौर पर प्रत्येक वर्ग से संबंधित की संभावनाओं के रूप में उपयोग किया जाता है। यदि अन्य स्थिरांक के बजाय 'ई' का विकल्प मनमाना है, तो इसे संभाव्यता के संदर्भ में देखने का कोई मतलब नहीं है, है ना?
javierdvalle

@vega क्षमा करें, लेकिन मैं अभी भी नहीं देखता कि प्रश्न का उत्तर कैसे दिया जाता है: बहुत ही कारणों से ई ^ ई ^ ई ^ ई ^ एक्स का उपयोग क्यों नहीं किया जाता है? कृपया समझाएं
गुलज़ार

@ जवलल ऐसा नहीं eहै जो इसे एक संभाव्यता के रूप में व्याख्यायित करता है, यह तथ्य है कि सॉफ्टमैक्स आउटपुट का प्रत्येक तत्व [0,1] और पूरे योगों में 1 से बंधा हुआ है।
वेगा

2

वेगा की व्याख्या के अलावा,

के सामान्य softmax को परिभाषित करते हैं:

P(y=j|x)=ψxjk=1Kψxk
जहांψएक निरंतर है> = 1

यदि ψ=1 , तो आप argmax से बहुत दूर हैं जैसा कि @vega ने उल्लेख किया है।

चलो अब मान लेते हैं ψ=100 , अब आप सुंदर argmax के करीब हैं लेकिन आप यह भी नकारात्मक मूल्यों और सकारात्मक के लिए बड़ी संख्या के लिए एक बहुत छोटी संख्या है। यह संख्या फ्लोट बिंदु अंकगणितीय सीमा को आसानी से ओवरफ्लो कर देती है (उदाहरण के लिए सुन्न फ्लोट64 की अधिकतम सीमा 10 308 है )। इसके अलावा, चयन है, भले ही ψ = जो तुलना में काफी छोटा है 100 , चौखटे एक अधिक स्थिर (अंश और हर दोनों निरंतर साथ भाजक गुणा softmax के संस्करण को लागू करना चाहिए सी ) के बाद से परिणाम छोटे बन के साथ व्यक्त करने के लिए सक्षम होने के लिए ऐसी सटीकता।10308ψ=e100C

तो, आप अर्ग्मैक्स को लगभग अच्छी तरह से लगातार बड़ा चुनना चाहते हैं, और गणना में इन बड़ी और छोटी संख्याओं को व्यक्त करने के लिए भी पर्याप्त छोटा है।

e


2

यह सवाल बहुत दिलचस्प है। मुझे सटीक कारण नहीं पता है लेकिन मुझे लगता है कि घातीय फ़ंक्शन के उपयोग को समझाने के लिए निम्नलिखित कारण का उपयोग किया जा सकता है। यह पद सांख्यिकीय यांत्रिकी और अधिकतम एन्ट्रापी के सिद्धांत से प्रेरित है।

Nn1C1n2C2, ..., and nK images from the class CK. Then we assume that our neural network was able to apply a nonlinear transform on our images, such that we can assign an 'energy level' Ek to all the classes. We assume that this energy is on a nonlinear scale which allows us to linearly separate the images.

The mean energy E¯ is related to the other energies Ek by the following relationship

NE¯=k=1KnkEk.()

At the same time, we see that the total amount of images can be calculated as the following sum

N=k=1Knk.()

The main idea of the maximum entropy principle is that the number of the images in the corresponding classes is distributed in such a way that that the number of possible combinations of for a given energy distribution is maximized. To put it more simply the system will not very likeli go into a state in which we only have class n1 it will also not go into a state in which we have the same number of images in each class. But why is this so? If all the images were in one class the system would have very low entropy. The second case would also be a very unnatural situation. It is more likely that we will have more images with moderate energy and fewer images with very high and very low energy.

The entropy increases with the number of combinations in which we can split the N images into the n1, n2, ..., nK image classes with corresponding energy. This number of combinations is given by the multinomial coefficient

(N!n1!,n2!,,nK!)=N!k=1Knk!.

We will try to maximize this number assuming that we have infinitely many images N. But his maximization has also equality constraints () and (). This type of optimization is called constrained optimization. We can solve this problem analytically by using the method of Lagrange multipliers. We introduce the Lagrange multipliers β and α for the equality constraints and we introduce the Lagrange Funktion L(n1,n2,,nk;α,β).

L(n1,n2,,nk;α,β)=N!k=1Knk!+β[k=1KnkEkNE¯]+α[Nk=1Knk]

As we assumed N we can also assume nk and use the Stirling approximation for the factorial

lnn!=nlnnn+O(lnn).

Note that this approximation (the first two terms) is only asymptotic it does not mean that this approximation will converge to lnn! for n.

The partial derivative of the Lagrange function with respect nk~ will result in

Lnk~=lnnk~1α+βEk~.

If we set this partial derivative to zero we can find

nk~=exp(βEk~)exp(1+α).()

If we put this back into () we can obtain

exp(1+α)=1Nk=1Kexp(βEk).

If we put this back into () we get something that should remind us of the softmax function

nk~=exp(βEk~)1Nk=1Kexp(βEk).

If we define nk~/N as the probability of class Ck~ by pk~ we will obtain something that is really similar to the softmax function

pk~=exp(βEk~)k=1Kexp(βEk).

Hence, this shows us that the softmax function is the function that is maximizing the entropy in the distribution of images. From this point, it makes sense to use this as the distribution of images. If we set βEk~=wkTx we exactly get the definition of the softmax function for the kth output.

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