इसलिए मैं खुद को तंत्रिका नेटवर्क (प्रतिगमन अनुप्रयोगों के लिए, बिल्लियों की तस्वीरों को वर्गीकृत नहीं करना) सिखाने की कोशिश कर रहा हूं।
मेरे पहले प्रयोग एक नेटवर्क को एक एफआईआर फिल्टर और एक असतत फूरियर ट्रांसफॉर्म ("सिग्नल से पहले" और "सिग्नल" के बाद प्रशिक्षण) को लागू करने के लिए प्रशिक्षित कर रहे थे, क्योंकि वे दोनों रेखीय ऑपरेशन हैं जो बिना किसी सक्रियण फ़ंक्शन के एक एकल परत द्वारा कार्यान्वित किए जा सकते हैं। दोनों ने ठीक काम किया।
तो फिर मैं देखना चाहता था कि क्या मैं एक जोड़ सकता हूं abs()
और इसे एक आयाम स्पेक्ट्रम सीख सकता हूं । पहले मैंने इस बारे में सोचा कि छिपी हुई परत में कितने नोड्स की आवश्यकता होगी, और यह महसूस किया कि 3 ReLUs एक कच्चे सन्निकटन के लिए पर्याप्त हैं abs(x+jy) = sqrt(x² + y²)
, इसलिए मैंने उस ऑपरेशन को अकेले जटिल संख्याओं पर परीक्षण किया (2 इनपुट → 3 ReLU नोड्स छिपे हुए) → उत्पादन)। कभी-कभी यह काम करता है:
लेकिन ज्यादातर बार मैं इसे आज़माता हूं, यह एक स्थानीय न्यूनतम में फंस जाता है और सही आकार खोजने में विफल रहता है:
मैंने Keras में सभी ऑप्टिमाइज़र और ReLU वेरिएंट आज़माए हैं, लेकिन उनमें बहुत अंतर नहीं है। क्या ऐसा कुछ और है जो मैं इस तरह से सरल नेटवर्क बनाने के लिए कर सकता हूं? या मैं सिर्फ गलत रवैये के साथ ऐसा कर रहा हूं, और आपको समस्या पर जरूरत से ज्यादा नोड्स फेंकने की जरूरत है और अगर उनमें से आधे मर जाते हैं तो यह एक बड़ी बात नहीं मानी जाती?