मैं विकासवादी तंत्रिका नेटवर्क के साथ शोध कर रहा हूं, और एचएनएन का उपयोग कर रहा हूं। मेरा पहला सवाल यह है कि अगर पहले से ही हास्केल में कोई विकासवादी एल्गोरिदम फ्रेमवर्क मौजूद है, क्योंकि मैं कोई भी नहीं ढूंढ पा रहा था?हैकेल में fmap के साथ फ़ंक्शन का उपयोग करके यादृच्छिक जनरेटर का उपयोग कैसे करें?
मैं वर्तमान में तंत्रिका नेटवर्क के वजन को सामान्य तरीके से बदलने के लिए एक रास्ता खोजने के लिए संघर्ष कर रहा हूं। फिलहाल, मैं वजन के HMatrix
पर एक यादृच्छिक फ़ंक्शन (फॉर्म (RandomGen g) => g -> a -> (b,g)
का मानचित्र) मैप करने का प्रयास कर रहा हूं।
यदि यह किया जा सकता है तो यादृच्छिक फ़ंक्शन का उपयोग करने के लिए मुझे मौजूदा fmap (या fold?) को संशोधित करने का एक सामान्य तरीका चाहिए। उदाहरण के लिए, मेरे पास ऐसा फ़ंक्शन हो सकता है जो उसके इनपुट में कुछ गॉसियन शोर जोड़ सकता है या नहीं, और यह पूरे नेटवर्क पर लागू होना चाहता है। मेरी समस्या यह है कि यादृच्छिक संख्या जनरेटर के साथ कैसे काम करना है।
नक्शा के लिए, मैं वर्तमान में कर रहा हूँ निम्नलिखित:
rmap :: (StdGen -> a -> (b,StdGen)) -> StdGen -> [a] -> ([b],StdGen)
rmap _ g [] = ([],g)
rmap f g (x:xs) = let (mapped, g') = rmap f g xs
(rVal, g'') = f g' x
in (rVal:mapped, g'')
यह मेरे लिए एक हैक की तरह लगता है, और मैं बेहतर haskellers से कुछ उम्मीद कर रही थी कि कैसे इस अनियमितता अधिक से निपटने के लिए पर कुछ सलाह हो सकता है प्रभावी रूप से?