नमस्कार मित्रांनो,
आपण या मालिकेत आर्टिफिशिअल इंटेलिजन्सबद्दल(Artificial Intelligence)
काही गोष्टी शिकणार आहोत.
आपण पहिल्या प्रकरणाने सुरुवात करूया.
चला तर आर्टिफिशिअल इंटेलिजन्स(Artificial Intelligence) म्हणजे काय हे समजून घेण्याचा प्रयत्न करूया.
माझ्या स्वत:च्या व्याख्येनुसार आर्टिफिशिअल इंटेलिजन्स(Artificial Intelligence)
म्हणजे अवघड प्रोग्राम(program) लिहिणे.
कदाचित अवघड प्रोग्राम्स(programs) म्हणजे तुम्ही विचार करत असाल की अच्छा,
अवघड प्रोग्राम्स(programs)
याचा अर्थ असा नाही, की एखादी गोष्ट जी समजायला अतिशय अवघड आहे,
अशी की जी केवळ प्रतिभावान लोकच
लिहू शकतात किंवा जे समजण फक्त बुद्धिमान
लोकांनाच शक्य आहे. तर नाही.
अवघड म्हणजे,
आर्टिफिशिअल इंटेलिजन्सच्या(Artificial Intelligence)
संदर्भात बोलायचं तर असं काहीतरी की जे कंप्युटर्सद्वारे(computers) करणं अशक्य आहे,
पण अगदी सहजरित्या मानवाला करता येते.
उदाहरणार्थ माझी चार वर्षाची मुलगी कार
पाहून ती नवीन कार आहे हे ओळखू शकते.
उदाहरणार्थ कदाचित जर ती मारुती व्हॅन बघते
नंतर ती समजा सेडान कार पाहते,आणि नंतर समजा मारुती ८०० कार तिच्या समोरून जाते,
ती ओळखेल की ही एक कार आहे,
जरी तिने आधी जी कार पाहिली
त्यापेक्षा खूप वेगळी असूनही.
तर एखादा कंप्युटर प्रोग्राम(computer program) ते करू शकतो का?
हाच प्रश्न आहे ज्याचं उत्तर देऊ पाहतोय.
आणि म्हणजेच आर्टिफिशिअल इंटेलिजन्सचा(Artificial Intelligence) अभ्यास करून,
कंप्युटरकडून(computers) कशाप्रकारे त्या गोष्टी करून घेता येतील ज्या मानव उत्तमरीतीने करू शकतो.
चला अजून एक गोष्ट समजून घेण्याचा प्रयत्न करूया.
उदाहरणार्थ, जर आपण बर्‍याच वर्षांनंतर एखाद्या मित्राला भेटलो,
आणि तो मित्र आकारमानाने कसाही वाढला असेल
तरीही तुम्ही त्याला ओळखू शकता.
आपण हे कसे करता? आपण कधी याचा विचार केला आहे?
आपण कदाचित स्वत:लाच विचारता,
खरे तर आपल्याला हे कळत नाही की आपण हे कसे साध्य केले?
परंतु तुम्हाला हे काम एखाद्या कंप्युटर प्रोग्रामकडून(computer program) करून घ्यायचं असेल तर हे
करण्यासाठी आपण एखादा कंप्युटर प्रोग्राम(computer program) कसा लिहू शकता?
यालाच आर्टिफिशिअल इंटेलिजन्स(Artificial Intelligence) म्हणतात.
आपण या भागात आर्टिफिशिअल इंटेलिजन्सच्या(Artificial Intelligence)
संदर्भात अभ्यास करणार आहोत.
आणि खरं तर, आपण आर्टिफिशिअल इंटेलिजन्सच्या(Artificial Inteligence)
ओळखीपासून सुरुवात करूया,
या भागात आपण पाहू की आपल्याला काय साध्य
करायचे होते आणि आपण आतापर्यंत काय काय शिकलो आहोत.
तर चला, मी आधी नमूद केलेल्या काही
समस्यांपासून सुरुवात करू या.
मी त्यांना विशेष लक्ष देण्याजोग्या समस्या असे म्हणीन.
कंप्युटर्सना(computer) या समस्या सोडविणे अवघड का आहे?
मी पुन्हा सांगतो की कंप्युटर्सची(computer)
रचना या समस्या सोडविण्यासाठी करण्यात आलेली नाही.
त्यांची रचना व्हॉन न्यूमॅन आर्किटेक्चरवर(Von Neumann architecture) आधारित आहे,
जेथे प्रोसेसर(processors) असतात आणि अतिशय वेगवान प्रोसेसर(processors) असतात,
जे एका निश्चित क्रमाने काम करतात.
याच्या अगदी उलट मानवी मेंदूमध्ये
न्युरॉन्स(neurons) असतात आणि दहाचा दहावा घातांक
इतक्या न्युरॉन्सच्या(neurons) बरोबरीने दहाचा चौदावा घातांक इतके परस्परसंबंध असतात,
जे गतिमान परस्परसंबंध असतात.
ते विशेषत: दिसण्यासंबंधित, ऐकण्यासंबंधित असतात
आणि त्यांना अत्यंत पॅरलल प्रोसेसिंग(parallel processing) आवश्यक असते.
त्या गोष्टी मेंदूद्वारे व्यवस्थापित करणे शक्य असतात.
याच्या विरुद्ध कंप्युटरच्या(computer) प्रणाली इतक्या कुशल नसतात.
अशा अत्यंत पॅरलल प्रोसेसिंगसाठी(parallel processing) तर नक्कीच नाही.
मानवी मेंदू कंप्युटरपेक्षा(computer) खूप वेगळ्या प्रकारे माहिती साठवतो.
उदाहरणार्थ, मी तुम्हाला एक प्रश्न विचारतो की एक अभिनेता आहे,
हिंदी सिने-अभिनेता जो सुमारे 70 वर्षांचा आहे आणि…
जो पांढरी दाढी ठेवतो आणि चष्मा लावतो,
तर तुम्ही ताबडतोब ओळखाल की ते आहेत अमिताभ बच्चन.
मी असा एखादा कंप्युटर प्रोग्राम(computer program) लिहू शकतो का जो हे करू शकेल?
लोकांनी नक्कल करण्याचा प्रयत्न केला पण ते खरोखर फार, फार कठीण आहे.
किंवा उदाहरणार्थ, मी काही संगीत वाजवतो
आणि त्यानंतर लगेच तुम्हाला ते 'आवारा हूं' किंवा जे काही गाणं असेल ते लक्षात येते.
ठीक आहे. आपण ते काही कसे काय करु शकलो?
कसे काय...? आपल्याकडे गाण्यांचा एक प्रचंड डेटाबेस(database) असतो आणि
आपल्याकडे गाण्यांशी संबंधित इतर बरीच माहिती
आहे आणि आपल्याला फक्त संगीताचा काही भाग ऐकायला मिळतो,
त्या गाण्याचा काही भाग आपल्याला आठवावा लागतो आणि नंतर आपल्याला ते आठवतं.
आपण ते कसे करत आहोत?
एआय(AI) म्हणजे
असे प्रोग्राम(program) जे मानवी मेंदूच्या कार्यक्षमतेची नक्कल करू शकतात.
एखादी समस्या सोडवू शकतात, ज्या समस्यांचे निराकरण करायला मानवी मेंदू सक्षम आहे.
ठीक आहे, तर चला आपण काही व्याख्या पाहू.
एलॅन रिच तिच्या एका लोकप्रिय पुस्तकात म्हणाली की
एआय(AI) हा प्रोग्रामचा(program) अभ्यास आहे ज्यामधे आजच्या घटकेला लोक पुढे आहेत.
अजून एक लेखक असे लिहितात:
एआय(AI) हा प्रोग्रामचा(program) किंवा
बिल्डिंग एन्टीटीज(building entities) अभ्यास आहे जो मनुष्यांप्रमाणेच समजून घेऊ शकतो,
अनुभवू शकतो, भविष्यवाणी करू शकतो आणि नियंत्रण करू शकतो.
का? मला म्हणायचे आहे की आपण एक पुस्तक वाचतो, एक नवीन पुस्तक आणि आपल्याला नवीन परिभाषा कळते.
आजूबाजूला शेकडो परिभाषा आहेत
आणि कोणतीही व्याख्या शंभर टक्के बरोबर नाही कारण
मुळात बुद्धिमत्ता म्हणजे काय हे परिभाषित करणे खूप कठीण
आहे आणि आर्टिफिशिअल इंटेलिजन्स(artificial intelligence) परिभाषित करणे एक पाऊल पुढे आहे,
हे खूप कठीण आहे.
बरं तर आपण आत्ताच आपली व्याख्या ठरवण्याचा प्रयत्न नको करूया.
याचा अर्थ काय आहे हे समजून घेण्याचा आपण प्रयत्न करू.
खरं तर, मी पुन्हा सांगतो की मी अवघड प्रोग्रामबद्दल(program) बोलणार आहे,
इन्टेलिजन्ट प्रोग्राम्सबद्दल(intelligent programs) नाही.
उदाहरणार्थ, जर तुम्हाला एखादा प्रोग्राम(program) लिहायचा असेल
जो रोबोटला सांगतो,
तर तुम्हाला असं वाटते का की ही एक बुद्धिमत्तेची गोष्ट आहे?
असे वाटत तर नाही,
परंतु याची खात्री कशी करायची कि
रोबोट टूथब्रश फार जोराने दाबणार नाही,
ज्यामुळे तो तुटेल किंवा
उदाहरणार्थ, खडू उचलणे.
एका प्रोग्रामरसाठी रोबोट्स मध्ये अशा गोष्टी प्रोग्राम(program) करणे खूप कठीण असतात.
टेबल टेनिस खेळणार्‍या रोबोटचा विचार करा.
तुम्ही एखादा प्रोग्राम(program) लिहू शकता का?
खरेतर असे करण्यास अद्याप कुणालाच यश आले नाही.
का? कारण ते खूप कठीण आहे.
हे इतके कठीण का आहे? हे इतके कठीण का आहे हे समजून घेण्याचा प्रयत्न करूया.
खरं तर, एआय(AI)
बनवले गेले आहे जेणेकरुन ते मनुष्यांचे अनुकरण करू शकेल,
कंप्युटर प्रोग्राम्स(computer programs) रोगाचे निदान किंवा
टेबल टेनिस किंवा बुद्धीबळ किंवा इतर
तत्सम बुद्धीमत्तेची कामे करू शकेल.
काही ध्येये, हो, साध्य झाली आहेत तर काही ध्येये साध्य झाली नाहीत. का?
ठीक आहे.
याचे कारण म्हणजे
कंप्युटर्स(computers) मानवी मेंदूपेक्षा खूप वेगळ्या पद्धतीने कार्य करतात.
मानवी मेंदू एनालॉग सिग्नलशी(analog signal) काम करण्याच्या दृष्टीने बनला आहे.
मानवी मेंदू अचूक, चुकीच्या,
अपूर्ण माहितीसह कार्य करण्यासाठी डिझाइन केलेला आहे.
परंतु कंप्युटर प्रोग्राम्स(computer programs) नाही, ठीक आहे.
जर आपल्याला कंप्युटर प्रोग्राम्स(computer programs) मनुष्यांसारखेच
काहीतरी करण्यासाठी बनवायचे असतील तर आपल्याला बर्‍याच गोष्टींबद्दल शिकले पाहिजे.
असे तंत्र ज्याला एआय(AI) तंत्र| टेक्निक |technique)) म्हणतात.
एआय(AI) तंत्र| टेक्निक |technique)) म्हणजे असे तंत्र ज्यायोगे कंप्युटर प्रोग्राम्स(computer programs) माणसासारखे कार्य करतात.
ठीक आहे, आता आपण एआय(AI) तंत्रचा| टेक्निकचा |technique)) अभ्यास करूया
परंतु त्याआधी मी सांगेन की एआय(AI) अभ्यास का करावा.
याची सुरूवात साठच्या दशकात झाली आणि हे सुनिश्चित करण्यासाठी की मनुष्याने…क्षमस्व,
हे ठरवण्यासाठी केला होता की कम्प्युटर्ससुद्धा(computers)
असे काही करू शकतील जे मानव करू शकतात.
आणि सुरुवातीच्या काळात ह्या सगळ्यांबद्दल खूप उत्साह होता.
लोकांनी प्रोग्राम्स(programs) लिहिलेत,
लोक त्यांना चालवून पाहत आणि काहीना यश देखील मिळाले.
परंतु तोपर्यंतच्या 50 वर्षांच्या प्रदीर्घ प्रवासात,
ते काम करू शकले नाही जे काम करायला हवे होते.
काही अडचणींमुळे ते त्या ठरवलेल्या ध्येयाप्रमाणे कार्य करू शकले नाहीत,
ज्याची आपण आता चर्चा करू.
परंतु तरीही ते निरर्थक झाले नाहीत, किंवा ते पूर्णतः विफल झाले नाहीत.
जरी आपण असे प्रोग्राम्स(programs) बनवू शकलो नाही
जे हुबहू मानवांप्रमाणे काम करतील,
तरीही आपल्याकडे स्वाक्षर्‍या ओळखू शकणारे प्रोग्राम्स(programs) ,
फोटोज् ओळखू शकणारे असे प्रोग्राम्स(programs) आहेत,
जे सेमी ह्युमनसारखे(semi human)
माणसांशी बोलू शकतात आणि असे बरेच.
अशाप्रकारे,
आपण यशस्वी झालो आहोत आणि खरोखरच काही फार
महत्वपूर्ण समस्या सोडवल्या आहेत,
ज्याविषयी तुम्हाला एआय(AI) चर्चेच्या दरम्यान कळेलच.
ठीक आहे, मी आत्ताच सांगितले की आपल्या कडे एआय(AI) तंत्र| टेक्निक |technique))
आहे जे आपल्याला प्रोग्राम्समध्ये(programs) अंमलात आणावे लागेल.
ते काय आहे? चला आपण याबद्दल बोलूया ...
पहिली गोष्ट म्हणजे जेव्हा जेव्हा तुम्ही एआय(AI)
प्रोग्राम(program) लिहीत असता त्याचा काही अल्गोरिदम(algorithm) नसतो.
उदाहरणार्थ, जर मी तुम्हाला विचारले की तुम्ही तुमच्या मित्राला कसे ओळखले?
तुम्हाला कसे माहीत?
आपण उत्तर देऊ शकत नाही कारण तेथे अल्गोरिदम(algorithm) नाही.
बरं, जर तुम्ही बुद्धीबळ खेळत असाल आणि काहीतरी करुन जिंकलात,
तर मी तुम्हाला विचारेन की तुम्ही कोणता अल्गोरिदम(algorithm) वापरला आहे.
तुम्ही त्याचा शोध घेतल्यास तुम्हाला तो सापडणार नाही.
एआय(AI) प्रोग्राम्समध्ये(programs) अल्गोरिदम(algorithm) नाहीत.
पहिले एआय(AI) तंत्र| टेक्निक |technique)) म्हणजे
अल्गोरिदम(algorithm) नसेल तर इतर काही मार्ग शोधणे.
जर आपला प्रोग्राम(program) असेच काही करण्यास सक्षम असेल तर होय,
तो प्रोग्राम(program) एआय(AI) तंत्र| टेक्निक |technique)) चालविण्यास सक्षम आहे.
दुसरा एक.
दुसरी समस्या, कधीकधी आपल्याकडे
अल्गोरिदम(algorithm) असतात,
परंतु अल्गोरिदमसोबत(algorithm)
बर्याच कॉम्बिनेशन एन्ड परमुटेशन(combinations and permutations) असतात.
ज्याला अल्गोरिदम(algorithm) रिअल टाइम(real time) पूर्ण करू शकत नाही.
उदाहरणार्थ, एक आहे ट्रॅव्हलिंग सेल्समन प्रॉब्लेम(traveling salesman problem) .
तुम्हाला 25 शहरांच्या बाबतीत सर्वात
शॉर्टेस्ट पाथ(shortest path)
शोधायचा असल्यास प्रवासी सेल्समनला आजूबाजूला
जावे लागेल आणि त्या 25 शहरांमधील सर्वात शॉर्टेस्ट पाथ(shortest path) शोधावा लागेल.
आपण फक्त कन्वेन्शनल कम्प्यूटिंग टेक्निक(conventional computing technique) वापरल्यास,…
हा प्रोग्राम(program) सेल्समनच्या आयुष्यभरात पूर्ण होणार नाही.
तर कॉम्बिनेशन एन्ड परमुटेशन(permutations and combinations) हे असे काहीतरी आहे जे खूपच कठीण आहे,
अल्गोरिदम(algorithm) सहज सोपी आहे,
तुम्हाला छोटा मार्ग शोधावा लागेल,
तुम्ही त्यासाठी अल्गोरिदम(algorithm) लिहू शकता.
पण हा अल्गोरिदम(algorithm) रिअल टाइम(real time)
पूर्ण होऊ शकत नाही.
तर इथे हीच एक समस्या आहे.
आणखी एक गोष्ट मी सांगितली बुद्धीबळाबद्दल,
जर आपण बुद्धीबळ खेळत असाल ...
आणि जर आपल्याला असे वाटत असेल की खेळ संपेपर्यंत मला सर्व शक्य
युक्त्या शोधाव्या लागतील आणि आपण असे
करण्यासाठी एखादा कंप्युटर प्रोग्राम(computer program) लिहिला असेल तर,
यासाठी जर आपण सर्वोत्कृष्ट मायक्रोप्रोसेसरदेखील(microprocessor) ,
जगातील सर्वोत्कृष्ट सुपर कॉम्प्यूटर(supercomputer)
निवडला असेल तर आणि गेमच्या सुरुवातीपासून शेवटपर्यंत होणार्‍या सर्व संभाव्य चाली मोजण्यासाठी
सुपर कॉम्प्यूटरला(supercomputer) प्रोग्राम(program) दिला,
तरी कदाचित सुपर कंप्यूटरदेखील(supercomputer) स्वतः
हे असे शंभर… पाचशे वर्षांपर्यंत करू शकणार नाही.
तर समस्या ही अशी आहे.
परमुटेशनची(permutations) संख्या खूप जास्त आहे.
तर, एआय(AI) तंत्रामधील | टेक्निकमधील |technique))
दुसरा मुद्दा अशी एखादी गोष्ट शोधून काढली पाहिजे की ती या प्रकारचे कॉम्बिनेशन एन्ड परमुटेशन(combinations and permutations) करू शकेल.
हा तिसरा मुद्दा बनतो जो मी सांगू इच्छितो की बर्‍याच
बाबतीत आपल्याला सर्वोत्तम उपायाची आवश्यकता नसते.
उदाहरणार्थ, मी कुठेतरी बाहेर गेलो आणि
माझी कार पार्क केली तर मला कार पार्क करण्यासाठी सर्वात योग्य जागा
सापडणार नाही, मी फक्त माझी कार पार्क करण्यासाठी
योग्य जागा शोधून आणि तेथे कार पार्क करीन.
मला एखाद्या रेस्टॉरंटमध्ये जायचे असल्यास,
मी शहरातील सर्वोत्तम रेस्टॉरंट शोधणार नाही.
मी फक्त एक असे रेस्टॉरंट पाहीन जे माझ्या किमान गरजा पूर्ण करते.
जर मला सिनेमा बघायचा असेल
तर मी शहरातील सर्वोत्तम सिनेमा किंवा
सर्वोत्कृष्ट अभिनेता असलेला सिनेमा पाहणे आवश्यक नाही.
मी ते शोधत नाही आहे.
आपल्यातील बरेचजण सर्वोत्तम उपाय शोधत नसतात.
आपल्यातील बहुतेक सगळेजण मनात असलेल्या उपायंपैकी जे उपाय निकषांच्या
कसोटीवर किमानरित्या संतोषजनक वाटतात त्यांच्या शोधात असतात.
ठीक आहे, एआय(AI) तंत्राचे| टेक्निकचे |technique)) हे एक अन्य वैशिष्ट्य आहे.
आपल्याला इप्सित असलेले,
जर हे करू शकले तर ही चांगली गोष्ट आहे.
बरं, आणखी एक गोष्ट,
कन्व्हेन्शनल प्रोग्राम्समध्ये(conventional programs) शिकण्याचे वैशिष्ट्य नसते,
माणूस गोष्टी कशा करायला शिकतो .... ते बर्‍याच गोष्टी कसे शिकतात?
ते काम करण्याचा सराव करून आणि
त्यापेक्षाही चांगले बनून ते काम करण्यास शिकतात.
आपण असे काही करू शकणारे कंप्युटर प्रोग्राम्स(computer programs) बनवू शकतो का?
आपल्याकडे जर असा एखादा कम्प्युटर प्रोग्राम(computer program) असता जो स्वतःच शिकू शकतो,
तर मग आपल्याला (programmers) गरजच राहणार नाही,
उदाहरणार्थ, जर आपण एका अकाउंटंटला एखादा प्रोग्राम(program) दिला
तर अकाउंटंट त्याचे काम करेल आणि खाती इत्यादींची गणना
कशी करतात हे प्रोग्राम(program) शिकेल.
आपल्याला प्रोग्रामर्सची(programmers) आवश्यकता भासणार नाही,
परंतु हे अशक्य आहे की शिकण्याचे घटक अशी गोष्ट आहे जी बनवणे खूप अवघड आहे.
ठीक आहे, अजून एक महत्वाचा दुसरा मुद्दा …… ठीक आहे, परंतु नंतर आपण ज्या एआय(AI)
तंत्राबद्दल | टेक्निकबद्दल |technique)) अभ्यास करू, आपण असा
कंप्युटर प्रोग्राम(computer program) शिकणार आहोत की ज्याने हे सुनिश्चित करता येईल की
कंप्युटर प्रोग्राम(computer program) स्वतः काहीतरी शिकेल.
ठीक आहे अजून एक महत्वाची गोष्ट.
उदाहरणार्थ, मी तुम्हाला एखादा कंप्युटर प्रोग्राम(computer program) दिला,
जो एआयचा(AI) प्रोग्राम(program) आहे व जो डॉक्टरची नक्कल करू शकतो आणि
तो तुमच्या रोगाची लक्षणे पाहून तुम्हाला कर्करोग असल्याचे निदान देतो.
तर मग तुम्ही त्याच्यावर विश्वास ठेवाल का?
तुम्ही विश्वास नाही ठेवणार, का?
अर्थात, जोपर्यंत आपण… पुरेसे पुरावे देत
नाही तोपर्यंत कोणाचाही यावर विश्वास बसणार नाही.
यालाच स्पष्टीकरण म्हणतात. ...
किंवा उदाहरणासाठी,
आपण कर्करोगाबद्दल बोलत नाही, परंतु समजा मी डॉक्टरकडे गेलो
आणि डॉक्टरांनी मला मलेरिया झाल्याचे सांगितले तर मी का असे विचारेन?
तर तो म्हणेल की तुम्हाला एक दिवसाआड थंडी वाजते, तुम्हाला ताप आहे,
तुम्हाला अशक्तपणा जाणवतो आहे आणि तुमचा रक्त तपासणीचा अहवालही हेच सांगतो आहे,
म्हणून मी त्यांच बोलणं स्वीकारेन.
कंप्युटर प्रोग्राम(computer program) त्याचे स्वतःचे तर्क स्पष्ट करू शकेल काय?
एखादा कंप्युटर प्रोग्राम(computer program) त्याचे स्वतःचे निकाल सांगू शकतो का?
असे असल्यास ही दाट शक्यता आहे की तो एक इन्टेलिजन्ट प्रोग्राम(intelligent program) म्हणून स्वीकारला जाईल.
ठीक आहे, म्हणून ही आणखी अशी एक गोष्ट आहे जी एआय(AI) तंत्राने| टेक्निकने |technique)) करावी.
ठीक आहे, हे कसे केले जाते?
ठीक आहे, उदाहरणार्थ, एक अशी गोष्ट जी सगळ्या प्रकारच्या एआय(AI) प्रोग्राममध्ये(program)
आणि जवळजवळ प्रत्येक एआय(AI) प्रोग्राममध्ये(program) सामाईक आहे,
त्याला हयूरिस्टिक(Heuristic) आधारित शोध म्हणतात. आता हयूरिस्टिक(Heuristic) म्हणजे काय?
हयूरिस्टिक(Heuristic) हा रुल ऑफ थंब(rule of thumb) आहे,
जो तुम्हाला अनेक पर्याय कमी करण्यास मदत करतो.
उदाहरणार्थ, जर आपण बुद्धिबळ खेळत असाल तर…आपण
बुद्धीबळातील सर्व शक्य चालींचा विचार करणार नाही.
आपण फक्त काही चालींचा विचार कराल.
आपण हे असे का करता?
कारण ही अशी गोष्ट आहे जी तुमच्या डोक्यात चालत असते.
उदाहरणार्थ, आपल्याला खेळावर नियंत्रित हवे आहे,
उदाहरणार्थ, आपण दुसर्‍या बाजूच्या राजाला
पकडू इच्छित आहात,
ज्यास चेक किंवा असे काहीतरी म्हणतात.
तर, आपल्याला माहित आहे का की कोणती चाल इतर चालीं पेक्षा चांगली आहे.
हेच ज्ञान हयूरिस्टिक(Heuristic) आहे.
जर आपल्याकडे हयूरिस्टिक(heuristic)
आहे तर तुम्ही हे ओळखू शकता की कोणती चाल इतर चालीं पेक्षा चांगली आहे,
आणि त्या चाली खेळू शकता आणि गेम जिंकू शकता किंवा त्यात प्रगती करू शकता, ठीक आहे.
तर हेच सगळ हयूरिस्टिक(heuristic) होय.
खरं तर, हयूरिस्टिक(heuristic) डोमेन नॉलेजबद्दल(domain knowledge) आहे.
आपण डोमेन नॉलेज(domain knowledge) कसे मिळवाल?
आपण तज्ञ कसे बनता?
मी तुम्हाला आधीच सांगितले आहे.
आपण माणूस असाल तर सरावाने आपण तज्ञ होऊ शकता.
बरं, तर मग तुम्ही केवळ सरावच करत नाही तर
रूल ऑफ थंबनुसार(rule of thumb)
तुम्ही तुमच्या मनात तुमच्या प्रयोगांचे परिणाम सुद्धा संग्रहित करू शकता.
उदाहरणार्थ, जर प्रतिस्पर्धी X चाल खेळत असेल आणि आपल्याला
माहित असेल की हे धोकादायक असल्याचे सिद्ध होऊ
शकते तर आपण अधिक सावध व्हाल आणि आपल्याला कळते की आपल्या
स्वतःचे रक्षण करण्यासाठी आपल्याला आता Y चाल खेळावी लागेल.
कारण हे तुम्हाला स्वतःच्या अनुभवाने सांगितले आहे.
जर तुम्ही असे कराल तर हे
हयूरिस्टिकच्या(heuristic) वापराचे उदाहरण आहे.
मी अजून एक उदाहरण देतो.
उदाहरणार्थ, जर आपल्याला तहान लागली असेल आणि
आपण डोंगरावर चढत असाल तर आपण वर चढून
जाण्याऐवजी खाली उतरून याल, असे का?
कारण तळाशी पाणी मिळण्याची अधिक शक्यता आहे.
तर हेच आहे हयूरिस्टिक(heuristic) .
ठीक आहे,
तर ही आहेत हयूरिस्टिकची(heuristic) उदाहरणे.
दुसरा मुद्दा, जेव्हा आपण एआय(AI) तंत्राबद्दल| टेक्निकबद्दल |technique)) बोलतो,
तेव्हा दुसरी मुख्य गोष्ट म्हणजे तुम्ही ही माहिती कशी संग्रहित करता आणि तुम्ही त्यातून कसे अनुमान काढता?
उदाहरणार्थ, एक प्रोलोग प्रोग्राम(Prolog program) आहे.
प्रोलोग(Prolog) ही एक भाषा आहे जी एआय(AI)
डोमेनमध्ये खूपच शक्तिशाली आणि अतिशय उपयुक्त आहे.
आपण पीपीटीवर(PPT) पाहू शकता की तिथे तीन प्रेडिकेट्स(predicates) आहेत.
एक म्हणजे माता (देवकी, कृष्णा), दुसरे भाऊ ( कंस,देवकी )
दुसरे भाऊ ( कंस,देवकी ) आणि तिसरे मामा ( X,Y )
आणि तिसरे मामा ( X,Y )जर भाऊ, X,Z आणि माता, Z,Y.
आता, जर तुम्ही ह्यावर एक नजर टाकली तर तुम्हाला
याची सहज खात्री पटेल की कंस कृष्णाचे मामा आहेत
व हे तुम्ही सिद्ध करु शकता.
तर यालाच अनुमान म्हणतात.
पहिल्या तीन पायर्या डेटा(data) ,
ज्ञान आणि अनुमान ज्याला आपण प्रमाणित
केले आहे त्याचे वर्णन केले आहे. त
तर, आपण येथे माहिती
कशी संग्रहीत करता आणि
त्यातून कुठली गोष्ट कशी मिळवता हेच
एआय(AI) तंत्रामध्ये| टेक्निकमध्ये | technique)) आवश्यक आहे.
या शिवाय अजून एक गोष्ट आहे त्याला फ्रेम्स(frames) म्हणतात.
खरं तर, प्रेडिकेट लॉजिक(predicate logic) ज्ञानाचे प्रतिनिधित्व करण्याचा एक मार्ग आहे.
दुसर्‍याला फ्रेम्स(frames) म्हणतात.
आपल्यातील बहुतेक, जे C ++ आणि जावा(Java)
आणि तत्सम भाषा शिकतात, त्यांना माहिती आहे की या
भाषा स्वरूपनात माहिती संग्रहित करतात.
जेव्हा आपण ऑब्जेक्ट ओरिएंटेड(object oriented) प्रतिनिधित्वामध्ये माहिती संग्रहित करतो,
तेव्हा आम्ही क्लास(class) आणि ऑब्जेक्टच्या(object) स्वरूपात गोष्टींचे वर्णन करतो.
तर, फ्रेम(frame) त्यासारखेच आहे.
वास्तविकतः फ्रेम(frames) हे ((| ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंगचा | objest oriented programming) पूर्ववर्ती आहे.
आणि जर आपण फ्रेम्सबद्दल(frames) थोडे अधिक वाचले तर आपल्याला कळेल
की जेव्हा फ्रेम्स(frames) तयार केल्या गेल्या
तेव्हा ऑब्जेक्ट ओरिएंटेड(objest oriented) कंप्युटिंगची संकल्पना नव्हती. ती नंतर आली.
असो !
आज आणखी एक क्षेत्र विकसित होत आहे
ज्यास सॉफ्टवेअर रोबोट्स किंवा बॉट्स
म्हणतात आणि तेथे मोबाइल एजन्ट्सदेखील(mobile agents) आहेत.
खरं तर, जेव्हा मी माझी पीएचडी(PhD) करत होतो,
तेव्हा मी एक इंट्रूझन डिटेक्शन सिस्टम(intrusion detection system) लिहीली.
ज्यात माझ्या मशीनचे रोबोट नेटवर्कद्वारे दुसर्या
मशीनमधे जाऊन माहिती एकत्रित करायचे.
त्यांना आता मोबाइल एजन्ट(mobile agent) म्हणतात.
एआयमध्ये(AI) बरीच तंत्र तयार केली
आहेत ज्यामुळे मोबाइल एजट्ंसला(mobile agents) नेटवर्कवरील
माहिती एकत्रित करून संकलित करण्यास आणि दूरस्थ ठिकाणी ती माहिती संकलित करण्यास सक्षम बनवते.
तर, ही ज्ञानाची प्रतिनिधित्व आणि प्रक्रिया करणारी
एक अतिशय शक्तिशाली यंत्रणा आहे.
असे करण्याची आणखी एक महत्त्वाची पद्धत म्हणजे
एन्टिटी रिलेशनशिप डायग्राम(entity relationship diagram) होय.
हे सामान्यतः वापरलेली ईआर आकृती(ER diagram) नसून काहीतरी वेगळंच आहे.
सिमेंटीक नेटवर्क(semantic network) नावाची एक गोष्ट असते.
सिमेंटीक नेटवर्क(semantic network) अर्थपूर्ण मार्गाने
सिमेंटिकमधील(semantic) एन्टिटीज्(entities) जोडण्याविषयी आहे.
म्हणून, त्यात एन्टिटीज्(entities) आहेत… आणि त्यांचे काही संबंध आहेत.
आपण त्यांच्याबद्दल नंतर अभ्यास करू.
तर, ज्ञान दर्शविण्याचे बरेच मार्ग आहेत, जे कम्प्युटर्स सिस्टम्सद्वारे(computer systems) आपल्याला दिले जाणे आवश्यक आहे,
म्हणून या गोष्टी कशा द्याव्या लागतील,
तुम्ही ज्ञान कसे दर्शविता,
तुम्ही कसे अनुमान काढता,
हे करण्यासाठी एक मॉडेल(model) बनवून निष्कर्ष काढण्याची आवश्यकता आहे.
आणि नंतर आपण (एक्स्पर्ट सिस्टिम्सबद्दल expert systems) अभ्यास करणार आहोत जिथे
आपण यावर सखोल माहिती घेऊ आणि या गोष्टीचा अधिक तपशीलवार अभ्यास करू.
एआयचा(AI) तंत्रा| टेक्निक | technique)) आणखी
एक महत्त्वपूर्ण गुण म्हणजे अपूर्ण माहितीसह तर्क करणे.
आता ते इतके सोपे नाही.
उदाहरणार्थ, कधीकधी आपल्याला अंदाज लावावा लागतो, उदाहरणार्थ,
आपण पत्ते खेळत असल्यास,
इतर खेळाडूकडे कोणते पत्ते आहेत हे आपल्याला माहिती नसते.
तुम्हाला कसे समजतं?
खरं तर, तुम्हाला माहिती नाही आणि तुम्हाला अंदाज करून खेळायचच असतं,
नंतर अंदाज सुधारायचा आणि पुढे खेळायचे असते. आणि अस बरच काही.
अपूर्ण माहितीचे हे एक उदाहरण आहे परंतु इतर
अशी बरीच उदाहरणे आहेत.
उदाहरणार्थ, जर आपण क्रिकेटची मॅच पहात असाल आणि आपला एखादा मित्र तुम्हाला दिसला परंतु
तुम्हाला त्याच्या चेहर्याची फक्त एक बाजू दिसते आहे
तुमच्याकडे संपूर्ण माहिती नाही परंतु तुमचा डेटाबेस(database) ,
तुमचा नॉलेज बेस(knowledge base) आणि तुमचे इन्फरन्स इंजिन(inference engine) इतके चांगले आहे की जी
तुम्ही तुमच्या मित्राची दिसलेली चेहरेपट्टी जुळवून बघण्यासाठी जी
माहिती तुम्ही आधीच तुमच्या डेटाबेसमध्ये(database)
साठवून ठेवलेली असते ती परत बाहेर काढते
आणि मग तुम्ही सांगता की हा माझा मित्र आहे.
अशा प्रकारे, तुम्ही अपूर्ण माहितीच्या आधारे अनुमान करता
आणि तरीही तुम्ही प्रतिसाद देण्यास सक्षम असता.
मला आणखी एक गोष्ट सांगू द्या,
उदाहरणार्थ, ठीक आहे,
समजा तुम्ही नवीन फोन घेतला आणि आपण त्यात अलार्म लावू इच्छित असाल तर ...
तुम्हाला ऑप्शनस माहित नाही, परंतु आपण इतर ऑप्शनस बघता,
उदाहरणार्थ त्यात एक फोन आणि इतर काही सेटिंग्ज आहेत आणि संभवतः
आपल्याला त्यामध्ये फोन किंवा
इतर सेटिंग्ज दिसतात,
परंतु तुम्हाला प्रोफाइल्स नको आहेत.
आपल्याला माहित आहे की ते तिथे असणार नाही.
तुम्हाला हे कसे कळले? आपल्याकडे अपूर्ण माहिती आहे,
परंतु आपणास माहित आहे की आपण फोन सेटिंग्ज पाहिल्यास कदाचित आपल्याला ते मिळेल.
ठीक आहे, तर हे झालं अपूर्ण माहितीसह कार्य करण्याबद्दल.
एआय(AI) तंत्रदेखील| टेक्निकदेखील | technique))
एक फॉल्ट टॉलरन्ट(fault tolerant) पद्धतीने कार्य करण्यास सक्षम आहे.
फॉल्ट टॉलरन्ट(fault tolerant) पद्धतीने म्हणजे मला काय म्हणायचंय.
समजा मी काही अशी
माहिती देत आहे आणि जी
अंशतः चूक आहे,
उदाहरणार्थ, माझ्या एका
मला सांगितले की तो
रतलाम नामक सोसायटीत राहतो.
मी हीच गोष्ट फोनवर ऐकली.
मी त्या सोसायटीचा शोध घेत होतो.
मी पानवाल्याला विचारले की रतलाम सोसायटी कुठे आहे?
म्हणाला की जवळपास रतलाम सोसायटी
नाही पण जवळच सतनाम सोसायटी आहे.
पानवाल्याला योग्य उत्तर कसे काय शोधून काढले?
मी त्याला अचूक माहिती दिली नाही,
तरीही पानवाल्याला समजले, कसे काय?
कारण त्याचा मेंदू चुकीच्या माहितीवर प्रक्रिया करण्यास
आणि योग्य उत्तर शोधण्यास सक्षम होते.
आपण हे करण्यास सक्षम आहोत का?
आपले प्रोग्राम्स(programs) .... खरोखर आपण सर्व जण हे करू शकतो,
परंतु आपले प्रोग्राम्स(programs) हे करू शकतात का?
समजा माझ्याकडे डेटाबेस(database) आहे,
मी डेटाबेस(database) ग्राहकांच्या नावाने इंडेक्स(index) केला आहे.
परंतु जर मी ग्राहकाला चुकीचे नाव दिले तर माझा
डेटाबेस(database) मला डेटाबेस(database) अचूक डेटा(datab) देईल का?
याबद्दल विचार करा आपण हे करू शकत असल्यास,
प्रोग्राम(program) हे करू शकत असल्यास,
ते एआय(AI) तंत्र| टेक्निक |technique)) दर्शवते.
ठीक आहे हा एक मुद्दा झाला.
दुसरी गोष्ट म्हणजे, उदाहरणार्थ,
मी एका वर्गात जाऊन,
शाळकरी मुलांना
एक प्रश्न विचारला.
एका मोठा मासा आहे
जो थोड्या थोड्या वेळाने पाण्याच्या वर येतो आणि श्वास घेतो,
त्याला फुफ्फुस आहेत इत्यादी इत्यादी.
मग कोणी म्हणेल,
मला वाटतं तुम्ही व्हेल माशा बद्दल बोलत आहात पण सर तो मासा नाही.
तो एक सस्तन प्राणी आहे.
त्या विद्यार्थ्याचा मेंदू हे कसे करू शकतो?
चुकीची माहिती प्रोसेस(process) करून देखील योग्य उत्तर मिळवले.
शाळेत शिकणारा विद्यार्थी, मी काही फार हुशार व्यक्तीबद्दल बोलत नाही.
ठीक आहे परंतु तरीही अशा परिस्थितीत देखील
शाळेच्या मुलास योग्य उत्तर मिळणे शक्य आहे.
तर, हे एआय(AI) तंत्राचे| टेक्निकचे| technique)) उदाहरण आहे.
आतापर्यंत आपण जे शिकलो ते थोडक्यात पुन्हा सांगतो.
एआय(AI) हा
असा एक विषय आहे ज्यात आपण अवघड
प्रोग्राम(program) लिहायला शिकता आणि अवघड म्हणजे बुद्धीमान नव्हे.
अवघड म्हणजे कंप्युटरच्या(computer)
संरचनेमुळे असे प्रोग्राम(program) लिहिणं कठीण आहे.
प्रोग्राम्सचा(program) अवघडपणा मानवांप्रमाणे काम करण्याच्या त्यांच्या असमर्थतेचे कारण आहे.
ते शोधण्यासाठी हुरिस्टिक(heuristic) वापरावा लागतो.
खरं तर, जर आपण हे न केल्यास ते एकमेकांत
अडकतील ज्याला कॉम्बिनेटोरिअल एक्सप्लोजन(combinatorial explosion)
असे म्हणतात ज्यात बऱ्याच कॉम्बिनेशन आणि परमुटेशन(combination and permutation) असतात.
ठीक आहे, ते असेच कोणी शोधू शकत नाहीत.
खरं तर, त्यांना स्पष्टीकरण सुविधांची आवश्यकता आहे,
त्यांना अपूर्ण माहितीसह कार्य करणे आवश्यक आहे,
त्यांना कधीकधी चुकीच्या माहितीसह कार्य करणे
देखील आवश्यक आहे वगैरे वगैरे.
ठीक आहे, न्युरल नेटवर्कवर(neural network)
आधारित प्रणाली नावाची बाब आहे ज्याबद्दल आपण बहुदा
खाली नवव्या मॉड्युलमधे लक्ष घालू आणि चुकांच्या बाबतीत त्या खरोखर इतक्या सहिष्णू असू शकतात हे समजू.
हे तंत्रज्ञान जे अशा गोष्टी प्रोग्राम(program) बनवण्यास सक्षम करतात,
बरेचदा यामधील बर्याच गोष्टींना आर्टिफिशिअल इंटेलिजन्स टेक्निक्स(Artificial Intelligence techniques) म्हणतात.
ठीक आहे, आपण पुढे यापैकी बर्‍याच गोष्टींचा अभ्यास करू. धन्यवाद!