artificial intelligence - तंत्रिका नेटवर्क में बाईस की भूमिका




artificial-intelligence machine-learning (10)

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

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

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

एएनएन http://www.aihorizon.com/images/essays/perceptron.gif

  • w0 बी से मेल खाता है।
  • w1 x1 से मेल खाता है।
  • w2 x2 से मेल खाता है।

कई बूलियन कार्यों का प्रतिनिधित्व करने के लिए एक एकल अवधारणा का उपयोग किया जा सकता है।

उदाहरण के लिए, यदि हम 1 (सत्य) और -1 (झूठी) के बुलियन मान मानते हैं, तो और फ़ंक्शन को लागू करने के लिए दो-इनपुट परसेप्ट्रॉन का उपयोग करने का एक तरीका वजन w0 = -3 सेट करना है, और w1 = w2 = .5। इस अवधारणा को थ्रेसहोल्ड को w0 = -.3 में बदलकर या फ़ंक्शन का प्रतिनिधित्व करने के लिए बनाया जा सकता है। वास्तव में, एंड एंड ओ को एम-ऑफ-एन फ़ंक्शंस के विशेष मामलों के रूप में देखा जा सकता है: यानी, फ़ंक्शनसेप्ट को एन इनपुट के कम से कम एम को सत्य होना चाहिए। या फ़ंक्शन m = 1 से मेल खाता है और m = n को फ़ंक्शन करता है। किसी भी एम-ऑफ-एन फ़ंक्शन को सभी इनपुट वजन को उसी मान (उदाहरण के लिए, 0.5) पर सेट करके और फिर थ्रेसहोल्ड w0 को तदनुसार सेट करके एक पेसेप्ट्रॉन का उपयोग करके आसानी से दर्शाया जाता है।

Perceptrons सभी आदिम बुलियन कार्यों और, या, NAND (1 और), और एनओआर (1 या) का प्रतिनिधित्व कर सकते हैं। मशीन लर्निंग- टॉम मिशेल)

दहलीज पूर्वाग्रह है और w0 पूर्वाग्रह / थ्रेसहोल्ड न्यूरॉन से जुड़ा वजन है।

मैं ग्रेडियेंट वंश और बैक-प्रोपेगेशन प्रमेय के बारे में जानता हूं। मुझे जो नहीं मिलता है वह है: जब पूर्वाग्रह का उपयोग महत्वपूर्ण होता है और आप इसका उपयोग कैसे करते हैं?

उदाहरण के लिए, जब मैं 2 इनपुट और 1 आउटपुट का उपयोग करता हूं, तो यह सही वजन नहीं देता है, हालांकि, जब मैं 3 इनपुट (जिनमें से 1 पूर्वाग्रह है) का उपयोग करता है, तो यह सही वजन देता है।


@zfy स्पष्टीकरण पर विस्तार ... एक इनपुट के लिए समीकरण, एक न्यूरॉन, एक आउटपुट देखना चाहिए:

y = a * x + b * 1    and out = f(y)

जहां एक्स इनपुट नोड से मूल्य है और 1 पूर्वाग्रह नोड का मान है; वाई सीधे आपके आउटपुट हो सकता है या एक समारोह में पारित किया जा सकता है, अक्सर एक सिग्मोइड समारोह। यह भी ध्यान रखें कि पूर्वाग्रह किसी भी स्थिर हो सकता है, लेकिन सब कुछ आसान बनाने के लिए हम हमेशा 1 चुनते हैं (और शायद यह इतना आम है कि @zfy ने इसे दिखाए बिना समझाया)।

आपका नेटवर्क आपके डेटा को अनुकूलित करने के लिए गुणांक ए और बी सीखने की कोशिश कर रहा है। तो आप देख सकते हैं कि तत्व b * 1 जोड़ने से यह अधिक डेटा के लिए बेहतर फिट हो जाता है: अब आप ढलान और अवरोध दोनों को बदल सकते हैं।

यदि आपके पास एक से अधिक इनपुट हैं तो आपका समीकरण इस तरह दिखेगा:

y = a0 * x0 + a1 * x1 + ... + aN * 1

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

आप वेक्टरकृत प्रारूप में लिख सकते हैं

A = [a0, a1, .., aN] , X = [x0, x1, ..., 1]
Y = A . XT

यानी एक सरणी में गुणांक डालने और (इनपुट + पूर्वाग्रह) को दूसरे में आपके वांछित समाधान के रूप में दो वैक्टरों के डॉट उत्पाद (आपको आकार के लिए एक्स को सही करने की आवश्यकता है, मैंने एक्सटी को 'एक्स ट्रांसपोज़ड' लिखा है)

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


