Wednesday, December 16, 2015

MATLAB एक परिचय

  MATLAB एक परिचय

MATLAB, MathWorks द्वारा विकसित एक programming language है. इसकी शुरूआत matrix programming language के रुप में हुई थी जहां linear algebra programming (रेखीय बीजगणित प्रोग्रामिंग) का उपयोग हुआ था. यह interactive sessions के साथ-साथ batch job दोनों कर सकती है.

MATLAB – पूर्वापेक्षाएँ (Prerequisites)

यह मान कर चला जाता है की उपयोगकर्ता को कंप्यूटर प्रोग्रामिंग की थोड़ी-सी जानकारी है और वह variables, constants, expression, statements, आदि की अवधारणा को समझता है. यदि उसने किसी भी high-level programming language जैसे C, C++ या Java में प्रग्रामिंग की है तो उसको MATLAB को सीखने में आसानी रहेगी.

MATLAB – एक परिचय

MATLAB (matrix laboratory) चौथी पीढ़ी की उच्च स्तरीय प्रोग्रामिंग भाषा (fourth-generation high-level programming language) है. यह numerical computation, visualization और programming के लिए interactive environment देती है.
MATLAB का विकास MathWorks द्वारा किया गया है.
यह matrix manipulations; functions और data की plotting; algorithms के कार्यान्वयन;  user interfaces के सृजन; दूसरी भाषा जैसेकि C, C++, Java, और FORTRAN में लिखे प्रोग्राम से interfacing; डाटा का विश्लेषण; algorithms के विकसित करने; और models और applications को बनाने की अनुमति देती है.
इसमें भिन्न built-in commands और math functions हैं जो कि आपको गणितीय और संख्यात्मक गणना (mathematical and numerical calculations) और plots के निर्माण की अनुमति देते हैं.
MATLAB कम्प्यूटेशनल गणित (Computational Mathematics) का एक ताकतवर माध्यम है और इसका उपयोग गणितीय गणन के अनेक पहलुओं में किया जाता है. यहां कुछ आमतौर पर उपयोग में लाए जाने वाली गणितीय गणना जिन में MATLAB सहायक है-
  • Matrices और Arrays संबंधित गणना
  • 2-D और 3-D Plotting और graphics
  • Linear Algebra और Algebraic Equations
  • Non-linear Functions
  • Statistics और Data Analysis
  • Calculus और Differential Equations
  • Numerical Calculations और Integration
  • Transforms, Curve Fitting और अन्य भिन्न special functions

MATLAB की विशेषताएं

MATLAB के बुनियादी विशेषताएं इस प्रकार हैं
  • यह numerical computation, visualization और application development के लिए एक high-level language है.
  • यह iterative exploration, design और problem solving के लिए एक  interactive environment उपलब्ध करता है.
  • यह linear algebra, statistics, Fourier analysis, filtering, optimization, numerical integration और ordinary differential equations को हल करने के लिए  mathematical functions की काफी विकसित library उपलब्ध करता है.
  • यह data को प्रदर्शित करने के लिए और custom plots के निर्माण के लिए built-in graphics उपलब्ध करता है.
  • MATLAB का programming interface उपलब्ध करता है development tools बेहतर code quality maintainability और maximizing performance के लिए.
  • यह applications को custom graphical interfaces के साथ बनाने के लिए tools उपलब्ध करता है.
  • यह उन functions को उपलब्ध करता है जो कि MATLAB आधारित algorithms को बाहरी applications और कंप्यूटर भाषा जैसे कि  C, Java, .NET और Microsoft Excel को एक दूसरे से जोड़ सके.

MATLAB के उपयोग

MATLAB का मुख्यतः एक गणना करने वाले औजार की तरह विज्ञान और इंजीनियरिंग में उपयोग होता है जिसमें भौतिकी, रसायन, गणित और सभी इंजीनियरिंग के संकाय सम्मिलित हैं. इसका उपयोग काफी विस्तरित क्षेत्र में किया जा रहा है जिसमें सम्मिलित हैं-


  • Signal Processing और Communications
  • Image और Video Processing
  • Control Systems
  • Test और Measurement
  • Computational Finance
  • Computational Biology

MATLAB - Environment Setup

