सॉफ्टमैक्स फलन: Difference between revisions

From Vigyanwiki
No edit summary
No edit summary
 
(13 intermediate revisions by 3 users not shown)
Line 15: Line 15:
|section=6.2.2.3 Softmax Units for Multinoulli Output Distributions
|section=6.2.2.3 Softmax Units for Multinoulli Output Distributions
|pages=180–184
|pages=180–184
}}</ref>{{rp|184}}  या सामान्यीकृत घातांकीय फलन<ref name="bishop" />{{rp|198}}  के रूप में भी जाना जाता है, {{mvar|K}} वास्तविक संख्याओं के वेक्टर को {{mvar|K}} संभावित परिणामों के  [[ प्रायिकता वितरण |संभाव्यता वितरण]]  में परिवर्तित करता है। तथा यह कई आयामों के लिए  [[ रसद समारोह |तार्किक फलन]]  का सामान्यीकरण है, और [[ बहुराष्ट्रीय रसद प्रतिगमन |बहुराष्ट्रीय तार्किक प्रतिगमन]]  में उपयोग किया जाता है। सॉफ्टमैक्स फलन का उपयोग अधिकांश  [[ कृत्रिम तंत्रिका नेटवर्क |कृत्रिम तंत्रिका नेटवर्क]]  के अंतिम सक्रियण फलन के रूप में किया जाता है, जो लूस की पसंद के स्वयंसिद्ध के आधार पर अनुमानित उत्पादित वर्गों पर संभाव्यता वितरण के लिए नेटवर्क के प्रक्षेपण को सामान्य करता है।
}}</ref>{{rp|184}}  या सामान्यीकृत घातांकीय फलन<ref name="bishop" />{{rp|198}}  के रूप से भी जाना जाता है, {{mvar|K}} वास्तविक संख्याओं के सदिश को {{mvar|K}} संभावित परिणामों के  [[ प्रायिकता वितरण |प्रायिकता वितरण]]  में परिवर्तित करता है। तथा यह कई आयामों के लिए  [[ रसद समारोह |तार्किक फलन]]  का सामान्यीकरण है, जो [[ बहुराष्ट्रीय रसद प्रतिगमन |बहुराष्ट्रीय तार्किक प्रतिगमन]]  में उपयोग किया जाता है। सॉफ्टमैक्स फलन का उपयोग अधिकांश  [[ कृत्रिम तंत्रिका नेटवर्क |कृत्रिम तंत्रिका नेटवर्क]]  के अंतिम सक्रियण फलन के रूप में किया जाता है, जो लूस के अनुरूप सिद्धान्त के आधार पर अनुमानित उत्पाद वर्गों पर प्रायिकता वितरण के लिए नेटवर्क के प्रक्षेपण को सामान्य करता है।


== परिभाषा ==
== परिभाषा ==


सॉफ्टमैक्स फलन {{mvar|K}} वास्तविक संख्याओं के एक वेक्टर z को इनपुट के रूप में लेता है, और इसे एक संभाव्यता वितरण में सामान्य करता है, जिसमें {{mvar|K}} संभावनाएँ होती हैं जो इनपुट संख्याओं के घातांकों के समानुपाती होती हैं। अर्थात, सॉफ्टमैक्स को लागू करने से पहले, कुछ वेक्टर घटक ऋणात्मक या एक से अधिक हो सकते हैं। और 1 का योग नहीं हो सकता है, लेकिन सॉफ्टमैक्स लागू करने के बाद प्रत्येक घटक  [[ अंतराल (गणित) |अंतराल]]  <math>(0, 1)</math> में होगा, और घटक 1 तक जोड़ देंगे, जिससे कि उन्हें संभावनाओं के रूप में समझा जा सके। तथा इसके अतिरिक्त बड़े निवेशित घटक बड़ी संभावनाओं के अनुरूप होंगे।  
सॉफ्टमैक्स फलन {{mvar|K}} वास्तविक संख्याओं के एक सदिश z को इनपुट के रूप में ग्रहण करता है, और इसे एक प्रायिकता वितरण में सामान्य करता है, जिसमें {{mvar|K}} संभावनाएँ होती हैं जो इनपुट संख्याओं के घातांकों के समानुपाती होती हैं। अर्थात, सॉफ्टमैक्स को लागू करने से पहले कुछ सदिश घटक ऋणात्मक या एक से अधिक हो सकते हैं। और 1 का योग नहीं हो सकता है, लेकिन सॉफ्टमैक्स लागू करने के बाद प्रत्येक घटक  [[ अंतराल (गणित) |अंतराल]]  <math>(0, 1)</math> में होगा, और घटक 1 तक जोड़ देंगे, जिससे कि उन्हें संभावनाओं के रूप में समझा जा सके। तथा इसके अतिरिक्त बड़े निवेशित घटक बड़ी संभावनाओं के अनुरूप होंगे।  


मानक (यूनिट) सॉफ्टमैक्स फलन  <math>\sigma : \R^K \to (0, 1)^K</math> परिभाषित किया गया है, जब  <math>K \ge 1</math>  सूत्र द्वारा<math display="block">\sigma(\mathbf{z})_i = \frac{e^{z_i}}{\sum_{j=1}^K e^{z_j}} \ \ \text{ for } i = 1, \dotsc, K \text{ and } \mathbf{z} = (z_1, \dotsc, z_K) \in \R^K.</math>सामान्य शब्दों में यह इनपुट वेक्टर <math>\mathbf z</math>  के प्रत्येक तत्व  <math>z_i</math> के लिए मानक चर घातांकीय फलन लागू करता है, और इन्हें सामान्य करता है। तथा इन सभी घातांकीयों के योग से विभाजित करके मानों का यह सामान्यीकरण सुनिश्चित करता है कि उत्पादित  वेक्टर के घटकों का योग <math>\sigma(\mathbf z)</math> 1 है।
मानक (यूनिट) सॉफ्टमैक्स फलन  <math>\sigma : \R^K \to (0, 1)^K</math> परिभाषित किया गया है, जब  <math>K \ge 1</math>  सूत्र द्वारा<math display="block">\sigma(\mathbf{z})_i = \frac{e^{z_i}}{\sum_{j=1}^K e^{z_j}} \ \ \text{ for } i = 1, \dotsc, K \text{ and } \mathbf{z} = (z_1, \dotsc, z_K) \in \R^K.</math>सामान्य शब्दों में यह इनपुट सदिश <math>\mathbf z</math>  के प्रत्येक तत्व  <math>z_i</math> के लिए मानक चर घातांकीय फलन लागू करता है, और इन्हें सामान्य करता है। तथा इन सभी घातांकीयों के योग से विभाजित करके मानों का यह सामान्यीकरण सुनिश्चित करता है कि उत्पादित  सदिश के घटकों का योग <math>\sigma(\mathbf z)</math> 1 है। {{mvar|e}} के अतिरिक्त एक भिन्न  [[ आधार (घातांक) |आधार (घातांक)]]  {{math|b > 0}}  का उपयोग किया जा सकता है। यदि {{math|0 < b < 1}} छोटे इनपुट घटकों के परिणामस्वरूप अधिक प्रक्षेपण की संभावनाएँ होंगी, तथा b के मान को कम करने से प्रायिकता वितरण बनेंगे जो सबसे छोटे इनपुट मानों की स्थिति के चारों ओर अधिक केंद्रित होते हैं। इसके विपरीत, यदि  {{math|b > 1}}, बड़े निवेशित घटकों के परिणामस्वरूप अधिक प्रक्षेपण संभावनाएं होंगी, और मान में वृद्धि होगी तथा {{mvar|b}} प्रायिकता वितरण बनाएगा, जो सबसे बड़े इनपुट मानों की स्थिति के चारों ओर अधिक होते हैं। <math>b = e^\beta</math> या  <math>b = e^{-\beta}</math>{{efn|Positive {{mvar|β}} corresponds to the maximum convention, and is usual in machine learning, corresponding to the highest score having highest probability. The negative {{math|−β}} corresponds to the minimum convention, and is conventional in thermodynamics, corresponding to the lowest energy state having the highest probability; this matches the convention in the [[Gibbs distribution]], interpreting {{mvar|β}} as [[coldness]].}} लिखना वास्तव मे {{mvar|β}}{{efn|1=The notation {{mvar|β}} is for the [[thermodynamic beta]], which is inverse [[temperature]]: <math>\beta = 1/T</math><math>T = 1/\beta.</math>}} के लिए अभिव्यक्ति उत्पन्न करता है।{{efn|For <math>\beta = 0</math> ([[coldness]] zero, infinite temperature), <math>b = e^\beta = e^0 = 1</math>, and this becomes the constant function {{tmath|(1/n, \dots, 1/n)}}, corresponding to the [[discrete uniform distribution]].}}<math display="block">\sigma(\mathbf{z})_i = \frac{e^{\beta z_i}}{\sum_{j=1}^K e^{\beta z_j}} \text{ or } \sigma(\mathbf{z})_i = \frac{e^{-\beta z_i}}{\sum_{j=1}^K e^{-\beta z_j}} \text{ for } i = 1, \dotsc , K .</math>कुछ क्षेत्रों में आधार निश्चित होता है, एक निश्चित पैमाने के अनुरूप{{efn|In statistical mechanics, fixing {{mvar|β}} is interpreted as having coldness and temperature of 1.}}, जबकि अन्य में पैरामीटर {{mvar|β}} भिन्न होता है।


== व्याख्याएं ==


{{mvar|e}} के अतिरिक्त एक भिन्न  [[ आधार (घातांक) |आधार (घातांक)]]  {{math|b > 0}}  का उपयोग किया जा सकता है। यदि {{math|0 < b < 1}} छोटे इनपुट घटकों के परिणामस्वरूप अधिक प्रक्षेपण की संभावनाएँ होंगी, तथा b के मान को कम करने से संभाव्यता वितरण बनेंगे जो सबसे छोटे इनपुट मानों की स्थिति के चारों ओर अधिक केंद्रित होते हैं। इसके विपरीत, यदि  {{math|b > 1}}, बड़े निवेशित घटकों के परिणामस्वरूप अधिक प्रक्षेपण संभावनाएं होंगी, और मूल्य में वृद्धि होगी तथा {{mvar|b}} संभाव्यता वितरण बनाएगा, जो सबसे बड़े इनपुट मूल्यों की स्थिति के चारों ओर अधिक होते हैं।  <math>b = e^\beta</math> या  <math>b = e^{-\beta}</math>{{efn|Positive {{mvar|β}} corresponds to the maximum convention, and is usual in machine learning, corresponding to the highest score having highest probability. The negative {{math|−β}} corresponds to the minimum convention, and is conventional in thermodynamics, corresponding to the lowest energy state having the highest probability; this matches the convention in the [[Gibbs distribution]], interpreting {{mvar|β}} as [[coldness]].}} लिखना वास्तव मे {{mvar|β}}{{efn|1=The notation {{mvar|β}} is for the [[thermodynamic beta]], which is inverse [[temperature]]: <math>\beta = 1/T</math>, <math>T = 1/\beta.</math>}} के लिए अभिव्यक्ति उत्पन्न करता है।{{efn|For <math>\beta = 0</math> ([[coldness]] zero, infinite temperature), <math>b = e^\beta = e^0 = 1</math>, and this becomes the constant function {{tmath|(1/n, \dots, 1/n)}}, corresponding to the [[discrete uniform distribution]].}}<math display="block">\sigma(\mathbf{z})_i = \frac{e^{\beta z_i}}{\sum_{j=1}^K e^{\beta z_j}} \text{ or } \sigma(\mathbf{z})_i = \frac{e^{-\beta z_i}}{\sum_{j=1}^K e^{-\beta z_j}} \text{ for } i = 1, \dotsc , K .</math>कुछ क्षेत्रों में आधार निश्चित होता है, एक निश्चित पैमाने के अनुरूप{{efn|In statistical mechanics, fixing {{mvar|β}} is interpreted as having coldness and temperature of 1.}}, जबकि अन्य में पैरामीटर {{mvar|β}} भिन्न होता है।
=== समतल आर्ग मैक्स ===
{{See also|आर्ग मैक्स}}


== व्याख्याएं ==
सॉफ्टमैक्स एक भ्रामक नाम है, जो फलन  [[ चिकनी अधिकतम |अधिकतम समतल]]  (अधिकतम फलन के लिए समतल सन्निकटन) नहीं होता है, जबकि [[ arg max |आर्ग मैक्स]]  फलन के लिए एक सरलतम सन्निकटन है। वह फलन जिसका मान एक घातांक जिसमें अधिकतम होता है। वास्तव में सॉफ्टमैक्स शब्द का उपयोग घनिष्ठता से संबंधित  [[ LogSumExp |LogSumExp]]  फलन के लिए भी किया जाता है, जो कि एक सहज अधिकतम है। इस कारण से कुछ अधिक सटीक शब्द सॉफ्टमैक्स को समान करते हैं, लेकिन मशीन लर्निंग में सॉफ्टमैक्स शब्द पारंपरिक है।<ref name="sako2018"/>{{sfn|Goodfellow|Bengio|Courville|2016|pp=183–184|ps=: The name "softmax" can be somewhat confusing. The function is more closely related to the arg max function than the max function. The term "soft" derives from the fact that the softmax function is continuous and differentiable. The arg max function, with its result represented as a one-hot vector, is not continuous or differentiable. The softmax function thus provides a "softened" version of the arg max. The corresponding soft version of the maximum function is <math>\operatorname{softmax}(\mathbf{z})^\top \mathbf{z}</math>. It would perhaps be better to call the softmax function "softargmax," but the current name is an entrenched convention.}} इस व्याख्या पर महत्व देने के लिए यह खंड सॉफ्टरमैक्स शब्द का उपयोग करता है।
 
औपचारिक रूप से आर्ग मैक्स को श्रेणीबद्ध उत्पाद वाले फलन के रूप में मानने के अतिरिक्त <math>1, \dots, n</math> (सूचकांक के अनुरूप), उत्पाद के  [[ एक-गर्म |एक गर्म]]  प्रतिनिधित्व के साथ अधिकतम फलन पर विचार करें। (मान लीजिए कि एक अद्वितीय अधिकतम तर्क है।)
:<math>\operatorname{arg\,max}(z_1,\, \dots,\, z_n) = (y_1,\, \dots,\, y_n) = (0,\, \dots,\, 0,\, 1,\, 0,\, \dots,\, 0),</math>
जहां उत्पादित निर्देशांक  <math>y_i = 1</math> यदि केवल  <math>i</math>  का तर्क अधिकतम है <math>(z_1, \dots, z_n)</math>, अर्थ <math>z_i</math> का अद्वितीय अधिकतम मान है <math>(z_1,\, \dots,\, z_n)</math>. उदाहरण के लिए, इस एन्कोडिंग में <math>\operatorname{arg\,max}(1, 5, 10) = (0, 0, 1),</math> चूंकि तीसरा तर्क अधिकतम है।
 
