मैं पहले एक आयामी सरणी (इनपुट) के लिए सरलता के लिए नीचे दी गई एक दृढ़ परत के लिए त्रुटि प्राप्त कर रहा हूं जिसे आसानी से एक बहुआयामी में स्थानांतरित किया जा सकता है:
हम यहाँ मानते हैं कि yएल - 1 लंबाई की एन के इनपुट हैं एल - 1-थे काँटा। परत,म वजन का कर्नेल-आकार है w प्रत्येक वजन को दर्शाते हुए wमैं और आउटपुट है एक्सएल।
इसलिए हम लिख सकते हैं (शून्य से योग पर ध्यान दें):
एक्सएलमैं=Σa = ०मी - 1wएyएल - 1ए + आई
कहाँ पे
yएलमैं= च(एक्सएलमैं) तथा
चसक्रियण समारोह (जैसे सिग्मोइडल)। इसके साथ ही अब हम कुछ एरर फंक्शन पर विचार कर सकते हैं
इ और दी गई गलती की परत (आपकी पिछली परत में से एक) पर त्रुटि फ़ंक्शन
∂इ/ ∂yएलमैं। अब हम पिछली परत (परतों) में एक वजन में त्रुटि की निर्भरता का पता लगाना चाहते हैं:
∂इ∂wए=Σa = ०एन- एम∂इ∂एक्सएलमैं∂एक्सएलमैं∂wए=Σa = ०एन- एम∂इ∂wएyएल - 1मैं + ए
जहां हम सभी अभिव्यक्ति पर योग है जिसमें
wए होता है, जो हैं
एन- एम। ध्यान दें कि हम जानते हैं कि अंतिम शब्द इस तथ्य से उत्पन्न होता है कि
∂एक्सएलमैं∂wए=yएल- 1मैं + एजिसे आप पहले समीकरण से देख सकते हैं।
ग्रेडिएंट की गणना करने के लिए हमें पहले शब्द को जानना होगा, जिसकी गणना निम्न द्वारा की जा सकती है:
∂इ∂एक्सएलमैं=∂इ∂yएलमैं∂yएलमैं∂एक्सएलमैं=∂इ∂yएलमैं∂∂एक्सएलमैंच(एक्सएलमैं)
जहां पहले शब्द में पिछली परत में त्रुटि है और
च nonlinear सक्रियण समारोह।
सभी आवश्यक इकाइयाँ होने के बाद अब हम त्रुटि की गणना करने में सक्षम हैं और इसे बहुमूल्य परत तक कुशलतापूर्वक वापस प्रचारित करते हैं:
δएल - 1ए=∂इ∂yएल - 1मैं=Σa = ०मी - 1∂इ∂एक्सएलमैं - ए∂एक्सएलमैं -ए∂yएल- 1मैं=Σa = ०मी - 1∂इ∂एक्सएलमैं - एwचl i p p e dए
ध्यान दें कि अंतिम चरण को नीचे लिखते समय आसान समझा जा सकता है
एक्सएलमैं-s wrt
yएल - 1मैं-s।
चl i p p e d संदर्भित ट्रांसपोज़्ड वेट मैक्सिमिक्स (
टी)।
इसलिए आप केवल अगली परत में त्रुटि की गणना कर सकते हैं (अब वेक्टर संकेतन में):
δएल= (wएल)टीδएल + 1च'(एक्सएल)
जो एक दृढ़ और subsampling परत के लिए बन जाता है:
δएल= u p s a m p l e ( (wएल)टीδएल + 1)च'(एक्सएल)
जहां
यू पी एस ए एम पी एल ई ऑपरेशन अधिकतम पूलिंग परत के माध्यम से त्रुटि का प्रचार करता है।
कृपया मुझे जोड़ने या सुधारने के लिए स्वतंत्र महसूस करें!
संदर्भ के लिए देखें:
http://ufldl.stanford.edu/tutorial/supervised/ConvolutionalNeuralNetwork/
http://andrew.gibiansky.com/blog/machine-learning/convolutional-neural-networks/
और C ++ कार्यान्वयन के लिए (स्थापित करने की आवश्यकता के बिना):
https://github.com/nyanp/tiny-cnn#supported-networks