तंत्रिका नेटवर्क: बाइनरी वर्गीकरण के लिए 1 या 2 आउटपुट न्यूरॉन्स का उपयोग करें?


26

मान लें कि मैं बाइनरी वर्गीकरण करना चाहता हूं (कुछ कक्षा ए या वर्ग बी से संबंधित है)। तंत्रिका नेटवर्क के आउटपुट लेयर में ऐसा करने की कुछ संभावनाएँ हैं:

  • 1 आउटपुट नोड का उपयोग करें। आउटपुट 0 (<0.5) वर्ग ए माना जाता है और 1 (> = 0.5) वर्ग बी माना जाता है (सिग्मोइड के मामले में)

  • 2 आउटपुट नोड्स का उपयोग करें। इनपुट सबसे अधिक मूल्य / संभावना (argmax) के साथ नोड के वर्ग के अंतर्गत आता है।

क्या ऐसा कोई पत्र लिखा गया है जो इस पर भी चर्चा करे? खोज के लिए विशिष्ट कीवर्ड क्या हैं?

यह प्रश्न इस साइट पर पहले से ही पूछा गया है जैसे कि इस लिंक को बिना किसी वास्तविक उत्तर के देखें। मुझे एक विकल्प (मास्टर थीसिस) बनाने की आवश्यकता है, इसलिए मैं प्रत्येक समाधान के समर्थक / विपक्ष / सीमाओं में अंतर्दृष्टि प्राप्त करना चाहता हूं।


मुझे लगता है कि लिंक किए गए प्रश्न के ओपी में एक अच्छा बिंदु है, एकमात्र अंतर यह है कि पसंद 2 में मापदंडों की एक बड़ी संख्या है, अधिक लचीला है लेकिन अधिक फिटिंग के लिए अधिक प्रवण है।
नॉट्लू

1
उनेसिटी एमएल नेनोडेग्री में मैंने सीखा कि अगर एक परिणाम को पारस्परिक रूप से अनन्य रूप से प्रयोग किया जाता है, तो यह बेहतर है कि नेटवर्क कम त्रुटियों के कारण इसे बना सकता है। मुझे लगता है कि उस मामले में 2 आउटपुट नोड्स का उपयोग करने में कोई पेशेवरों नहीं हैं, लेकिन मेरे पास इसके लिए कोई वैज्ञानिक सबूत नहीं है
कोडिंगयूरलाइफ

जवाबों:


25

दूसरे मामले में आप शायद सॉफ्टमैक्स सक्रियण फ़ंक्शन के बारे में लिख रहे हैं। अगर यह सच है, सिग्मॉइड की तुलना में सॉफ्टमैक्स फ़ंक्शन का सिर्फ एक विशेष मामला है। यह दिखाना आसान है।

y=11+ex=11+1ex=1ex+1ex=ex1+ex=exe0+ex

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

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


जब आप कहते हैं कि उनमें से एक में सभी वजन शून्य हैं, तो क्या आपका मतलब है कि मॉडल ने प्रशिक्षण के दौरान कक्षा में से एक पर भी विचार नहीं किया? व्यवहार में, क्या हम वास्तव में प्रशिक्षण डेटा के केवल एक वर्ग के साथ इस बाइनरी क्लासिफायरियर को प्रशिक्षित कर सकते हैं?
deadcode

यह अधिक है जैसे कि प्रशिक्षण और कक्षा के दौरान सीमा (बाध्य) तय की जाती है। ताकि आप यह जान सकें कि अगर सकारात्मक कक्षा से है और यदि नकारात्मक कक्षा है। सॉफ्टमैक्स से आप विभिन्न सीमाएं सीख सकते हैं और अलग-अलग बाध्य हो सकते हैं। सभी शून्य के साथ आरई वजन, मेरा मतलब था कि मामले के लिए 2 आउटपुट के साथ सॉफ्टमैक्स के समान सिग्मॉइड है जब आपके पास दो आउटपुट न्यूट्रॉन होते हैं और आउटपुट और दूसरा हमेशा कोई बात नहीं कि इनपुट क्या था। यह केवल तभी हो सकता है जब दूसरे आउटपुट के लिए हमारे पास सभी वजन शून्य के बराबर हो। मुझे उम्मीद है यह मदद करेगा। x>0x<0x0
itdxer

1
ध्यान दें कि फॉर्म के पतित समाधान हैं exp(x+alpha) / (exp(alpha) + exp(x+alpha))- वास्तव में उनमें से एक अनंत संख्या है - सभी एक ही वर्गीकरण के परिणाम के रूप में एक के वजन के साथ नोट किया गया है। वजन की संभावना सभी शून्य होने के लिए प्रशिक्षित नहीं करेंगे, लेकिन पतित होने के बजाय प्रशिक्षित करेंगे जिस घोल में सभी का वजन होता है, 0. (व्यर्थ और अपव्यय) से बचने के लिए केवल एक आउटपुट न्यूरॉन का उपयोग करके पतित समाधान करें, ऐसा लगता है।
दान निसेनबौम

2

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

y=softmax(a)1ieai×[ea1,ea2,...,ean]

0yi1 for all i
y1+y2+...+yn=1

इधर, softmax परत से पहले परत की सक्रियता है।a

यह दो वर्गों के लिए पूरी तरह से मान्य है, हालांकि, एक भी न्यूरॉन का उपयोग कर सकता है (दो के बजाय) यह देखते हुए कि इसका आउटपुट संतुष्ट करता है:

0y1 for all inputs.
यह अगर एक परिवर्तन (जो विभेदक / backpropagation प्रयोजनों के लिए चिकनी) लागू किया जाता है, जो नक्शे आश्वासन दिया जा सकता करने के लिए ऐसी है कि इसके बाद के संस्करण की स्थिति उत्पन्न होने। सिग्मॉइड फ़ंक्शन हमारे मानदंडों को पूरा करता है। इसके बारे में कुछ खास नहीं है, एक साधारण गणितीय प्रतिनिधित्व के अलावा,ay

अवग्रह()σ()11+-

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

निष्कर्ष

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

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