तंत्रिका नेटवर्क में पूर्वाग्रह की भूमिका क्या है?


805

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

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


17
इस प्रश्न को देखें: stackoverflow.com/questions/1697243/help-with-perceptron एक वास्तविक समस्या के उदाहरण के लिए जहां ओपी एक पूर्वाग्रह शब्द का उपयोग नहीं कर रहा था
एमरो

6
और यहाँ एक अच्छा उदाहरण है कि पूर्वाग्रह क्यों महत्वपूर्ण है, इसका उदाहरण :) stackoverflow.com/questions/38248657/…
खनिज

जवाबों:


1358

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

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

सरल नेटवर्क

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

यहाँ यह फ़ंक्शन है कि यह नेटवर्क w 0 के विभिन्न मूल्यों के लिए गणना करता है :

नेटवर्क आउटपुट, अलग-अलग w0 वेट दिए गए हैं

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

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

एक पूर्वाग्रह के साथ सरल नेटवर्क

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

नेटवर्क आउटपुट, अलग-अलग w1 वेट दिए गए हैं

W 1 के लिए -5 का वज़न होने पर वक्र को दाईं ओर शिफ्ट किया जाता है, जो हमें एक नेटवर्क रखने की अनुमति देता है जो x 2 होने पर 0 आउटपुट देता है।


6
@ user1621769: सबसे सरल दृष्टिकोण एक एकल पूर्वाग्रह नोड के साथ एक नेटवर्क है जो नेटवर्क में सभी गैर-इनपुट नोड्स से जुड़ता है।
नैट कोहल

65
@ user1621769: पूर्वाग्रह का मुख्य कार्य प्रत्येक नोड को एक ट्रेन योग्य स्थिर मूल्य (सामान्य इनपुट के अलावा जो नोड पुनरावृत्ति करता है) प्रदान करना है। आप एन नोड्स के कनेक्शन के साथ एक एकल पूर्वाग्रह नोड के साथ या प्रत्येक कनेक्शन के साथ एन पूर्वाग्रह नोड्स के साथ प्राप्त कर सकते हैं; परिणाम समान होना चाहिए।
नैट कोहल

4
@ user1621769: आप खाते में भार लेने में विफल हो सकते हैं? प्रत्येक कनेक्शन में एक ट्रेन करने योग्य भार होता है, और पूर्वाग्रह नोड का एक निश्चित मूल्य होता है।
डिंपल

4
@ user132458, यदि प्रशिक्षण एल्गोरिथ्म यह बताता है कि आपको पूर्वाग्रह बदलाव की आवश्यकता नहीं है, तो पूर्वाग्रह भार संभवतः 0. पहुंच जाएगा। इस प्रकार पूर्वाग्रह संकेत को समाप्त कर देगा।
jorgenkg

8
@ गैब्रिएल: छिपे हुए न्यूरॉन के प्रति एक पूर्वाग्रह होना चाहिए।

341

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

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

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

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


5
अच्छा धर्मशास्त्र लेकिन अगर हम पूर्वाग्रह को 1 पर सेट करते हैं तो यह अब फिट होने से क्या फर्क पड़ता है कि हर लाइन अब (0,0) के बजाय (0,0) से होकर गुजरेगी? चूंकि सभी लाइनें अब y = 1 से पक्षपाती हैं? y = 0 के बजाय यह मददगार क्यों है?
नीला-आकाश

36
@ नीला-आकाश क्योंकि एक पूर्वाग्रह को एक वजन से गुणा करके, आप इसे एक मनमानी राशि द्वारा स्थानांतरित कर सकते हैं।
Carcigenicate

3
क्या बी को "गुणांक" कहना सही है ? क्या "गुणांक" एक चर को गुणा करने के लिए उपयोग की जाने वाली संख्या नहीं है?
बेन

7
b "गुणांक" नहीं है, बल्कि यह अवरोधन है।
एस्पांटा