आम तौर पर, मशीन सीखने में हमारे पास यह आधार सूत्र है बाईस-वेरिएंस ट्रेडऑफ क्योंकि एनएन में हमें ओवरफिटिंग की समस्या है (मॉडल सामान्यीकरण समस्या जहां डेटा में छोटे बदलाव मॉडल परिणाम में बड़े बदलाव लाते हैं) और इसके कारण हमारे पास बड़ा भिन्नता है, छोटे पूर्वाग्रह बहुत मदद कर सकते हैं। बाईस-वेरिएंस ट्रेडऑफ के ऊपर फॉर्मूला को ध्यान में रखते हुए, जहां पूर्वाग्रह वर्ग होता है, इसलिए छोटे पूर्वाग्रहों को पेश करने से भिन्नता कम हो सकती है। तो, पूर्वाग्रह पेश करें, जब आपके पास बड़ा अंतर और खतरे से अधिक हो।


उल्लिखित उत्तरों के अलावा .. मैं कुछ अन्य अंक जोड़ना चाहता हूं।

बाईस हमारे एंकर के रूप में कार्य करता है। यह हमारे लिए कुछ आधारभूत आधार है जहां हम नीचे नहीं जाते हैं। ग्राफ के संदर्भ में, y = mx + b जैसे सोचें कि यह इस फ़ंक्शन के वाई-अवरोध की तरह है।

आउटपुट = इनपुट मूल्य वजन मान और एक पूर्वाग्रह मूल्य जोड़ा और फिर एक सक्रियण समारोह लागू करें।


जब आप एएनएन का उपयोग करते हैं, तो आप शायद उन सिस्टम के आंतरिक के बारे में जानते हैं जिन्हें आप सीखना चाहते हैं। कुछ चीजों को पूर्वाग्रह के बिना नहीं सीखा जा सकता है। उदाहरण के लिए, निम्न डेटा पर एक नज़र डालें: (0, 1), (1, 1), (2, 1), मूल रूप से एक फ़ंक्शन जो किसी भी x से 1 को मानचित्र करता है।

यदि आपके पास एक स्तरित नेटवर्क (या एक रैखिक मैपिंग) है, तो आपको कोई समाधान नहीं मिल रहा है। हालांकि, अगर आपके पास पूर्वाग्रह है तो यह छोटा है!

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


पूर्वाग्रह एक NN शब्द नहीं है, यह विचार करने के लिए एक सामान्य बीजगणित शब्द है।

Y = M*X + C (सीधी रेखा समीकरण)

अब यदि C(Bias) = 0 तो, रेखा हमेशा मूल, यानी (0,0) से गुज़रती है, और केवल एक पैरामीटर पर निर्भर करती है, यानी M , जो ढलान है, इसलिए हमारे पास खेलने के लिए कम चीजें हैं।

C , जो पूर्वाग्रह है, कोई भी संख्या लेता है और इसमें ग्राफ को स्थानांतरित करने की गतिविधि होती है, और इसलिए अधिक जटिल परिस्थितियों का प्रतिनिधित्व करने में सक्षम होती है।

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

यह एनएन मानचित्र में अंतिम सक्रियण परत है जो न्यूरॉन को चालू और बंद कर देती है। यहां भी पूर्वाग्रह की भूमिका निभानी है और यह मॉडल को मानचित्र बनाने में हमारी सहायता के लिए वक्र को लचीला रूप से बदल देता है।


बस मेरे दो सेंट जोड़ने के लिए।

पूर्वाग्रह क्या है यह समझने का एक आसान तरीका: यह किसी भी तरह एक रैखिक कार्य के निरंतर बी के समान है

वाई = कुल्हाड़ी + बी

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


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

यह एक साधारण उदाहरण को देखने में मदद कर सकता है। इस 1-इनपुट, 1-आउटपुट नेटवर्क पर विचार करें जिसमें कोई पूर्वाग्रह नहीं है:

नेटवर्क के आउटपुट को वजन (डब्ल्यू 0 ) द्वारा इनपुट (x) को गुणा करके और किसी प्रकार के सक्रियण फ़ंक्शन (उदाहरण के लिए एक सिग्मोइड फ़ंक्शन) के माध्यम से परिणाम गुजरकर गणना की जाती है।

यहां वह कार्य है जो इस नेटवर्क की गणना करता है, डब्ल्यू 0 के विभिन्न मूल्यों के लिए:

वजन w 0 बदलना अनिवार्य रूप से सिग्मोइड की "स्थिरता" को बदलता है। यह उपयोगी है, लेकिन क्या होगा यदि आप चाहते हैं कि नेटवर्क 0 आउटपुट हो तो x 2 हो? बस सिग्मोइड की खड़ीता को बदलना वास्तव में काम नहीं करेगा - आप पूरे वक्र को दाईं ओर स्थानांतरित करने में सक्षम होना चाहते हैं

यही वही है जो पूर्वाग्रह आपको करने की अनुमति देता है। अगर हम उस नेटवर्क में पूर्वाग्रह जोड़ते हैं, जैसे:

... तो नेटवर्क का आउटपुट सिग बन जाता है (डब्ल्यू 0 * एक्स + डब्ल्यू 1 * 1.0)। यहां नेटवर्क का आउटपुट डब्ल्यू 1 के विभिन्न मूल्यों की तरह दिखता है:

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


विशेष रूप से, नाट का answer , ज़फी का answer , और प्रादी का answer बहुत अच्छा है।

सरल शब्दों में, पूर्वाग्रह वजन के अधिक से अधिक भिन्नताओं को सीखने / संग्रहीत करने की अनुमति देता है ... ( साइड-नोट : कभी - कभी कुछ थ्रेसहोल्ड दिया जाता है)। वैसे भी, अधिक विविधता का मतलब है कि पूर्वाग्रह मॉडल के सीखे / संग्रहीत वजन में इनपुट स्थान का समृद्ध प्रतिनिधित्व जोड़ते हैं। (जहां बेहतर वजन तंत्रिका नेट की अनुमान शक्ति को बढ़ा सकते हैं)

उदाहरण के लिए, मॉडलों को सीखने में, परिकल्पना / अनुमान वांछित रूप से y = 0 या y = 1 द्वारा कुछ इनपुट दिया गया है, शायद कुछ वर्गीकरण कार्य ... यानी कुछ y = 0 कुछ x = (1,1) और कुछ के लिए y = 1 कुछ x = (0,1) के लिए। (परिकल्पना / परिणाम पर शर्त उस सीमा है जिस पर मैंने उपरोक्त बात की थी। ध्यान दें कि मेरे उदाहरण सेटअप एक्स को प्रत्येक एक्स = एक डबल या 2 मूल्यवान-वेक्टर होने के लिए इनपुट करते हैं, बजाय कुछ संग्रह एक्स के एकल मूल्यवान एक्स इनपुट के बजाय)।

यदि हम पूर्वाग्रहों को अनदेखा करते हैं, तो बहुत से इनपुट एक ही वजन से प्रतिनिधित्व कर सकते हैं (यानी सीखा वजन ज्यादातर मूल (0,0) के करीब होता है। मॉडल तब अच्छे वजन के गरीब मात्रा तक ही सीमित होगा, कई और अच्छे वजन के बजाय यह पूर्वाग्रह के साथ बेहतर सीख सकता है। (जहां खराब तरीके से सीखे वजन कमजोर अनुमानों या तंत्रिका नेट की अनुमानित शक्ति में कमी का कारण बनता है)

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


सरल तरीके से सोचने के लिए, यदि आपके पास y = w1 * x है जहां y आपका आउटपुट है और w1 वजन एक ऐसी स्थिति की कल्पना करता है जहां x = 0 तब y = w1 * x 0 के बराबर होता है , यदि आप अपना वज़न अपडेट करना चाहते हैं तो आपके पास गणना करने के लिए कि delw = target-y द्वारा कितना परिवर्तन है जहां लक्ष्य आपका लक्ष्य आउटपुट है, इस मामले में 'delw' बदल नहीं जाएगा क्योंकि y को 0 के रूप में गणना की जाती है। इसलिए, मान लें कि क्या आप कुछ अतिरिक्त मूल्य जोड़ सकते हैं, इससे y = w1 * x + w0 * 1 , जहां पूर्वाग्रह = 1 और वजन को सही पूर्वाग्रह प्राप्त करने के लिए समायोजित किया जा सकता है। नीचे दिए गए उदाहरण पर विचार करें।

लाइन के मामले में ढलान-अवरोध रैखिक समीकरणों का एक विशिष्ट रूप है।

y = mx + b

छवि की जांच करें

image

यहाँ बी है (0,2)

यदि आप इसे बढ़ाना चाहते हैं (0,3) बी के मूल्य को बदलकर आप इसे कैसे करेंगे, जो आपकी पूर्वाग्रह होगी