फेनोट्रोपिक प्रोग्राम डिज़ाइन


15

मैं हाल ही में जारोन लानियर द्वारा "फेनोट्रोपिक प्रोग्रामिंग" नामक एक विचार पर आया था।

यह विचार कंप्यूटर प्रोग्रामों में सिंगल पॉइंट इंटरफेस के बजाय 'सरफेस' इंटरफेस का उपयोग करने के लिए है, जो छोटी त्रुटियों को जीतने के लिए आंकड़ों का उपयोग करते हैं जो आमतौर पर "शास्त्रीय" प्रोग्राम को भयावह रूप से दुर्घटनाग्रस्त होने का कारण बनाते हैं।

दो-पंक्ति विवरण यहां है:

जेरोन के अनुसार, 'सॉफ्टवेयर के वर्तमान विचार के बीच वास्तविक अंतर, जो प्रोटोकॉल का पालन है, और विचार [वह है] चर्चा करना, पैटर्न मान्यता, हम किस प्रकार की त्रुटियां पैदा कर रहे हैं, और अगर' हम डॉन करते हैं 'सॉफ्टवेयर के बारे में सोचने और बनाने का एक अलग तरीका नहीं है, हम कोड के लगभग 10 मिलियन से अधिक प्रोग्राम नहीं लिखेंगे, चाहे हमारा प्रोसेसर कितना भी तेज क्यों न हो।'

थोड़ा लंबा स्पष्टीकरण यहाँ है । और यहां तक ​​कि अब स्पष्टीकरण यहाँ है

तो, सवाल, पिछले रोबोट-अधिपति अर्थों को देखते हुए, जिन्हें लोग बाहर निकालना चाहते हैं, कोई वास्तव में "फिनोट्रोपिक प्रोग्राम" कैसे लिखेगा?


1
कोई अपराध नहीं है लेकिन आपके द्वारा जुड़े लेख बहुत अस्पष्ट और भोले हैं। क्या आप इस बारे में अधिक सटीक हो सकते हैं कि आप क्या समझते हैं phenotropic program?
साइमन बर्गोट

कभी एक लंबे समय के माध्यम से पढ़ें। यह इसका विस्तार से वर्णन करता है।
adv

4
मुझे लगता है कि इसका जवाब देने का एकमात्र तरीका यह है कि "फेनोट्रोपिक प्रोग्राम" क्या है। जिस स्थिति में उत्तर राय आधारित हो जाता है। इसलिए "फिनोट्रोपिक प्रोग्राम" लिखने का तरीका पूछने से पहले पूछें कि "फिनोट्रोपिक प्रोग्राम" क्या है।
बृहस्पतिवार

1
@ शिमोन: सवाल मूल रूप से एक ही बात पूछ रहा है, इसलिए मुझे नहीं पता है कि ओपी के बिना आपका अनुरोध संभव है कि वास्तव में खुद सवाल का जवाब दिया जाए।
रॉबर्ट हार्वे

1
संबंधित विषय (पाठ के लेखक पर विचार करें): mail-archive.com/fonc@vpri.org/msg03808.html
थियागो सिल्वा

जवाबों:


23

लैनियर ने विचारों के एक विशिष्ट सेट के चारों ओर एक जाल डालने के प्रयास में एक 50 प्रतिशत शब्द का आविष्कार किया है जो कंप्यूटर प्रोग्रामों को कुछ पहचानने योग्य विशेषताओं वाले बनाने के लिए एक कम्प्यूटेशनल मॉडल का वर्णन करता है।

शब्द का अर्थ है:

घटक इंटरैक्शन के लिए एक तंत्र जो फ़ंक्शन आमंत्रण या संदेश पासिंग के स्थान पर पैटर्न मान्यता या कृत्रिम अनुभूति का उपयोग करता है।

विचार काफी हद तक जीव विज्ञान से आता है। आपकी आंख दुनिया के साथ इंटरफेस करती है, जैसे किसी फ़ंक्शन के माध्यम से नहीं See(byte[] coneData), बल्कि रेटिना नामक सतह के माध्यम से । यह एक तुच्छ भेद नहीं है; कंप्यूटर को coneDataएक-एक करके सभी बाइट्स को स्कैन करना होगा , जबकि आपका मस्तिष्क उन सभी इनपुट को एक साथ प्रोसेस करता है।

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

लैनियर का दावा है कि बाद वाला इंटरफ़ेस अधिक दोष सहिष्णु है, जो यह है ( coneDataपूरे सिस्टम को तोड़ने में एक एकल फिसल गया)। उनका दावा है कि यह पैटर्न मिलान और अन्य क्षमताओं के एक मेजबान को सक्षम करता है जो कंप्यूटर के लिए सामान्य रूप से कठिन हैं, जो यह करता है।

