डीप न्यूरल नेटवर्क्स में संवेदनशीलता विश्लेषण


14

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

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

क्या तंत्रिका नेटवर्क में कुछ प्रकार के संवेदनशीलता विश्लेषण करने का एक विहित तरीका है?

मैं वास्तव में ऐसा करने के लिए कुछ पायथन कोड का स्वागत करूंगा, यदि कोई हो

जवाबों:


12

आपके द्वारा सुझाए गए संवेदनशीलता विश्लेषण इनपुट के संबंध में आउटपुट के आंशिक डेरिवेटिव की जांच करने से मेल खाते हैं। उत्पादन वेक्टर कहो द्वारा दिया जाता है है, जहां इनपुट वेक्टर है और समारोह नेटवर्क लागू करता है। Jacobian आदानों wrt निर्गम की है:yआरy=(एक्स)एक्सआर

जेमैंजे(एक्स)=एक्सजेमैं(एक्स)

जैकबियन प्रत्येक आउटपुट wrt प्रत्येक इनपुट के परिवर्तन की स्थानीय दर देता है, इसलिए यह बताता है कि infinitesimal perturbations की प्रतिक्रिया में कैसे व्यवहार करेगा। अगर हम साथ निवेश शुरू और एक अत्यल्प मूल्य जोड़ने के लिए वें इनपुट, हम उम्मीद करते हैं वें उत्पादन की वृद्धि करने के लिए ।एक्सΔजेमैंΔजेमैंजे(एक्स)

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

आप याकूब के लिए एक अभिव्यक्ति प्राप्त करने के लिए चेन नियम का उपयोग कर सकते हैं, इसी तरह आप बैकपॉप के साथ उपयोग के लिए नुकसान फ़ंक्शन फ़ंक्शन के ढाल को कैसे प्राप्त करेंगे। तुम भी स्वचालित भेदभाव का उपयोग कर गणना कर सकते हैं, Theano, TensorFlow, आदि जैसे पुस्तकालय का उपयोग कर, वहाँ परिमित विभेदक प्रदर्शन करने के लिए बहुत कारण नहीं है (यानी वास्तव में गड़बड़ी अनुकरण और उत्पादन में परिवर्तन को मापने), जब तक कि समारोह में उनके नेटवर्क के कार्यान्वयन nondifferentiable है ( जिस स्थिति में जैकबियन मौजूद नहीं है)।

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

यह लेख रुचि का होना चाहिए।


महान जवाब और महान लेख! अगर किसी को इस पद्धति को लागू करने में रुचि है, तो आप यहाँ जाकोबियन गणना का एक अच्छा कार्यान्वयन पा सकते हैं: medium.com/unit8-machine-learning-publication/…
pcko1
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.