सभी अधिकतम तर्कों के बीच 1 को विभाजित करके इसे एकाधिक तर्क अधिकतम मानों (एकाधिक बराबर <math>z_i</math> अधिकतम होने के लिए) के लिए सामान्यीकृत किया जा सकता है; औपचारिक रूप से 1/k जहां k अधिकतम मानने वाले तर्कों की संख्या है।  उदाहरण के लिए  <math>\operatorname{arg\,max}(1,\, 5,\, 5) = (0,\, 1/2,\, 1/2),</math> चूंकि दूसरा और तीसरा दोनों ही तर्क अधिकतम हैं। इस परिस्थिति में सभी तर्क समान हैं, यह सरल <math>\operatorname{arg\,max}(z, \dots, z) = (1/n, \dots, 1/n).</math> अंक {{mvar|'''z'''}} एकाधिक आर्ग अधिकतम मानों के साथ एक बीजीय विविधता या अद्वितीय समूह बनाते हैं जो विलक्षणताओं के बिंदु होते हैं - ये ऐसे बिंदु हैं जहां arg max जंप अनिरंतरता के साथ असंतुलित होते है, जबकि एकल arg max वाले बिंदु को गैर विलक्षण या नियमित बिंदु के रूप में जाना जाता है।


=== चिकना तर्क अधिकतम ===
परिचय में दी गई अंतिम अभिव्यक्ति के साथ सॉफ्टरमैक्स अब आर्गमैक्स का एक सहज सन्निकटन है।  {{tmath|\beta \to \infty}} आर्गमैक्स में परिवर्तित हो जाता है। किसी फलन के अभिसरण की विभिन्न अवधारणाएँ हैं। सॉफ्टएर्गमैक्स आर्ग को अधिकतम  [[ बिंदुवार अभिसरण |बिंदुवार अभिसरण]] में परिवर्तित करता है, जिसका अर्थ है प्रत्येक निश्चित इनपुट {{math|'''z'''}} के लिए {{tmath|\beta \to \infty}},  
{{See also|Arg max}}
सॉफ्टमैक्स नाम भ्रामक है; फलन एक [[ चिकनी अधिकतम ]] (अधिकतम फलन के लिए एक चिकनी सन्निकटन) नहीं है, बल्कि [[ arg max ]] फलन के लिए एक आसान सन्निकटन है: वह फलन जिसका मान वह इंडेक्स है जिसमें अधिकतम है। वास्तव में, सॉफ्टमैक्स शब्द का उपयोग बारीकी से संबंधित [[ LogSumExp ]] फलन के लिए भी किया जाता है, जो कि एक सहज अधिकतम है। इस कारण से, कुछ लोग अधिक सटीक शब्द सॉफ़्टर्गमैक्स पसंद करते हैं, लेकिन सॉफ्टमैक्स शब्द मशीन लर्निंग में पारंपरिक है।<ref name="sako2018"/>{{sfn|Goodfellow|Bengio|Courville|2016|pp=183–184|ps=: The name "softmax" can be somewhat confusing. The function is more closely related to the arg max function than the max function. The term "soft" derives from the fact that the softmax function is continuous and differentiable. The arg max function, with its result represented as a one-hot vector, is not continuous or differentiable. The softmax function thus provides a "softened" version of the arg max. The corresponding soft version of the maximum function is <math>\operatorname{softmax}(\mathbf{z})^\top \mathbf{z}</math>. It would perhaps be better to call the softmax function "softargmax," but the current name is an entrenched convention.}} यह खंड इस व्याख्या पर जोर देने के लिए शब्द सॉफ़्टर्गमैक्स का उपयोग करता है।


औपचारिक रूप से, arg max को श्रेणीबद्ध आउटपुट वाले फलन के रूप में मानने के बजाय <math>1, \dots, n</math> (सूचकांक के अनुरूप), आउटपुट के [[ एक-गर्म ]] प्रतिनिधित्व के साथ अधिकतम अधिकतम फलन पर विचार करें (मान लीजिए कि एक अद्वितीय अधिकतम तर्क है):
<math>\sigma_\beta(\mathbf{z}) \to \operatorname{arg\,max}(\mathbf{z}).</math> हालाँकि, सॉफ्टरमैक्स समान रूप से आर्ग मैक्स में  [[ एकसमान अभिसरण |परिवर्तित]]  नहीं होता है, जिसका अर्थ है कि सहज रूप से विभिन्न बिंदु अलग-अलग दरों पर अभिसरण करते हैं, और मन चाहे तरीके से धीरे-धीरे अभिसरण कर सकते हैं। वास्तव में, सॉफ्टरमैक्स निरंतर है, लेकिन एआरजी मैक्स विलक्षण समुच्चय पर निरंतर नहीं होता है जहां दो निर्देशांक समान हैं, जबकि निरंतर कार्यों की समान सीमा निरंतर है। सामान्य रूप से अभिसरण करने में विफल होने का कारण यह है कि इनपुट के लिए जहां दो निर्देशांक लगभग बराबर होते हैं और एक अधिकतम होता है, तर्क अधिकतम एक या दूसरे का सूचकांक होता है, इसलिए इनपुट में एक छोटा सा परिवर्तन आउटपुट में बड़ा परिवर्तन कर सकता है।  
:<math>\operatorname{arg\,max}(z_1,\, \dots,\, z_n) = (y_1,\, \dots,\, y_n) = (0,\, \dots,\, 0,\, 1,\, 0,\, \dots,\, 0),</math>
जहां आउटपुट समन्वय करता है <math>y_i = 1</math> अगर और केवल अगर <math>i</math> का तर्क अधिकतम है <math>(z_1, \dots, z_n)</math>, अर्थ <math>z_i</math> का अद्वितीय अधिकतम मूल्य है <math>(z_1,\, \dots,\, z_n)</math>. उदाहरण के लिए, इस एन्कोडिंग में <math>\operatorname{arg\,max}(1, 5, 10) = (0, 0, 1),</math> चूंकि तीसरा तर्क अधिकतम है।


इसे एकाधिक तर्क अधिकतम मानों के लिए सामान्यीकृत किया जा सकता है (एकाधिक बराबर <math>z_i</math> अधिकतम होना) सभी अधिकतम तर्कों के बीच 1 को विभाजित करके; औपचारिक रूप से {{math|1/k}} कहाँ पे {{mvar|k}} अधिकतम मानने वाले तर्कों की संख्या है। उदाहरण के लिए, <math>\operatorname{arg\,max}(1,\, 5,\, 5) = (0,\, 1/2,\, 1/2),</math> चूंकि दूसरा और तीसरा तर्क दोनों ही अधिकतम हैं। मामले में सभी तर्क समान हैं, यह सरल है <math>\operatorname{arg\,max}(z, \dots, z) = (1/n, \dots, 1/n).</math> अंक {{mvar|'''z'''}} एकाधिक आर्ग अधिकतम मानों के साथ एक बीजीय विविधता (या विलक्षणताएं, और एकवचन सेट बनाते हैं) के एकवचन बिंदु होते हैं - ये ऐसे बिंदु होते हैं जहां arg अधिकतम बंद होता है (जंप असंतुलन के साथ) - जबकि एकल arg अधिकतम वाले अंक गैर के रूप में जाने जाते हैं -एकवचन या नियमित अंक।
उदाहरण के लिए, <math>\sigma_\beta(1,\, 1.0001) \to (0, 1),</math> लेकिन <math>\sigma_\beta(1,\, 0.9999) \to (1,\, 0),</math> तथा <math>\sigma_\beta(1,\, 1) = 1/2</math> सभी इनपुट के लिए बिंदु विलक्षण समुच्चय  <math>(x, x)</math> के जितने पास होते हैं, उतनी ही धीमी गति से वे अभिसरित होते हैं। हालांकि, सॉफ़्टर्गमैक्स गैर-विलक्षण समुच्चय पर  [[ कॉम्पैक्ट अभिसरण |कॉम्पैक्ट]]  रूप से अभिसरण करता है।


परिचय में दिए गए अंतिम अभिव्यक्ति के साथ, softargmax अब arg max का एक सहज अनुमान है: as {{tmath|\beta \to \infty}}, softargmax अधिकतम arg में परिवर्तित हो जाता है। एक समारोह के अभिसरण की विभिन्न धारणाएं हैं; softargmax arg अधिकतम [[ बिंदुवार अभिसरण ]] में परिवर्तित होता है, जिसका अर्थ प्रत्येक निश्चित इनपुट के लिए होता है {{math|'''z'''}} जैसा {{tmath|\beta \to \infty}}, <math>\sigma_\beta(\mathbf{z}) \to \operatorname{arg\,max}(\mathbf{z}).</math> हालाँकि, softargmax अधिकतम arg के लिए [[ एकसमान अभिसरण ]] नहीं करता है, जिसका अर्थ है कि अलग-अलग बिंदु अलग-अलग दरों पर अभिसरण करते हैं, और मनमाने ढंग से धीरे-धीरे परिवर्तित हो सकते हैं। वास्तव में, softargmax निरंतर है, लेकिन arg max एकवचन सेट पर निरंतर नहीं है जहां दो निर्देशांक समान हैं, जबकि निरंतर कार्यों की समान सीमा निरंतर है। कारण यह समान रूप से अभिसरण करने में विफल रहता है क्योंकि इनपुट के लिए जहां दो निर्देशांक लगभग बराबर होते हैं (और एक अधिकतम है), arg अधिकतम एक या दूसरे का सूचकांक है, इसलिए इनपुट में एक छोटा सा परिवर्तन आउटपुट में एक बड़ा बदलाव पैदा करता है। उदाहरण के लिए, <math>\sigma_\beta(1,\, 1.0001) \to (0, 1),</math> लेकिन <math>\sigma_\beta(1,\, 0.9999) \to (1,\, 0),</math> तथा <math>\sigma_\beta(1,\, 1) = 1/2</math> सभी इनपुट के लिए: बिंदु एकवचन सेट के जितने करीब होते हैं <math>(x, x)</math>, जितनी धीमी गति से वे अभिसरित होते हैं। हालांकि, सॉफ़्टर्गमैक्स गैर-एकवचन सेट पर [[ कॉम्पैक्ट अभिसरण ]] करता है।
इसके विपरीत  {{tmath|\beta \to -\infty}} सॉफ्टरमैक्स उसी तरह आर्ग मिन में परिवर्तित होता है, जहाँ गैर-विलक्षण समुच्चय दो आर्ग मिन मानों के साथ बिंदु है। [[ उष्णकटिबंधीय विश्लेषण |उष्णकटिबंधीय विश्लेषण]] की भाषा में, सॉफ्टमैक्स, अधिकतम-प्लस सेमीरिंग (क्रमशः [[ मिन-प्लस सेमी-रिंग |न्यूनतम-प्लस सेमी-रिंग]]) के अतिरिक्त  [[ लॉग सेमीरिंग |लॉग सेमीरिंग]] का उपयोग करने के लिए और आर्ग मैक्स या पुनर्प्राप्त करने के लिए, आर्ग मैक्स और आर्ग मिन का एक विरूपण या परिमाणीकरण है। जिसमे सीमा लेने से आर्ग मिन को उष्णकटिबंधीयकरण या विघटन कहा जाता है।


इसके विपरीत, जैसा {{tmath|\beta \to -\infty}}, softargmax उसी तरह arg min में परिवर्तित होता है, जहाँ यहाँ एकवचन सेट दो arg min मानों के साथ बिंदु है। [[ उष्णकटिबंधीय विश्लेषण ]] की भाषा में, सॉफ्टमैक्स एक विकृति सिद्धांत या आर्ग मैक्स और आर्ग मिन का परिमाणीकरण है, जो [[ मिन-प्लस सेमी-रिंग ]] (क्रमशः न्यूनतम-प्लस सेमिरिंग) के बजाय [[ लॉग सेमीरिंग ]] का उपयोग करने के अनुरूप है, और आर्ग मैक्स या आर्ग को पुनर्प्राप्त करता है। सीमा लेकर मिनट को ट्रॉपिकलाइज़ेशन या डिक्वांटाइज़ेशन कहा जाता है।
यह भी परिस्थिति है कि, किसी निश्चित के लिए {{mvar|β}}, यदि एक इनपुट {{tmath|z_i}} तापमान के सापेक्ष अन्य की तुलना में बहुत बड़ा है, <math>T = 1/\beta</math>, आउटपुट लगभग arg अधिकतम है। उदाहरण के लिए, 1 के तापमान के सापेक्ष 10 का अंतर बड़ा होता है।  


यह भी मामला है कि, किसी निश्चित के लिए {{mvar|β}}, यदि एक इनपुट {{tmath|z_i}} तापमान के सापेक्ष अन्य की तुलना में बहुत बड़ा है, <math>T = 1/\beta</math>, आउटपुट लगभग arg अधिकतम है। उदाहरण के लिए, 1 के तापमान के सापेक्ष 10 का अंतर बड़ा है:
<math display="block">\sigma(0,\, 10) := \sigma_1(0,\, 10) = \left(1/\left(1 + e^{10}\right),\, e^{10}/\left(1 + e^{10}\right)\right) \approx (0.00005,\, 0.99995)</math>
<math display="block">\sigma(0,\, 10) := \sigma_1(0,\, 10) = \left(1/\left(1 + e^{10}\right),\, e^{10}/\left(1 + e^{10}\right)\right) \approx (0.00005,\, 0.99995)</math>
हालांकि, यदि अंतर तापमान के सापेक्ष छोटा है, तो मान अधिकतम आर्ग के करीब नहीं है। उदाहरण के लिए, 100 के तापमान के सापेक्ष 10 का अंतर छोटा है:
 
