Softmax फ़ंक्शन क्या है?
Softmax फ़ंक्शन K वास्तविक संख्याओं के एक वेक्टर को एक प्रायिकता वितरण में बदल देता है: हर आउटपुट 0 और 1 के बीच रहता है, और सभी K आउटपुट जोड़ने पर ठीक 1 बनते हैं। न्यूरल-नेटवर्क क्लासिफ़ायर की आउटपुट लेयर में यह सबसे आम एक्टिवेशन फ़ंक्शन है, जहाँ यह मॉडल के कच्चे स्कोर (logits) को क्लास प्रायिकताओं में बदल देता है। यह विमारहित (dimensionless) होता है, इसलिए इनपुट केवल शुद्ध संख्याएँ होती हैं — किसी इकाई की ज़रूरत नहीं।
इस कैलकुलेटर का उपयोग कैसे करें
बॉक्स में अपना इनपुट वेक्टर संख्याओं की सूची के रूप में टाइप करें, जिन्हें कॉमा, स्पेस या नई लाइन से अलग किया गया हो (उदाहरण: 1, 2, 3)। ये संख्याएँ धनात्मक, ऋणात्मक, शून्य या भिन्नात्मक हो सकती हैं। "कैलकुलेट" दबाते ही आपको हर घटक की softmax प्रायिकता, सभी आउटपुट का योग (जो 1 होना चाहिए), और argmax — यानी सबसे बड़ी प्रायिकता वाला 1-आधारित इंडेक्स — मिल जाएगा।
फ़ॉर्मूला समझें
हर घटक j के लिए softmax इस तरह निकलता है: $$\sigma(z)_j = \frac{e^{z_j}}{\sum_{k} e^{z_k}}$$ घातांकन (exponentiation) से हर पद धनात्मक बन जाता है, और कुल योग से भाग देने पर वे इस तरह सामान्यीकृत (normalize) हो जाते हैं कि उनका जोड़ 1 बने। संख्यात्मक स्थिरता के लिए यह कैलकुलेटर घातांकन से पहले हर तत्व में से अधिकतम मान \(m\) घटा देता है: $$\sigma(z)_j = \frac{e^{z_j - m}}{\sum_{k} e^{z_k - m}}$$ साझा गुणनखंड \(e^{-m}\) कट जाता है, जिससे परिणाम बिल्कुल वही रहता है पर बड़े इनपुट पर ओवरफ़्लो की समस्या टल जाती है।
हल किया हुआ उदाहरण
\(z = (1, 2, 3)\) के लिए: \(e^{1} = 2.71828\), \(e^{2} = 7.38906\), \(e^{3} = 20.08554\), जिनका योग \(30.19287\) है। हर पद को इससे भाग देने पर \(\sigma = (0.09003, 0.24473, 0.66524)\) मिलता है, जिसका जोड़ 1 है। argmax इंडेक्स 3 है — यानी सबसे बड़ा इनपुट — जिसकी प्रायिकता \(0.66524\) है।
अक्सर पूछे जाने वाले सवाल
आउटपुट का योग हमेशा 1 क्यों होता है? क्योंकि हर घातांक (exponential) को सभी घातांकों के योग से भाग दिया जाता है, इसलिए सामान्यीकरण के कारण कुल योग हमेशा 1 बनता है।
अगर सभी इनपुट बराबर हों तो क्या होगा? परिणाम एक समान (uniform) वितरण होता है, जहाँ हर आउटपुट \(1/K\) के बराबर होता है।
हर इनपुट में एक स्थिरांक जोड़ने से क्या परिणाम बदलता है? नहीं। Softmax शिफ़्ट-अपरिवर्तनीय (shift-invariant) है: सभी इनपुट में एक ही स्थिरांक \(c\) जोड़ने पर आउटपुट नहीं बदलता — और यही कारण है कि अधिकतम मान घटाना पूरी तरह सुरक्षित है।