computer science - Understanding Neural Network Backpropagation -


अपडेट: इस मुद्दे का बेहतर निर्धारण।

मैं backpropagation algorithm को समझने की कोशिश कर रहा हूँ एक उदाहरण के रूप में एक XOR तंत्रिका नेटवर्क। इस मामले में 2 इनपुट न्यूरॉन्स + 1 पूर्वाग्रह, छिपे हुए परत + 1 पूर्वाग्रह में 2 न्यूरॉन्स और 1 आउटपुट न्यूरॉन हैं।

  एबीए एक्सओआर बी 1 1 -1 -1 -1 -1 -1 1 1 -1 -1 -1  

ए नमूना XOR तंत्रिका नेटवर्क

मैं उपयोग कर रहा हूँ।

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

चरण 1 इनपुट के प्रत्येक आवृत्ति के लिए आउटपुट की गणना करें।
चरण 2 < / मजबूत> आउटपुट न्यूरॉन (ओं) के बीच त्रुटि की गणना (हमारे मामले में केवल एक है) और लक्ष्य मान (एस):

चरण 3 हम से त्रुटि का उपयोग करते हैं प्रत्येक छिपी इकाई के लिए त्रुटि की गणना करने के लिए चरण 2:

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

क्या मैं यहां सही तरीके से समझ रहा हूं? क्या कोई इसकी पुष्टि कर सकता है?

इनपुट परत के ओ (एच) क्या है? मेरी समझ यह है कि प्रत्येक इनपुट नोड के दो आउटपुट हैं: एक जो छिपे हुए परत के पहले नोड में जाता है और दूसरा नोड छिपी हुई परत में जाता है। ओ (एच) * (1 - ओ (एच)) सूत्र में से भाग में कौन से दो आउटपुट प्लग किए जाएंगे?

< Div class = "post-text" itemprop = "text">

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

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

यदि आप backpropagation समझना चाहते हैं, तो आपको चेन नियम को समझना होगा यह यहाँ चेन नियम के बारे में है अगर आपको नहीं पता कि यह बिल्कुल कैसे काम करता है, विकिपीडिया पर जांचें - यह मुश्किल नहीं है लेकिन जैसे ही आप व्युत्पन्न समझते हैं, सब कुछ जगह में पड़ जाता है पक्का वादा! :)

∂ ई / ∂W श्रृंखला नियम के माध्यम से ∂E / ∂o ∂o / ∂W में बना हो सकता है ∂o / ∂W आसानी से गणना की जाती है, क्योंकि यह वजन के संबंध में एक इकाई के सक्रियण / आउटपुट के सिर्फ व्युत्पन्न है। ∂ ई / ∂o वास्तव में हम क्या deltas कहते हैं (मैं मान रहा हूँ कि ई, ओ और डब्ल्यू वैक्टर / मैट्रिक्स यहाँ हैं)

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

अब सवाल है, हम आंतरिक इकाइयों के लिए डेरिवेटिव कैसे प्राप्त करते हैं? खैर, हम जानते हैं कि एक इकाई का उत्पादन उनके वजन से भारित सभी आने वाली इकाइयों का योग है और बाद में एक हस्तांतरण कार्य के आवेदन के अनुसार होता है। तो ओ_क = एफ (राशि (w_kj * o_j, सभी जे के लिए))।

तो हम क्या करते हैं, o_j के संबंध में o_k प्राप्त करें चूंकि delta_j = ∂E / ∂o_j = ∂ ई / ∂o_k ∂o_k / ∂o_j = delta_k ∂o_k / o_j तो दिया डेल्टा_क, हम डेल्टा_ज की गणना कर सकते हैं!

ऐसा करते हैं। O_k = f (sum (w_kj * o_j, सभी j के लिए)) => ∂o_k / ∂o_j = f '(sum (w_kj * o_j, सभी j के लिए)) * w_kj = f' (z_k) * w_kj।

सिग्मायडल ट्रांसफर फ़ंक्शन के मामले में, यह z_k (1 - z_k) * w_kj हो जाता है ( ट्यूटोरियल में यह त्रुटि है, लेखक ओ_क (1-ओ_क) * w_kj! ) कहते हैं


Comments

Popular posts from this blog

sql - dynamically varied number of conditions in the 'where' statement using LINQ -

asp.net mvc - Dynamically Generated Ajax.BeginForm -

Debug on symbian -