Category Archives: Uncategorized

disappearing comments

सभी को राम राम ।

आज अपने वर्डप्रेस ब्लोग्स के बारे में एक बड़ी शॉकिंग बात पता चली ।

वह यह के मेरे वर्डप्रेस के दोनों ब्लोग्स पर कोई akismet स्पैम डिटेक्टर एक्टिव है – जो खुद ही कमेंट्स को स्पैम कर रहा है । वहां तक तो कोई बात नहीं – लेकिन स्पैम करने के साथ ही यह इन कमेंट्स को अपने आप डिलीट भी कर रहा है ।

कहीं आपके वर्डप्रेस ब्लॉग पर भी ऐसा तो नहीं हो रहा है ?

स्पेसिफिकली —————————————–

1. आराधना – (http://shilpamehta3.wordpress.com/)

* स्पैम कमेंट्स – 176 (सब औटोमेटीकली डीलिट हो चुके हैं – मैं जानती भी नहीं वे कब आये, किसने किये 😦 , शायद वे स्पैम नहीं थे, जेनविन थे ? किसे पता ?

* पब्लिश्ड कमेंट्स – 11 – सिर्फ ये ही मेरे पास अप्रूवल के लिए पहुंचे थे, सब ही अप्रूव हुए। एक भी स्पैम नहीं था इनमे से ।

—————————————–

2. गणित और विज्ञान – (https://shilpamehta5.wordpress.com/)

* स्पैम कमेंट्स – 265 (सब औटोमेटीकली डीलिट हो चुके हैं – मैं जानती भी नहीं वे कब आये, किसने किये 😦 , शायद वे स्पैम नहीं थे, जेनविन थे ? किसे पता ?

* पब्लिश्ड कमेंट्स – 3 – सिर्फ ये ही मेरे पास अप्रूवल के लिए पहुंचे थे, सब ही अप्रूव हुए। एक भी स्पैम नहीं था इनमे से ।

—————————————–

अभी हेल्प ढूंढ कर सेटिंग्स चेंज तो की हैं – कि

1. कोई “स्पैम” माने गए कमेंट्स डीलिट न हों, बल्कि मोडरेशन क्यों में रहे जिन्हें मैं बाद में देख सकूं ।

2. लेकिन क्या आप में से कोई मित्र (specially wordpress bloggers ) कोई ऐसी कोई विधि जानते है जिससे यह सोफ्टवेयर ही डिसेबल कर सकूं ? मीनिंग की ऑटो स्पैम डिटेक्शन न हो ?

3. क्या इन डिलीट हो चुके कमेंट्स को वापस पाने का कोई तरीका है ?

4. जिन भी मित्रों ने वहां कमेंट्स किये थे और उनके कमेन्ट नहीं छपे – उनसे करबद्ध क्षमाप्रार्थी हूँ । अब आगे कम से कम डिलीट तो नहीं हों – सेटिंग्स चेंज कर दी हैं ।

—————————————-

कहीं आपके वर्डप्रेस ब्लॉग पर भी ऐसा तो नहीं हो रहा है ?

चेक करने के लिए –

1. वर्डप्रेस के डैश्बोर्ड में जाइये,

2. बायीं तरफ के साइडबार लिंक्स में ये हैं : 1. home 2. comments i have made 3. site stats 4. akismet stats हैं ।

3. akismet stats को क्लिक कीजिये – और all time में देखिये की क्या स्थिति है ?

4. यदि बदलाव करना चाहें तो 1. settings 2. discussion 3. Comment Moderation 4. Don’t discard spam on old posts के बॉक्स को टिक कीजिये (वह डिफौल्ट से अन्टिक्ड है)

शायद यह पोस्ट आपके किसी काम आ सके ?

—————————————

Advertisements

cryptography steganography

 

जब से मानव ने दूरियों पर सन्देशों का आदान प्रदान शुरू किया, तो इसके साथ ही प्रश्न उठा सन्देश की सुरक्षा का । इसमें कुछेक बातें ये भी हैं :

1. सन्देश गलत व्यक्तियों को न मिलें (जैसे कोइ सैन्य संदेश) – authentication

2. बीच राह में कोई सन्देश को रोक या पढ या समझ न पाए (जैसे कोई प्रेमपत्र)। – confidentiality

3. सन्देश लेखक के सन्देश लिखने के बाद कोई और उसे न तो बदल पाए, न ही काट छांट पाए (जैसे आपने किसी के लिए 100 रुपये का चेक भेज – उसे वह 1000 न बना पाए)। – message integrity

4. सन्देश भेजने वाला भी बाद में अपने लिखे से मुकर न पाए (जैसे किसी काम के लिए कोई वस्तु किसी ने किसी को देने का वादा किया, और अपना काम निकल जाने पर वह कहे कि , मैंने ऐसा कोई वादा नहीं किया था )। – non-repudiation

 

इन में से पहले दो काम स्टेग्नोग्राफी और क्रिप्टोग्राफी से होते हैं ।

———————————————————–

क्रिप्टोग्राफी

इसमें सन्देश को किसी तरह के गोपनीय कोड से “एनक्रिप्ट” कर के भेजा जाता है । फिर उसे पढने की गोपनीय जानकारी हुए बिना दूसरा पक्ष उसे देख भी सके तो भी पढ़ नहीं सकता । इसमें दो मुख्य पद्धतियाँ हैं : secret key और public key ।

 

Secret key : इसमें भेजने वाले और पढने वाले दो ही लोग अपनी आपसी शेअर्ड चाबी  जानते हैं । पूरी दुनिया यह तो जानती है की एनक्रिप्शन कैसे होता है, किन्तु चाबी न होने से उसे पढ़ने के लिए ताला खोल नहीं सकती  ( प्रयास कर कर के खोल भी पाए – तो तब तक इतनी देर हो चुकी हो कि उससे कोई नुक्सान न कर पाए) । हर अलग मूल सन्देश (plaintext) को एक ही चाबी से या (एक ही सन्देश को अलग चाबी से ) एनक्रिप्ट करने पर अलग अलग सन्देश बनते हैं – जिन्हें ciphertext कहा जाता है । उसे पढ़ वही सकता है जो चाबी जानता हो  । हम सब  ने ही शायद बचपन के खेलों आदि में ऐसी कूटभाषा प्रयुक्त की होगी । जासूसी में , सेना में, और प्रेमपत्रों में यह सब खूब प्रयोग होता है ।

 

हिटलर साइफर बड़ा प्रसिद्ध उदाहरण है ।

इस तकनीक का एक उदाहरण :

Message : my name is shilpa

Technique : substitution

Key : gap = +2

 

Original        : a b c d e f g h  j k  l m n o p q r s t u  v w x y z  1 2 3 4 5 6 7 8 9

Substituted   : c d e f  g  i j k l m n o p q r s  t u v w x y z  0 1 2 3 4 5 6 7 8 9 a b

 

तो माय नाम इस शिल्पा का उत्तर बना :

my name is shilpa

= o0 pcog ku ujknrc

 

यही सन्देश ” my name is shilpa” एक दूसरी “की” से एनक्रिप्ट करने पर सन्देश बनेगा :

o|$sgtm)s~, vx|s

 

इस तरह हर अलग की से एक ही सन्देश के अलग अलग रूप बनेंगे, जिन्हें तोड़ कर मूल सन्देश पाने के लिए की जानना आवश्यक है । हर प्रेषक हर एक मित्र के साथ अलग अलग की इस्तेमाल कर सकता है, जो एक दुसरे की की नहीं जानते तो वे सिर्फ अपने सन्देश पढ़ सकते हैं ।

 

इसे तोडना बड़ा आसान है : क्योंकि सारी दुनिया जानती है कि substitution हुआ है , तो वे एक एक कर के सब चाबियां try कर सकते हैं । लेकिन चाबी की लम्बाई इतनी अधिक हो कि  trials में इतना समय लग जाए कि वह सन्देश अपना महत्व खो दे – तो यह तकनीक सफल होगी । इसी तरह की और भी कई अल्गोरिदम हैं । जितनी बड़ी चाबी हो, उतना मजबूत ताला होता है । साधारण पत्रों के लिए अलग तरह की सुरक्षा, बैंक आदि के लिए अलग, और सेना के लिया और अधिक कड़े सुरक्षा इंतज़ाम (longer keys ) होते हैं ।

—————————————————————

 

स्टेगनोग्राफी :

यहाँ सन्देश को छुपा कर भेजा जाता है । जैसे व्यक्ति x , किसी और व्यक्ति y  को एक चित्र भेजे और उसमे छुपा कर एक सन्देश भी । अब दुनिया अक्सर यह जान ही नहीं पाती की इस चित्र / गीत / विडिओ आदि में कोई छुपा सन्देश मौजूद भी है । जान भी जाए, तो चित्र में इतने अधिक 1 और 0 के सेट्स हैं, की उसमे से सन्देश खोज निकालना करीब करीब असंभव सा है ।

——————————

 

 

पहला चित्र :

 

 

——————————

सन्देश : my name is shilpa

सन्देश छुपा कर बना चित्र :

 

 

 

 

अब देखने में दोनों चित्रों में कोई फर्क नहीं है, किन्तु दुसरे चित्र में यह मेसेज छुपी है – जो कोई अनजान व्यक्ति जान भी न सकेगा, खोज पाना तो खैर बहुत दूर की बात है 🙂 – ढूँढने की कोशिश न कीजियेगा , समय व्यर्थ होगा, क्योंकि इसे आँख से देख कर तो नहीं ही खोजा जा सकता है ।

 

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

 

फिलहाल तो रिसर्च के सिलसिले में इससे सम्बंधित कुछ काम कर रही थी – सोचा शेयर किया जाए आप सब के साथ 🙂

neural learning algorithms error correction

 

यह पोस्ट समझने के लिए पुरानी कड़ियाँ पढ़ी हुई होनी आवश्यक हैं । 

सब कड़ियाँ न भी पढ़ी हों तो भाग “तीन” अवश्य पढ़ लीजिये इस भाग से पहले ।

 

(अनुवाद सहायता के लिए आदरणीय गिरिजेश राव जी को आभार)

 

 

पुराने भाग 1234  


यह नीला भाग पिछले भागों की पुनरावृत्ति है । चाहें तो इसे पढ़ें या न पढना चाहें तो छोड़ कर आगे 

बढ़ जाएँ । 


———————————————————————————————-

पिछले भाग में हमने देखा की सीखने के प्रकार और सीखने की विधियाँ अलग अलग  हैं ।

 

सीखने के प्रकार (paradigms) उन तरीकों को कहते हैं , जिनसे न्यूरल नेटवर्क अपने आस पास के माहौल से उसके बारे में जानकारी / संज्ञान हासिल करता है : ये थे 

1. Learning with a teacher (गुरु की मदद से सीखना)
2. Learning without teacher with supervision (with critic ) (आलोचक / समीक्षक की सहायता से गुरु के बिना सीखना )
3. Unsupervised learning (स्वयं सीखना)


सीखने की विधि (algorithms) उन तरीकों को कहते हैं जिन्हें न्यूरल नेटवर्क बाहर से जानी हुई बातों को अपने भीतर कैसे समझता / सीखता / याद रखता है । जैसे हम मनुष्य भी – 

** स्कूल में टीचर ने सिखा दिया कि ” 5×8 = 40, or 2^4=2.2.2.2 = 16″ तो : 

** कोई इसे समझेगा कि संख्या 5 को अपने आप से 8 बार जोड़ा जाए तो परिणाम 40 आएगा । 

** या समझेगा कि, 2 को अपने आप से 4 बार गुणा किया जाए तो परिणाम 16 आयेगा। 

** कोई इसे समझने का प्रयास नहीं करेगा – याद कर लेगा / रट्टा मार लेगा । 

हर किसी के सीखने की प्रक्रिया अलग हो सकती है, या एक भी हो सकती है । 

 

न्यूरोन की बनावट और काम करनेके तरीके पर मैंने तीसरे भाग (लिंक) में विस्तृत चर्चा की थी । जो इसे जानना चाहते हैं उनके लिए यहाँ बहुत ही संक्षेप में फिर से लिख रही हूँ । जिन्हें याद ही है वे इस नीले अक्षरों वाले भाग को छोड़ कर आगे बढ़ जाएँ । जो इससे अधिक जानना चाहें वे तीसरे भाग को फिर एक बार पढ़ लें ।

:

[

artificial neuron कुछ ऐसा होता है । यह natural वाले से बहुत ही कमतर है – किन्तु working की नक़ल करता है ।

Artificial  Neuron 

 

१.ये जो inputs दीख रहे हैं – ये असल inputs हैं । इनमे से जो इनपुट अभी मौजूद हो वह “1” से और जो मौजूद न हो वह “0” से दर्शाया जाता है । Bias वाला इनपुट (पूर्वाग्रह – श्रंखला की पहली तीन पोस्ट्स देखें) हमेशा ही “1” से दर्शाया जाता है ।

२.इस एक नयूरोन का सिर्फ एक ही output है – निर्णय, कि “हाँ” यह करना है /या फिर / “नहीं” – यह नहीं करना है)।

३.हर इनपुट को कितना और कैसा (+ या -) महत्व (वजन, weight ) दिया जाएगा – नयूरोन हर उदाहरण से सीखता है ।

४.यह सीखना अब तक के अनुभव की आधार पर होता है – यह वजन अनुभव के साथ बदलता है ।

५.जो इनपुट इस neuron के output के साथ में सकारात्मक रूप से काम करें, उन inputs का इस neuron में + दिशा में महत्व बढ़ता जाता है, और जो इस output के साथ न हों / विरुद्ध हों, उनका वजन  दिशा में बढ़ता है ।

६.हर इनपुट को अभी तक के वजन से गुना कर के, ये सारी चीज़ें (असर) SUMMING NODE (योग ग्रंथि ) पर जोड़ी जाती हैं ।

७.activation function का काम है इस जोड़ को (जो + या – , एक से कम या एक से अधिक, हो सकता है ) {+ या -१} तक लिमिट (सीमित) करना। (अर्थात (+ = हाँ) या (- = ना) में उत्तर बनाना ) यदि योग/ जोड़ शून्य या उससे अधिक हो तो उत्तर होगा “हाँ” (=+1), और यदि योग शून्य से कम हो तो उत्तर होगा नहीं (= -1)

 

—————————————-

इसे तीसरे भाग में एक घुटने चलने वाले बच्चे के माँ के साथ रोजमर्रा के सीखने के तरीकों से समझाया था । आप वहां देख सकते हैं ।

]

———————————

अब आगे : 

न्यूरल नेटवर्क्स मानवीय सीखने की प्रक्रियाओं को ही फोलो करते हैं । ये मुख्यतः 5 तरीके हैं :

 

1. Error correction learning (गलतियों से उन्हें सुधारने के प्रयास कर के सीखना)

2. Hebbian learning ( हेब एक biologist थे – उन्होंने मानव सीखने की प्रक्रियाओं पर रीसर्च की थी

                               – उनकी बताई विधि)

3. Memory based learning (रट कर याददाश्त से काम करना, बिना समझे  )

4. Stochastic learning (works on probabilitie theory  – यह संभावनाओं के सिद्धांतों पर काम करती है)

5. Competetive learning (प्रतियोगिता में जीतने के प्रयासों से सीखना)

 

इस भाग में सिर्फ error correction learning देखेंगे ।

कृपया इसे कठिन या गणितात्मक मान कर सरसरी तौर पर न पढ़ें, तब यह कठिन लगेगा । एक बार धीरे धीरे पढ़ें, मुझे विश्वास है समझ में आ जायेगी यह प्रक्रिया । 

—————————————————-

Error correction learning : यह चित्र देखिये (कोई भी चित्र क्लिक से बड़ा कर के देखा जा सकता है )

इसे सरल रखने के लिए , फिर से वही पुराना वाला ही उदाहरण ले रही हूँ । और सिर्फ दो ही इनपुट रख रही हूँ – एक खिलौना, और दूसरा गर्म कुकर ।  

1. न्यूरल नेटवर्क है एक घुटने चलने वाला बालक – जो परिवेश के बारे में सीख रहा है । उसे निर्णय लेना सीखना है कि “इस वस्तु को मुझे छूना है, या नहीं छूना है ?” (हाँ = +1, ना = -1)

2. desired response वह है जो असल में होना चाहिए, जो परिवेश को पहले से जानने वाला व्यक्ति उस इनपुट के साथ निर्णय लेता ।

3. Input 1 = एक खिलौना – (वातावरण को जानने वाला कहेगा कि हाँ बच्चे को यह छूना चाहिए )

4. Input 2 = गर्म कुकर – जिससे बच्चे का हाथ जल सकता है ।(वातावरण को जानने वाला कहेगा कि नहीं – बच्चे को यह नहीं छूना चाहिए )

बच्चे (जैसा हम सब जानते ही हैं) हर चीज़ को छूना / पकड़ना चाहते हैं । तो present weight हर इनपुट (आवक) के लिए +1 ही है , ऐसा हम मान लेते हैं ।

5. जो इनपुट अभी मौजूद है , वह एक (1) है, बाकी सब इनपुट 0 (शून्य) हैं । अर्थात बच्चा एक समय में एक ही इनपुट के बारे में अपने अनुभव से सीखेगा , कि उस चीज़ को छूना है या नहीं छूना है । 


अब एक एक कर के अलग अलग तीन परिस्थितयां देखते हैं :

————

पहली स्थिति में – खिलौना मौजूद है, कुकर नहीं है , अभी कुछ सीखा नहीं है ।

सामने खिलौना है ।

 

input 1: खिलौना मौजूद है (1)

input 2: कुकर नहीं है (0) ।

शाखाओं के weights : सीखने से पहले – बच्चे सामने दिखती हुई हर चीज़ छूना चाहते हैं – तो सभी weight अभी “+1” हैं ।

Desired Output “+1” है – हाँ – बच्चे को खिलौना लेना चाहिए ।

 

तो चित्र कुछ ऐसा है : (चित्र को बड़ा करना चाहें तो उसे क्लिक करें )

 

* ऊपर की शाखा से (खिलौने से) योग ग्रंथि पर आगत है (इनपुट)x (वजन) = (1) x (+1) = 1

* नीचे की शाखा से (कुकर से ) योग ग्रंथि पर आगत है (इनपुट)x (वजन) = (0) x (+1) = 0

 

* तो योग बना 1+0 = 1

* योग शून्य से अधिक है । तो एक्टिवेशन फंक्शन से आउटपुट होगा +1 , अर्थात “हाँ” ।

 

* इच्छित आउटपुट (निर्गम / परिणाम ) भी “हाँ” ही था । सो दोनों में कोई फर्क नहीं है

त्रुटी =  एरर = शून्य ।

* एरर को हर एक इनपुट के वजन को सुधारने / बदलने के लिए प्रयुक्त किया जाता है

 

* शोधन = करेक्शन= (इनपुट)x(एरर) द्वारा तय होता है

* जब एरर शून्य है तो वजन या भार में सुधार होगा (0)x (इनपुट) = 0 , अर्थात

जब एरर (गलती) शून्य होगी तो चाहे वह इनपुट उस वक्त कार्यरत (present ) था, या नहीं था – किसी भी इनपुट शाखा के वजन में में कोई भी बदलाव नहीं आएगा ।

 

तो इस पूरी प्रक्रिया के बाद, खिलौने के लिए बच्चे के मन में कोई बदलाव नहीं आएगा । वह पहले भी इसे छूना चाहता था, छूता भी था – और अब भी वही जारी रहेगा ।

—————

दूसरी स्थिति : गर्म कुकर मौजूद है,  खिलौना नहीं है, अभी कुछ सीखा नहीं है 

input 1: खिलौना नहीं है (0)

input 2: गर्म कुकर मौजूद है (1)

weights :

 

शाखाओं के weights : सीखने से पहले – बच्चे सामने दिखती हुई हर चीज़ छूना चाहते हैं – तो सभी weight अभी “+1” ही हैं ।

Desired output (इच्छित परिणाम / निर्गम ) है “-1” अर्थात बच्चे को कुकर नहीं छूना चाहिए ।

चित्र अब ऐसा बनेगा :

 

 

* ऊपर की शाखा से (खिलौने से) योग ग्रंथि पर आगत है (इनपुट)x (वजन) = (0) x (+1) = 0

* नीचे की शाखा से (कुकर से ) योग ग्रंथि पर आगत है (इनपुट)x (वजन) = (1) x (+1) = 1

 

* तो योग बना 1+0 = 1

* योग शून्य से अधिक है । तो एक्टिवेशन फंक्शन से आउटपुट होगा +1 – अर्थात “हाँ” । तो बच्चा कुकर को छुएगा ।

 

*  इच्छित आउटपुट “नहीं” (= -1) था ।

सो इच्छित (desired ) और actual (वास्तविक) आउटपुट, दोनों में फर्क है

(यह एरर बच्चे को हाथ की जलन से आएगा , कृपया इसे अन्यथा न लें, मैं किसे बच्चे को जलाने की बात नहीं कर रही, सिर्फ सीखने की प्रक्रिया समझा रही हूँ)

* एरर = त्रुटी = इच्छित आउटपुट – वास्तविक आउटपुट

* तो एरर हुआ (-1) – (+1) = -2

 

* एरर को हर एक इनपुट के वजन को सुधारने / बदलने / संशोधित करने के लिए प्रयुक्त किया जाता है

* सुधार = करेक्शन= (इनपुट)x(एरर) द्वारा

* ऊपरी शाखा में

सुधार = करेक्शन = (इनपुट)x (एरर) = (0 खिलौना मौजूद नहीं है)x (-2) = 0

अर्थात जो इनपुट मौजूद नहीं है, उसके वजन में कोई बदलाव नहीं आएगा ।

* नीचे वाली शाखा में

सुधार = करेक्शन = (इनपुट)x (एरर) = (1 कुकर मौजूद है )x (-2) = -2

****** तो कुकर का नया वजन बना

पुराना वजन +सुधार = (+1) + (-2) = -1

* तो इस पूरी प्रक्रिया के बाद, खिलौने के लिए बच्चे के मन में कोई बदलाव नहीं आएगा, बच्चा पहले भी खिलौने को छूना चाहता था, छूता भी था – और अब भी वही जारी रहेगा । लेकिन कुकर के विषय में वजन +1 से बदल कर -1 हो गया – जिससे अगली बार बच्चा इसे नहीं छूना चाहेगा । 

————————————————————

 

तीसरी स्थिति : गर्म कुकर – एक बार जलने के कारण सीख चुकने के बाद 

input 1: खिलौना नहीं है (0)

input 2: गर्म कुकर मौजूद है (1)

weights : अब सीख चुकने के बाद वजन हैं खिलौने के लिए +1 और कुकर के लिए -1

Desired output (इच्छित उत्तर) है -1 अर्थात बच्चे को कुकर नहीं छुना चाहिए ।

चित्र अब भी ऐसा ही बनेगा , किन्तु वजन अलग हैं :

 

 

 

* ऊपर की शाखा से (खिलौने से) योग ग्रंथि पर आगत है (इनपुट)x (वजन) = (0) x (+1) = 0

* नीचे की शाखा से (कुकर से ) योग ग्रंथि पर आगत है (इनपुट)x (वजन) = (1) x (-1) = -1

 

* तो योग बना 0+(-1) = -1

* योग शून्य से कम है । तो एक्टिवेशन फंक्शन से आउटपुट होगा -1 – अर्थात “नहीं ” । तो बच्चा कुकर को नहीं छुएगा 

 

* इच्छित आउटपुट भी “नहीं” (= -1) था । सो इच्छित और एक्चुअल आउटपुट, दोनों में फर्क नहीं है(बच्चे को जलन महसूस नहीं करनी पड़ेगी क्योंकि उसने कुकर को नहीं छुआ है )

* एरर = इच्छित आउटपुट – एक्चुअल आउटपुट = (-1) – (-1) = 0

 

* एरर को हर एक इनपुट के वजन को सुधारने / बदलने के लिए प्रयुक्त किया जाता है

* सुधार = करेक्शन= (इनपुट)x(एरर) द्वारा , एरर शून्य होने से आगे सुधार शून्य ही रहेगा, और वजन नहीं बदलेंगे

* तो इस पूरी प्रक्रिया के बाद, खिलौने के लिए बच्चे के मन में कोई बदलाव नहीं आएगा, बच्चा पहले भी खिलौने को छूना चाहता था, छूता भी था – और अब भी वही जारी रहेगा ।  कुकर को नहीं छूना चाहता था, वहां भी वैसा ही वजन बना रहेगा ।

—————————————————

 

सीखने की इस प्रक्रिया को एरर करेक्शन लर्निंग कहते हैं । 

 

आशा है आप लोग इसे समझ पाए होंगे । मुझे यह विषय बहुत रोचक लगता है सो शेयर कर रही हूँ ।

 

जारी …

neural networks 4 learning paradigms

पुराने भाग 123

यह श्रंखला artificial intelligence या neural networks से सम्बंधित है । कमोबेश यह उसी प्रकार होता है, जैसे प्राणियों में सीखना होता है ।

इससे पहले के भागों में हमने देखा कि पूर्वाग्रह क्या होता है, पहचान और निर्णय कैसे होते हैं, और “सीखना” कैसे होता है । इस भाग में हम –

1. सीखने  के प्रकार (learning paradigms ) पर बात करते हैं , और


2. सीखने की विधियों ( learning algorithms ) के नाम देखेंगे (इनकी विस्तृत चर्चा अगले भाग में करूंगी, यह पोस्ट अधिक लम्बी हो जायेगी )।

————————————————————–

Learning paradigms : यह वे तरीके हैं, जिनसे न्यूरल नेटवर्क अपने आस पास की बाहरी दुनिया के बारे में जानकारी प्राप्त करता है । यह बाहर की दुनिया के साथ interaction करने के प्रकार हैं, भीतर से सीखने के नहीं ।   इनमे तीन मुख्य प्रकार हैं –

1. Learning with a teacher (गुरु की मदद से सीखना)

2. Learning without teacher with supervision (with critic ) (आलोचक / समीक्षक की सहायता से गुरु के बिना सीखना )

3. Unsupervised learning (स्वयं सीखना)

————————-

1. Learning With Teacher

Learning With Teacher

इस प्रकार की प्रक्रिया इस तरह से काम करती है कि , “शिष्य” और “गुरु” दोनों ही नेटवर्क्स को बाहरी परिवेश से एक ही इनपुट वेक्टर मिलता है, और दोनों अपना अपना निर्णय लेते हैं । फिर दोनों के निर्णय के तुलना की  जाती है  । शिष्य और गुरु नेटवर्क में फर्क क्या है ?? कुछ भी नहीं, सिवाय इसके की , गुरु नेटवर्क पहले बना है, और वह परिवेश के बारे में पहले से सीख चुका है । यही बात इस तरह से देखिये – जीवन में मैं “teacher” के रूप में कार्य कर रही हूँ, और “शिष्यों” को पढ़ाती हूँ । क्या फर्क है मुझमे और उनमे ? सिर्फ – the accident of the date of birth  🙂 । यदि वे मुझसे 20 साल पहले जन्म लेकर पढ़ आये होते, तो आज वे मुझे पढ़ा रहे होते, मैं उनकी शिष्य होती ।

तो – “गुरु” नेटवर्क परिवेश के बारे में पहले ही सीख चुका है । वह इनपुट के सम्बन्ध में जो भी निर्णय ले वह “सही “निर्णय या desired output माना जाएगा । और शिष्य का निर्णय इसके साथ जांचा जाएगा । यदि तो शिष्य का उत्तर गुरु के उत्तर के साथ मिल रहा हो,. तो शिष्य को कुछ नहीं करना है । किन्तु यदि उत्तर आपस में न मिलें, तब ? तब बदलाव गुरु में नहीं, सिर्फ शिष्य में आने वाला है इस परिस्थिति में, क्योंकि गुरु feedback loop में नहीं है । सोचिये की एक शिक्षक नन्हे बच्चों को

अ – अनार का,

आ – आम का,

       इ – इमली का आदि सिखाता है ।

अब परिवेश से इनपुट आता है यह चित्र —

* यह इनपुट परीक्षा के लिए प्रधानाध्यापक जी ने दिया है –

* यह प्रश्न ” teacher” और “student ” दोनों को मिला है ।

* Teacher (जो पहले से सीख चुका है, वह “इसके आगे “” (आम का)  अक्षर होना चाहिए” ही कहेगा ।

* यदि

शिष्य भी “” (आम का)  लिखे – तो उसे कोई बदलाव करने की आवश्यकता नहीं क्योंकि “error “सिग्नल शून्य है

* लेकिन

यदि शिष्य “आ ” न लिख कर कोई और अक्षर लिखे – तो उसे और सीखना होगा ।

ध्यान दीजिये – इसमें – सारी प्रक्रिया गुरु के सही होने पर निर्भर है  यदि गुरु स्वयं ही गलत जानकारी रखता हो, तो वह शिष्य को सही नहीं सिखाएगा, बल्कि उल्टा, शिष्य यदि पहले से थोडा बहुत जानता हो और इसे “आ” कहना चाहे लेकिन गुरु गलती से इसे “अ” मान रहा है – तो शिष्य को जबरदस्ती यह सीखना होगा कि  यह “अ” ही है । ऊपर चित्र में देखिये – गुरु फीडबैक लूप में है ही नहीं – वह नहीं बदलेगा ।

शिष्य तब तक पास नहीं हो सकेगा – जब तक गुरु उसे “सीख चुका” घोषित न करे । { मज़ाक नहीं है यह – हम कर्नाटक में रहते हैं – मेरे बेटे को कई साल पहले यहाँ के एक सर हिंदी पढ़ाते थे जो हिंदी नहीं जानते थे । तो उन्हें मुहावरों के अर्थ सिखाते हुए ऐसे बड़े मज़ेदार (?) किस्से होते रहे । मैं यदि बेटे को सही अर्थ सिखा भेजती भी थी तो वहां लिखने पर उसके अंक कट जाते थे ) कल परसों ही सुज्ञ जी की एक पोस्ट पर यह लिखा मैंने टिप्पणी  में कि आजकल बोर्ड परीक्षाओं में कई शिक्षक खुद नक़ल कराते हैं – तो शिष्यों के यह कैसे सिखाया जाए कि नक़ल करना बुरा है ?

————————–

2. Learning without a teacher, in the presence of a critic :

Learning without a teacher, in the presence of a critic 

यह प्रक्रिया ऊपर वाली प्रक्रिया से भिन्न है । पहली बात तो यह है कि शिष्य का उत्तर “गुरु” जांच नहीं रहा है – गुरु तो कोई है ही नहीं । शिष्य को जानने वाले “एक्सपर्ट” से “सलाह” मिल रही है की ऐसा होना चाहिए, ऐसा नहीं । किन्तु वह बाध्य नहीं है इसे मानने के लिए । शिष्य का आउट पुट वापस वातावरण को प्रभावित करता है । और वातावरण क्रिटिक को । तो समय के साथ वातावरण भी बदल सकता है, क्रिटिक भी बदल सकता है, शिष्य भी, और यह भी हो सकता है की दोनों ही न बदलें । जो “reinforcement ” है, वह शिक्षण नहीं है । वह सिर्फ एक माहौल है, जो उस समय उन परिस्थितियों में “सही” माना जा रहा है । स्टुडेंट नेटवर्क 100 में से 95 स्थतियों में इसे मान भी लेगा , लेकिन शत प्रतिशत ऐसा नहीं होगा । तो नेटवर्क खुद तो सीखेगा ही, किन्तु सीखते हुए जब वह क्रिटिक से सहमत न होगा, तब नेटवर्क के साथ ही परिवेश भी धीरे धीरे बदलता रहेगा ।

इसके उदाहरण मानवीय सन्दर्भों में । हम जब स्कूल में थे, तब रंग को अंग्रेजी में colour लिखा जाता था । यदि color  लिखा, तो अंक कट जाते थे । लेकिन आज word processors, colour लिखने पर उसे गलत और color को सही बताते हैं । इसी तरह से schedule  को शेड्यूल न पढ़ कर स्केड्यूल पढ़ा जाता है । programme शब्द अब program  बन चुका है । हिंदी फिल्मों की हिरोइन साडी की जगह सलवार कमीज़ पहनने लगी, फिर अब वेस्टर्न ड्रेसेज में ही दिखती है । पिता बूढ़े, थके, सफ़ेद बालों वाले, और धोती कुरते में नहीं, सूटेड बूटेड और कनपटी पर हलकी सफेदी लिए नज़र आते हैं ।

ध्यान दीजिये – विज्ञापनों की माएं भी बदली हैं, परन्तु उतनी नहीं जितनी फिल्मों की । क्योंकि दोनों के टार्गेट औडीएन्स अलग हैं । विज्ञापन अधिकतर गृहिणियों के अपना उत्पाद बेचने के लिए हैं, परिवेश अलग है, क्रिटिक अलग है । तो विज्ञापनों की बेटियां और माएं यदि अधिक ग्लैमरस हुईं, तो अपने दर्शको (उपभोक्ताओं) को दूर कर देंगी । सो वहां परिवेश कम बदला है । वे अब भी थोड़ी मोडर्न तो हैं , लेकिन अल्ट्रा मोडर्न नहीं हैं । लेकिन फिल्म की हिरोइन दर्शकों को टिकट खिड़की पर लाने के लिए है । तो वहां का परिवेश अधिक तेज़ी से बदला, क्योंकि ज्यादा तादाद में “स्टुडेंट” नेटवर्क्स ने परिवेश को समझने वाले  क्रिटिक के विरुद्ध जाने का रिस्क लिया, तो लर्निंग रेट तेज़ रहा 

———————-

3. Unsupervised Learning

Unsupervised Learning 

इसमें कोई किसीको नहीं सिखाता । स्टुडेंट सीखना चाहे और सीख पाए – तो सीखेगा । नहीं, तो नहीं सीखेगा । लेकिन परिवेश कभी नहीं बदलेगा, feedback है ही नहीं । यदि नहीं सीखे, तो survival कठिन है । इसके उदाहरण हैं, जैसा की हमने कहानी सुनी है, मोगली / टार्ज़न की । एक बालक कुछ सीखने समझने की उम्र से पहले ही जंगल में खो जाता है । उसे सिखाने को न वहां गुरु है, न ही क्रिटिक । उसे अपने आप ही सीखना है  ।वह सीखे या न सीखे, परिवेश नहीं बदलने वाला  । कोई उसे बताने वाला भी नहीं की उसने जो सीखा वह सही है, गलत है या कुछ और । वह सीख लेगा, तो जीवित रहेगा, नहीं सीखेगा तो पता नही क्या होगा । यह है अन्सुपर्वाइज्ड लर्निंग ।

——————–

अगले भाग में हम learning algorithms देखेंगे ।

इनमे प्रमुख हैं –

1. error correction learning,

2. hebbian learning,

3. competetive learning and

4. memory based learning

यदि यह श्रंखला बहुत टेक्नीकल हो रही हो, तो मुझे बताइये । प्रयास तो कर रही हूँ इसे सिम्पल रखने का, पर नहीं जानती की यह कैसा हो पा रहा है  ।

अगले भाग तक तक – विदा ।