एक कंप्यूटर प्रणाली में सर्वोत्कृष्ट "फेनोट्रोपिक" तंत्र कृत्रिम तंत्रिका नेटवर्क (ANN) होगा। यह परिभाषित इंटरफ़ेस के बजाय इनपुट के रूप में "सतह" लेता है। पैटर्न मान्यता के कुछ माप को प्राप्त करने के लिए अन्य तकनीकें हैं, लेकिन तंत्रिका नेटवर्क जीव विज्ञान के साथ सबसे अधिक निकटता है। एएनएन बनाना आसान है; यह कार्य करने के लिए कि आप इसे मज़बूती से प्रदर्शन करना चाहते हैं, कई कारणों से मुश्किल है:

  1. इनपुट और आउटपुट "सतहों" की तरह क्या दिखते हैं? क्या वे स्थिर हैं, या क्या वे समय के साथ आकार में भिन्न होते हैं?
  2. आपको नेटवर्क संरचना सही कैसे मिलेगी?
  3. आप नेटवर्क को कैसे प्रशिक्षित करते हैं?
  4. आपको पर्याप्त प्रदर्शन विशेषताएँ कैसे मिलती हैं?

यदि आप जीव विज्ञान के साथ भाग लेने के इच्छुक हैं, तो आप जैविक मॉडल (जो वास्तविक जैविक न्यूरॉन्स के संचालन को अनुकरण करने का प्रयास करते हैं) के साथ दूर कर सकते हैं और एक नेटवर्क का निर्माण कर सकते हैं जो डिजिटल कंप्यूटर सिस्टम के वास्तविक "न्यूरॉन्स" के साथ अधिक निकटता से जुड़ा हुआ है (तर्क) फाटकों)। इन नेटवर्कों को Adaptive Logic Networks (ALN) कहा जाता है। जिस तरह से वे काम करते हैं वह रैखिक कार्यों की एक श्रृंखला बनाकर होता है जो एक वक्र को अनुमानित करता है। प्रक्रिया कुछ इस तरह दिखती है:

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

... जहां एक्स अक्ष एएलएन के लिए कुछ इनपुट का प्रतिनिधित्व करता है, और वाई अक्ष कुछ आउटपुट का प्रतिनिधित्व करता है। अब सटीकता में सुधार के लिए आवश्यक रैखिक कार्यों की संख्या की कल्पना करें, और कल्पना करें कि एन मनमानी आयामों में होने वाली प्रक्रिया पूरी तरह से AND और OR लॉजिक गेट्स के साथ लागू की जाती है, और आपको कुछ समझ में आता है कि ALN कैसा दिखता है।

ALN के पास कुछ खास विशेषताएं हैं:

  1. वे काफी आसानी से प्रशिक्षित हैं,
  2. वे बहुत अनुमानित हैं, अर्थात इनपुट में थोड़े बदलाव से उत्पादन में जंगली झूलों का उत्पादन नहीं होता है,
  3. वे तेजी से बिजली कर रहे हैं, क्योंकि वे एक लॉजिक ट्री के आकार में बने हैं, और बाइनरी सर्च की तरह काम करते हैं।
  4. प्रशिक्षण सेट के परिणामस्वरूप उनकी आंतरिक वास्तुकला स्वाभाविक रूप से विकसित होती है

तो एक फिनोट्रोपिक प्रोग्राम कुछ इस तरह दिखेगा; यह इनपुट के लिए एक "सतह" होगा, एक पूर्वानुमानित वास्तुकला और व्यवहार, और यह शोर इनपुट के लिए सहनशील होगा।

आगे पठन
लेखा परीक्षा के लिए एक परिचय के साथ एक परिचय ऑडिट जोखिम मूल्यांकन "ऑब्जेक्ट ओरिएंटेड" बनाम "संदेश उन्मुख," एलन काय द्वारा एक आवेदन के साथ


1
अगर मैं गलत हूं तो मुझे सुधारो, लेकिन एक "सतह" इनपुट एक संग्रह की तरह लगता है - स्वतंत्र (या ज्यादातर स्वतंत्र) घटकों के। आंख के उदाहरण में, यह इस तरह लग सकता है See(List<Cone> cones)(जहां प्रत्येक Coneएक दूसरे से स्वतंत्र है), हाँ?
FrustratedWithFormsDesigner

