Keras Convolution2d () द्वारा उपयोग किए जाने वाले डिफ़ॉल्ट फ़िल्टर क्या हैं?


18

मैं तंत्रिका नेटवर्क के लिए बहुत नया हूं, लेकिन मैं रेखीय बीजगणित और दृढ़ संकल्प के गणित को काफी समझदारी से समझता हूं।

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

model.add(Convolution2D(nb_filter = 32, nb_row = 3, nb_col = 3,
                        border_mode='valid',
                        input_shape=input_shape))

ऐसा लगता है कि CNN द्वारा संसाधित चित्रों में कुल 32 3x3 फ़िल्टर लगाए जा सकते हैं। लेकिन वे फ़िल्टर क्या हैं? मैं उनका गणितीय रूप से वर्णन कैसे करूंगा? केरस प्रलेखन कोई मदद नहीं है।

अग्रिम में धन्यवाद,


2
यह सीएनएन के दृढ़ संकल्प भाग को समझने से आता है। आप यहाँ पढ़ सकते हैं: cs231n.github.io/convolutional-networks
क्रिश्चियन

जवाबों:


15

डिफ़ॉल्ट रूप से फ़िल्टर डब्ल्यू बेतरतीब ढंग से initialised कर रहे हैं का उपयोग कर glorot_uniformविधि है, जो सकारात्मक और नकारात्मक सीमा के साथ एक समान वितरण से मूल्यों को ड्रॉ के रूप में तो वर्णित:

डब्ल्यू~यू(6nमैंn+nयूटी,-6nमैंn+nयूटी),

जहाँ nमैंn उन इकाइयों की संख्या है जो इस इकाई में फ़ीड करते हैं, और nयूटी इकाइयों की संख्या है जो इस परिणाम को खिलाया जाता है।

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

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

शुद्ध शुद्ध दृश्य कल्पना

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


5
glorot_uniformसामान्य वितरण का उपयोग नहीं करता है। मुझे लगता है कि आप वर्णन कर रहे हैं glorot_normal। मुझे नहीं लगता कि यह उत्तर के लिए बहुत मायने रखता है - प्रमुख बिंदु यादृच्छिक आरंभीकरण के बाद प्रशिक्षण के प्रभाव हैं। यह समझाने के लायक हो सकता है कि प्रशिक्षित फिल्टर छोर / कोने आदि फिल्टर की तरह कैसे दिखते हैं (शायद पहले इमेजिंग फिल्टर की ट्रेनिंग के बाद / बाद की क्लासिक छवियों में से एक के साथ)।
नील स्लेटर

टिम, गणित प्रदान करने के लिए धन्यवाद। @ नील स्लेटर - आपकी अंतर्दृष्टि कि फ़िल्टर, बैकप्रोपेगेशन के साथ प्रशिक्षण के बाद, किनारे का पता लगाने की तरह लग सकता है, आदि, काफी मददगार थे। यदि मेरी अधिक प्रतिष्ठा होती, तो मैं आपके दोनों योगदानों को +1 कर देता।
क्रिसफेल

@NeilSlater आपकी टिप्पणी के लिए धन्यवाद - आप सही हैं, मैं उलझन में था glorot_normalऔर glorot_uniform, और मैंने इसे प्रतिबिंबित करने के लिए उत्तर अपडेट कर दिया है। जैसा कि आपने सुझाया था कि कैसे फ़िल्टर समाप्त होता है, इसके बारे में मैंने कुछ अतिरिक्त जानकारी भी जोड़ी।
timleathart

6

एफबी(मैं,जे)

बी(मैं,जे)=(एफ*)(मैं,जे)=Σएल=0,1,2Σ=0,1,2एफ(एल,)(मैं-एल,जे-)

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

ट्रान्स किए गए मॉडल आपकी लागत फ़ंक्शन के अनुसार गुठली को प्रशिक्षित करेंगे, और अंत में ये गुठली आपके मॉडल के फिल्टर हैं।


मैं इस गणित को समझ गया, लेकिन मुझे यकीन है कि इस धागे के कई पाठक आरेख को उपयोगी पाएंगे। तो धन्यवाद!
क्रिसफेल

imghost.in/images/2018/03/06/XvatD.jpg शायद चित्र B पर कोर्ड (0,0) के साथ होना चाहिए?
vinnitu

@vinnitu हाँ, वास्तव में। वास्तव में मुझे B को Bk (i, j), (i = 0,1,2, j = 0,1,2) में भी बदलना होगा।
भाग्यशाली
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.