MathWorks तीन तरह से matlab उपलब्ध करता है
  • licensed product
  • trial version
  • student version
जिन्हें आप MathWork.com  की साईट से डाउनलोड कर सकते हैं.

Local Environment Setup

MATLAB environment को स्थापित करने के लिए आपको सबसे पहले MathWorks.com से Matlab के installer को download करना होगा.
Installer को download करने के बाद software को आसानी से स्थापित (install) किया जा सकता है.

MATLAB Environment

MATLAB development IDE को desktop पर बने MATLAB icon को क्लिक कर से खोला जा सकता है. MATLAB की मुख्य working window को desktop कहा जाता है. जब MATLAB पहली बार खुलती है तब desktop, अपने default layout में होता है
Desktop के निम्न panels होते हैं
Current Folder – यह panel आपको project folders और files पर पहुंच (access) की अनुमति देता है.
Command Window – यह मुख्य क्षेत्र है जहां निर्देशों (commands) को command line पर दिया जाता है. इसे command prompt (>>) से इंगित करते है.
Workspace – यह उन सभी variables को प्रदर्शित करती है जिन्हें या तो create किया गया है और/या किन्हीं files से आयात (import) किया गया है.
Command History – यह panel उन सभी commands को प्रदर्शित करता है या rerun करता है जिन्हें command line पर enter किया गया है.

Set up GNU Octave


यदि आप Octave को अपनी machine ( Linux, BSD, OS X या Windows) पर चलाना चाहते हैं, तब सबसे latest version को Download GNU Octave से डाउनलोड़ करें.

Friday, December 11, 2015

एजेंट और परिवेश ( Agent and Environment)

  एजेंट  और परिवेश (Agent and Environment)

कृत्रिम बुद्धिमत्ता, एजेंट (Agent) और उसके परिवेश (Environment) से मिलकर बनी होती है. एजेंट अपने परिवेश में काम करता है. एक परिवेश (Environment) में अनेक एजेंट (Agent) सम्मिलित हो सकते हैं.

एजेंट (Agent) और परिवेश (Environment) क्या हैं?

एक एजेंट (Agent)  कुछ भी हो सकता है जो अपने परिवेश (Environment) को sensor (ज्ञानेंद्री) की मदद से समझता है और उस परिवेश में effectors (प्रेरक) की मदद से काम करता है.
·         एक मानव एजेंट (human agent) में संवेदी के रुप में आँख, कान, नाक, जीभ, और त्वचा होती हैं जो की sensor (ज्ञानेंद्री)  के समान में काम करती है, और अन्य अंग जैसे कि हाथ, पैर, मुंह effectors (प्रेरक) की तरह व्यवहार करते है.
·         एक रोबोटिक एजेंट कैमरा और इंफ्रारेड रेंज फाइंडर को सेंसर की तरह से उपयोग करता है और भिन्न मोटर और एक्टुएटर को एफ्फेक्टोर की तरह से प्रयोग करता है.
·         एक सॉफ्टवेर एजेंट के पास प्रोग्राम के रुप में इनकोडिंग बिट स्ट्रिंग्स (encoded bit strings) होते हैं जो निर्देश देते हैं.
)

एजेंट शब्दावली

एजेंट की कार्यक्षमता (Performance Measure) यह एक मापदंड है, जो निर्धारित करता है की एजेंट कितना सफल है.
एजेंट का व्यवहार (Behavior of Agent) यह वह कार्रवाई हैं जो एक एजेंट दिए गए निर्देशों के अनुक्रम में करता है.
प्रतिबोध (Percept) – यह एजेंट द्वार किसी दिए गए पल को लेकर अवधारणा बनाना है.
प्रतिबोध क्रम (Percept Sequence) – यह उन सभी चीजों का वृतांत है जिनको लेकर एजेंट ने अब तक अवधारणा बनाई है. 
एजेंट फंक्शन (Agent Function) – यह एजेंट द्वारा किसी प्रतिबोध क्रम से उसके द्वारा कार्यवाही किए जाने तक का प्रति चित्रण है.
तर्क शक्ति (Rationality)- तर्क शक्ति से मतलब उस अवस्था से है जिसमें तर्क करने, संवेदी होने और निर्णय लेने की अच्छी समझ हो.
तर्क शक्ति का संबंध संभावित कृत्यों और उसके परिणामों से भी है जिसे एजेंट ने सुझाया है. उचित व उपयोगी सूचनाओं को प्राप्त करने के लिए किसी कृत्य को करना तर्क शक्ति का महत्वपूर्ण हिस्सा है.