1
@ फ़र्स्टडेड आप स्पष्ट रूप से एक सतह को बाइट सरणी के साथ अनुकरण कर सकते हैं, लेकिन वापस लानियर की परिभाषा पर जाएं, जो संदेश गुजरने और समारोह के निमंत्रण को अनुभूति और पैटर्न मान्यता के साथ बदल देता है। यह यहाँ वर्णित स्केलेबिलिटी समस्या से जुड़ा हुआ है । दोष सहिष्णुता भी समीकरण का हिस्सा है। सोचो "होशियार इंटरफेस।"
रॉबर्ट हार्वे

3
पुन: "अधिक दोष सहिष्णु"। क्या लानियर ने कभी ऑप्टिकल भ्रम देखा है? क्या उसने कभी मस्तिष्क के मनोविज्ञान पर ध्यान दिया है। मस्तिष्क हमेशा यह बताने की कोशिश करेगा कि इसके इनपुट क्या बता रहे हैं, कोई बात नहीं, लेकिन यह गलत हैं। मस्तिष्क के काम करने का तरीका बेहद दोषपूर्ण है। इस प्रकार, जब तक कि यह कोई फर्क नहीं पड़ता अगर प्रोग्राम में अक्सर एक सामान्य मानव की तरह खराबी होती है, तो मुझे लगता है कि जिस मॉडल को संदर्भित किया जा रहा है वह ठीक है। हालांकि, ज्यादातर लोग कंप्यूटर के सही होने की उम्मीद करते हैं। कंप्यूटर चालित कार को बेचना मुश्किल होगा जो ज्यादातर समय दुर्घटनाओं से बचाती है।
डंक

2
@ डंक: ... लेकिन मानव चालकों के लिए कारों का निर्माण और बिक्री करना अभी भी कानूनी है जो ज्यादातर समय दुर्घटनाओं से बचने का प्रबंधन करते हैं।
डॉक्टर ब्राउन

2
@ डंक बिंदु दोषों की उपस्थिति नहीं है - अन्यथा हम सब कुछ साबित करने के लिए शास्त्रीय गणित मार्ग पर जाएंगे। बिंदु 1 है: विफलता प्रभाव का दायरा (ब्रह्मांड दुर्घटना नहीं करता है अगर मैं एक गोरिल्ला के लिए एक खरगोश की गलती करता हूं - वास्तव में, मैं अभी भी एक इंसान के रूप में कार्य करता हूं, उसके बाद मेरा मस्तिष्क, और इतना बेटा), 2 : कमरे की भौतिक / जैविक संस्थाओं को पुनर्प्राप्त करना है, प्रतिक्रिया और जांच विकल्प प्रदान करना है जो "चीजों को जारी रखता है - यहां तक ​​कि एक अनौपचारिक तरीके से"; और 3: यह विचार कि वे विशेषताएँ हमारे कृत्रिम सिस्टम में हमें उनके लिए मजबूर करने के लिए मजबूर कर रही हैं
थियागो सिल्वा

1

मुझे लगता है कि हम वहां पहुंचने के लिए उठाए जाने वाले कदमों में से एक की शुरुआत में हैं और यह बहुत सारे डेटा को प्रारूपों में इकट्ठा कर रहा है जिसका विश्लेषण किया जा सकता है। इंटरनेट, गूगल सर्च, फिटबिट (आपके द्वारा उठाया गया हर कदम, आप जो भी कदम उठाते हैं, मैं आपको देखता रहूंगा।), फोरस्क्वेयर, एक स्मार्ट फोन जियो लोकेशन, फेसबुक पोस्ट और एसओ प्रश्न डेटा सभी एकत्र किए जा रहे हैं। हम संवेदी डेटा की मात्रा के पास नहीं हैं जहां औसत मानव एक जीवन समय पर संकलन कर रहा है, लेकिन हम करीब हो रहे हैं।

पक्षियों के लाखों चित्रों को वर्गीकृत करना शुरू करें और लोगों से प्रतिक्रिया प्राप्त करें जो आपको बता रहे हैं कि पक्षी नहीं है और आप एक एल्गोरिथ्म बनाना शुरू कर सकते हैं। वहां से एक फजियर इंप्रेशन (मैं इसे एक मॉडल कहूंगा, लेकिन यह बहुत सटीक है कि हम जो कोड करने की कोशिश कर रहे हैं।) बनाया जा सकता है।

class Birdish

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

