0Pricing
Learn AI with Python · درس

تطبيق Q-Table في Python

مثال بسيط على تعلُّم Q

تطبيق Q-Table في Python درس مجاني في Learn AI with Python على CoddyKit. هذا هو الدرس 3 من أصل 5. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Learn AI with Python، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Learn AI with Python 5 دروس في المجموع.

تنفيذ Q-Learning في Python

تنفيذ Q-Learning في Python

في هذا الدرس، سننفذ خوارزمية Q-Learning بسيطة في Python. سيتعلم الوكيل التنقل في عالم شبكي لتعظيم مكافآته.

تطبيق Q-Table في Python — رسم توضيحي 1

تعريف البيئة

تعريف البيئة

نعرّف عالمًا شبكيًا بسيطًا بحجم 4×4، يبدأ فيه الوكيل من الزاوية العلوية اليسرى، وعليه الوصول إلى الزاوية السفلية اليمنى للحصول على مكافأة.

import numpy as np

# Define the environment
num_states = 16  # 4x4 grid
num_actions = 4  # Up, Down, Left, Right

# Define rewards (-1 for each step, +10 for the goal)
rewards = np.zeros(num_states)
rewards[-1] = 10

تهيئة جدول Q

تهيئة جدول Q

تتم تهيئة جدول Q بأصفار لجميع أزواج الحالة-الإجراء.

# Initialize the Q-Table
q_table = np.zeros((num_states, num_actions))

print("Initial Q-Table:")
print(q_table)

تطبيق خوارزمية Q-Learning

تطبيق خوارزمية Q-Learning

نستخدم المعلمات التالية:

  • α (معدل التعلّم): يتحكم في مدى تغلّب المعلومات الجديدة على المعلومات القديمة.
  • γ (معامل الخصم): يحدد وزن المكافآت المستقبلية مقارنةً بالمكافآت الفورية.
  • ε (معدل الاستكشاف): يوازن بين الاستكشاف والاستغلال.
# Parameters
alpha = 0.1  # Learning rate
gamma = 0.9  # Discount factor
epsilon = 0.1  # Exploration rate

# Q-Learning loop
num_episodes = 1000
for episode in range(num_episodes):
    state = 0  # Start at the first state
    done = False
    while not done:
        # Exploration or exploitation
        if np.random.rand() < epsilon:
            action = np.random.randint(num_actions)  # Explore
        else:
            action = np.argmax(q_table[state])  # Exploit

        # Transition to the next state
        next_state = (state + action) % num_states  # Simplified transition logic
        reward = rewards[next_state]

        # Update Q-value
        q_table[state, action] = q_table[state, action] + alpha * (
            reward + gamma * np.max(q_table[next_state]) - q_table[state, action]
        )

        # Move to the next state
        state = next_state
        done = state == num_states - 1

تقييم السياسة المتعلّمة

تقييم السياسة المتعلّمة

بعد التدريب، نقيّم السياسة باتباع الإجراءات المثلى المخزّنة في جدول Q:

# Evaluate the policy
state = 0
optimal_path = [state]
while state != num_states - 1:
    action = np.argmax(q_table[state])
    state = (state + action) % num_states  # Simplified transition logic
    optimal_path.append(state)

print("Optimal Path:", optimal_path)

عرض جدول Q

عرض جدول Q

يمكننا عرض جدول Q لفهم القيم المتعلّمة لكل زوج من أزواج الحالة-الإجراء:

import matplotlib.pyplot as plt
import seaborn as sns

# Visualize Q-Table
plt.figure(figsize=(10, 8))
sns.heatmap(q_table, annot=True, fmt=".2f", cmap="coolwarm")
plt.title("Q-Table Heatmap")
plt.xlabel("Actions")
plt.ylabel("States")
plt.show()

مزايا Q-Learning

مزايا Q-Learning

يوفر Q-Learning عدة فوائد:

  • بسيط وسهل التطبيق.
  • يمكنه التعامل مع البيئات العشوائية.
  • يتقارب إلى السياسة المثلى عند إجراء استكشاف كافٍ.

قيود Q-Learning

قيود Q-Learning

لدى Q-Learning بعض القيود:

  • لا يتوسع جيدًا في البيئات ذات فضاءات الحالة-الإجراء الكبيرة.
  • قد يكون التعلم بطيئًا في البيئات المعقدة.
  • يتطلب تمثيلًا محددًا جيدًا للحالة والإجراء.

الملخص والخطوات التالية

الملخص والخطوات التالية

في هذا الدرس، قمنا بما يلي:

  • طبّقنا خوارزمية Q-Learning بسيطة في Python.
  • درّبنا وكيلًا على التنقل في عالم شبكي باستخدام جدول Q.
  • قيّمنا السياسة المتعلّمة وعرضنا جدول Q.

بعد ذلك، سنستكشف Deep Q-Learning، التي تستخدم الشبكات العصبية للتعامل مع البيئات ذات فضاءات الحالة-الإجراء الكبيرة.

تطبيق Q-Table في Python — رسم توضيحي 10

الأسئلة الشائعة

هل درس «تطبيق Q-Table في Python» مجاني؟

نعم — نص درس «تطبيق Q-Table في Python» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Learn AI with Python، انتقل إلى CoddyKit PRO. تتضمن دورة Learn AI with Python 5 دروس في المجموع.

ماذا ستتعلم في «تطبيق Q-Table في Python»؟

مثال بسيط على تعلُّم Q تتمرن على Learn AI with Python مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Learn AI with Python؟

لا تُشترط خبرة سابقة. Learn AI with Python على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 5.

كم من الوقت يستغرق درس «تطبيق Q-Table في Python»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Learn AI with Python هذا؟

نعم. كل درس في Learn AI with Python يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. المفاهيم الأساسية في التعلم المعزز
  2. مفهوم Q-Table
  3. تطبيق Q-Table في Python
  4. التعلم المعزز العميق باستخدام Q
  5. استكشاف OpenAI Gym
← العودة إلى Learn AI with Python