आदर्श तर्कसंगत एजेंट Ideal Rational Agent

एक आदर्श तर्कसंगत एजेंट वह होता है, जो कि उन संभावित कृत्यों को करने के सक्षम होता है जो कि प्रदर्शन क्षमता का निम्न के आधार पर अधिकतम प्रदर्शन कर सके-
·         प्रतिबोध क्रम (percept sequence)
·         तैयार ज्ञानधार (built-in knowledge base)
किसी एजेंट की तर्क शक्ति निम्न चार अवयवों पर निर्भर करती है-
·         प्रदर्शन क्षमता (performance measures), जो की सफलता के अंश का निर्धारण करती है.
·         एजेंट का अब तक का प्रतिबोध क्रम (Percept Sequence).
·         एजेंट को परिवेश के बारे में पूर्व ज्ञान (prior knowledge about the environment).
·         वह कृत्य (actions)  जो एजेंट कर सकता है.
एक तर्कसंगत एजेंट हमेशा सही कृत्य करता है, जहां सही कृत्यों के करने से मतलब एजेंट द्वारा कृत्यों को प्रतिबोध के क्रम में उस तरह से करने से है जो अधिकतम सफलता दिला सके. वह समस्या जिसका एक एजेंट समाधान करता है उसका विश्लेषण PEAS, प्रदर्शन क्षमता (performance measure), वातावरण (environment), एक्टुएटर (actuator) और सेंसर (sensors) से होता है.

इंटेलीजेंट एजेंट की संरचना

किसी एजेंट की संरचना को निम्न प्रकार से देखा जाता है
एजेंट= आर्किटेक्चर + एजेंट प्रोग्राम (Agent = Architecture + Agent Program)
आर्किटेक्चर (Architecture) = वह मशीनरी जिस पर एजेंट कार्यवाही निष्पादित करता है. 
एजेंट प्रोग्राम (Agent Program) = एजेंट फंक्सन का कार्यान्वयन.

Simple Reflex Agents

·         वह केवल वर्तमान प्रतिबोध (current percept) के आधार पर कार्रवाई करते हैं.
·         यदि सही निर्णय वर्तमान प्रतिबोध के आधार पर ही किया जाता है, वह तर्कसंगत होते हैं.
·         उनका वातावरण (environment) पूरी तरह से प्रत्यक्ष (observable) होता है.
Condition-Action Rule – यह वह नियम है जो किसी कार्यवाही की अवस्था (स्थिति) का प्रति चित्रण करता है.

Model Based Reflex Agents

वह अपने कार्यों को करने के लिए सांसारिक प्रतिरूपों (Model) का उपयोग करते हैं और वह आंतरिक अवस्था  (internal state) को बनाए रखते हैं.
Model − वह ज्ञान (knowledge) कैसे चीजें वास्तविक संसार में होती हैं.
Internal State – वर्तमान स्थिति का प्रतिनिधित्व जो कि पिछली अवस्था पर निर्भर कर सकता है.
किसी अवस्था (state) का अद्यतन (Update) निम्न सूचना को चाहता है-   
·         कैसे परिवेश सम्मिलित है. (How the world evolves)
·         कैसे एजेंट का कृत्य परिवेश को प्रभावित करता है. (How the agent’s actions affect the world)

Goal Based Agents

यह अपने actions को उस क्रम में निर्धारित करते हैं जिससे की वह लक्ष्य (goals) को प्राप्त कर सकें. लक्ष्य आधारित अवधारणा Reflex आधारित धारणा से ज्यादा लचीली होती है, क्योंकि तब ज्ञान (knowledge) निर्णय को लेने में मदद करता है और बदलाव की अनुमति देता है.
Goal (लक्ष्य) यह चाहे जाने वाली स्थिति का विवरण है.

Utility Based Agents