हालाँकि, यदि अंतर तापमान के सापेक्ष छोटा है, तो मान आर्गमैक्स के करीब नहीं है। उदाहरण के लिए 10 का अंतर 100 के तापमान के सापेक्ष छोटा होता है।
<math display="block">\sigma_{1/100}(0,\, 10) = \left(1/\left(1 + e^{1/10}\right),\, e^{1/10}/\left(1 + e^{1/10}\right)\right) \approx (0.475,\, 0.525).</math>
<math display="block">\sigma_{1/100}(0,\, 10) = \left(1/\left(1 + e^{1/10}\right),\, e^{1/10}/\left(1 + e^{1/10}\right)\right) \approx (0.475,\, 0.525).</math>
जैसा {{tmath|\beta \to \infty}}, तापमान शून्य हो जाता है, <math>T = 1/\beta \to 0</math>, इसलिए अंततः सभी अंतर बड़े हो जाते हैं (एक सिकुड़ते तापमान के सापेक्ष), जो सीमा व्यवहार के लिए एक और व्याख्या देता है।
जैसा {{tmath|\beta \to \infty}}, तापमान शून्य हो जाता है, <math>T = 1/\beta \to 0</math>, इसलिए अंततः सभी अंतर बड़े हो जाते हैं घटते तापमान के सापेक्ष, जो सीमा व्यवहार के लिए एक और व्याख्या प्रदान करता है।


=== प्रायिकता सिद्धांत ===
=== प्रायिकता सिद्धांत ===
संभाव्यता सिद्धांत में, सॉफ्टर्गमैक्स फलन के आउटपुट का उपयोग एक स्पष्ट वितरण का प्रतिनिधित्व करने के लिए किया जा सकता है - अर्थात, एक संभाव्यता वितरण {{mvar|K}} विभिन्न संभावित परिणाम।
प्रायिकता सिद्धांत में, सॉफ्टर्गमैक्स फलन के आउटपुट का उपयोग एक स्पष्ट वितरण का प्रतिनिधित्व करने के लिए किया जा सकता है - अर्थात, एक प्रायिकता वितरण {{mvar|K}} विभिन्न संभावित परिणाम होता है।


=== [[ सांख्यिकीय यांत्रिकी ]] ===
=== [[ सांख्यिकीय यांत्रिकी ]] ===
सांख्यिकीय यांत्रिकी में, सॉफ्टर्गमैक्स फलन को बोल्ट्ज़मान वितरण (या [[ गिब्स वितरण ]]) के रूप में जाना जाता है:<ref>{{cite book
सांख्यिकीय यांत्रिकी में, सॉफ्टर्गमैक्स फलन को बोल्ट्ज़मान वितरण या [[ गिब्स वितरण |गिब्स वितरण]] के रूप में जाना जाता है।<ref>{{cite book
|first1=Yann |last1=LeCun
|first1=Yann |last1=LeCun
|author-link1=Yann LeCun
|author-link1=Yann LeCun
Line 72: Line 76:
|editor5=Ben Taskar
|editor5=Ben Taskar
|editor6=S.V.N Vishwanathan
|editor6=S.V.N Vishwanathan
}}</ref>{{rp|7}} सूचकांक सेट <math>{1,\, \dots,\, k}</math> सिस्टम के [[ माइक्रोस्टेट (सांख्यिकीय यांत्रिकी) ]] हैं; आदानों <math>z_i</math> उस अवस्था की ऊर्जाएँ हैं; विभाजक को विभाजन फलन (सांख्यिकीय यांत्रिकी) के रूप में जाना जाता है, जिसे अक्सर निरूपित किया जाता है {{mvar|Z}}; और कारक {{mvar|β}} [[ शीतलता ]] (या [[ थर्मोडायनामिक बीटा ]], या [[ उलटा तापमान ]]) कहा जाता है।
}}</ref>{{rp|7}} सूचकांक समुच्चय <math>{1,\, \dots,\, k}</math> प्रणाली के [[ माइक्रोस्टेट (सांख्यिकीय यांत्रिकी) |सूक्ष्म अवस्था]] हैं। इनपुट <math>z_i</math> उस अवस्था की ऊर्जाएँ हैं, जहाँ विभाजक को विभाजन फलन के रूप में जाना जाता है, जिसे अधिकांश निरूपित किया जाता है {{mvar|Z}} और कारक {{mvar|β}} [[ शीतलता | शीतलता]][[ थर्मोडायनामिक बीटा |थर्मोडायनामिक बीटा]] , या [[ उलटा तापमान |विपरीत तापमान]] कहा जाता है।