22
b $ x ^ 0 $ का गुणांक है। a $ x का गुणांक है ^ 1 $

64

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

यहां छवि विवरण दर्ज करें

यहां छवि विवरण दर्ज करें


1
क्या आप अक्ष लेबल के साथ प्लॉट किए गए फ़ंक्शन को जोड़ सकते हैं?
कोमल-स्काईनेट

46

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

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

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

एएनएन
(स्रोत: aihorizon.com )

  • w0 , b से मेल खाती है ।
  • w1 X1 से मेल खाती है ।
  • w2 x2 से मेल खाता है ।

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

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

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

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


8
इसे अंगूठे के एक सामान्य नियम के रूप में सोचें: पूर्वाग्रह जोड़ें! तंत्रिका नेटवर्क एक निश्चित सीमा तक "अप्रत्याशित" हैं यदि आप एक पूर्वाग्रह जोड़ते हैं तो आप तेजी से समाधान खोजने की अधिक संभावना रखते हैं यदि आप एक पूर्वाग्रह का उपयोग नहीं करते हैं। बेशक यह गणितीय रूप से सिद्ध नहीं है, लेकिन यह मैंने साहित्य में और सामान्य उपयोग में देखा है।
किरिल

25

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

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

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

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

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

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


1
इसलिए तंत्रिका नेटवर्क प्रशिक्षण / सीखने में क्या समस्याएं होती हैं जब पूर्वाग्रह का उपयोग नहीं होने पर लाइन हमेशा मूल से गुजरती है?
डेनियल जावेद

@ दनियालजैवड एक संभावना हो सकती है और समस्या नहीं है
प्रदी केएल

23

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

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

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

2d ANN:

ANN के लिए दो आयामों को एक आयाम में बदलना, जैसे कि AND या OR (या XOR) फ़ंक्शन को पुन: प्रस्तुत करने में, आप निम्न के रूप में एक न्यूरोनल नेटवर्क के बारे में सोच सकते हैं:

2d समतल पर इनपुट वैक्टर के सभी स्थान। इसलिए, बूलियन मूल्यों के लिए, आप (-1, -1), (1,1), (-1,1), (1, -1) को चिह्नित करना चाहेंगे। आपका ANN अब क्या करता है 2d विमान पर एक सीधी रेखा खींच रहा है, सकारात्मक आउटपुट को नकारात्मक आउटपुट मानों से अलग कर रहा है।

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

ध्यान दें कि उस स्थिति में XOR फ़ंक्शन पूर्वाग्रह के साथ भी हल नहीं किया जा सकता है।


4
यदि आप एक सिग्मॉइड ट्रांसफर फ़ंक्शन का उपयोग करते हैं, तो आप गैर-रैखिकता का परिचय देते हैं। यह बताते हुए कि यह एक रैखिक कार्य गलत है और किसी भी तरह खतरनाक भी है, क्योंकि सिग्मॉइड की गैर-रैखिकता कई समस्याओं के समाधान के लिए महत्वपूर्ण है। इसके अलावा, सिग्मॉइड (0) = 0.5, और कोई x नहीं है जिसके लिए सिग्मॉइड (x) = 0.
बायर

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

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

