و هي بعض المجالات التي تعد من بين أهم الكلمات الطنانة في المجال ولسبب وجيه. سيخلق الذكاء الاصطناعي 2.3 مليون وظيفة بحلول عام 2020 مع الأخذ في الاعتبار أن هدفه الرئيسي هو تمكين الآلات من محاكاة السلوك البشري. الغريب أليس كذلك؟ لذلك ، سنناقش اليوم Q Learning ، اللبنة الأساسية للتعلم المعزز بالترتيب التالي:
ما هو التعلم المعزز؟
دعونا نلقي نظرة على حياتنا اليومية. نقوم بالعديد من المهام في البيئة وبعض هذه المهام تجلب لنا مكافآت بينما البعض الآخر لا يفعل ذلك. نستمر في البحث عن مسارات مختلفة ونحاول معرفة المسار الذي سيؤدي إلى المكافآت وبناءً على عملنا نقوم بتحسين استراتيجياتنا لتحقيق الأهداف. هذا أصدقائي هم من أبسط تشبيه بالتعلم المعزز.
مجالات الاهتمام الرئيسية:
- بيئة
- عمل
- جائزة او مكافاة
- حالة
التعلم المعزز هو فرع التعلم الآلي الذي يسمح للأنظمة بالتعلم من نتائج قراراتها الخاصة. إنه يحل نوعًا معينًا من المشكلات حيث يكون اتخاذ القرار متسلسلًا والهدف طويل المدى.
Q- عملية التعلم
دعونا نفهم ما هو التعلم Q مع بيان مشكلتنا هنا. سيساعدنا ذلك على تحديد المكونات الرئيسية لحل التعلم المعزز ، مثل العوامل ، والبيئة ، والإجراءات ، والمكافآت ، والحالات.
تشبيه مصنع السيارات:
نحن في مصنع سيارات مليء بالروبوتات. تساعد هذه الروبوتات عمال المصنع من خلال نقل الأجزاء الضرورية اللازمة لتجميع السيارة. توجد هذه الأجزاء المختلفة في مواقع مختلفة داخل المصنع في 9 محطات. تشمل الأجزاء الهيكل والعجلات ولوحة القيادة والمحرك وما إلى ذلك. أعطى مدير المصنع الأولوية للموقع حيث يتم تثبيت الهيكل باعتباره الأولوية القصوى. دعونا نلقي نظرة على الإعداد هنا:
تنص على:
ماذا يفعل التنسيق في بيثون
يُطلق على الموقع الذي يوجد فيه الروبوت في حالة معينة حالته. لأنه من السهل ترميزها بدلاً من تذكرها بالأسماء. فلنقم بتعيين الموقع إلى أرقام.
أجراءات:
الإجراءات ليست سوى التحركات التي يقوم بها الروبوتات إلى أي مكان. ضع في اعتبارك أن الروبوت موجود في الموقع L2 والمواقع المباشرة التي يمكنه الانتقال إليها هي L5 و L1 و L3. دعونا نفهم هذا بشكل أفضل إذا تصورنا هذا:
المكافآت:
سيتم منح مكافأة للروبوت للانتقال مباشرة من حالة إلى أخرى. على سبيل المثال ، يمكنك الوصول إلى L5 مباشرة من L2 والعكس صحيح. لذلك ، سيتم تقديم مكافأة قدرها 1 في كلتا الحالتين. دعونا نلقي نظرة على جدول المكافآت:
تذكر عندما أعطى مدير المصنع الأولوية لموقع الهيكل. لقد كان L7 ، لذلك سنقوم بدمج هذه الحقيقة في جدول المكافآت. لذلك ، سنخصص عددًا كبيرًا جدًا (999 في حالتنا) في الموقع (L7 ، L7).
معادلة بيلمان
لنفترض الآن أن الروبوت يحتاج إلى الانتقال من النقطة أ إلى النقطة ب. سيختار المسار الذي سينتج عنه مكافأة إيجابية. لذلك افترض أننا نقدم مكافأة من حيث البصمة لتتبعها.
ولكن ماذا لو بدأ الروبوت من مكان ما بينهما حيث يمكنه رؤية مسارين أو أكثر. وبالتالي لا يمكن للروبوت أن يتخذ قرارًا وهذا يحدث بشكل أساسي لأنه لا يمتلك ملف ذاكرة . هذا هو المكان الذي تظهر فيه معادلة بيلمان في الصورة.
V (s) = max (R (s، a) + & # 120632V (s '))
أين:
- ق = دولة معينة
- أ = عمل
- s '= الحالة التي ينتقل إليها الروبوت من s
- & # 120632 = عامل الخصم
- R (s ، a) = وظيفة مكافأة تأخذ حالة (حالات) وإجراء (أ) وتنتج قيمة مكافأة
- V (s) = قيمة الوجود في حالة معينة
الآن الكتلة الموجودة أسفل الوجهة ستحصل على مكافأة قدرها 1 ، وهي أعلى مكافأة ، ولكن ماذا عن الكتلة الأخرى؟ حسنًا ، هذا هو المكان الذي يأتي فيه عامل الخصم. فلنفترض أن عامل الخصم 0.9 ونملأ جميع الكتل واحدة تلو الأخرى.
عملية اتخاذ القرار ماركوف
تخيل أن هناك روبوتًا على الكتلة البرتقالية ويحتاج إلى الوصول إلى الوجهة. ولكن حتى إذا كان هناك خلل بسيط ، فسيكون الروبوت مرتبكًا بشأن المسار الذي يجب أن يسلكه بدلاً من الصعود.
لذلك نحن بحاجة إلى تعديل عملية صنع القرار. من المفترض ان عشوائي جزئيا و تحت سيطرة الروبوت جزئيًا . عشوائي جزئيًا لأننا لا نعرف متى سيصاب الروبوت بخلل وظيفي وجزئيًا تحت السيطرة لأنه لا يزال قرار الروبوت. وهذا يشكل الأساس لعملية اتخاذ القرار ماركوف.
ما هو أفضل بيئة تطوير متكاملة لجافا
عملية اتخاذ القرار ماركوف (MDP) هي عملية تحكم عشوائية زمنية منفصلة. يوفر إطارًا رياضيًا لنمذجة اتخاذ القرار في المواقف التي تكون فيها النتائج عشوائية جزئيًا وجزئيًا تحت سيطرة صانع القرار.
لذلك سنستخدم معادلة بيلمان الأصلية ونجري تغييرات فيها. ما لا نعرفه هو الولاية التالية ، أي. س'. ما نعرفه هو كل احتمالات الانعطاف ودعونا نغير المعادلة.
V (s) = max (R (s، a) + & # 120632 V (s '))
V (s) = max (R (s، a) + & # 120632 &سيجماس'P (s، a، s ') ضد'))
P (s، a، s '): احتمالية الانتقال من الدولة س إلى س' مع العمل إلى
&سيجماس'P (s، a، s ') ضد '): توقعات عشوائية من الروبوت
V (s) = max (R (s، a) + & # 120632 ((0.8V (roomفوق)) + (0.1 فولت (الغرفةأسفل) +….))
الآن ، دعنا ننتقل إلى Q Learning. يطرح Q-Learning فكرة لتقييم جودة الإجراء الذي يتم اتخاذه للانتقال إلى حالة بدلاً من تحديد القيمة المحتملة للحالة التي يتم الانتقال إليها.
هذا ما نحصل عليه إذا قمنا بدمج فكرة تقييم جودة الإجراءات للانتقال إلى دولة معينة. من معادلة بيلمان المحدثة إذا أزلناها ماكس المكون ، نحن نفترض بصمة واحدة فقط للإجراء المحتمل الذي ليس سوى جودة من العمل.
س (ق ، أ) = (ص (ق ، أ) + & # 120632 &سيجماس'P (s، a، s ') ضد'))
في هذه المعادلة التي تحدد جودة الإجراء ، يمكننا أن نفترض أن V (s) هي الحد الأقصى لجميع القيم الممكنة لـ Q (s ، a). لذلك دعونا نستبدل v (s) بدالة Q ().
س (ق ، أ) = (ص (ق ، أ) + & # 120632 &سيجماس'P (s، a، s ') max Q (s ’، a’))
نحن نقترب خطوة واحدة فقط من معادلة Q Learning النهائية. سوف نقدم أ الفرق الزمني لحساب قيم Q فيما يتعلق بالتغيرات في البيئة بمرور الوقت. لكن كيف نلاحظ التغيير في Q؟
TD (s ، a) = (R (s ، a) + & # 120632 &سيجماس'P (s، a، s ') max Q (s ’، a’)) - Q (s، a)
نعيد حساب Q (s ، a) الجديدة بنفس الصيغة ونطرح Q (s ، a) المعروفة سابقًا منها. لذلك ، تصبح المعادلة أعلاه:
سر(ق ، أ) = سر 1(ق ، أ) + α TDر(ق ، أ)
سر(ق ، أ) = Q- القيمة الحالية
برنامج جافا للتحقق المتناظرة
سر 1(ق ، أ) = Q- القيمة السابقة
سر(ق ، أ) = سر 1(s، a) + α (R (s، a) + & # 120632 max Q (s '، a')-سر 1(ق ، أ))
س التعلم التجريبي: NumPy
انا ذاهب لاستخدام NumPy لتوضيح كيفية عمل Q Learning.
الخطوة 1: الواردات والمعلمات والولايات والإجراءات والمكافآت
استيراد numpy كـ np gamma = 0.75 # عامل الخصم alpha = 0.9 # معدل التعلم location_to_state = {'L1': 0، 'L2': 1، 'L3': 2، 'L4': 3، 'L5': 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،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 = dict ((الحالة ، الموقع) للموقع ، الحالة في location_to_state.items ())
الخطوة 3: احصل على المسار الأمثل باستخدام Q Learning Process
def get_optimal_route (start_location، end_location): Rewards_new = np.copy (المكافآت) end_state = location_to_state [end_location] Rewards_new [end_state، end_state] = 999 Q = np.array (np.zeros ([9،9])) # Q- عملية التعلم لـ i في النطاق (1000): # التقاط حالة عشوائية current_state = np.random.randint (0،9) # يستثني Python الحد الأعلى playable_actions = [] # التكرار من خلال مصفوفة المكافآت الجديدة لـ j في النطاق ( 9): if Rewards_new [current_state، j]> 0: playable_actions.append (j) # اختر إجراءً عشوائيًا يقودنا إلى الحالة التالية next_state = np.random.choice (playable_actions) # Computing Temporal Difference TD = Rewards_new [current_state ، next_state] + gamma * Q [next_state، np.argmax (Q [next_state،])] - Q [current_state، next_state] # تحديث قيمة Q باستخدام معادلة Bellman Q [current_state، next_state] + = alpha * TD # ابدأ المسار الأمثل باستخدام مسار موقع البداية = [start_location] #Initialize next_location with start location next_location = star t_location # لا نعرف العدد الدقيق للتكرارات اللازمة للوصول إلى الموقع النهائي ، ومن ثم ستكون الحلقة خيارًا جيدًا للتكرار أثناء (next_location! = end_location): # جلب حالة البداية start_state = location_to_state [start_location] # أحضر أعلى قيمة Q تتعلق بحالة البداية next_state = np.argmax (Q [begin_state،]) # حصلنا على فهرس الحالة التالية. لكننا نحتاج إلى الحرف المقابل. next_location = state_to_location [next_state] route.append (next_location) # تحديث موقع البداية للتكرار التالي start_location = next_location مسار العودة
الخطوة 4: اطبع المسار
طباعة (get_optimal_route ('L1'، 'L9'))
انتاج:
بهذا نصل إلى نهاية Q-Learning. آمل أن تكون قد تعرفت على طريقة عمل Q Learning جنبًا إلى جنب مع التبعيات المختلفة مثل الاختلاف الزمني ومعادلة بيلمان والمزيد.
إديوريكا يجعلك بارعًا في تقنيات مثل التعلم الخاضع للإشراف والتعلم غير الخاضع للإشراف ومعالجة اللغة الطبيعية. ويشمل التدريب على أحدث التطورات والأساليب التقنية في الذكاء الاصطناعي والتعلم الآلي مثل التعلم العميق والنماذج الرسومية والتعلم المعزز.