यह कृत्यों (actions) का चयन प्रत्येक अवस्था (state) की प्राथमिकता/ उपयोगिता (preference/utility) के आधार पर करते हैं. लक्ष्य (Goal) अप्रभावी होते हैं जब -
·         वहां विवादित लक्ष्य (conflicting goals) होते हैं जिनमें से कुछ ही को पाया जा सकता है.
·         लक्ष्यों की प्राप्ति में अनिश्चितता होती है और आप लक्ष्य सफलता की दर पर ज्यादा जोर देते हैं उसकी सार्थकता की जगह.

परिवेश का स्वभाव (Nature of Environments)

कुछ प्रोग्राम पूरी तरह से कृत्रिम परिवेश में काम करते हैं जोकि कीबोर्ड, डाटा बेस, कंप्यूटर फाइल सिस्टम और स्क्रिन पर character आउटपुट पर निर्भर होते हैं.
इसके विपरीत कुछ सॉफ्टवेयर एजेंट (सॉफ्टवेयर रोबोट) बहुत ही वास्तविक वातावरण में काम करते हैं. सिम्युलेटर (simulator) का बहुत ही जटिल वातावरण होता है जो कि वास्तविक वातावरण के काफी समान होता है. यहां सॉफ्टवेयर एजेंट को काफी सारी निर्णयों को वास्तविक समय (real time) में लेकर कार्यवाहियों को करना होता है. यहां रियल टाईम साफ्टवेयर हैं जो कि ग्राहक के online व्यवहार को जानकर उसकी चाहना के अनुरूप उत्पाद प्रस्तुत करते हैं या सुझाव देते हैं जो कि वास्तविक के साथ ही कृत्रिम परिवेश में भी काम करते हैं.
सबसे  प्रसिद्ध आर्टिफिशल परिवेश है Turing Test environment है, जिसमें एक वास्तविक और दूसरे कृत्रिम एजेंट का परीक्षण समान आधार पर किया जाता है. यह बहुत ही चुनौती भरा environment है क्योंकि सॉफ्टवेयर एजेंट के लिए आदमी की तरह से काम करना काफी कठिन होता है.

Turing Test

किसी भी प्रणाली के बुद्धिमत्ता पूर्ण व्यवहार (intelligent behavior) की माप Turing Test से की जा सकती है.
दो व्यक्ति और एक मशीन जिनका परीक्षण करना है वह परीक्षण में हिस्सा लेती हैं. इन दो व्यक्तियों में से, एक परीक्षक का काम करता है. प्रत्येक भिन्न कमरों में बैठते हैं.  परीक्षक इससे अनभिज्ञ होता है की कौन मशीन है और कौन मानव है. वह कंप्यूटर पर टाइप करके प्रश्न करता है, और उसे दोनों Intelligence (बुद्धिमत्ता)  को भेजता है, जिसके जवाब में उसे टाइप की हुई प्रतिक्रिया मिलती है.
इस परीक्षण का लक्ष्य परीक्षक को बेवकूफ बनाना होता है. यदि परीक्षक मशीन की प्रक्रिया को जानने में असफल रहता है, तब मशीन को intelligent कहा जाता है.

परिवेश के प्रकार (Types of Environment)

असतत/ सतत (Discrete / Continuous) यदि यहां भिन्न-भिन्न, स्पष्टतः परिभाषित, environment की अवस्था (states) होती हैं, तब environment को असतत (discrete) कहते हैं (उदाहरण के लिए, शतरंज); अन्यथा वह सतत (continuous) कहलाता है  (उदाहरण के लिए, कार का चलाना).
प्रत्यक्ष/ आंशिक प्रत्यक्ष (Observable / Partially Observable) – यदि समय के हर बिंदु पर environment की पूर्ण अवस्था का निर्धारण किया जा सकता है तो वह प्रत्यक्ष है; अन्यथा वह केवल आंशिक प्रत्यक्ष  है.
स्थिर/ गतिमान (Static / Dynamic) – यदि environment में बदलाव नहीं होता है जब की एजेंट कार्यरत है, तब वह स्थिर (static); अन्यथा वह गतिमान (dynamic) है.
एकल एजेंट/ बहुविध एजेंट (Single agent / Multiple agents) – किसी वातावरण में एक या अनेक एजेंट एक की प्रकार के या भिन्न प्रकार के हो सकते हैं.
गम्य/ अगम्य (Accessible / Inaccessible) यदि एजेंट के संवेदी तंत्र (sensory apparatus) की पहुंच environment की सभी अवस्था में होती है तब गम्य परिवेश अन्यथा अगम्य.
निश्चयात्मक/ गैर-निश्चयात्मक (Deterministic / Non-deterministic) – यदि environment की अगली अवस्था का पूर्ण निर्धारण वर्तमान अवस्था से और एजेंट के कृत्यों से किया जा सकता है, तब environment  deterministic; अन्यथा वह non-deterministic है.