मैं कहता हूँ, कि एक पूर्वाग्रह के साथ यह समृद्ध है । ( en.wikipedia.org/wiki/Affine_transformation#Representation )
देबिल्स्की

हां, आप सही हैं। मुझे उस अंतर को इंगित करने के लिए धन्यवाद। (हम इसे रैखिक प्रतिगमन क्यों कहते हैं, बीटीडब्ल्यू, हालांकि यह समृद्ध है?)
बायर

20

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

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

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


18

केवल न्यूरॉन्स का संशोधन ही आपके स्थानांतरण फ़ंक्शन के आकार / वक्रता में हेरफेर करने का कार्य करता है , न कि इसके संतुलन / शून्य का क्रॉसिंग पॉइंट का।

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

आलेखीय स्पष्टीकरण के लिए यहां देखें: http://www.heatonresearch.com/wiki/Bias


16

बस इस सब को जोड़ने के लिए जो बहुत अधिक गायब है और जो बाकी है, सबसे अधिक संभावना है, पता नहीं था।

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

अन्य डेटा के लिए बायपास महत्वपूर्ण हो सकता है। यह इस बात पर निर्भर करता है कि आप किस प्रकार के डेटा के साथ काम कर रहे हैं। यदि आपकी जानकारी परिमाण-अपरिवर्तनीय है --- यदि [१,०,०.१] को इनपुट करने पर उसी परिणाम की ओर ले जाना चाहिए जैसे कि [१,०,०,१०], तो आप बिना पूर्वाग्रह के बेहतर हो सकते हैं।


आप शायद सामान्यीकरण के साथ बेहतर हैं। आधुनिक नेटवर्क का एक उदाहरण क्या है जो परिमाण के आक्रमण को उत्पन्न करने के लिए "पूर्वाग्रह की कमी" का उपयोग करता है?
AwokeKnowing

@AwokeKnowing, मेरा मानना ​​है कि सामान्य ResNet इसका उपयोग करता है, क्योंकि यह "आरंभीकरण" का एक हिस्सा है, लेकिन मुझे यकीन नहीं है कि उन्होंने ऐसा इस उद्देश्य के लिए सख्ती से किया है, या, शायद मॉडल के आकार / दक्षता के विचार के लिए और मैं। ' मुझे यकीन नहीं है कि यह अवधारणा कहीं भी प्रकाशित है। लेकिन मुझे लगता है कि यह एक सिद्धांत के स्तर पर पूरी तरह से समझ में आता है। यदि आपके पास कोई पूर्वाग्रह नहीं है, जो आपके पैमाने पर नहीं है, तो आप सभी मानों को तदनुसार मापते हैं। इस अवधारणा से वाकिफ हैं, या नहीं, आधुनिक आर्किटेक्चर के बड़े हिस्से में कम से कम उनकी संरचनाओं के एक बड़े हिस्से में पूर्वाग्रह नहीं हैं।
06hor Mé

16

में कुछ प्रयोगों में मेरे स्वामी थीसिस (उदाहरण पृष्ठ 59), मैंने पाया कि पूर्वाग्रह पहली परत के लिए महत्वपूर्ण हो सकता है, लेकिन विशेष रूप से अंत में पूरी तरह से जुड़े परतों में यह एक बड़ी भूमिका नहीं निभाता है।

यह नेटवर्क आर्किटेक्चर / डेटासेट पर अत्यधिक निर्भर हो सकता है।


रेखीय प्रतिगमन के साथ "हाथ से" मॉडलिंग सिस्टम की प्रक्रिया के लिए पूरी तरह से अनुरूप लगता है। सबसे सरल मॉडल Y_bar = माध्य (Y) होगा। तब आप विभिन्न एक्स शर्तें शामिल करके जटिलता जोड़ते हैं, जब कोई महत्वपूर्ण जानकारी हासिल नहीं होती है।
IRTFM

15

पूर्वाग्रह यह तय करता है कि आप अपना वजन कितना कोण घुमाना चाहते हैं।

2-आयामी चार्ट में, वजन और पूर्वाग्रह हमें आउटपुट की निर्णय सीमा खोजने में मदद करते हैं। कहें कि हमें निर्माण और कार्य करने की आवश्यकता है, इनपुट (पी) -आउटपुट (टी) जोड़ी होनी चाहिए

{p = [0,0], t = 0}, {p = [1,0], t = 0}, {p = [0,1], t = 0}, {p = [1,1] , t = 1}

यहां छवि विवरण दर्ज करें

अब हमें निर्णय सीमा खोजने की जरूरत है, विचार सीमा होनी चाहिए:

यहां छवि विवरण दर्ज करें

देख? डब्ल्यू हमारी सीमा के लंबवत है। इस प्रकार, हम कहते हैं कि डब्ल्यू ने सीमा की दिशा तय की।

हालांकि, पहली बार में सही W खोजना मुश्किल है। अधिकतर, हम मूल W मान को यादृच्छिक रूप से चुनते हैं। इस प्रकार, पहली सीमा यह हो सकती है: यहां छवि विवरण दर्ज करें

अब सीमा y अक्ष पर pareller है।

हम सीमा को घुमाना चाहते हैं, कैसे?

डब्ल्यू बदलकर।

तो, हम सीखने के नियम का उपयोग करते हैं: W '= W + P: यहां छवि विवरण दर्ज करें

W '= W + P W' = W + bP के बराबर है, जबकि b = 1।

इसलिए, b (bias) के मान को बदलकर, आप W और W के बीच का कोण तय कर सकते हैं। यह "ANN का अधिगम नियम" है।

आप मार्टिन टी। हैगन / हावर्ड बी। डेमथ / मार्क एच। बेले, अध्याय 4 "परसेप्ट्रॉन लर्निंग रूल" द्वारा न्यूरल नेटवर्क डिज़ाइन भी पढ़ सकते हैं ।


1
सहायक व्याख्या / चित्रण
javadba

10

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

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

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

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

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


9

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

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

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

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

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

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

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

जिसे आप वेक्टर फॉर्मेट में लिख सकते हैं

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

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

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


मैं एंड्रयू एनजी की कक्षा से याद करता हूं कि पूर्वाग्रह को प्रशिक्षण प्रक्रिया के हिस्से में छोड़ दिया गया था। क्या आप अपने जवाब को यह समझाने के लिए अपडेट कर सकते हैं कि यह "सिर्फ एक और इनपुट" है?
AwokeKnowing

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

नहीं, यह अधिक पसंद था, इसे फ़ॉरवर्ड पास में उपयोग करें, लेकिन बैकप्रॉप के लिए ढाल की गणना करते समय, या उसके बाद कुछ का उपयोग न करें।
१17 ’को

@AwokeKnowing मुझे लगता है कि कुछ स्मृति और समय बचाने का एक तरीका है। आप तय कर सकते हैं कि आप पूर्वाग्रह इकाइयों के लिए गुणांक सीखने की परवाह नहीं करते हैं। यह ठीक हो सकता है यदि आपके पास कम से कम एक छिपी हुई परत है क्योंकि पूर्वाग्रह उस परत को कुछ इनपुट प्रदान करेगा और आउटपुट को गुणांक द्वारा पहली से दूसरी परत तक सीखा जा सकता है। मुझे यकीन नहीं है कि अभिसरण गति बदल जाएगी। मेरे एक लेयर उदाहरण में आपको बायस गुणांक सीखने के लिए मजबूर किया जाता है क्योंकि यह आउटपुट पर लागू होता है।
RobMcZag

कई सरल समस्याओं में, लक्ष्य डेटा को हटा दिया गया है और बढ़ाया गया है, इसलिए किसी पूर्वाग्रह की आवश्यकता नहीं है। और बड़ी रेंज के साथ चर में अत्यधिक बाहरी प्रभाव की संभावना कम हो जाती है।
IRTFM

9

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

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

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


8

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

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

y = mx + b

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

छवि

यहाँ b (0,2) है

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


7

मेरे द्वारा अध्ययन की गई सभी एमएल पुस्तकों के लिए, डब्ल्यू को हमेशा दो न्यूरॉन्स के बीच कनेक्टिविटी इंडेक्स के रूप में परिभाषित किया जाता है, जिसका अर्थ है कि दो न्यूरॉन्स के बीच उच्च कनेक्टिविटी, मजबूत सिग्नल फायरिंग न्यूरॉन से लक्ष्य न्यूरॉन या वाई = डब्ल्यू> तक प्रेषित होंगे एक्स न्यूरॉन्स के जैविक चरित्र को बनाए रखने के परिणामस्वरूप, हमें 1> = डब्ल्यू> = -1 रखने की जरूरत है, लेकिन वास्तविक प्रतिगमन में, डब्ल्यू के साथ समाप्त हो जाएगा | डब्ल्यू | > = 1 जो न्यूरॉन्स कैसे काम कर रहे हैं, इसके विपरीत, जिसके परिणामस्वरूप मैं W = cos (थीटा) प्रस्तावित करता हूं, जबकि 1> = | cos (थीटा) | , और Y = a * X = W * X + b जबकि a = b + W = b + cos (थीटा), b एक पूर्णांक


7

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

  1. प्रत्येक न्यूरॉन का एक पूर्वाग्रह होता है
  2. आप पूर्वाग्रह को दहलीज (आमतौर पर दहलीज के विपरीत मूल्यों) के रूप में देख सकते हैं
  3. इनपुट लेयर्स + बायस से भारित राशि न्यूरॉन की सक्रियता को तय करती है
  4. पूर्वाग्रह मॉडल के लचीलेपन को बढ़ाता है।

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

पूर्वाग्रह का मूल्य सीखने योग्य है।

यहां छवि विवरण दर्ज करें

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

सारांश में: पूर्वाग्रह उस मूल्य को नियंत्रित करने में मदद करता है जिस पर सक्रियण फ़ंक्शन ट्रिगर होगा।

अधिक जानकारी के लिए इस वीडियो का अनुसरण करें

कुछ और उपयोगी लिंक:

geeksforgeeks

towardsdatascience


1
अच्छी व्याख्या। लेकिन मुझे यह स्पष्ट नहीं है कि पूर्वाग्रह कैसे सीखा जा सकता है (या प्रशिक्षण योग्य?)। एक साधारण मामले में जहां नुकसान = ReLU (ओमेगा * x + a), वजन ओमेगा को चेन-नियम के माध्यम से प्रशिक्षित किया जा सकता है, लेकिन aजब ग्रेडिएंट aहमेशा एक स्थिर होता है तो पूर्वाग्रह को कैसे प्रशिक्षित किया जा सकता है?
लीबिन वेन

4

पूर्वाग्रह शब्द का उपयोग अंतिम आउटपुट मैट्रिक्स को समायोजित करने के लिए किया जाता है जैसा कि वाई-इंटरसेप्ट करता है। उदाहरण के लिए, क्लासिक समीकरण में, y = mx + c, यदि c = 0 है, तो लाइन हमेशा 0 से गुजरती है। पूर्वाग्रह शब्द को जोड़ने से हमारे न्यूरल नेटवर्क मॉडल को अधिक लचीलापन और बेहतर सामान्यीकरण मिलता है।


0

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


3
पूर्वाग्रह इकाइयाँ और पूर्वाग्रह-भिन्नता व्यापार अलग अवधारणाएँ हैं। प्रश्न पूर्व के बारे में है।
सिग्माक्स

0

पूर्वाग्रह एक बेहतर समीकरण प्राप्त करने में मदद करता है

एक फ़ंक्शन की तरह इनपुट और आउटपुट की कल्पना करें y = ax + bऔर आपको प्रत्येक बिंदु और रेखा के बीच वैश्विक त्रुटि को कम करने के लिए इनपुट (x) और आउटपुट (y) के बीच सही लाइन लगाने की आवश्यकता है, यदि आप इस तरह समीकरण रखते हैं, तो आपके y = axपास होगा अनुकूलन के लिए केवल एक पैरामीटर, भले ही आपको सबसे अच्छा लगेa वैश्विक त्रुटि कम से कम मिले, यह वांछित मूल्य से बहुत दूर होगा

आप कह सकते हैं कि पूर्वाग्रह सर्वोत्तम मूल्यों के अनुकूल समीकरण को अधिक लचीला बनाता है

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