तंत्रिका नेटवर्क को डीबग करना आमतौर पर हाइपरपरमेटर्स को ट्विक करना, सीखा फिल्टर की कल्पना करना, और महत्वपूर्ण मीट्रिक प्लॉट करना शामिल है। क्या आप साझा कर सकते हैं कि आपके द्वारा उपयोग किए जा रहे हाइपरपरमेटर्स क्या हैं?
- आपके बैच का आकार क्या है?
- आपकी सीखने की दर क्या है?
- आप किस प्रकार के ऑटोएन्कोडर का उपयोग कर रहे हैं?
- क्या आपने एक Denoising Autoencoder का उपयोग करने की कोशिश की है? (आपने किन भ्रष्टाचार मूल्यों की कोशिश की है?)
- कितनी छिपी हुई परतें और किस आकार की?
- आपकी इनपुट छवियों के आयाम क्या हैं?
प्रशिक्षण लॉग का विश्लेषण भी उपयोगी है। युग (एक्स-एक्सिस) के एक फ़ंक्शन के रूप में अपने पुनर्निर्माण के नुकसान (वाई-अक्ष) का एक ग्राफ प्लॉट करें। क्या आपका पुनर्निर्माण नुकसान अभिसरण या विचलन कर रहा है?
यहां मानव लिंग वर्गीकरण के लिए एक ऑटोएन्कोडर का एक उदाहरण दिया गया है जो कि विचलन कर रहा था, 1500 युगों के बाद बंद कर दिया गया था, हाइपरपरमेटर्स को ट्यून किया गया था (इस मामले में सीखने की दर में कमी), और उसी वजन के साथ फिर से शुरू हुआ जो डायवर्जन कर रहे थे और अंततः रूपांतरित हो गए।
यहाँ एक है जो अभिसरण कर रहा है: (हम यह चाहते हैं)
वेनिला "असंबंधित" एक समस्या में भाग सकता है जहां वे बस पहचान मानचित्रण सीखते हैं। यही कारण है कि समुदाय ने डेनोइजिंग, स्पार्स और कॉन्ट्रैक्टिव फ्लेवर का निर्माण किया है।
क्या आप अपने डेटा का एक छोटा सबसेट यहाँ पोस्ट कर सकते हैं? मैं अपने एक ऑटोएन्कोडर्स से आपको परिणाम दिखाने के लिए तैयार हूं।
एक तरफ ध्यान दें: आप अपने आप से पूछना चाहते हैं कि आप पहले ग्राफ़ की छवियों का उपयोग क्यों कर रहे हैं जब उन ग्राफ़ को आसानी से डेटा के वेक्टर के रूप में दर्शाया जा सकता है। अर्थात,
[0, 13, 15, 11, 2, 9, 6, 5]
यदि आप ऊपर जैसी समस्या का सुधार करने में सक्षम हैं, तो आप अनिवार्य रूप से अपने ऑटो-एनकोडर के जीवन को आसान बना रहे हैं। इससे पहले यह सीखने की जरूरत नहीं है कि छवियों को कैसे देखा जाए, इससे पहले कि वह जनरेटिंग वितरण को सीखने की कोशिश कर सके।
उत्तर का पालन करें (डेटा दिया गया है)
यहां 1000 छिपी हुई यूनिट, सिंगल लेयर डेनोइजिंग ऑटोकेनडर के फिल्टर हैं। ध्यान दें कि कुछ फिल्टर यादृच्छिक रूप से प्रतीत होते हैं। ऐसा इसलिए है क्योंकि मैंने इतनी जल्दी प्रशिक्षण रोक दिया और नेटवर्क के पास उन फ़िल्टर को सीखने का समय नहीं था।
यहाँ हाइपरपरमीटर हैं जिन्हें मैंने इसके साथ प्रशिक्षित किया है:
batch_size = 4
epochs = 100
pretrain_learning_rate = 0.01
finetune_learning_rate = 0.01
corruption_level = 0.2
मैंने 58 वें युग के बाद पूर्व प्रशिक्षण बंद कर दिया क्योंकि यहाँ पोस्ट करने के लिए फ़िल्टर पर्याप्त रूप से अच्छे थे। अगर मैं तुम होते, तो मैं एक 1000x1000x1000 आर्किटेक्चर के साथ पूर्ण 3-लेयर स्टैक्ड डेनोइज़िंग ऑटोकेनडोर को शुरू करने के लिए प्रशिक्षित करता।
यहाँ ठीक ट्यूनिंग कदम से परिणाम हैं:
validation error 24.15 percent
test error 24.15 percent
इसलिए पहली नज़र में, यह मौका से बेहतर लगता है, हालांकि, जब हम दो लेबल के बीच डेटा टूटने को देखते हैं तो हम देखते हैं कि इसका ठीक उसी प्रतिशत (75.85% लाभदायक और 24.15% लाभहीन) है। तो इसका मतलब है कि नेटवर्क ने संकेत की परवाह किए बिना "लाभदायक" का जवाब देना सीख लिया है। मैं शायद इसे लंबे समय के लिए एक बड़े जाल के साथ प्रशिक्षित करता हूं कि क्या होता है। इसके अलावा, ऐसा लगता है कि यह डेटा किसी प्रकार के अंतर्निहित वित्तीय डेटासेट से उत्पन्न हुआ है। मेरा सुझाव है कि आप ऊपर बताए अनुसार वैक्टर में अपनी समस्या के सुधार के बाद आवर्तक तंत्रिका नेटवर्क में देखेंगे। RNN इस तरह के समय डेटा में पाया जाता है कि कुछ अस्थायी निर्भरता पर कब्जा करने में मदद कर सकते हैं। उम्मीद है की यह मदद करेगा।