प्रासंगिक/ गैर-प्रासंगिक (Episodic / Non-episodic) – प्रासंगिक वातावरण में प्रत्येक प्रकरण जो किस एजेंट को समाहित करता है वह उसे समझता है और फिर कार्यवाही करता है. किसी कार्यवाही की गुणवत्ता प्रकरण पर निर्भर करती है. अगला प्रकरण पिछले प्रकरणों की कार्यवाही पर निर्भर नहीं करता है. Episodic environments ज्यादा सरल होते हैं क्योंकि एजेंट को अगले प्रकरण के लिए नहीं सोचना होता है. 

Thursday, December 10, 2015

कृत्रिम बुद्धिमत्ता का शोध क्षेत्र (Research Area of Artificial Intelegence)

  कृत्रिम बुद्धिमत्ता का शोध क्षेत्र (Research Area of Artificial Intelegence)

कृत्रिम बुद्धिमत्ता का क्षेत्र काफी विस्तरित है, हम Artificial Intelligence कुछ आम और सफल क्षेत्रों का परिचय देते हैं.

स्पीच और वोईस रिकग्निशन (Speech and Voice Recognition)

यह दोनों शब्द रोबोटिक एक्सपर्ट सिस्टम (Robotic Expert System) और प्राकृतिक भाषा प्रसंस्करण (Natural Language Processing) में आम हैं. यद्यपि इन शब्दों को एक दूसरे के स्थान पर काफी प्रयोग किया जाता है, फिर भी इसके उद्देश्य काफी अलग-अलग हैं.
Speech Recognition
Voice Recognition
स्पीच रिकग्निशन का उद्देश्य उसको समझना और जानना है की क्या बोला गया.
वोईस रिकग्निशनका उद्देश्य उसको पहचानना है की कौन बोल रहा है.
यह किसी व्यक्ति की उसके स्वर, आवाज के स्तर, गहराई  और उच्चारण आदि से पहचान करना है.  
मशीन को स्पीच रिकग्निशन  करने के लिए किसी तरह के प्रशिक्षण की जरूरत नहीं होती है क्योंकि यह वक्ता पर निर्भर नहीं होती है.
वोईस रिकग्निशनका सिस्टम को प्रशिक्षण की जरूरत होती है क्योंकि यह व्यक्ति उन्मुख है.  
कौन बोल रहा है इससे स्वतंत्र  स्पीच रिकग्निशन  सिस्टम को विकसित करना अभी कठिन है.
कौन बोल रहा है इसपर आश्रित  स्पीच रिकग्निशन सिस्टम को ज्यादा आसानी से विकसित किया जा सकता है.

स्पीच और वोईस रिकग्निशन सिस्टम की कार्यप्रणाली

उपयोग कर्ता का इनपुट जिसे माइक्रोफोन पर बोला जाता है वह सिस्टम के साउंड कार्ड पर जाता है. जहां कंवर्टर बोली गई बात के एनालॉग संकेतों को समतुल्य डिजिटल संकेतों में बदल देते हैं. एक डाटाबेस का उपयोग पहचाने जाने योग्य शब्दों के ध्वनि पैटर्न की तुलना के लिए किया जाता है. अंततः डाटाबेस से एक प्रक्रिया वापस दी जाती है.
यह स्रोत-भाषा डाटा किसी अनुवाद प्रणाली का इनपुट बन जाता है, जो कि उसे target language text में बदल देती है. यह इंटरैक्टिव जीयूआई (ग्राफिक यूजर इंटरफेस), शब्दावली के बड़े डाटाबेस, आदी से समर्थित होता है.

