اور کچھ ڈومینز ہیں جو انڈسٹری میں اور اچھ reasonی وجہ کے سبب بز ورڈز میں شامل ہیں۔ اے آئی 2020 تک 2.3 ملین ملازمتیں پیدا کرنے جا رہا ہے جس کا بنیادی مقصد یہ ہے کہ مشینوں کو انسانوں کے سلوک کی نقل کرنے کے قابل بنایا جائے۔ عجیب ہے نا؟ تو ، آج ہم مندرجہ ذیل ترتیب میں کمک لرننگ ، انفورسمنٹ لرننگ کے بلڈنگ بلاک پر تبادلہ خیال کرنے جارہے ہیں۔
کمک سیکھنا کیا ہے؟
آئیے اپنے دن کی زندگی پر ایک نظر ڈالیں۔ ہم ماحول میں بے شمار کام انجام دیتے ہیں اور ان میں سے کچھ کام ہمیں انعام دیتے ہیں جبکہ کچھ نہیں کرتے ہیں۔ ہم مختلف راستوں کی تلاش کرتے رہتے ہیں اور یہ جاننے کی کوشش کرتے ہیں کہ کون سا راستہ انعامات کا باعث بنے گا اور اپنے عمل کی بنیاد پر ہم اہداف کے حصول سے متعلق اپنی حکمت عملی کو بہتر بناتے ہیں۔ یہ میرے دوست انفورسمنٹ لرننگ کے ایک آسان قابلیت ہیں۔
دلچسپی کے اہم شعبے:
- ماحولیات
- عمل
- انعام
- حالت
کمک سیکھنا مشین سیکھنے کی ایک شاخ ہے جو نظاموں کو اپنے فیصلوں کے نتائج سے سیکھنے کی اجازت دیتی ہے۔ یہ ایک خاص قسم کے مسئلے کو حل کرتا ہے جہاں فیصلہ سازی ترتیب ہوتی ہے ، اور مقصد طویل مدتی ہوتا ہے۔
Q- سیکھنے کا عمل
آئیے ہم یہاں سمجھتے ہیں کہ ہمارے پریشانی بیان کے ساتھ Q کیا سیکھ رہا ہے۔ اس سے کمک سیکھنے والے حل یعنی ایجنٹوں ، ماحولیات ، اقدامات ، انعامات اور ریاستوں کے بنیادی اجزاء کی وضاحت کرنے میں ہماری مدد ملے گی۔
آٹوموبائل فیکٹری یکساں:
ہم روبوٹ سے بھری آٹوموبائل فیکٹری میں ہیں۔ یہ روبوٹ کار کو اکٹھا کرنے کے لئے ضروری حصوں تک پہنچاتے ہوئے فیکٹری کارکنوں کی مدد کرتے ہیں۔ یہ مختلف حصے 9 اسٹیشنوں میں فیکٹری کے اندر مختلف مقامات پر واقع ہیں۔ حصوں میں چیسس ، پہیے ، ڈیش بورڈ ، انجن وغیرہ شامل ہیں۔ فیکٹری ماسٹر نے اس مقام کو ترجیح دی ہے جہاں چیسیس کو ترجیح دی جارہی ہے۔ آئیے یہاں سیٹ اپ پر ایک نظر ڈالیں:
ریاستیں:
جس مقام پر روبوٹ کسی خاص موقع پر موجود ہوتا ہے اسے اس کی ریاست کہا جاتا ہے۔ چونکہ ناموں سے یاد رکھنے کی بجائے اس کا کوڈ لگانا آسان ہے۔ آئیے نمبر کو مقام کا نقشہ بنائیں۔
عمل:
جاوا میں گمنامی کلاس کیا ہے؟
عمل کسی بھی جگہ روبوٹ کے ذریعہ کی جانے والی حرکتوں کے سوا کچھ نہیں ہوتے۔ غور کریں ، ایک روبوٹ L2 مقام پر ہے اور وہ براہ راست مقامات جہاں منتقل ہوسکتے ہیں وہ L5 ، L1 اور L3 ہیں۔ آئیے ہم اسے بہتر طور پر سمجھتے ہیں اگر ہم اس کا تصور کریں:
انعامات:
روبوٹ کو ایک ریاست سے دوسری ریاست میں جانے کے لئے ایک انعام دیا جائے گا۔ مثال کے طور پر ، آپ L2 سے براہ راست L2 اور اس کے برعکس پہنچ سکتے ہیں۔ لہذا ، ہر صورت میں 1 کا انعام دیا جائے گا۔ آئیے ایک نظر ڈالیں ثواب کی میز پر:
یاد رکھیں جب فیکٹری ماسٹر نے چیسس کے مقام کو ترجیح دی۔ یہ ایل 7 تھا ، لہذا ہم اس حقیقت کو اپنے انعامات کی میز میں شامل کرنے جارہے ہیں۔ تو ، ہم (L7 ، L7) مقام میں ایک بہت بڑی تعداد (ہمارے معاملے میں 999) تفویض کریں گے۔
بیل مین مساوات
اب فرض کریں کہ ایک روبوٹ کو نقطہ A سے B جانے کی ضرورت ہے۔ اس راستے کا انتخاب کرے گا جس سے مثبت ثواب ملے گا۔ فرض کریں کہ ہم اس کے پیچھے چلنے کے ل foot پیروں کے نشان کے لحاظ سے ایک انعام فراہم کرتے ہیں۔
لیکن کیا ہوگا اگر روبوٹ کہیں کے درمیان سے شروع ہو جہاں وہ دو یا زیادہ راستے دیکھ سکے۔ اس طرح روبوٹ فیصلہ نہیں لے سکتا اور یہ بنیادی طور پر ہوتا ہے کیونکہ اس کے پاس اس کا پاس نہیں ہوتا ہے یاداشت . یہ وہ جگہ ہے جہاں بیل مین مساوات تصویر میں آتی ہے۔
V (s) = زیادہ سے زیادہ (R (s، a) + & # 120632V (ے))
کہاں:
- s = ایک خاص ریاست
- a = کارروائی
- s '= حالت جس میں روبوٹ s سے جاتا ہے
- & # 120632 = ڈسکاؤنٹ عنصر
- R (s، a) = ایک انعام کا فنکشن جو ریاست (ریاستیں) اور عمل (a) لیتا ہے اور انعام کی قیمت سے باہر نکلتا ہے
- V (s) = کسی خاص حالت میں ہونے کی قدر
اب منزل کے نیچے والے بلاک پر 1 کا انعام ہوگا ، جو سب سے زیادہ انعام ہے ، لیکن دوسرے بلاک کا کیا ہوگا؟ ٹھیک ہے ، یہی وہ جگہ ہے جہاں ڈسکاؤنٹ عنصر آتا ہے۔ آئیے 0.9 کا رعایت عنصر مان لیں اور ایک ایک کرکے تمام بلاکس کو بھریں۔
مارکوف فیصلے کا عمل
تصور کریں کہ ایک روبوٹ اورینج بلاک پر ہے اور اسے منزل تک پہنچنے کی ضرورت ہے۔ لیکن یہاں تک کہ اگر اس میں تھوڑی سی خرابی ہو تو روبوٹ الجھن میں پڑجائے گا کہ اوپر جانے کے بجائے کون سا راستہ اختیار کرنا ہے۔
لہذا ہمیں فیصلہ سازی کے عمل میں ترمیم کرنے کی ضرورت ہے۔ یہ کرنا پڑتا ہے جزوی طور پر بے ترتیب اور جزوی طور پر روبوٹ کے کنٹرول میں ہے . جزوی طور پر بے ترتیب کیونکہ ہم نہیں جانتے کہ کب روبوٹ بیکار ہوجائے گا اور جزوی طور پر قابو پائے گا کیوں کہ یہ اب بھی روبوٹ کا فیصلہ ہے۔ اور یہ مارکوف فیصلہ سازی کے عمل کی بنیاد ہے۔
مارکوف کا فیصلہ کرنے والا عمل (MDP) ایک مجرد وقت کا اسٹاکسٹک کنٹرول عمل ہے۔ یہ ایسے حالات میں ماڈلنگ کے فیصلے کے لئے ریاضی کا ایک فریم ورک مہیا کرتا ہے جہاں نتائج جزوی طور پر بے ترتیب اور جزوی طور پر فیصلہ ساز بنانے والے کے ماتحت ہوتے ہیں۔
لہذا ہم اپنی اصل بیل مین مساوات استعمال کرنے جارہے ہیں اور اس میں تبدیلیاں لائیں گے۔ جو ہم نہیں جانتے وہ اگلی ریاست یعنی ہے۔ s ’۔ جو ہم جانتے ہیں وہی ایک موڑ کے تمام امکانات ہیں اور آئیے مساوات کو تبدیل کرتے ہیں۔
V (s) = زیادہ سے زیادہ (R (s، a) + & # 120632 V (s))
V (ے) = زیادہ سے زیادہ (R (s، a) + & # 120632 اور سگماs ’P (s، a، s ’) V (s '))
P (s، a، s ’): ریاست سے منتقل ہونے کا امکان s کرنے کے لئے s ’ کارروائی کے ساتھ کرنے کے لئے
اور سگماs ’P (s، a، s ’) V (s): روبوٹ کی بے ترتیب توقعات
V (ے) = زیادہ سے زیادہ (R (s، a) + & # 120632 ((0.8V (کمرہ)اوپر)) + (0.1V (کمرہ)نیچے) +….))
اب ، کیو لرننگ میں تبادلہ کریں۔ کیو-لرننگ ایک ایسی حرکت کے معیار کا اندازہ لگانے کا خیال رکھتی ہے جسے ریاست میں منتقل کرنے کے ل is لیا جاتا ہے اس ریاست کی ممکنہ قیمت کا تعین کرنے کی بجائے جس میں اس کی طرف منتقل کیا جارہا ہے۔
سی ++ میں فبوناکی تسلسل
یہ ہم کو ملتا ہے اگر ہم کسی خاص ریاست میں جانے کے ل actions عمل کے معیار کا اندازہ لگانے کے خیال کو شامل کریں۔ تازہ ترین بیل مین مساوات سے اگر ہم انہیں ہٹاتے ہیں زیادہ سے زیادہ اجزاء ، ہم ممکنہ کارروائی کے لئے صرف ایک ہی قدم کا نشان لگا رہے ہیں جو اس کے سوا کچھ نہیں ہے کوالٹی کارروائی کی.
Q (s، a) = (R (s، a) + & # 120632 اور سگماs ’P (s، a، s ’) V (s '))
اس مساوات میں جو عمل کے معیار کو مانتی ہے ، ہم یہ فرض کر سکتے ہیں کہ V (s) Q (s، a) کی تمام ممکنہ اقدار کی زیادہ سے زیادہ ہے۔ تو آئیے v (s) کو Q () کے فنکشن سے تبدیل کریں۔
Q (s، a) = (R (s، a) + & # 120632 اور سگماs ’P (s، a، s ’) زیادہ سے زیادہ Q (s ’، a’))
ہم اپنے حتمی مساوات Q کی تعلیم کے صرف ایک قدم کے قریب ہیں۔ ہم ایک متعارف کرانے جا رہے ہیں وقتی فرق وقت کے ساتھ ساتھ ماحول میں ہونے والی تبدیلیوں کے سلسلے میں Q- اقدار کا حساب کتاب کرنا۔ لیکن ہم Q میں ہونے والی تبدیلی کا مشاہدہ کیسے کرتے ہیں؟
TD (s، a) = (R (s، a) + & # 120632 اور سگماs ’P (s، a، s ’) زیادہ سے زیادہ Q (s ’، a‘)) - Q (s ، a)
ہم ایک ہی فارمولے کے ساتھ نئے Q (ے ، ا) کی دوبارہ گنتی کرتے ہیں اور پہلے سے جانے جانے والے Q (ے ، ا) کو اس سے گھٹا دیتے ہیں۔ تو ، مندرجہ بالا مساوات بن جاتا ہے:
سوالt(s، a) = Qt-1(s ، a) + D TDt(ے ، ا)
سوالt(s، a) = موجودہ Q- قدر
سوالt(s، a) = Qt-1(s، a) + α (R (s، a) + & # 120632 زیادہ سے زیادہ Q (s ’، a’)-سوالt-1(s ، a))
جاوا میں ہیش میپ اور ہیش ٹیبل کیا ہے؟
Q لرننگ ڈیمو: NumPy
میں استعمال کرنے جا رہا ہوں NumPy یہ ظاہر کرنے کے لئے کہ Q لرننگ کس طرح کام کرتی ہے۔
پہلا مرحلہ: درآمدات ، پیرامیٹرز ، اسٹیٹس ، ایکشنز ، اور انعامات
نپٹی کو بطور این پی گاما = 0.75 # ڈسکاؤنٹ عنصر الفا = 0.9 # سیکھنے کی شرح کا مقام_تو_اسٹیٹ = {'ایل 1': 0 ، 'ایل 2': 1 ، 'ایل 3': 2 ، 'ایل 4': 3 ، 'ایل 5': 4 ، ' L6 ': 5 ،' L7 ': 6 ،' L8 ': 7،' L9 ': 8} اعمال = [0،1،2،3،4،5،6،7،8] انعامات = np.array ( [[0،1،0،0،0،0،0،0،0]، [1،0،1،0،0،0،0،0،0]، [0،1،0،0، 0،1،0،0،0]، [0،0،0،0،0،0،1،0،0]، [0،1،0،0،0،0،0،1،0] ، [0،0،1،0،0،0،0،0،0]، [0،0،0،1،0،0،0،1،0]، [0،0،0،0، 1،0،1،0،1]، [0،0،0،0،0،0،0،1،0]])
مرحلہ 2: مقامات پر نقشہ اشارے
state_to_location = ڈک ((ریاست ، محل وقوع) مقام کے لئے ، مقام میں ریاست_تو_اسٹیٹ.ٹیم ())
مرحلہ 3: ق لرننگ کے عمل کا استعمال کرتے ہوئے زیادہ سے زیادہ راستہ حاصل کریں
Def get_optimal_route (start_location، end_location): انعامات_ننے = np.copy (انعامات) اختتام_ اسٹیٹ = مقام_ٹو_سٹٹی [آخر_مقام] انعامات_نئی [اختتام_خاص ، اختتامی_ تاریخ] = 999 Q = np.array (np.zeros) ([Q،9]) میں رینج (1000) کے لئے سیکھنے کا عمل: # بے ترتیب حالت کو منتخب کرنا موجودہ_اسٹیٹ = np.random.randint (0،9) # ازگر میں اوپری باؤنڈ پلے ایبلٹیشنز = [] # حد میں j کے لئے نئے انعامات میٹرکس کے ذریعے اجرت کرنا ( 9): اگر انعامات_نئی [موجودہ_حصہ ، j]> 0: playable_ चाहन्छس۔اپینڈ (j) # ایک بے ترتیب عمل منتخب کریں جو ہمیں اگلی ریاست کی طرف لے جائے گا اگلے_اسٹیٹ = np.random.choice (playable_ferences) # کمپیوٹنگ عارضی فرق TD = انعامات_نئے [موجودہ_اسٹیٹ) ، Next_state] + gamma * Q [Next_state، np.argmax (Q [Next_state،])] - Q [موجودہ_حصہ ، اگلا_ اسٹیٹ] # بیل مین مساوات Q [کرنٹ_ اسٹیٹ ، اگلی_سٹٹی] کا استعمال کرتے ہوئے Q- ویلیو کو اپ ڈیٹ کرنا + + الفا * ٹی ڈی # ابتدائی محل وقوع کے روٹ کے ساتھ زیادہ سے زیادہ راستے کی ابتدا کریں [[start_location] # شروع کرنا اگلے_مقام کے ساتھ اگلے مقام کی نشاندہی کریں Next_location = star t_ مقام # ہم حتمی مقام تک پہنچنے کے لئے درکار تکرار کی صحیح تعداد کے بارے میں نہیں جانتے ہیں لہذا لوٹ دوبارہ کرنے کے ل for ایک اچھا انتخاب ہوگا جب کہ (اگلے_مقام! = آخر_مقام): # شروعاتی حالت کی شروعات کریں / مقام = مقام_تو_اسٹیٹ [شروع_مقام] # اگلے_ اسٹیٹ = np.argmax (Q [start_state،]) شروع کرنے سے متعلق اعلی ترین Q- ویلیو حاصل کریں # ہمیں اگلی ریاست کا انڈیکس مل گیا۔ لیکن ہمیں اسی خط کی ضرورت ہے۔ اگلے_مقام = ریاست_تو_مقام [اگلا_اسٹیٹ] روٹ۔اپینڈ (اگلے_مقام) # اگلی تکرار کے لئے شروع ہونے والی جگہ کو اپ ڈیٹ کریں start_location = next_location واپسی کے راستے
مرحلہ 4: روٹ پرنٹ کریں
پرنٹ کریں (get_optimal_route ('L1'، 'L9'))
آؤٹ پٹ:
اس کے ساتھ ، ہم ق - لرننگ کا اختتام کرتے ہیں۔ مجھے امید ہے کہ آپ نے عارضی فرق ، بیل مین مساوات اور بہت کچھ کی طرح مختلف انحصار کے ساتھ ساتھ Q لرننگ کے کام کو جان لیا ہوگا۔
ایڈورکا کی آپ کو نگرانی سیکھنے ، غیر معاشرتی سیکھنے ، اور قدرتی زبان پروسیسنگ جیسی تکنیک میں ماہر بناتا ہے۔ اس میں مصنوعی ذہانت اور مشین لرننگ جیسے ڈیپ لرننگ ، گرافیکل ماڈل اور کمک سیکھنے میں جدید ترین پیشرفت اور تکنیکی نقطہ نظر کی تربیت شامل ہے۔