== अनुप्रयोग ==
== अनुप्रयोग ==
सॉफ्टमैक्स फलन का उपयोग विभिन्न मल्टीक्लास वर्गीकरण विधियों में किया जाता है, जैसे कि मल्टीनोमियल तार्किक रिग्रेशन (जिसे सॉफ्टमैक्स रिग्रेशन भी कहा जाता है)<ref name="bishop">{{cite book |first=Christopher M. |last=Bishop |year=2006 |title=पैटर्न मान्यता और मशीन प्रवीणता|publisher=Springer |isbn=0-387-31073-8 }}</ref>{{rp|206–209}} [http://ufldl.stanford.edu/tutorial/supervised/SoftmaxRegression/], मल्टीक्लास [[ रैखिक विभेदक विश्लेषण ]], [[ भोले बेयस क्लासिफायरियर ]] और आर्टिफिशियल न्यूरल नेटवर्क।<ref>ai-faq [http://www.faqs.org/faqs/ai-faq/neural-nets/part2/section-12.html What is a softmax activation function?]</ref> विशेष रूप से, बहुराष्ट्रीय तार्किक प्रतिगमन और रैखिक विभेदक विश्लेषण में, फलन के इनपुट का परिणाम होता है {{mvar|K}} विशिष्ट रैखिक कार्य, और के लिए अनुमानित संभावना {{mvar|j}}वें वर्ग ने एक नमूना वेक्टर दिया {{math|'''x'''}} और एक वेटिंग वेक्टर {{math|'''w'''}} है:
सॉफ्टमैक्स फलन का उपयोग विभिन्न बहुवर्गीय श्रेणीविभाजन विधियों में किया जाता है, जैसे कि बहुराष्ट्रीय तार्किक प्रतिगमन जिसे सॉफ्टमैक्स तार्किक भी कहा जाता है<ref name="bishop">{{cite book |first=Christopher M. |last=Bishop |year=2006 |title=पैटर्न मान्यता और मशीन प्रवीणता|publisher=Springer |isbn=0-387-31073-8 }}</ref>{{rp|206–209}} [http://ufldl.stanford.edu/tutorial/supervised/SoftmaxRegression/], बहुवर्गीय  [[ रैखिक विभेदक विश्लेषण |रैखिक विभेदक विश्लेषण]], [[ भोले बेयस क्लासिफायरियर |अनुभवहीन  बेज वर्गीकारक]] और कृत्रिम नेटवर्क प्रसार।<ref>ai-faq [http://www.faqs.org/faqs/ai-faq/neural-nets/part2/section-12.html What is a softmax activation function?]</ref> विशेष रूप से बहुराष्ट्रीय तार्किक प्रतिगमन और रैखिक विभेदक विश्लेषण में फलन के इनपुट का परिणाम होता है {{mvar|K}} विशिष्ट रैखिक कार्य और के लिए साधारण सदिश {{math|'''x'''}} और भार सदिश {{math|'''w'''}} दिए जाने पर j वें वर्ग के लिए अनुमानित प्रायिकता होती है।


:<math>P(y=j\mid \mathbf{x}) = \frac{e^{\mathbf{x}^\mathsf{T}\mathbf{w}_j}}{\sum_{k=1}^K e^{\mathbf{x}^\mathsf{T}\mathbf{w}_k}}</math>
:<math>P(y=j\mid \mathbf{x}) = \frac{e^{\mathbf{x}^\mathsf{T}\mathbf{w}_j}}{\sum_{k=1}^K e^{\mathbf{x}^\mathsf{T}\mathbf{w}_k}}</math>
इसे की कार्य संरचना के रूप में देखा जा सकता है {{mvar|K}} रैखिक कार्य <math>\mathbf{x} \mapsto \mathbf{x}^\mathsf{T}\mathbf{w}_1, \ldots, \mathbf{x} \mapsto \mathbf{x}^\mathsf{T}\mathbf{w}_K</math> और सॉफ्टमैक्स फलन (जहाँ <math>\mathbf{x}^\mathsf{T}\mathbf{w}</math> के आंतरिक उत्पाद को दर्शाता है <math>\mathbf{x}</math> तथा <math>\mathbf{w}</math>). ऑपरेशन द्वारा परिभाषित एक रैखिक ऑपरेटर को लागू करने के बराबर है <math>\mathbf{w}</math> वैक्टर को <math>\mathbf{x}</math>, इस प्रकार मूल, संभवतः अत्यधिक-आयामी, इनपुट को वैक्टर में बदलना {{mvar|K}}-आयामी स्थान <math>\mathbb{R}^K</math>.
इसे {{mvar|K}}  रैखिक कार्यों की संरचना के रूप में देखा जा सकता है <math>\mathbf{x} \mapsto \mathbf{x}^\mathsf{T}\mathbf{w}_1, \ldots, \mathbf{x} \mapsto \mathbf{x}^\mathsf{T}\mathbf{w}_K</math> और सॉफ्टमैक्स फलन (जहाँ <math>\mathbf{x}^\mathsf{T}\mathbf{w}</math> के आंतरिक उत्पाद को दर्शाता है <math>\mathbf{x}</math> तथा <math>\mathbf{w}</math>). यह ऑपरेशन <math>\mathbf{w}</math> द्वारा परिभाषित एक रैखिक ऑपरेटर को सदिश <math>\mathbf{x}</math> पर लागू करने के बराबर है, इस प्रकार मूल को बदलना, लगभग अत्यधिक {{mvar|K}} आयामी अंतरिक्ष में सदिश के लिए इनपुट <math>\mathbb{R}^K</math> है।


=== तंत्रिका नेटवर्क ===
=== तंत्रिका नेटवर्क ===
मानक सॉफ्टमैक्स फलन का उपयोग अक्सर तंत्रिका नेटवर्क-आधारित क्लासिफायरियर की अंतिम परत में किया जाता है। इस तरह के नेटवर्क को आमतौर पर एक [[ क्रॉस एन्ट्रापी ]] (या [[ क्रोस एंट्रोपी ]]) शासन के तहत प्रशिक्षित किया जाता है, जो बहुराष्ट्रीय रसद प्रतिगमन का एक गैर-रैखिक संस्करण देता है।
मानक सॉफ्टमैक्स फलन का उपयोग अधिकांश तंत्रिका नेटवर्क-आधारित वर्गीकारक की अंतिम परत में किया जाता है। इस तरह के नेटवर्क को सामान्य रूप से एक लॉग लॉस या  [[ क्रॉस एन्ट्रापी |क्रॉस एन्ट्रापी]] शासन के तहत प्रशिक्षित किया जाता है, जिससे बहुराष्ट्रीय तार्किक प्रतिगमन का एक गैर-रैखिक संस्करण मिलता है।


चूंकि फलन एक वेक्टर और एक विशिष्ट इंडेक्स को मैप करता है <math>i</math> एक वास्तविक मूल्य के लिए, व्युत्पन्न को सूचकांक को ध्यान में रखना चाहिए:
चूंकि फलन एक सदिश और एक विशिष्ट सूचक <math>i</math> को एक वास्तविक मान पर मैप करता है, व्युत्पन्न सूचक को ध्यान में रखना चाहिए।


<math display="block">\frac{\partial}{\partial q_k}\sigma(\textbf{q}, i) =  \sigma(\textbf{q}, i)(\delta_{ik} - \sigma(\textbf{q}, k)).</math>
<math display="block">\frac{\partial}{\partial q_k}\sigma(\textbf{q}, i) =  \sigma(\textbf{q}, i)(\delta_{ik} - \sigma(\textbf{q}, k)).</math>
यह व्यंजक अनुक्रमित में सममित है <math>i, k</math> और इस प्रकार भी व्यक्त किया जा सकता है
यह व्यंजक अनुक्रमित में सममित है <math>i, k</math> को इस प्रकार भी व्यक्त किया जा सकता है


:<math> \frac{\partial}{\partial q_k}\sigma(\textbf{q}, i) =  \sigma(\textbf{q}, k)(\delta_{ik} - \sigma(\textbf{q}, i)).</math>
:<math> \frac{\partial}{\partial q_k}\sigma(\textbf{q}, i) =  \sigma(\textbf{q}, k)(\delta_{ik} - \sigma(\textbf{q}, i)).</math>
यहाँ, [[ क्रोनकर डेल्टा ]] का उपयोग सादगी के लिए किया जाता है (cf. एक [[ सिग्मॉइड फ़ंक्शन | सिग्मॉइड फलन]] का व्युत्पन्न, फलन के माध्यम से ही व्यक्त किया जा रहा है)।
यहाँ [[ क्रोनकर डेल्टा |क्रोनकर डेल्टा]] का उपयोग सादगी के लिए किया जाता है (cf. एक [[ सिग्मॉइड फ़ंक्शन | सिग्मॉइड फलन]] का व्युत्पन्न फलन के माध्यम से ही व्यक्त किया जा रहा है)।


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


यदि फलन पैरामीटर के साथ स्केल किया गया है <math>\beta</math>, तो इन अभिव्यक्तियों को गुणा किया जाना चाहिए <math>\beta</math>.
यदि फलन <math>\beta</math>, पैरामीटर के साथ परिबंधित किया गया है, तो इन अभिव्यक्तियों को <math>\beta</math> से गुणा किया जाना चाहिए।


एक संभाव्यता मॉडल के लिए बहुराष्ट्रीय लॉगिट देखें जो सॉफ्टमैक्स सक्रियण फलन का उपयोग करता है।
सॉफ्टमैक्स सक्रियण फलन का उपयोग करने वाले प्रायिकता प्रारूप के लिए बहुराष्ट्रीय लॉग देखें।


=== [[ सुदृढीकरण सीखना ]] ===
=== [[ सुदृढीकरण सीखना | प्रबलीकरण सीखना]] ===
सुदृढीकरण सीखने के क्षेत्र में, मूल्यों को क्रिया संभावनाओं में बदलने के लिए एक सॉफ्टमैक्स फलन का उपयोग किया जा सकता है। आमतौर पर इस्तेमाल किया जाने वाला फलन है:<ref>Sutton, R. S. and Barto A. G. ''Reinforcement Learning: An Introduction''. The MIT Press, Cambridge, MA, 1998. [http://incompleteideas.net/book/ebook/node17.html Softmax Action Selection]</ref>
प्रबलीकरण सीखने के क्षेत्र में मानों को क्रिया संभावनाओं में बदलने के लिए एक सॉफ्टमैक्स फलन का उपयोग किया जा सकता है। सामान्य रूप से उपयोग किया जाने वाला फलन है।<ref>Sutton, R. S. and Barto A. G. ''Reinforcement Learning: An Introduction''. The MIT Press, Cambridge, MA, 1998. [http://incompleteideas.net/book/ebook/node17.html Softmax Action Selection]</ref>
<math display="block">P_t(a) = \frac{\exp(q_t(a)/\tau)}{\sum_{i=1}^n\exp(q_t(i)/\tau)} \text{,}</math>
<math display="block">P_t(a) = \frac{\exp(q_t(a)/\tau)}{\sum_{i=1}^n\exp(q_t(i)/\tau)} \text{,}</math>
जहां कार्रवाई मूल्य <math>q_t(a)</math> निम्नलिखित कार्रवाई के अपेक्षित इनाम के अनुरूप है और <math>\tau</math> एक तापमान पैरामीटर (सांख्यिकीय यांत्रिकी के संकेत में) कहा जाता है। उच्च तापमान के लिए (<math>\tau \to \infty</math>), सभी क्रियाओं की संभावना लगभग समान होती है और तापमान जितना कम होता है, उतने अधिक अपेक्षित पुरस्कार संभाव्यता को प्रभावित करते हैं। कम तापमान के लिए (<math>\tau \to 0^+</math>), उच्चतम अपेक्षित इनाम के साथ कार्रवाई की संभावना 1 हो जाती है।
 
जहां प्रक्रिया मान <math>q_t(a)</math> निम्नलिखित प्रक्रिया के अपेक्षित प्रतिफल के अनुरूप है और <math>\tau</math> एक तापमान (पैरामीटर सांख्यिकीय यांत्रिकी के संकेत में) कहा जाता है। उच्च तापमान के लिए <math>\tau \to \infty</math> सभी क्रियाओं की संभावना लगभग समान होती है और तापमान जितना कम होता है, उतने अधिक अपेक्षित प्रतिफल प्रायिकता को प्रभावित करते हैं। कम तापमान के लिए <math>\tau \to 0^+</math> उच्चतम अपेक्षित प्रतिफल के साथ प्रक्रिया की संभावना 1 हो जाती है।


== कम्प्यूटेशनल जटिलता और उपचार ==
== कम्प्यूटेशनल जटिलता और उपचार ==
तंत्रिका नेटवर्क अनुप्रयोगों में, संख्या {{mvar|K}} संभावित परिणामों की संख्या अक्सर बड़ी होती है, उदा। [[ भाषा मॉडल ]] के मामले में जो एक शब्दावली से सबसे संभावित परिणाम की भविष्यवाणी करता है जिसमें लाखों संभावित शब्द हो सकते हैं।<ref name=":0">{{Cite journal |last=Onal |first=Kezban Dilek |last2=Zhang |first2=Ye |last3=Altingovde |first3=Ismail Sengor |last4=Rahman |first4=Md Mustafizur |last5=Karagoz |first5=Pinar |last6=Braylan |first6=Alex |last7=Dang |first7=Brandon |last8=Chang |first8=Heng-Lu |last9=Kim |first9=Henna |last10=McNamara |first10=Quinten |last11=Angert |first11=Aaron |date=2018-06-01 |title=तंत्रिका सूचना पुनर्प्राप्ति: प्रारंभिक वर्षों के अंत में|url=https://doi.org/10.1007/s10791-017-9321-y |journal=Information Retrieval Journal |language=en |volume=21 |issue=2 |pages=111–182 |doi=10.1007/s10791-017-9321-y |issn=1573-7659}}</ref> यह सॉफ्टमैक्स परत के लिए गणना कर सकता है (अर्थात मैट्रिक्स गुणन को निर्धारित करने के लिए <math>z_i</math>, इसके बाद सॉफ्टमैक्स फलन का अनुप्रयोग) कम्प्यूटेशनल रूप से महंगा है।<ref name=":0" /><ref name=":1">{{Cite journal |last=Chen |first=Wenlin |last2=Grangier |first2=David |last3=Auli |first3=Michael |date=August 2016 |title=बड़े शब्दावली तंत्रिका भाषा मॉडल प्रशिक्षण के लिए रणनीतियाँ|url=https://aclanthology.org/P16-1186 |journal=Proceedings of the 54th Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers) |location=Berlin, Germany |publisher=Association for Computational Linguistics |pages=1975–1985 |doi=10.18653/v1/P16-1186}}</ref> क्या अधिक है, इस तरह के तंत्रिका नेटवर्क को प्रशिक्षित करने के लिए [[ ढतला हुआ वंश ]] [[ पीछे प्रसार ]] विधि में प्रत्येक प्रशिक्षण उदाहरण के लिए सॉफ्टमैक्स की गणना करना शामिल है, और प्रशिक्षण उदाहरणों की संख्या भी बड़ी हो सकती है। सॉफ्टमैक्स के लिए कम्प्यूटेशनल प्रयास बड़े तंत्रिका भाषा मॉडल के विकास में एक प्रमुख सीमित कारक बन गया, जो प्रशिक्षण समय को कम करने के लिए विभिन्न उपायों को प्रेरित करता है।<ref name=":0" /><ref name=":1" />
तंत्रिका नेटवर्क अनुप्रयोगों में, संभावित परिणामों की संख्या {{mvar|K}} अधिकांश बड़ी होती है, उदाहरण- तंत्रिका  [[ भाषा मॉडल |भाषा प्रारूप]] की स्थिति में जो एक शब्दावली से सबसे संभावित परिणाम की पूर्वानुमान करता है जिसमें लाखों संभावित शब्द हो सकते हैं।<ref name=":0">{{Cite journal |last=Onal |first=Kezban Dilek |last2=Zhang |first2=Ye |last3=Altingovde |first3=Ismail Sengor |last4=Rahman |first4=Md Mustafizur |last5=Karagoz |first5=Pinar |last6=Braylan |first6=Alex |last7=Dang |first7=Brandon |last8=Chang |first8=Heng-Lu |last9=Kim |first9=Henna |last10=McNamara |first10=Quinten |last11=Angert |first11=Aaron |date=2018-06-01 |title=तंत्रिका सूचना पुनर्प्राप्ति: प्रारंभिक वर्षों के अंत में|url=https://doi.org/10.1007/s10791-017-9321-y |journal=Information Retrieval Journal |language=en |volume=21 |issue=2 |pages=111–182 |doi=10.1007/s10791-017-9321-y |issn=1573-7659}}</ref> यह सॉफ्टमैक्स परत के लिए गणना कर सकता है अर्थात आव्यूह गुणन को निर्धारित करने के लिए <math>z_i</math>, इसके बाद सॉफ्टमैक्स फलन का अनुप्रयोग कम्प्यूटेशनल रूप से महंगा है।<ref name=":0" /><ref name=":1">{{Cite journal |last=Chen |first=Wenlin |last2=Grangier |first2=David |last3=Auli |first3=Michael |date=August 2016 |title=बड़े शब्दावली तंत्रिका भाषा मॉडल प्रशिक्षण के लिए रणनीतियाँ|url=https://aclanthology.org/P16-1186 |journal=Proceedings of the 54th Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers) |location=Berlin, Germany |publisher=Association for Computational Linguistics |pages=1975–1985 |doi=10.18653/v1/P16-1186}}</ref> क्या अधिक है, इस तरह के तंत्रिका नेटवर्क के प्रशिक्षण के लिए [[ ढतला हुआ वंश |ग्रेडिएंट डिसेंट बैकप्रोपैजेशन]] विधि में प्रत्येक प्रशिक्षण उदाहरण के लिए सॉफ्टमैक्स की गणना करना सम्मिलित है,तथा प्रशिक्षण उदाहरणों की संख्या भी बड़ी हो सकती है। सॉफ्टमैक्स के लिए कम्प्यूटेशनल प्रयास बड़े तंत्रिका भाषा प्रारूप के विकास में एक प्रमुख सीमित कारक बन गया, जो प्रशिक्षण समय को कम करने के लिए विभिन्न उपायों को प्रेरित करता है।<ref name=":0" /><ref name=":1" />
 
अधिक कुशल गणना के लिए सॉफ्टमैक्स परत को पुनर्गठित करने वाले दृष्टिकोणों में पदानुक्रमित सॉफ्टमैक्स और विभेदित सॉफ्टमैक्स सम्मिलित हैं।<ref name=":0" /> पदानुक्रमित सॉफ्टमैक्स 2005 में मोरिन और [[ जोशुआ बेंगियो ]] द्वारा प्रस्तुत किया गया, यह एक बाइनरी ट्री संरचना का उपयोग करता है जहां परिणाम (शब्दावली शब्द) उत्तरदायित्व होते हैं और मध्यवर्ती नोड्स परिणामों के उपयुक्त रूप से चयनित वर्ग होते हैं, जो  [[ अव्यक्त चर |अव्यक्त चर]]  बनाते हैं।<ref name=":1" /><ref name=":2">{{Cite journal |last=Morin |first=Frederic |last2=Bengio |first2=Yoshua |date=2005-01-06 |title=पदानुक्रमित संभाव्य तंत्रिका नेटवर्क भाषा मॉडल|url=https://www.iro.umontreal.ca/~lisa/pointeurs/hierarchical-nnlm-aistats05.pdf |journal=International Workshop on Artificial Intelligence and Statistics |language=en |publisher=PMLR |pages=246–252}}</ref> एक उत्तरदायी परिणाम की वांछित प्रायिकता सॉफ्टमैक्स मान की गणना तब रूट से उस पत्ते तक के सभी नोड्स की संभावनाओं के उत्पाद के रूप में की जा सकती है।<ref name=":1" />आदर्श रूप से जब ट्री संतुलित होता है, तो इससे कम्प्यूटेशनल जटिलता कम हो जाएगी <math>O(K)</math> प्रति <math>O(\log_2 K)</math>.<ref name=":2" />व्यवहार में, परिणाम कक्षाओं में परिणामों को समूहबद्ध करने के लिए एक अच्छी रणनीति चुनने पर निर्भर करते हैं।<ref name=":1" /><ref name=":2" /> मापनीयता प्राप्त करने के लिए Google के [[ word2vec ]] प्रारूप (2013 में प्रस्तुत) में इसके लिए एक  [[ हफमैन का पेड़ |हफमैन ट्री]]  का उपयोग किया गया था।<ref name=":0" />
 
एक दूसरे प्रकार का उपाय संशोधित हानि कार्यों के साथ सॉफ्टमैक्स (प्रशिक्षण के दौरान) का अनुमान लगाने पर आधारित होता है, जो पूर्ण सामान्यीकरण कारक की गणना से बचते हैं।<ref name=":0" />इनमें ऐसे तरीके सम्मिलित हैं, जो सामान्यीकरण योग को परिणामों के प्रतिरूप तक सीमित करते हैं। (उदाहरण के लिए महत्व प्रतिचयन, लक्ष्य प्रतिचयन)।<ref name=":0" /><ref name=":1" />
== गणितीय गुण ==
ज्यामितीय रूप से सॉफ्टमैक्स फलन  [[ सदिश स्थल |सदिश स्थल]]  को सम्बद्ध  करता है।  <math>\mathbb{R}^K</math> सिम्प्लेक्स मानक की  [[ सीमा (टोपोलॉजी) |सीमा (टोपोलॉजी)]]  के लिए <math>(K-1)</math>-सिम्प्लेक्स, आयाम को एक से काटकर (श्रेणी <math>(K - 1)</math>-आयामी सिंप्लेक्स मे  <math>K</math>-आयामी अंतरिक्ष), [[ रैखिक बाधा | रैखिक बाधा]]  के कारण कि सभी आउटपुट योग 1 का अर्थ है, कि यह एक  [[ hyperplane |अधिसमतल]]  पर स्थित होता है।


अधिक कुशल गणना के लिए सॉफ्टमैक्स परत को पुनर्गठित करने वाले दृष्टिकोणों में पदानुक्रमित सॉफ्टमैक्स और विभेदित सॉफ्टमैक्स शामिल हैं।<ref name=":0" />पदानुक्रमित सॉफ्टमैक्स (2005 में मोरिन और [[ जोशुआ बेंगियो ]] द्वारा पेश किया गया) एक बाइनरी ट्री संरचना का उपयोग करता है जहां परिणाम (शब्दावली शब्द) पत्ते होते हैं और मध्यवर्ती नोड्स परिणामों के उपयुक्त रूप से चयनित वर्ग होते हैं, जो [[ अव्यक्त चर ]] बनाते हैं।<ref name=":1" /><ref name=":2">{{Cite journal |last=Morin |first=Frederic |last2=Bengio |first2=Yoshua |date=2005-01-06 |title=पदानुक्रमित संभाव्य तंत्रिका नेटवर्क भाषा मॉडल|url=https://www.iro.umontreal.ca/~lisa/pointeurs/hierarchical-nnlm-aistats05.pdf |journal=International Workshop on Artificial Intelligence and Statistics |language=en |publisher=PMLR |pages=246–252}}</ref> एक पत्ती (परिणाम) की वांछित संभाव्यता (सॉफ्टमैक्स मान) की गणना तब रूट से उस पत्ते तक के सभी नोड्स की संभावनाओं के उत्पाद के रूप में की जा सकती है।<ref name=":1" />आदर्श रूप से, जब पेड़ संतुलित होता है, तो इससे कम्प्यूटेशनल जटिलता कम हो जाएगी <math>O(K)</math> प्रति <math>O(\log_2 K)</math>.<ref name=":2" />व्यवहार में, परिणाम कक्षाओं में परिणामों को समूहबद्ध करने के लिए एक अच्छी रणनीति चुनने पर निर्भर करते हैं।<ref name=":1" /><ref name=":2" />स्केलेबिलिटी हासिल करने के लिए Google के [[ word2vec ]] मॉडल (2013 में पेश) में इसके लिए एक [[ हफमैन का पेड़ ]] का इस्तेमाल किया गया था।<ref name=":0" />
मुख्य विकर्ण के साथ <math>(x,\, x,\, \dots,\, x),</math> सॉफ्टमैक्स आउटपुट पर सिर्फ एक समान वितरण है <math>(1/n, \dots, 1/n)</math>: समान स्कोर से समान संभावनाएँ प्राप्त होती हैं।


एक दूसरे प्रकार का उपाय संशोधित हानि कार्यों के साथ सॉफ्टमैक्स (प्रशिक्षण के दौरान) का अनुमान लगाने पर आधारित है जो पूर्ण सामान्यीकरण कारक की गणना से बचते हैं।<ref name=":0" />इनमें ऐसे तरीके शामिल हैं जो सामान्यीकरण योग को परिणामों के नमूने तक सीमित रखते हैं (जैसे महत्व नमूनाकरण, लक्ष्य नमूनाकरण)।<ref name=":0" /><ref name=":1" />
अधिक सामान्यतः, सॉफ्टमैक्स अनुवाद के तहत प्रत्येक समन्वय में समान मान द्वारा अपरिवर्तनीय है। जोड़ना <math>\mathbf{c} = (c,\, \dots,\, c)</math> इनपुट के लिए <math>\mathbf{z}</math> पैदावार <math>\sigma(\mathbf{z} + \mathbf{c}) = \sigma(\mathbf{z})</math>, क्योंकि यह प्रत्येक घातांक को उसी कारक से गुणा करता है, <math>e^c</math> (<math>e^{z_i + c} = e^{z_i} \cdot e^c</math>) इसलिए इनके अनुपात मे कोई परिवर्तन नही होता हैं।
 
: <math>\sigma(\mathbf{z} + \mathbf{c})_j = \frac{e^{z_j + c}}{\sum_{k=1}^K e^{z_k + c}} = \frac{e^{z_j} \cdot e^c}{\sum_{k=1}^K e^{z_k} \cdot e^c} = \sigma(\mathbf{z})_j.</math>




== गणितीय गुण ==
ज्यामितीय रूप से सॉफ्टमैक्स फलन [[ सदिश स्थल ]] को मैप करता है <math>\mathbb{R}^K</math> मानक सिम्प्लेक्स | मानक की [[ सीमा (टोपोलॉजी) ]] के लिए <math>(K-1)</math>-सिम्प्लेक्स, आयाम को एक से काटकर (श्रेणी a <math>(K - 1)</math>-आयामी सिंप्लेक्स in <math>K</math>-आयामी अंतरिक्ष), [[ रैखिक बाधा ]] के कारण कि सभी आउटपुट योग 1 का अर्थ है कि यह एक [[ hyperplane ]] पर स्थित है।


मुख्य विकर्ण के साथ <math>(x,\, x,\, \dots,\, x),</math> सॉफ्टमैक्स आउटपुट पर सिर्फ एक समान वितरण है, <math>(1/n, \dots, 1/n)</math>: समान स्कोर से समान संभावनाएँ प्राप्त होती हैं।
ज्यामितीय रूप से, सॉफ्टमैक्स विकर्णों के साथ स्थिर है। यह वह आयाम है जो समाप्त हो गया है, और सॉफ्टमैक्स आउटपुट इनपुट स्कोर में अनुवाद से स्वतंत्र होने के अनुरूप है (0 स्कोर का विकल्प)। कोई यह मानकर इनपुट स्कोर को सामान्य कर सकता है कि योग शून्य है (औसत घटाएं: <math>\mathbf{c}</math> जहाँ पर  <math display="inline">c = \frac{1}{n} \sum z_i</math>), और फिर सॉफ्टमैक्स उन बिंदुओं का अधिसमतल लेता है।  जिनका योग शून्य होता है, <math display="inline">\sum z_i = 0</math>, घनात्मक मानों के खुले सिंप्लेक्स के लिए जिसका योग 1 है <math display="inline">\sum \sigma(\mathbf{z})_i = 1</math>, उसी प्रकार जैसे घातांक 0 से 1 लेता है, <math>e^0 = 1</math> और घनात्मक होता है। इसके विपरीत सॉफ्टमैक्स स्केलिंग के तहत अपरिवर्तनीय नहीं होते है।


अधिक सामान्यतः, सॉफ्टमैक्स अनुवाद के तहत प्रत्येक समन्वय में समान मान द्वारा अपरिवर्तनीय है: जोड़ना <math>\mathbf{c} = (c,\, \dots,\, c)</math> इनपुट के लिए <math>\mathbf{z}</math> पैदावार <math>\sigma(\mathbf{z} + \mathbf{c}) = \sigma(\mathbf{z})</math>, क्योंकि यह प्रत्येक घातांक को उसी कारक से गुणा करता है, <math>e^c</math> (इसलिये <math>e^{z_i + c} = e^{z_i} \cdot e^c</math>), इसलिए अनुपात नहीं बदलते हैं:
उदाहरण के लिए, <math>\sigma\bigl((0,\, 1)\bigr) = \bigl(1/(1 + e),\, e/(1 + e)\bigr)</math> लेकिन  <math>\sigma\bigl((0, 2)\bigr) = \bigl(1/\left(1 + e^2\right),\, e^2/\left(1 + e^2\right)\bigr).</math>


: <math>\sigma(\mathbf{z} + \mathbf{c})_j = \frac{e^{z_j + c}}{\sum_{k=1}^K e^{z_k + c}} = \frac{e^{z_j} \cdot e^c}{\sum_{k=1}^K e^{z_k} \cdot e^c} = \sigma(\mathbf{z})_j.</math>
मानक तार्किक फलन 2-आयामी अंतरिक्ष में 1-आयामी अक्ष के लिए विशेष परिस्थिति होती है, x -अक्ष में कहें {{math|(x, y)}} समतल एक चर 0 पर तय किया गया है। (माना  <math>z_2 = 0</math>), इसलिए <math>e^0 = 1</math>, और अन्य चर भिन्न हो सकते हैं, इसे निरूपित करें <math>z_1 = x</math>, इसलिए <math display="inline">e^{z_1}/\sum_{k=1}^2 e^{z_k} = e^x/\left(e^x + 1\right),</math> मानक तार्किक फलन <math display="inline">e^{z_2}/\sum_{k=1}^2 e^{z_k} = 1/\left(e^x + 1\right),</math> इसका  अनुपूरण (जिसका अर्थ है कि वे 1 तक जोड़ते हैं)। 1-आयामी इनपुट को वैकल्पिक रूप से रेखा के रूप में व्यक्त किया जा सकता है <math>(x/2,\, -x/2)</math>, आउटपुट के साथ <math>e^{x/2}/\left(e^{x/2} + e^{-x/2}\right) = e^x/\left(e^x + 1\right)</math> तथा <math>e^{-x/2}/\left(e^{x/2} + e^{-x/2}\right) = 1/\left(e^x + 1\right).</math>
ज्यामितीय रूप से, सॉफ्टमैक्स विकर्णों के साथ स्थिर होता है: यह वह आयाम है जिसे समाप्त कर दिया जाता है, और सॉफ्टमैक्स आउटपुट के इनपुट स्कोर में अनुवाद से स्वतंत्र होने के अनुरूप होता है (0 स्कोर का विकल्प)। कोई यह मानकर इनपुट स्कोर को सामान्य कर सकता है कि योग शून्य है (औसत घटाएं: <math>\mathbf{c}</math> कहाँ पे <math display="inline">c = \frac{1}{n} \sum z_i</math>), और फिर सॉफ्टमैक्स उन बिंदुओं का हाइपरप्लेन लेता है जिनका योग शून्य होता है, <math display="inline">\sum z_i = 0</math>, सकारात्मक मानों के खुले सिंप्लेक्स के लिए जिसका योग 1 है<math display="inline">\sum \sigma(\mathbf{z})_i = 1</math>, उसी प्रकार जैसे घातांक 0 से 1 लेता है, <math>e^0 = 1</math> और सकारात्मक है।


इसके विपरीत, सॉफ्टमैक्स स्केलिंग के तहत अपरिवर्तनीय नहीं है। उदाहरण के लिए, <math>\sigma\bigl((0,\, 1)\bigr) = \bigl(1/(1 + e),\, e/(1 + e)\bigr)</math> लेकिन <math>\sigma\bigl((0, 2)\bigr) = \bigl(1/\left(1 + e^2\right),\, e^2/\left(1 + e^2\right)\bigr).</math>
सॉफ्टमैक्स फलन भी LogSumExp फलन का ग्रेडिएंट है, एक सहज अधिकतम-
मानक तार्किक फलन 2-आयामी अंतरिक्ष में 1-आयामी अक्ष के लिए विशेष मामला है, एक्स-अक्ष में कहें {{math|(x, y)}} विमान। एक चर 0 पर तय किया गया है (कहते हैं <math>z_2 = 0</math>), इसलिए <math>e^0 = 1</math>, और अन्य चर भिन्न हो सकते हैं, इसे निरूपित करें <math>z_1 = x</math>, इसलिए <math display="inline">e^{z_1}/\sum_{k=1}^2 e^{z_k} = e^x/\left(e^x + 1\right),</math> मानक रसद समारोह, और <math display="inline">e^{z_2}/\sum_{k=1}^2 e^{z_k} = 1/\left(e^x + 1\right),</math> इसका पूरक (जिसका अर्थ है कि वे 1 तक जोड़ते हैं)। 1-आयामी इनपुट को वैकल्पिक रूप से रेखा के रूप में व्यक्त किया जा सकता है <math>(x/2,\, -x/2)</math>, आउटपुट के साथ <math>e^{x/2}/\left(e^{x/2} + e^{-x/2}\right) = e^x/\left(e^x + 1\right)</math> तथा <math>e^{-x/2}/\left(e^{x/2} + e^{-x/2}\right) = 1/\left(e^x + 1\right).</math>
सॉफ्टमैक्स फलन भी LogSumExp फलन का ग्रेडिएंट है, एक सहज अधिकतम:


: <math>\frac{\partial}{\partial z_i} \operatorname{LSE}(\mathbf{z}) = \frac{\exp z_i}{\sum_{j=1}^{K} \exp z_j} = \sigma(\mathbf{z})_i, \quad \text{ for } i = 1, \dotsc , K, \quad \mathbf{z} = (z_1,\, \dotsc,\, z_K) \in\R^K,</math>
: <math>\frac{\partial}{\partial z_i} \operatorname{LSE}(\mathbf{z}) = \frac{\exp z_i}{\sum_{j=1}^{K} \exp z_j} = \sigma(\mathbf{z})_i, \quad \text{ for } i = 1, \dotsc , K, \quad \mathbf{z} = (z_1,\, \dotsc,\, z_K) \in\R^K,</math>
जहाँ LogSumExp फलन को इस रूप में परिभाषित किया गया है <math>\operatorname{LSE}(z_1,\, \dots,\, z_n) = \log\left(\exp(z_1) + \cdots + \exp(z_n)\right)</math>.
जहाँ LogSumExp फलन को इस रूप में परिभाषित किया गया है <math>\operatorname{LSE}(z_1,\, \dots,\, z_n) = \log\left(\exp(z_1) + \cdots + \exp(z_n)\right)</math>.


== इतिहास ==
== इतिहास ==
सॉफ्टमैक्स फलन का उपयोग सांख्यिकीय यांत्रिकी में बोल्ट्जमैन वितरण के रूप में आधारभूत पेपर में किया गया था {{harvtxt|Boltzmann|1868}},<ref>{{cite journal |last=Boltzmann |first=Ludwig |authorlink=Ludwig Boltzmann
सॉफ्टमैक्स फलन का उपयोग सांख्यिकीय यांत्रिकी में बोल्ट्जमैन वितरण के रूप में मूलभूत लेख {{harvtxt|बोल्ट्जमैन |1868}} में किया गया था, प्रभावशाली पाठ्यपुस्तक {{harvtxt|गिब्स|1902}}.<ref>{{cite book
|year=1868
|title=गतिमान भौतिक बिंदुओं के बीच जीवित शक्ति के संतुलन पर अध्ययन|trans-title=Studies on the balance of living force between moving material points
|journal=Wiener Berichte |volume=58 |pages=517–560
}}</ref> प्रभावशाली पाठ्यपुस्तक में औपचारिक और लोकप्रिय {{harvtxt|Gibbs|1902}}.<ref>{{cite book
|first=Josiah Willard |last=Gibbs |authorlink=Josiah Willard Gibbs
|first=Josiah Willard |last=Gibbs |authorlink=Josiah Willard Gibbs
|year=1902
|year=1902
|title=सांख्यिकीय यांत्रिकी में प्राथमिक सिद्धांत|title-link=सांख्यिकीय यांत्रिकी में प्राथमिक सिद्धांत}}</ref>
|title=सांख्यिकीय यांत्रिकी में प्राथमिक सिद्धांत|title-link=सांख्यिकीय यांत्रिकी में प्राथमिक सिद्धांत}}</ref> में औपचारिक और लोकप्रिय हुआ।
[[ निर्णय सिद्धांत ]] में सॉफ्टमैक्स के उपयोग का श्रेय दिया जाता है {{harvtxt|Luce|1959}},<ref name="Gao">{{cite arXiv|eprint=1704.00805|last1=Gao|first1=Bolin|title=गेम थ्योरी और रीइन्फोर्समेंट लर्निंग में एप्लीकेशन के साथ सॉफ्टमैक्स फंक्शन के गुणों पर|last2=Pavel|first2=Lacra|class=math.OC|year=2017}}</ref>{{rp|1}} जिन्होंने तर्कसंगत पसंद सिद्धांत में [[ अप्रासंगिक विकल्पों की स्वतंत्रता ]] के स्वयंसिद्ध का उपयोग सापेक्ष वरीयताओं के लिए लूस की पसंद के स्वयंसिद्ध में सॉफ्टमैक्स को निकालने के लिए किया।
 
[[ निर्णय सिद्धांत |निर्णय सिद्धांत]] में सॉफ्टमैक्स के उपयोग का श्रेय {{harvtxt|लूस|1959}},<ref name="Gao">{{cite arXiv|eprint=1704.00805|last1=Gao|first1=Bolin|title=गेम थ्योरी और रीइन्फोर्समेंट लर्निंग में एप्लीकेशन के साथ सॉफ्टमैक्स फंक्शन के गुणों पर|last2=Pavel|first2=Lacra|class=math.OC|year=2017}}</ref>{{rp|1}} को दिया जाता है, जिन्होंने तार्किक उचित सिद्धांत में [[ अप्रासंगिक विकल्पों की स्वतंत्रता |अप्रासंगिक विकल्पों की स्वतंत्रता]] के सिद्धांत का उपयोग करके सापेक्षिक प्राथमिकताओं के लिए लूस के उचित सिद्धांत सॉफ्टमैक्स को निकाला गया।
 
मशीन लर्निंग में, सॉफ्टमैक्स शब्द का श्रेय जॉन एस. ब्रिडल को 1989 के दो सम्मेलन पत्रों मे {{harvtxt|ब्रिडल|1990a}}:<ref name="Gao" />{{rp|1}}  और {{harvtxt|ब्रिडल|1990b}}:<ref name="sako2018" /> में दिया जाता है।


मशीन लर्निंग में, सॉफ्टमैक्स शब्द का श्रेय 1989 के दो सम्मेलन पत्रों में जॉन एस. ब्रिडल को दिया जाता है, {{harvtxt|Bridle|1990a}}:<ref name="Gao"/>{{rp|1}} तथा {{harvtxt|Bridle|1990b}}:<ref name="sako2018"/>
{{quote
{{quote
|We are concerned with feed-forward non-linear networks (multi-layer perceptrons, or MLPs) with multiple outputs. We wish to treat the outputs of the network as probabilities of alternatives (''e.g.'' pattern classes), conditioned on the inputs. We look for appropriate output non-linearities and for appropriate criteria for adaptation of the parameters of the network (''e.g.'' weights). We explain two modifications: probability scoring, which is an alternative to squared error minimisation, and a normalised exponential ('''softmax''') multi-input generalisation of the logistic non-linearity.<ref>{{cite conference
|हम कई आउटपुट के साथ अग्र भरण गैर रेखीय नेटवर्क (बहु परत परसेप्ट्रॉन, या एमएलपी) से संबंधित हैं। हम नेटवर्क के आउटपुट को इनपुट पर वातानुकूलित विकल्पों जैसे प्रतिरूप कक्ष की संभावनाओं के रूप में देखना चाहते हैं। हम नेटवर्क के मापदंडों के अनुकूलन के लिए उचित आउटपुट गैर-रैखिकता और उचित मानदंड के लिए देखते हैं (जैसे वजन)। हम दो संशोधनों की व्याख्या करते हैं तथा प्रायिकता स्कोरिंग जो वर्ग त्रुटि न्यूनीकरण का एक विकल्प है, और एक सामान्यीकृत घातांक सॉफ्टमैक्स गैर रेखीय का बहु-इनपुट सामान्यीकरण होता है।<ref>{{cite conference
|first=John S. |last=Bridle
|first=John S. |last=Bridle
|year=1990a
|year=1990a
Line 156: Line 162:
}}
}}
{{quote
{{quote
|For any input, the outputs must all be positive and they must sum to unity. ...
|किसी भी इनपुट के लिए, सभी आउटपुट धनात्मक होने चाहिए तथा उनका योग मे एकता होना चाहिए।
 
अनियंत्रित मानों के एक सेट को देखते हुए, {{tmath|V_j(x)}}, हम सामान्यीकृत घातीय परिवर्तन का उपयोग करके दोनों स्थितियों को सुनिश्चित कर सकते हैं।
Given a set of unconstrained values, {{tmath|V_j(x)}}, we can ensure both conditions by using a Normalised Exponential transformation:
<math>Q_j(x) = \left. e^{V_j(x)} \right/ \sum_k e^{V_k(x)} </math>
: <math>Q_j(x) = \left. e^{V_j(x)} \right/ \sum_k e^{V_k(x)} </math>
इस परिवर्तन को तार्किक का एक बहु-इनपुट सामान्यीकरण माना जा सकता है, जो संपूर्ण आउटपुट परत पर काम करता है। तथा यह अपने इनपुट मानों के स्थिति क्रम को संरक्षित करता है, और अधिकतम मान चुनने के विनर-टेक-ऑल' ऑपरेशन का एक अलग-अलग सामान्यीकरण होता है। इस कारण से हम इसे सॉफ्टमैक्स के रूप में संदर्भित करना पसंद करते हैं।<ref>{{cite conference
This transformation can be considered a multi-input generalisation of the logistic, operating on the whole output layer. It preserves the rank order of its input values, and is a differentiable generalisation of the 'winner-take-all' operation of picking the maximum value. For this reason we like to refer to it as '''softmax'''.<ref>{{cite conference
|first=John S. |last=Bridle
|first=John S. |last=Bridle
|year=1990b
|year=1990b
Line 170: Line 175:
}}</ref>{{rp|213}}
}}</ref>{{rp|213}}
}}
}}
== उदाहरण ==
यदि हम  {{math|[1, 2, 3, 4, 1, 2, 3]}} का इनपुट लेते हैं तो उसका सॉफ्टमैक्स {{math|[0.024, 0.064, 0.175, 0.475, 0.024, 0.064, 0.175]}} है। आउटपुट का अधिकांश वजन वहीं होता है जो 4 मूल इनपुट में था। यह वह है जिसके लिए फलन का सामान्य रूप से उपयोग किया जाता है: सबसे बड़े मानों को उजागर करने और उन मानों को दबाने के लिए जो अधिकतम मान से काफी नीचे हैं। लेकिन सॉफ्टमैक्स स्केल अपरिवर्तनीय नहीं होते है, इसलिए यदि इनपुट {{math|[0.1, 0.2, 0.3, 0.4, 0.1, 0.2, 0.3]}} जो 1.6 के बराबर है, तो सॉफ्टमैक्स {{math|[0.125, 0.138, 0.153, 0.169, 0.125, 0.138, 0.153]}} होगा। इससे पता चलता है कि 0 और 1 सॉफ्टमैक्स के बीच के मानों के लिए, वास्तव में, अधिकतम मान पर महत्व दिया जाता है। (कि 0.169 न केवल 0.475 से कम है, यह 0.4/1.6 = 0.25 के प्रारंभिक अनुपात से भी कम है)।
[[ पायथन (प्रोग्रामिंग भाषा) ]] कोड का उपयोग करके इस उदाहरण की गणना:


>>> import numpy as np


== उदाहरण ==
>>> a = [1.0, 2.0, 3.0, 4.0, 1.0, 2.0, 3.0]
अगर हम का इनपुट लेते हैं {{math|[1, 2, 3, 4, 1, 2, 3]}}, उसका सॉफ्टमैक्स है {{math|[0.024, 0.064, 0.175, 0.475, 0.024, 0.064, 0.175]}}. आउटपुट का अधिकांश वजन वहीं होता है जहां 4 मूल इनपुट में था। यह वह है जिसके लिए फलन का सामान्य रूप से उपयोग किया जाता है: सबसे बड़े मूल्यों को उजागर करने और उन मूल्यों को दबाने के लिए जो अधिकतम मूल्य से काफी नीचे हैं। लेकिन ध्यान दें: सॉफ्टमैक्स स्केल इनवेरिएंट नहीं है, इसलिए यदि इनपुट थे {{math|[0.1, 0.2, 0.3, 0.4, 0.1, 0.2, 0.3]}} (जो 1.6 के बराबर है) सॉफ्टमैक्स होगा {{math|[0.125, 0.138, 0.153, 0.169, 0.125, 0.138, 0.153]}}. इससे पता चलता है कि 0 और 1 सॉफ्टमैक्स के बीच के मूल्यों के लिए, वास्तव में, अधिकतम मूल्य पर जोर दिया जाता है (ध्यान दें कि 0.169 न केवल 0.475 से कम है, यह प्रारंभिक अनुपात से भी कम है {{math|1=0.4/1.6=0.25}}).


[[ पायथन (प्रोग्रामिंग भाषा) ]] कोड का उपयोग करके इस उदाहरण की गणना:
>>> np.exp(a) / np.sum(np.exp(a))  


<वाक्यविन्यास लैंग = पिकॉन>
array([0.02364054, 0.06426166, 0.1746813, 0.474833, 0.02364054,  
>>> numpy को एनपी के रूप में आयात करें
>>> ए = [1.0, 2.0, 3.0, 4.0, 1.0, 2.0, 3.0]
>>> np.exp (ए) / np.sum (np.exp (ए))
सरणी ([0.02364054, 0.06426166, 0.1746813, 0.474833, 0.02364054,
       0.06426166, 0.1746813])
       0.06426166, 0.1746813])
</वाक्यविन्यास हाइलाइट>
यह [[ जूलिया (प्रोग्रामिंग भाषा) | जूलिया (प्रोग्रामिंग भाषा)]] कोड का एक उदाहरण दिया गया है।
julia> A = [1.0, 2.0, 3.0, 4.0, 1.0, 2.0, 3.0];  # semicolon to suppress interactive output
julia> exp.(A) ./ sum(exp.(A))
7-element Array{Float64,1}:
  0.0236405
  0.0642617
  0.174681
  0.474833
  0.0236405
  0.0642617 
यह R (प्रोग्रामिंग भाषा) कोड का एक उदाहरण दिया गया है।
 
> z <- c(1.0, 2.0, 3.0, 4.0, 1.0, 2.0, 3.0)
 
> softmax <- exp(z)/sum(exp(z))
 
> softmax
 
[1] 0.02364054 0.06426166 0.17468130 0.47483300 0.02364054 0.06426166 0.17468130
 
यह अमृत (प्रोग्रामिंग भाषा) कोड का एक उदाहरण है।<ref>{{Cite web|url=https://github.com/elixir-nx/nx/tree/main/nx#examples|title = एनएक्स/एनएक्स मुख्य पर · अमृत-एनएक्स/एनएक्स}}</ref>
 
iex> t = Nx.tensor([[1, 2], [3, 4]])
 
iex> Nx.divide(Nx.exp(t), Nx.sum(Nx.exp(t))


यहाँ [[ जूलिया (प्रोग्रामिंग भाषा) ]] कोड का एक उदाहरण दिया गया है:
Nx.Tensor<


<वाक्यविन्यास लैंग = jlcon>
f64[2][2]
जूलिया> ए = [1.0, 2.0, 3.0, 4.0, 1.0, 2.0, 3.0]; # अर्धविराम इंटरैक्टिव आउटपुट को दबाने के लिए


जूलिया> ऍक्स्प.(ए) ./ योग(ऍक्स्प.(ए))
[
7-एलिमेंट ऐरे{फ्लोट64,1}:
0.0236405
0.0642617
0.174681
0.474833
0.0236405
0.0642617
0.174681
</वाक्यविन्यास हाइलाइट>


यहाँ R (प्रोग्रामिंग भाषा) कोड का एक उदाहरण दिया गया है:
[0.03205860328008499, 0.08714431874203257],


<वाक्यविन्यास लैंग = रूट>
[0.23688281808991013, 0.6439142598879722]
> जेड <- सी (1.0, 2.0, 3.0, 4.0, 1.0, 2.0, 3.0)
> सॉफ्टमैक्स <- ऍक्स्प (z)/योग (ऍक्स्प (z))
> सॉफ्टमैक्स
[1] 0.02364054 0.06426166 0.17468130 0.47483300 0.02364054 0.06426166 0.17468130
</वाक्यविन्यास हाइलाइट>


यहाँ अमृत (प्रोग्रामिंग भाषा) कोड का एक उदाहरण है:<ref>{{Cite web|url=https://github.com/elixir-nx/nx/tree/main/nx#examples|title = एनएक्स/एनएक्स मुख्य पर · अमृत-एनएक्स/एनएक्स}}</ref>
]  
<वाक्यविन्यास हाइलाइट लैंग = आईईएक्स>
iex> t = Nx.tensor(1, 2], [3, 4)
iex> Nx.divide(Nx.exp(t), Nx.sum(Nx.exp(t)))


#Nx.टेन्सर<
  f64[2][2]
  [
    [0.03205860328008499, 0.08714431874203257],
    [0.23688281808991013, 0.6439142598879722]
  ]
>
>
</वाक्यविन्यास हाइलाइट>


[[ राकू (प्रोग्रामिंग भाषा) ]] कोड का एक उदाहरण यहां दिया गया है:


<वाक्यविन्यास हाइलाइट लैंग = राकू >
 
> मेरा @z = [1.0, 2.0, 3.0, 4.0, 1.0, 2.0, 3.0];
यह  [[ राकू (प्रोग्रामिंग भाषा) |राकू (प्रोग्रामिंग भाषा)]] कोड का एक उदाहरण है।
> कहें @z.map: {exp($_)/sum(@z.map: {exp($_)})}
 
> my @z = [1.0, 2.0, 3.0, 4.0, 1.0, 2.0, 3.0];
 
> say @z.map: {exp($_)/sum(@z.map: {exp($_)})}


(0.023640543021591385 0.06426165851049616 0.17468129859572226 0.4748329997443803 0.023640543021591385 0.06426165851049616 0.17468129859572226)
(0.023640543021591385 0.06426165851049616 0.17468129859572226 0.4748329997443803 0.023640543021591385 0.06426165851049616 0.17468129859572226)
</वाक्यविन्यास हाइलाइट>


== यह भी देखें ==
== यह भी देखें ==
*[[ सॉफ्टप्लस ]]
*[[ सॉफ्टप्लस ]]
* बहुराष्ट्रीय रसद प्रतिगमन
* बहुराष्ट्रीय तार्किक प्रतिगमन
* [[ डिरिचलेट वितरण ]] - श्रेणीबद्ध वितरण का नमूना लेने का एक वैकल्पिक तरीका
* [[ डिरिचलेट वितरण ]] - श्रेणीबद्ध वितरण का प्रतिरूप लेने का एक वैकल्पिक तरीका
* विभाजन समारोह (सांख्यिकीय यांत्रिकी)
* विभाजन फलन (सांख्यिकीय यांत्रिकी)
* [[ घातीय झुकाव ]] - अधिक सामान्य संभाव्यता वितरण के लिए सॉफ्टमैक्स का सामान्यीकरण।
* [[ घातीय झुकाव ]] - अधिक सामान्य प्रायिकता वितरण के लिए सॉफ्टमैक्स का सामान्यीकरण।


== टिप्पणियाँ ==
== टिप्पणियाँ ==
Line 255: Line 261:


{{Differentiable computing}}
{{Differentiable computing}}
[[Category: कम्प्यूटेशनल तंत्रिका विज्ञान]]
 
[[Category: लॉजिस्टिक रिग्रेशन]]
[[Category:Articles with hatnote templates targeting a nonexistent page]]
[[Category:Articles with short description]]
[[Category:CS1 English-language sources (en)]]
[[Category:Collapse templates]]
[[Category:Created On 14/11/2022]]
[[Category:Machine Translated Page]]
[[Category:Navigational boxes| ]]
[[Category:Navigational boxes without horizontal lists]]
[[Category:Pages with script errors]]
[[Category:Short description with empty Wikidata description]]
[[Category:Sidebars with styles needing conversion]]
[[Category:Template documentation pages|Documentation/doc]]
[[Category:Templates generating microformats]]
[[Category:Templates that are not mobile friendly]]
[[Category:Templates using TemplateData]]
[[Category:Wikipedia metatemplates]]
[[Category:उदाहरण आर कोड वाले लेख]]
[[Category:कम्प्यूटेशनल तंत्रिका विज्ञान]]
[[Category:कार्य और मैपिंग]]
[[Category:कृत्रिम तंत्रिका नेटवर्क]]
[[Category:कृत्रिम तंत्रिका नेटवर्क]]
[[Category: कार्य और मैपिंग]]
[[Category:घातांक]]
[[Category:पायथन (प्रोग्रामिंग भाषा) कोड के उदाहरण के साथ लेख]]
[[Category:पायथन (प्रोग्रामिंग भाषा) कोड के उदाहरण के साथ लेख]]
[[Category: घातांक]]
[[Category:लेख उदाहरण के साथ जूलिया कोड]]
[[Category: लेख उदाहरण के साथ जूलिया कोड]]
[[Category:लॉजिस्टिक रिग्रेशन]]
[[Category: उदाहरण आर कोड वाले लेख]]
 
 
[[Category: Machine Translated Page]]
[[Category:Created On 14/11/2022]]

Latest revision as of 09:50, 25 November 2022

सॉफ्टमैक्स फलन, जिसे सॉफ्टर्गमैक्स[1]: 184   या सामान्यीकृत घातांकीय फलन[2]: 198   के रूप से भी जाना जाता है, K वास्तविक संख्याओं के सदिश को K संभावित परिणामों के प्रायिकता वितरण में परिवर्तित करता है। तथा यह कई आयामों के लिए तार्किक फलन का सामान्यीकरण है, जो बहुराष्ट्रीय तार्किक प्रतिगमन में उपयोग किया जाता है। सॉफ्टमैक्स फलन का उपयोग अधिकांश कृत्रिम तंत्रिका नेटवर्क के अंतिम सक्रियण फलन के रूप में किया जाता है, जो लूस के अनुरूप सिद्धान्त के आधार पर अनुमानित उत्पाद वर्गों पर प्रायिकता वितरण के लिए नेटवर्क के प्रक्षेपण को सामान्य करता है।

परिभाषा

सॉफ्टमैक्स फलन K वास्तविक संख्याओं के एक सदिश z को इनपुट के रूप में ग्रहण करता है, और इसे एक प्रायिकता वितरण में सामान्य करता है, जिसमें K संभावनाएँ होती हैं जो इनपुट संख्याओं के घातांकों के समानुपाती होती हैं। अर्थात, सॉफ्टमैक्स को लागू करने से पहले कुछ सदिश घटक ऋणात्मक या एक से अधिक हो सकते हैं। और 1 का योग नहीं हो सकता है, लेकिन सॉफ्टमैक्स लागू करने के बाद प्रत्येक घटक अंतराल में होगा, और घटक 1 तक जोड़ देंगे, जिससे कि उन्हें संभावनाओं के रूप में समझा जा सके। तथा इसके अतिरिक्त बड़े निवेशित घटक बड़ी संभावनाओं के अनुरूप होंगे।

मानक (यूनिट) सॉफ्टमैक्स फलन परिभाषित किया गया है, जब सूत्र द्वारा

सामान्य शब्दों में यह इनपुट सदिश के प्रत्येक तत्व के लिए मानक चर घातांकीय फलन लागू करता है, और इन्हें सामान्य करता है। तथा इन सभी घातांकीयों के योग से विभाजित करके मानों का यह सामान्यीकरण सुनिश्चित करता है कि उत्पादित सदिश के घटकों का योग 1 है। e के अतिरिक्त एक भिन्न आधार (घातांक) b > 0 का उपयोग किया जा सकता है। यदि 0 < b < 1 छोटे इनपुट घटकों के परिणामस्वरूप अधिक प्रक्षेपण की संभावनाएँ होंगी, तथा b के मान को कम करने से प्रायिकता वितरण बनेंगे जो सबसे छोटे इनपुट मानों की स्थिति के चारों ओर अधिक केंद्रित होते हैं। इसके विपरीत, यदि b > 1, बड़े निवेशित घटकों के परिणामस्वरूप अधिक प्रक्षेपण संभावनाएं होंगी, और मान में वृद्धि होगी तथा b प्रायिकता वितरण बनाएगा, जो सबसे बड़े इनपुट मानों की स्थिति के चारों ओर अधिक होते हैं। या [lower-alpha 1] लिखना वास्तव मे β[lower-alpha 2] के लिए अभिव्यक्ति उत्पन्न करता है।[lower-alpha 3]
कुछ क्षेत्रों में आधार निश्चित होता है, एक निश्चित पैमाने के अनुरूप[lower-alpha 4], जबकि अन्य में पैरामीटर β भिन्न होता है।

व्याख्याएं

समतल आर्ग मैक्स

सॉफ्टमैक्स एक भ्रामक नाम है, जो फलन अधिकतम समतल (अधिकतम फलन के लिए समतल सन्निकटन) नहीं होता है, जबकि आर्ग मैक्स फलन के लिए एक सरलतम सन्निकटन है। वह फलन जिसका मान एक घातांक जिसमें अधिकतम होता है। वास्तव में सॉफ्टमैक्स शब्द का उपयोग घनिष्ठता से संबंधित LogSumExp फलन के लिए भी किया जाता है, जो कि एक सहज अधिकतम है। इस कारण से कुछ अधिक सटीक शब्द सॉफ्टमैक्स को समान करते हैं, लेकिन मशीन लर्निंग में सॉफ्टमैक्स शब्द पारंपरिक है।[3][4] इस व्याख्या पर महत्व देने के लिए यह खंड सॉफ्टरमैक्स शब्द का उपयोग करता है।

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

जहां उत्पादित निर्देशांक यदि केवल का तर्क अधिकतम है , अर्थ का अद्वितीय अधिकतम मान है . उदाहरण के लिए, इस एन्कोडिंग में चूंकि तीसरा तर्क अधिकतम है।

सभी अधिकतम तर्कों के बीच 1 को विभाजित करके इसे एकाधिक तर्क अधिकतम मानों (एकाधिक बराबर अधिकतम होने के लिए) के लिए सामान्यीकृत किया जा सकता है; औपचारिक रूप से 1/k जहां k अधिकतम मानने वाले तर्कों की संख्या है। उदाहरण के लिए चूंकि दूसरा और तीसरा दोनों ही तर्क अधिकतम हैं। इस परिस्थिति में सभी तर्क समान हैं, यह सरल अंक z एकाधिक आर्ग अधिकतम मानों के साथ एक बीजीय विविधता या अद्वितीय समूह बनाते हैं जो विलक्षणताओं के बिंदु होते हैं - ये ऐसे बिंदु हैं जहां arg max जंप अनिरंतरता के साथ असंतुलित होते है, जबकि एकल arg max वाले बिंदु को गैर विलक्षण या नियमित बिंदु के रूप में जाना जाता है।

परिचय में दी गई अंतिम अभिव्यक्ति के साथ सॉफ्टरमैक्स अब आर्गमैक्स का एक सहज सन्निकटन है। आर्गमैक्स में परिवर्तित हो जाता है। किसी फलन के अभिसरण की विभिन्न अवधारणाएँ हैं। सॉफ्टएर्गमैक्स आर्ग को अधिकतम बिंदुवार अभिसरण में परिवर्तित करता है, जिसका अर्थ है प्रत्येक निश्चित इनपुट z के लिए ,

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

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

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

यह भी परिस्थिति है कि, किसी निश्चित के लिए β, यदि एक इनपुट तापमान के सापेक्ष अन्य की तुलना में बहुत बड़ा है, , आउटपुट लगभग arg अधिकतम है। उदाहरण के लिए, 1 के तापमान के सापेक्ष 10 का अंतर बड़ा होता है।

हालाँकि, यदि अंतर तापमान के सापेक्ष छोटा है, तो मान आर्गमैक्स के करीब नहीं है। उदाहरण के लिए 10 का अंतर 100 के तापमान के सापेक्ष छोटा होता है।

जैसा , तापमान शून्य हो जाता है, , इसलिए अंततः सभी अंतर बड़े हो जाते हैं घटते तापमान के सापेक्ष, जो सीमा व्यवहार के लिए एक और व्याख्या प्रदान करता है।

प्रायिकता सिद्धांत

प्रायिकता सिद्धांत में, सॉफ्टर्गमैक्स फलन के आउटपुट का उपयोग एक स्पष्ट वितरण का प्रतिनिधित्व करने के लिए किया जा सकता है - अर्थात, एक प्रायिकता वितरण K विभिन्न संभावित परिणाम होता है।

सांख्यिकीय यांत्रिकी

सांख्यिकीय यांत्रिकी में, सॉफ्टर्गमैक्स फलन को बोल्ट्ज़मान वितरण या गिब्स वितरण के रूप में जाना जाता है।[5]: 7  सूचकांक समुच्चय प्रणाली के सूक्ष्म अवस्था हैं। इनपुट उस अवस्था की ऊर्जाएँ हैं, जहाँ विभाजक को विभाजन फलन के रूप में जाना जाता है, जिसे अधिकांश निरूपित किया जाता है Z और कारक β शीतलता, थर्मोडायनामिक बीटा , या विपरीत तापमान कहा जाता है।

अनुप्रयोग

सॉफ्टमैक्स फलन का उपयोग विभिन्न बहुवर्गीय श्रेणीविभाजन विधियों में किया जाता है, जैसे कि बहुराष्ट्रीय तार्किक प्रतिगमन जिसे सॉफ्टमैक्स तार्किक भी कहा जाता है[2]: 206–209  [1], बहुवर्गीय रैखिक विभेदक विश्लेषण, अनुभवहीन बेज वर्गीकारक और कृत्रिम नेटवर्क प्रसार।[6] विशेष रूप से बहुराष्ट्रीय तार्किक प्रतिगमन और रैखिक विभेदक विश्लेषण में फलन के इनपुट का परिणाम होता है K विशिष्ट रैखिक कार्य और के लिए साधारण सदिश x और भार सदिश w दिए जाने पर j वें वर्ग के लिए अनुमानित प्रायिकता होती है।

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

तंत्रिका नेटवर्क

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

चूंकि फलन एक सदिश और एक विशिष्ट सूचक को एक वास्तविक मान पर मैप करता है, व्युत्पन्न सूचक को ध्यान में रखना चाहिए।

यह व्यंजक अनुक्रमित में सममित है को इस प्रकार भी व्यक्त किया जा सकता है

यहाँ क्रोनकर डेल्टा का उपयोग सादगी के लिए किया जाता है (cf. एक सिग्मॉइड फलन का व्युत्पन्न फलन के माध्यम से ही व्यक्त किया जा रहा है)।

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

यदि फलन , पैरामीटर के साथ परिबंधित किया गया है, तो इन अभिव्यक्तियों को से गुणा किया जाना चाहिए।

सॉफ्टमैक्स सक्रियण फलन का उपयोग करने वाले प्रायिकता प्रारूप के लिए बहुराष्ट्रीय लॉग देखें।

प्रबलीकरण सीखना

प्रबलीकरण सीखने के क्षेत्र में मानों को क्रिया संभावनाओं में बदलने के लिए एक सॉफ्टमैक्स फलन का उपयोग किया जा सकता है। सामान्य रूप से उपयोग किया जाने वाला फलन है।[7]

जहां प्रक्रिया मान निम्नलिखित प्रक्रिया के अपेक्षित प्रतिफल के अनुरूप है और एक तापमान (पैरामीटर सांख्यिकीय यांत्रिकी के संकेत में) कहा जाता है। उच्च तापमान के लिए सभी क्रियाओं की संभावना लगभग समान होती है और तापमान जितना कम होता है, उतने अधिक अपेक्षित प्रतिफल प्रायिकता को प्रभावित करते हैं। कम तापमान के लिए उच्चतम अपेक्षित प्रतिफल के साथ प्रक्रिया की संभावना 1 हो जाती है।

कम्प्यूटेशनल जटिलता और उपचार

तंत्रिका नेटवर्क अनुप्रयोगों में, संभावित परिणामों की संख्या K अधिकांश बड़ी होती है, उदाहरण- तंत्रिका भाषा प्रारूप की स्थिति में जो एक शब्दावली से सबसे संभावित परिणाम की पूर्वानुमान करता है जिसमें लाखों संभावित शब्द हो सकते हैं।[8] यह सॉफ्टमैक्स परत के लिए गणना कर सकता है अर्थात आव्यूह गुणन को निर्धारित करने के लिए , इसके बाद सॉफ्टमैक्स फलन का अनुप्रयोग कम्प्यूटेशनल रूप से महंगा है।[8][9] क्या अधिक है, इस तरह के तंत्रिका नेटवर्क के प्रशिक्षण के लिए ग्रेडिएंट डिसेंट बैकप्रोपैजेशन विधि में प्रत्येक प्रशिक्षण उदाहरण के लिए सॉफ्टमैक्स की गणना करना सम्मिलित है,तथा प्रशिक्षण उदाहरणों की संख्या भी बड़ी हो सकती है। सॉफ्टमैक्स के लिए कम्प्यूटेशनल प्रयास बड़े तंत्रिका भाषा प्रारूप के विकास में एक प्रमुख सीमित कारक बन गया, जो प्रशिक्षण समय को कम करने के लिए विभिन्न उपायों को प्रेरित करता है।[8][9]

अधिक कुशल गणना के लिए सॉफ्टमैक्स परत को पुनर्गठित करने वाले दृष्टिकोणों में पदानुक्रमित सॉफ्टमैक्स और विभेदित सॉफ्टमैक्स सम्मिलित हैं।[8] पदानुक्रमित सॉफ्टमैक्स 2005 में मोरिन और जोशुआ बेंगियो द्वारा प्रस्तुत किया गया, यह एक बाइनरी ट्री संरचना का उपयोग करता है जहां परिणाम (शब्दावली शब्द) उत्तरदायित्व होते हैं और मध्यवर्ती नोड्स परिणामों के उपयुक्त रूप से चयनित वर्ग होते हैं, जो अव्यक्त चर बनाते हैं।[9][10] एक उत्तरदायी परिणाम की वांछित प्रायिकता सॉफ्टमैक्स मान की गणना तब रूट से उस पत्ते तक के सभी नोड्स की संभावनाओं के उत्पाद के रूप में की जा सकती है।[9]आदर्श रूप से जब ट्री संतुलित होता है, तो इससे कम्प्यूटेशनल जटिलता कम हो जाएगी प्रति .[10]व्यवहार में, परिणाम कक्षाओं में परिणामों को समूहबद्ध करने के लिए एक अच्छी रणनीति चुनने पर निर्भर करते हैं।[9][10] मापनीयता प्राप्त करने के लिए Google के word2vec प्रारूप (2013 में प्रस्तुत) में इसके लिए एक हफमैन ट्री का उपयोग किया गया था।[8]

एक दूसरे प्रकार का उपाय संशोधित हानि कार्यों के साथ सॉफ्टमैक्स (प्रशिक्षण के दौरान) का अनुमान लगाने पर आधारित होता है, जो पूर्ण सामान्यीकरण कारक की गणना से बचते हैं।[8]इनमें ऐसे तरीके सम्मिलित हैं, जो सामान्यीकरण योग को परिणामों के प्रतिरूप तक सीमित करते हैं। (उदाहरण के लिए महत्व प्रतिचयन, लक्ष्य प्रतिचयन)।[8][9]

गणितीय गुण

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

मुख्य विकर्ण के साथ सॉफ्टमैक्स आउटपुट पर सिर्फ एक समान वितरण है : समान स्कोर से समान संभावनाएँ प्राप्त होती हैं।

अधिक सामान्यतः, सॉफ्टमैक्स अनुवाद के तहत प्रत्येक समन्वय में समान मान द्वारा अपरिवर्तनीय है। जोड़ना इनपुट के लिए पैदावार , क्योंकि यह प्रत्येक घातांक को उसी कारक से गुणा करता है, () इसलिए इनके अनुपात मे कोई परिवर्तन नही होता हैं।


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

उदाहरण के लिए, लेकिन

मानक तार्किक फलन 2-आयामी अंतरिक्ष में 1-आयामी अक्ष के लिए विशेष परिस्थिति होती है, x -अक्ष में कहें (x, y) समतल एक चर 0 पर तय किया गया है। (माना ), इसलिए , और अन्य चर भिन्न हो सकते हैं, इसे निरूपित करें , इसलिए मानक तार्किक फलन इसका अनुपूरण (जिसका अर्थ है कि वे 1 तक जोड़ते हैं)। 1-आयामी इनपुट को वैकल्पिक रूप से रेखा के रूप में व्यक्त किया जा सकता है , आउटपुट के साथ तथा

सॉफ्टमैक्स फलन भी LogSumExp फलन का ग्रेडिएंट है, एक सहज अधिकतम-

जहाँ LogSumExp फलन को इस रूप में परिभाषित किया गया है .

इतिहास

सॉफ्टमैक्स फलन का उपयोग सांख्यिकीय यांत्रिकी में बोल्ट्जमैन वितरण के रूप में मूलभूत लेख बोल्ट्जमैन (1868) में किया गया था, प्रभावशाली पाठ्यपुस्तक गिब्स (1902).[11] में औपचारिक और लोकप्रिय हुआ।

निर्णय सिद्धांत में सॉफ्टमैक्स के उपयोग का श्रेय लूस (1959),[12]: 1  को दिया जाता है, जिन्होंने तार्किक उचित सिद्धांत में अप्रासंगिक विकल्पों की स्वतंत्रता के सिद्धांत का उपयोग करके सापेक्षिक प्राथमिकताओं के लिए लूस के उचित सिद्धांत सॉफ्टमैक्स को निकाला गया।

मशीन लर्निंग में, सॉफ्टमैक्स शब्द का श्रेय जॉन एस. ब्रिडल को 1989 के दो सम्मेलन पत्रों मे ब्रिडल (1990a):[12]: 1   और ब्रिडल (1990b):[3] में दिया जाता है।

हम कई आउटपुट के साथ अग्र भरण गैर रेखीय नेटवर्क (बहु परत परसेप्ट्रॉन, या एमएलपी) से संबंधित हैं। हम नेटवर्क के आउटपुट को इनपुट पर वातानुकूलित विकल्पों जैसे प्रतिरूप कक्ष की संभावनाओं के रूप में देखना चाहते हैं। हम नेटवर्क के मापदंडों के अनुकूलन के लिए उचित आउटपुट गैर-रैखिकता और उचित मानदंड के लिए देखते हैं (जैसे वजन)। हम दो संशोधनों की व्याख्या करते हैं तथा प्रायिकता स्कोरिंग जो वर्ग त्रुटि न्यूनीकरण का एक विकल्प है, और एक सामान्यीकृत घातांक सॉफ्टमैक्स गैर रेखीय का बहु-इनपुट सामान्यीकरण होता है।[13]: 227 

किसी भी इनपुट के लिए, सभी आउटपुट धनात्मक होने चाहिए तथा उनका योग मे एकता होना चाहिए।

अनियंत्रित मानों के एक सेट को देखते हुए, , हम सामान्यीकृत घातीय परिवर्तन का उपयोग करके दोनों स्थितियों को सुनिश्चित कर सकते हैं। इस परिवर्तन को तार्किक का एक बहु-इनपुट सामान्यीकरण माना जा सकता है, जो संपूर्ण आउटपुट परत पर काम करता है। तथा यह अपने इनपुट मानों के स्थिति क्रम को संरक्षित करता है, और अधिकतम मान चुनने के विनर-टेक-ऑल' ऑपरेशन का एक अलग-अलग सामान्यीकरण होता है। इस कारण से हम इसे सॉफ्टमैक्स के रूप में संदर्भित करना पसंद करते हैं।[14]: 213 

उदाहरण

यदि हम [1, 2, 3, 4, 1, 2, 3] का इनपुट लेते हैं तो उसका सॉफ्टमैक्स [0.024, 0.064, 0.175, 0.475, 0.024, 0.064, 0.175] है। आउटपुट का अधिकांश वजन वहीं होता है जो 4 मूल इनपुट में था। यह वह है जिसके लिए फलन का सामान्य रूप से उपयोग किया जाता है: सबसे बड़े मानों को उजागर करने और उन मानों को दबाने के लिए जो अधिकतम मान से काफी नीचे हैं। लेकिन सॉफ्टमैक्स स्केल अपरिवर्तनीय नहीं होते है, इसलिए यदि इनपुट [0.1, 0.2, 0.3, 0.4, 0.1, 0.2, 0.3] जो 1.6 के बराबर है, तो सॉफ्टमैक्स [0.125, 0.138, 0.153, 0.169, 0.125, 0.138, 0.153] होगा। इससे पता चलता है कि 0 और 1 सॉफ्टमैक्स के बीच के मानों के लिए, वास्तव में, अधिकतम मान पर महत्व दिया जाता है। (कि 0.169 न केवल 0.475 से कम है, यह 0.4/1.6 = 0.25 के प्रारंभिक अनुपात से भी कम है)।

पायथन (प्रोग्रामिंग भाषा) कोड का उपयोग करके इस उदाहरण की गणना:

>>> import numpy as np

>>> a = [1.0, 2.0, 3.0, 4.0, 1.0, 2.0, 3.0]

>>> np.exp(a) / np.sum(np.exp(a))

array([0.02364054, 0.06426166, 0.1746813, 0.474833, 0.02364054,

      0.06426166, 0.1746813])

यह जूलिया (प्रोग्रामिंग भाषा) कोड का एक उदाहरण दिया गया है।

julia> A = [1.0, 2.0, 3.0, 4.0, 1.0, 2.0, 3.0];  # semicolon to suppress interactive output

julia> exp.(A) ./ sum(exp.(A))
7-element Array{Float64,1}:
 0.0236405
 0.0642617
 0.174681
 0.474833
 0.0236405
 0.0642617 

यह R (प्रोग्रामिंग भाषा) कोड का एक उदाहरण दिया गया है।

> z <- c(1.0, 2.0, 3.0, 4.0, 1.0, 2.0, 3.0)

> softmax <- exp(z)/sum(exp(z))

> softmax

[1] 0.02364054 0.06426166 0.17468130 0.47483300 0.02364054 0.06426166 0.17468130

यह अमृत (प्रोग्रामिंग भाषा) कोड का एक उदाहरण है।[15]

iex> t = Nx.tensor([[1, 2], [3, 4]])

iex> Nx.divide(Nx.exp(t), Nx.sum(Nx.exp(t))

Nx.Tensor<

f64[2][2]

[

[0.03205860328008499, 0.08714431874203257],

[0.23688281808991013, 0.6439142598879722]

]

>


यह राकू (प्रोग्रामिंग भाषा) कोड का एक उदाहरण है।

> my @z = [1.0, 2.0, 3.0, 4.0, 1.0, 2.0, 3.0];

> say @z.map: {exp($_)/sum(@z.map: {exp($_)})}

(0.023640543021591385 0.06426165851049616 0.17468129859572226 0.4748329997443803 0.023640543021591385 0.06426165851049616 0.17468129859572226)

यह भी देखें

  • सॉफ्टप्लस
  • बहुराष्ट्रीय तार्किक प्रतिगमन
  • डिरिचलेट वितरण - श्रेणीबद्ध वितरण का प्रतिरूप लेने का एक वैकल्पिक तरीका
  • विभाजन फलन (सांख्यिकीय यांत्रिकी)
  • घातीय झुकाव - अधिक सामान्य प्रायिकता वितरण के लिए सॉफ्टमैक्स का सामान्यीकरण।

टिप्पणियाँ

  1. Positive β corresponds to the maximum convention, and is usual in machine learning, corresponding to the highest score having highest probability. The negative −β corresponds to the minimum convention, and is conventional in thermodynamics, corresponding to the lowest energy state having the highest probability; this matches the convention in the Gibbs distribution, interpreting β as coldness.
  2. The notation β is for the thermodynamic beta, which is inverse temperature:
  3. For (coldness zero, infinite temperature), , and this becomes the constant function , corresponding to the discrete uniform distribution.
  4. In statistical mechanics, fixing β is interpreted as having coldness and temperature of 1.


संदर्भ

  1. Goodfellow, Ian; Bengio, Yoshua; Courville, Aaron (2016). "6.2.2.3 Softmax Units for Multinoulli Output Distributions". ध्यान लगा के पढ़ना या सीखना. MIT Press. pp. 180–184. ISBN 978-0-26203561-3.
  2. 2.0 2.1 Bishop, Christopher M. (2006). पैटर्न मान्यता और मशीन प्रवीणता. Springer. ISBN 0-387-31073-8.
  3. 3.0 3.1 Sako, Yusaku (2018-06-02). "Is the term "softmax" driving you nuts?". Medium.
  4. Goodfellow, Bengio & Courville 2016, pp. 183–184: The name "softmax" can be somewhat confusing. The function is more closely related to the arg max function than the max function. The term "soft" derives from the fact that the softmax function is continuous and differentiable. The arg max function, with its result represented as a one-hot vector, is not continuous or differentiable. The softmax function thus provides a "softened" version of the arg max. The corresponding soft version of the maximum function is . It would perhaps be better to call the softmax function "softargmax," but the current name is an entrenched convention.
  5. LeCun, Yann; Chopra, Sumit; Hadsell, Raia; Ranzato, Marc’Aurelio; Huang, Fu Jie (2006). "A Tutorial on Energy-Based Learning" (PDF). In Gökhan Bakır; Thomas Hofmann; Bernhard Schölkopf; Alexander J. Smola; Ben Taskar; S.V.N Vishwanathan (eds.). संरचित डेटा की भविष्यवाणी करना. Neural Information Processing series. MIT Press. ISBN 978-0-26202617-8.
  6. ai-faq What is a softmax activation function?
  7. Sutton, R. S. and Barto A. G. Reinforcement Learning: An Introduction. The MIT Press, Cambridge, MA, 1998. Softmax Action Selection
  8. 8.0 8.1 8.2 8.3 8.4 8.5 8.6 Onal, Kezban Dilek; Zhang, Ye; Altingovde, Ismail Sengor; Rahman, Md Mustafizur; Karagoz, Pinar; Braylan, Alex; Dang, Brandon; Chang, Heng-Lu; Kim, Henna; McNamara, Quinten; Angert, Aaron (2018-06-01). "तंत्रिका सूचना पुनर्प्राप्ति: प्रारंभिक वर्षों के अंत में". Information Retrieval Journal (in English). 21 (2): 111–182. doi:10.1007/s10791-017-9321-y. ISSN 1573-7659.
  9. 9.0 9.1 9.2 9.3 9.4 9.5 Chen, Wenlin; Grangier, David; Auli, Michael (August 2016). "बड़े शब्दावली तंत्रिका भाषा मॉडल प्रशिक्षण के लिए रणनीतियाँ". Proceedings of the 54th Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers). Berlin, Germany: Association for Computational Linguistics: 1975–1985. doi:10.18653/v1/P16-1186.
  10. 10.0 10.1 10.2 Morin, Frederic; Bengio, Yoshua (2005-01-06). "पदानुक्रमित संभाव्य तंत्रिका नेटवर्क भाषा मॉडल" (PDF). International Workshop on Artificial Intelligence and Statistics (in English). PMLR: 246–252.
  11. Gibbs, Josiah Willard (1902). सांख्यिकीय यांत्रिकी में प्राथमिक सिद्धांत.
  12. 12.0 12.1 Gao, Bolin; Pavel, Lacra (2017). "गेम थ्योरी और रीइन्फोर्समेंट लर्निंग में एप्लीकेशन के साथ सॉफ्टमैक्स फंक्शन के गुणों पर". arXiv:1704.00805 [math.OC].
  13. Bridle, John S. (1990a). Soulié F.F.; Hérault J. (eds.). Probabilistic Interpretation of Feedforward Classification Network Outputs, with Relationships to Statistical Pattern Recognition. Neurocomputing: Algorithms, Architectures and Applications (1989). NATO ASI Series (Series F: Computer and Systems Sciences). Vol. 68. Berlin, Heidelberg: Springer. pp. 227–236. doi:10.1007/978-3-642-76153-9_28.
  14. Bridle, John S. (1990b). D. S. Touretzky (ed.). Training Stochastic Model Recognition Algorithms as Networks can Lead to Maximum Mutual Information Estimation of Parameters. Advances in Neural Information Processing Systems 2 (1989). Morgan-Kaufmann.
  15. "एनएक्स/एनएक्स मुख्य पर · अमृत-एनएक्स/एनएक्स".