अनुसंधान क्षेत्रों में Artificial Intelligence के वास्तविक जीवन के अनुप्रयोग

यहां अनुप्रयोगों की एक लंबी सूची है जहां Artificial Intelligence आम लोगों के दैनिक जीवन में सहायक है.
·         विशेषज्ञ प्रणाली (एक्सपर्ट सिस्टम)- फ्लाइट-ट्रैकिंग सिस्टम, क्लिनिकल सिस्टम.
·         नेचुरल लैंग्वेज प्रोसेसिंग (प्राकृतिक भाषा प्रसंस्करण)-भाषण मान्यता, स्वचालित ध्वनि आउटपुट.
·         न्यूरल नेटवर्क (तंत्रिका तंत्र)- नमूने की पहचान के लिए,
·         पैटर्न रिकग्निशन सिस्टम - चेहरे की पहचान के लिए फेस रिकग्निशन, अक्षर की पहचान के लिए करैक्टर रिकग्निशन, हस्तलेख (लिखावट) की पहचान के लिए हैंडराइटिंग रिकग्निशन.
·         रोबोटिक- परिवाहन, छिड़काव, चित्रकला, सटीक जाँच, ड्रिलिंग, सफाई, कोटिंग, नक्काशी आदि के लिए औद्योगिक रोबोट.
·         फजी लॉजिक सिस्टम- उपभोक्ता इलेक्ट्रॉनिक्स, ऑटोमोबाइल, आदि

Artificial Intelligence के कार्यों का वर्गीकरण

Artificial Intelligence के कार्यों का वर्गीकरण
·         औपचारिक कार्य (Formal tasks),
·          सांसारिक कार्य (Mundane tasks)और
·         विशेषज्ञ कार्य (Expert tasks.) में किया जाता है.
सांसारिक कार्य
 (Mundane Task)
औपचारिक कार्य
(Formal Task)
विशेषज्ञ कार्य
(Expert Tasks)
·       अनुभूति (Perception)
·       कंप्यूटर दृष्टिकोण
·       बोलना
·       सुनना आदी
·    गणित
·    रेखागणित
·    तर्क
·    कलन/ समाकलन आदि
·  किसी मशीन में गलती खोजना,
·  निर्माण करते समय निगरानी रखना आदि
·       प्रकृतिक भाषा प्रसंस्करण
·       समझना
·       भाषा का विकास
·       भाषा अनुवाद
खेल- गो, शतरंज (डीप ब्ल्यू), चेकर आदि
वैज्ञानिक विश्लेषण
व्यावहारिक बुद्धि
(Common Sense)
सत्यापन करना (Verification)
विश्लेषण करना (Analysis)
तर्क करना (Reasoning)
प्रमेय सिद्ध करना
(Theorem Proving)
निदान
(Diagnosis)
योजना बनना
रचनात्मकता

मानव सांसारिक कार्यों (mundane  tasks) को अपने बचपन से सीखता है. वह देखते हुए, बोलते हुए, भाषा का प्रयोग करते हुए, और व्यवहार करते हुए सीखता है. वह सांसारिक कार्यों को सीखने के बाद औपचारिक और विशेषज्ञ कार्यों को क्रम से सीखता है.  
जब सांसारिक कार्यों को मशीनों से करने कोशिश की जाती है तब यही सत्य प्रतीत होता है की मानव के लिए सांसारिक कार्य को सीखना आसान हैं. पहले Artificial Intelligence  के सभी कामों को करने के लिए सांसारिक कार्यक्षेत्र पर ध्यान दिया जाता है.
फिर, इसके बाद यह देखा गया है की मशीन को सांसारिक कार्य करने के लिए ज्यादा और पेचीदा जानकारी की और जटिल कार्य योजना (एल्गोरिथम) की जरूरत होती है. यही कारण है की क्यों अभी Artificial Intelligence विशेषज्ञ कार्यक्षेत्र में ज्यादा सफल दिखती है, क्योंकि विशेषज्ञ ज्ञान क्षेत्र बिना व्यावहारिक बुद्धि के कार्य करता है, जिसे आसानी से  संज्ञान में लाकर उसका समाधान निकाला जा सकता है.