स्वयंचलित कार अनेक वर्षे कडक सूचना संच (instruction sets) पाळत आहेत. इंजिनिअर्सनी हजारो 'जर-तर' (if-then) विधाने लिहिली आहेत. जर एखादा पादचारी रस्ता ओलांडत असेल, तर ब्रेक लावा. जर सिग्नल लाल झाला, तर थांबा. जर रस्ता वळणावळणाचा असेल, तर स्टेअरिंग वळवा. जेव्हा जग अगदी अपेक्षित प्रमाणे वागते तेव्हा हा दृष्टिकोन काम करतो, परंतु प्रत्यक्ष ड्रायव्हिंग अधिक गुंतागुंतीचे असते. एखादे नियमपुस्तिका प्रत्येक चिखलमय माळरान, चिन्हांकित नसलेले चौक किंवा वाहतुकीतून वेगाने जाणारे सायकलस्वार यांचा विचार करू शकत नाही. जेव्हा वातावरण बदलते, तेव्हा कडक आदेश अपयशी ठरतात. आपल्याला केवळ चेकलिस्ट फॉलो करण्याऐवजी, चांगले ड्रायव्हिंग म्हणजे काय हे शिकणाऱ्या प्रणालींची गरज आहे.
हार्ड-कोडेड नियमांच्या पलीकडे
पारंपारिक स्वायत्त प्रणाली (autonomous systems) स्पष्ट प्रोग्रामिंगवर अवलंबून असतात. त्या वेअरहाऊसचे मजले, समर्पित लेन आणि अंदाज लावता येण्याजोग्या हवामानासारख्या बंद वातावरणात चांगले काम करतात. सार्वजनिक रस्त्यांवर, हेच तर्क अनेकदा कोलमडतात.
हाताने लिहिलेले फलक, विचित्र कोनात विखुरलेले कोन्स आणि वाहतूक नियंत्रित करणारा ध्वजवाहक असलेले बांधकाम क्षेत्र डोळ्यासमोर ठेवा. नियम-आधारित प्रणालीला स्पष्ट ट्रॅफिक सिग्नल हवा असतो. तिला फक्त गोंधळ दिसतो. "केशरी जॅकेट घातलेला माणूस डावीकडे इशारा करत आहे" यासाठी कोणताही विशिष्ट नियम नसल्यास, कार थांबते किंवा चुकीचा अंदाज घेते. मानवी चालक हे त्वरित हाताळतात कारण आपण केवळ पिक्सेल नाही, तर हेतू आणि संदर्भ समजून घेतो. आपण संपूर्ण दृश्य वाचतो. मशीनला हेच शिकवण्यासाठी मूलभूतपणे वेगळ्या दृष्टिकोनाची आवश्यकता आहे.
पाहून शिकणे: Inverse Reinforcement Learning
इथेच Inverse Reinforcement Learning गेम बदलतो. मानक reinforcement learning मध्ये, तुम्ही AI ला एक ध्येय आणि रिवॉर्ड फंक्शन (reward function) देता. गंतव्यस्थानापर्यंत लवकर पोहोचा, गुण मिळवा. कडेला धडकले, तर गुण कमी करा. जोपर्यंत एजंटला त्याचा स्कोअर वाढवणारी पॉलिसी सापडत नाही, तोपर्यंत तो प्रयत्न करत राहतो. परंतु ड्रायव्हिंग हे केवळ कार्यक्षमतेबद्दल नाही. ते आराम, सुरक्षा, कायदेशीरपणा आणि सामाजिक शिष्टाचाराबद्दल आहे. "एका सावध पण सक्षम मानवाप्रमाणे गाडी चालवा" यासाठी गणितीय रिवॉर्ड लिहिणे जवळजवळ अशक्य आहे.
Inverse Reinforcement Learning ही समस्या उलट करते. AI ला ध्येय देण्याऐवजी, तुम्ही त्याला उदाहरणे दाखवता. अल्गोरिदम मानवी ड्रायव्हिंगचे तासनतास फुटेज पाहतो. माणूस कधी वेग कमी करतो, लेन कधी लवकर बदलतो किंवा ट्रकमधून येणाऱ्या वाहनाला कधी जागा देतो, याचे निरीक्षण तो करतो. तो केवळ स्टेअरिंगचा अचूक कोन लक्षात ठेवत नाही. तो 'का' हे शोधण्यासाठी उलट प्रक्रिया करतो. कदाचित रस्ता कायदेशीररित्या मोकळा असूनही, फुटपाथजवळ एखादे मूल उभे असल्यामुळे चालकाने वेग कमी केला असेल. AI त्यातील सुप्त रिवॉर्ड शोधून काढते: क्रॉसवॉक नसला तरीही पादचाऱ्याचे जवळ असणे महत्त्वाचे आहे.
मानवाला अशा तज्ज्ञ व्यक्तीप्रमाणे मानून, ज्याने आधीच ऑप्टिमायझेशनची समस्या सोडवली आहे, अल्गोरिदम तो 'कॉस्ट फंक्शन' (cost function) शोधून काढतो जो तो तज्ज्ञ कमी करण्याचा प्रयत्न करत आहे. एकदा का प्रणालीला मूलभूत पसंती समजल्या (जसे की अचानक थांबण्याऐवजी स्मूथ ब्रेकिंगला प्राधान्य देणे किंवा वळण घेताना लेनच्या मध्यभागी राहणे), तेव्हा ती सामान्यीकरण (generalize) करू शकते. ती दुसऱ्या शहरात नवीन रस्त्यावर येते आणि तिला अंदाजे समजते की त्या अनोळखी परिस्थितीत एक चांगला चालक कशाला महत्त्व देईल.
निर्णय घेणे: Deep Q-Networks
रिवॉर्ड समजून घेणे हा केवळ अर्धा लढा आहे. कारला अजूनही कृती करण्याची गरज आहे. Deep Q-Networks सर्वोत्तम कृती निवडण्यासाठी संवेदी डेटा (sensory data) प्रोसेस करून निर्णय घेण्याचे काम करतात.
क्लासिक Q-learning दशकांपासून अस्तित्वात आहे. एक एजंट विशिष्ट स्थितीत विशिष्ट कृती करण्याचे मूल्य शिकतो. अडचण अशी आहे की प्रत्यक्ष ड्रायव्हिंगमधील स्थिती जवळजवळ अनंत आहेत. कॅमेरा फीड हा साधा ग्रिड वर्ल्ड नाही. तो प्रति सेकंद साठ फ्रेम्समध्ये बदलणारे लाखो पिक्सेल आहेत, ज्यामध्ये lidar point clouds, वेगाचे वाचन आणि GPS वेक्टर्स यांचा समावेश असतो.
Deep Q-Networks फंक्शन अॅप्रोक्सिमेटर म्हणून न्यूरल नेटवर्क वापरून हे सोडवतात. नेटवर्क कच्चा संवेदी डेटा घेते आणि प्रत्येक संभाव्य कृतीसाठी अंदाजित मूल्य देते: डावीकडे वळा, हळू ब्रेक लावा, वेग वाढवा, मार्ग कायम ठेवा. प्रत्येक परिस्थितीसाठी लूकअप टेबल साठवण्याऐवजी, नेटवर्क सामान्यीकरण करते. पावसाळी रात्री गडद डाग म्हणजे कदाचित पार्क केलेली कार आहे, हे त्याने उन्हाळ्यातील प्रशिक्षणादरम्यान शिकल्याप्रमाणे ते ओळखते आणि "वेग वाढवा" या कृतीला कमी मूल्य देते.
प्रशिक्षणात 'experience replay' समाविष्ट आहे. प्रणाली मागील ड्रायव्हिंगमधील क्षण, यशस्वी लेन बदल, जवळून वाचलेले अपघात आणि स्मूथ डिकॅलरेशन साठवते आणि नंतर नेटवर्क अपडेट करण्यासाठी त्यांचे यादृच्छिकपणे नमुने (samples) घेते. यामुळे हानिकारक सहसंबंध (correlations) तुटतात आणि शिकण्याची प्रक्रिया स्थिर होते. हजारो सिम्युलेटेड तासांनंतर, नेटवर्क शिकते की कोणत्या कृती सुरक्षित प्रगतीकडे नेतात आणि कोणत्या कृती अडचणींकडे नेतात.
एकत्र आणणे
यापैकी एकही पद्धत एकटीने सक्षम चालक तयार करू शकत नाही. decision engine शिवाय Inverse Reinforcement Learning केवळ एक निरीक्षक आहे. मानवांना स्मूथनेस (smoothness) महत्त्वाचा वाटतो हे त्याला समजते, पण ते स्टेअरिंग हाताळू शकत नाही. योग्यरित्या तयार केलेल्या reward function शिवाय Deep Q-Network चुकीच्या गोष्टीसाठी ऑप्टिमाइझ करते. ते असे शोधू शकते की वर्तुळात गाडी चालवल्याने अपघात पूर्णपणे टाळता येतात, ज्यामुळे कुठेही न पोहोचताही उच्च स्कोअर मिळवता येतो.
एकत्रितपणे, ते एक शक्तिशाली लूप तयार करतात. Inverse Reinforcement Learning मानवी तज्ज्ञांचे निरीक्षण करते आणि वास्तविक जगातील प्राधान्ये समजून घेणारे reward function तयार करते. त्यानंतर Deep Q-Network त्या reward function चा वापर करून trial and error द्वारे स्वतःला प्रशिक्षित करते आणि कृती निवडण्यासाठी थेट सेन्सर डेटावर प्रक्रिया करते. AI केवळ निरीक्षणातूनच नाही, तर सरावातूनही जटिल वर्तन शिकते.
हायवेवर लेन बदलण्याच्या (highway merge) प्रक्रियेचा विचार करा. Inverse Reinforcement Learning घटकाने असे निष्कर्ष काढले आहेत की मानवी चालक वेगाचे साम्य राखणे आणि उपलब्ध अंतर (gap acceptance) स्वीकारणे यामध्ये संतुलन राखतात. Deep Q-Network ला हा सूक्ष्म cost signal मिळतो आणि ते सिम्युलेशनमध्ये दहा हजार वेळा लेन बदलण्याचा सराव करते. वेग कधी वाढवायचा, कधी मागे राहायचे आणि अंतर कधी खूप कमी आहे, हे ते शिकते. याचा परिणाम म्हणजे केवळ रेकॉर्ड केलेल्या मानवी हालचालींची नक्कल करणारा पोपट मिळणे असा नाही. हे असे एक सिस्टम आहे ज्याने तर्क (logic) आत्मसात केला आहे आणि हायवे ओला असताना किंवा अंतर नेहमीपेक्षा कमी असतानाही ते स्वतःला जुळवून घेऊ शकते.