अलार्म घड़ी को सेट करने के रूप में सरल कुछ मेरी वर्तमान आदतों के थोड़ा अवलोकन / विश्लेषण द्वारा किया जा सकता है। हमने डिजिटल द्वारा प्रतिस्थापित करने से पहले वीसीआर टाइमर की स्थापना पर छोड़ दिया। और क्या यह तेजी से हुआ होता अगर हम वीसीआर के साथ टीवी गाइड को बाधित कर सकते थे? मैंने एक ही समय में एक ही टीवी शो को 4 सप्ताह में देखा है, लेकिन 5 वां मैं भी टीवी चालू नहीं कर पाया। जाहिर है कि मैं इसे दर्ज करना चाहता हूं। क्या आप यह नहीं बता सकते कि मैं इस पोस्ट को लिखने में देर से रह रहा हूं और अपने विशिष्ट आवागमन के साथ यह समय पर घर नहीं बना पाएगा? आपको डेटा मिल गया है, गणित करें।

अधिक से अधिक डेटा इकट्ठा करें और फिर आप इसका विश्लेषण, पहचान और कवर करने के बेहतर तरीकों के साथ आ सकते हैं। हम उस चीज़ से परे जा रहे हैं जो केवल हमारे फोन कैमरों और जल्द ही ग्लास ग्लास कैमरों के कीबोर्ड से इनपुट हो सकती है। यह तो बस शुरुआत है।


1

यहाँ एक स्लैब में एक संभाव्य प्रोग्रामिंग भाषा को परिभाषित करने के लिए एक स्लाइड सेट है ।

यह सिस्टम के कुछ प्रमुख घटकों के लिए पहला सभ्य कार्यान्वयन उदाहरण है, जो कि जेरोन लानियर प्रस्तावित करता है।


यह बहुत अच्छा लग रहा है। शायद मैं जावा के लिए एक पुस्तकालय डिजाइन करने में एक छुरा लूंगा जो इसी तरह करता है।
सलाह

@ यादव आप इसे कैसे खोजेंगे, यदि आप करते हैं
न्यू अलेक्जेंड्रिया

1
जब मैं इसे बनाने के लिए इधर-उधर हो जाऊंगा तो मैं एक गितुब रेपो का लिंक पोस्ट करूंगा।
adv

-1

एक विचार जो मेरे पास हाल ही में था:

यदि आपने उच्च-स्तरीय विचारों का उपयोग किया जैसे हास्केल की शायद मोनाड अन्य प्रणालियों के लिए दूरस्थ-प्रक्रिया कॉल को लपेटने के लिए। आप सर्वर को एक अनुरोध भेजें। लेकिन कुछ भी वापस नहीं आता (सर्वर टूट गया है)। या एक प्रॉमिस वापस आता है (सर्वर व्यस्त है) और आपके प्रोग्राम उन किसी भी या प्रोमिस किए गए मूल्यों के साथ काम करना जारी रखते हैं। इस तरह की गलती सहिष्णुता Lanier के लिए लग रही है।

हो सकता है कि अन्य घटनाओं को समाप्त करने के तरीके हैं। उदाहरण के लिए रिमोट कॉल जो एक सन्निकटन के साथ वापस आते हैं जो समय-समय पर किसी प्रकार की पृष्ठभूमि बातचीत द्वारा परिष्कृत होता है। अर्थात। जो वापस आता है वह एक वादा की तरह कुछ है, लेकिन न केवल "पकड़े रहें और इसके साथ काम करते रहें और एक उचित मूल्य शीघ्र ही बदल जाएगा" लेकिन "पकड़े रहें और इसके साथ काम करते रहें और बेहतर सन्निकटन शीघ्र ही चालू हो जाएगा"। (और फिर, और फिर)। यह प्रोग्रामर से बहुत सारे दोषों को छिपाने में सक्षम होगा, जैसे कि नेटवर्किंग प्रोटोकॉल प्रोग्रामर से बहुत कम स्तर की नेटवर्किंग विफलता को छिपाते हैं।


यह पूछे गए प्रश्न का उत्तर कैसे देता है?
जन्नत g

अगर मैं सही तरीके से समझूं, तो फिनोट्रोपिक प्रोग्रामिंग बड़े (अक्सर मल्टी-कंप्यूटर), मजबूत सिस्टम को प्रोग्राम करने का एक तरीका है। समस्या यह है कि सभी जैविक रूपकों को व्यावहारिक प्रोग्रामिंग शब्दों में अनुवाद करना अस्पष्ट और कठिन बना देता है। यहाँ मैं सुझाव दे रहा हूँ कि कुछ प्रोग्रामिंग निर्माण अस्पष्ट नहीं हैं (यानी। मोनैड्स, वादे आदि), लैनियर के ठोस और व्यावहारिक रूप से व्यावहारिक विचारों में से कुछ को बनाने का एक तरीका हो सकता है।)
इंटरस्टार
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.