קורס יסודות בינה מלאכותית RB26-23 : שימוש ב reinforcement learning – RL

קורס יסודות בינה מלאכותית RB26-23 : שימוש ב reinforcement learning – RL

העשרה


 

 

 

 

תרגיל כיתה

צור תמונה בעזרת aistudio  צור תמונה ועשה עליה מנופלציה להנפשה ב  https://app.pixverse.ai/

 

חלק א  : יצירת ספר מבינה מלאכותית מבינה מלאכותית 

קישור ל : StoryBook Gemini

 

 

תרגיל כיתה : חלק א 1

  1. צור סיפור  לפי קהל ידע לבחירתך  ,
  • כתוב מספר שורות מתארות   את רקע הסיפור  ,
  • תקופה ,
  • איזור בעולם
  • השחקנים ושמותיהם

2 כתוב סיפור ללימוד  לקהל יעד מבוגרים  עבור נושא טכני כמו איך ביהנ מלאוכתית לומדת , מה זה  גיר חילזוני , הצפנה ומפתחות

  • הדגש  איזה נושאים טכנים אתה רוצה שיכלול הסיפור
  • תארו או בקשו מספר דוגמאות שונות
  • תאר את הקע והאיורים שאתם מבקשים לכולל

 


 

הדוגמאות בעזרת הבינה מלאכותית A.I STUDIO GOOLE

1. שיתוף מסך מהטלפון ועזרה בזמן אמת ביצרית נוסחות בזמן אמת GEMINI SHARE

 

 

2 .יצירת דף נחיתה – עדכון דף נחיתה , ושידרוג דף נחיתה  הוספת שדות

 

תרגיל כיתה 2 

1.בנה דף נחיתה \ טופס

 

3. יצירת משחק מחשב  – PANG

 

 

 

 

 

 

 

 

העשרה

 

 

 

נתחיל ממשהו כיפי של יצירת סיפור של בינה מלאוכתית

 

 

 

 

 


 

 

הסבר על התכונה

(Reinforcement Learning) בקוד – צעד־אחר־צעד, בשפה ברורה וללא צורך בידע מוקדם. אני לא מסביר פה את החלקים של הציור ב-pygame, אלא רק את מה שקשור ללמידת המכונה.


1) מרחב פעולות (Action Space – מה הסוכן יכול לעשות)

python
ACTIONS = ['up', 'down', 'left', 'right']
  • תפקיד: מגדיר את כל הפעולות האפשריות שהסוכן יכול לבצע בכל מצב.

  • מושג: ב-RL פעולה (Action) היא בחירה שהסוכן עושה מתוך מצב נתון (State).


2) פונקציית התגמול (Reward Function – מה טוב ומה רע)

python
REWARD_GOAL = 100
PENALTY_RED = -2
STEP_PENALTY = -0.01
  • תפקיד: מגדיר את החוקים לקבלת נקודות חיוביות או שליליות.

  • מושגים:

    • תגמול חיובי (+100) כשהסוכן מגיע ליעד (תא הזהב).

    • תגמול שלילי (-2) כשהוא דורך על תא אדום (סכנה).

    • קנס קטן לכל צעד (-0.01) כדי לעודד אותו להגיע ליעד בדרך הקצרה ביותר.


2.1  ב-Reinforcement Learning הסוכן צריך לבחור בכל צעד פעולה.
הוא יכול לבחור בין שתי גישות:

  1. Exploration – חקירה
    לנסות פעולות חדשות כדי ללמוד דברים שלא ניסה עדיין, גם אם הן לא נראות כרגע הכי טובות.
    המטרה: למצוא אסטרטגיות חדשות שייתכן ויתנו תגמול גבוה יותר בעתיד.

  2. Exploitation – ניצול
    לבחור את הפעולה שנראית כרגע הכי טובה לפי המידע הקיים (ה-Q-values או המודל שכבר למד).
    המטרה: למקסם תגמול בטווח המיידי, על סמך מה שכבר ידוע.


למה צריך את שניהם?

  • אם נלך רק על Exploitation – נשתמש כל הזמן באותה פעולה שהכי טובה עכשיו, אבל אולי נפספס פעולה טובה יותר שלא גילינו.

  • אם נלך רק על Exploration – נבזבז הרבה זמן על ניסיונות לא יעילים ולא נצבור מספיק רווח.

האיזון הנכון מאפשר ללמוד מהניסיון, אבל גם לגלות הזדמנויות חדשות.


דוגמה פשוטה

דמיין שאתה בודק מסעדות בעיר חדשה:

  • Exploitation: אתה חוזר שוב ושוב לאותה מסעדה שטעימה לך.

  • Exploration: אתה מנסה מסעדה אחרת, שאולי אפילו יותר טובה (או אולי פחות טובה…).

אם תמיד תחזור לאותה מסעדה – אולי פספסת את הכי טובה בעיר.
אם תמיד תנסה חדשה – לעולם לא תיהנה מהטובה שמצאת.

איך זה מיושם בקוד שלך (ε-greedy policy)

python
a = random.randint(0, 3) if random.random() < epsilon else int(np.argmax(Q[r, c]))
  • random.random() < epsilon → חקירה (Exploration) – בחירת פעולה אקראית.

  • אחרת → ניצול (Exploitation) – בחירת הפעולה עם ערך ה-Q הגבוה ביותר למצב הנוכחי.

  • epsilon קובע את האיזון:

    • ערך גבוה → הרבה חקירה

    • ערך נמוך → הרבה ניצול


כלל אצבע באימון

בדרך כלל מתחילים עם ε גבוה (הרבה חקירה בהתחלה)
ומקטינים אותו בהדרגה ככל שהסוכן לומד (epsilon decay) – כך בהתחלה מגלים את העולם, ובסוף ממקסמים רווח.


אם תרצה, אני יכול לצייר לך דיאגרמה שממחישה גרפית איך הסוכן נע בין Exploration ל-Exploitation בזמן האימון.
רוצה שאכין את זה?

 

Ask ChatGPT

3) טבלת Q (המודל בשיטת Tabular Q-learning)

python
Q = np.zeros((ROWS, COLS, len(ACTIONS)))
  • תפקיד: מאתחל את טבלת ה-Q עם ערכים אפס.

  • מושג:

    • Tabular Q-learning – המודל הוא טבלה בגודל (מספר מצבים × מספר פעולות).

    • מצב (State) כאן הוא מיקום בלוח (שורה, עמודה).

    • עבור כל מצב וכל פעולה יש ערך Q שמייצג את הציפייה לתגמול המצטבר אם נפעל כך.


4) פרמטרים ללמידה (Hyperparameters)

python
alpha = 0.1 # קצב הלמידה
gamma = 0.9 # מקדם ההנחה
epsilon = 0.1 # אחוז החקירה
episodes = 100 # מספר פרקים במחזור
  • קצב למידה (α): כמה מהר לעדכן את הערכים בטבלה.

  • מקדם הנחה (γ): עד כמה מתחשבים בתגמולים עתידיים (1 = עתיד חשוב מאוד).

  • אחוז חקירה (ε): באיזה הסתברות לבחור פעולה אקראית במקום הכי טובה ידועה.

  • פרק (Episode): ניסיון אחד מההתחלה ועד שהמשחק נגמר.


5) מעבר בין מצבים (State Transition)

python
def move(pos, action):
...
return (r, c)
  • תפקיד: מחשב את המצב הבא בהתאם לפעולה.

  • מושג: כאן אין למידת מודל של הסביבה – זה Model-Free RL (לומד ישירות מהניסיון).


6) פונקציית התגמול

python
def get_reward(pos):
if pos in RED_POSITIONS:
return PENALTY_RED, True, False, True
if pos == GOLD_POS:
return REWARD_GOAL, True, True, False
return STEP_PENALTY, False, False, False
  • תפקיד: מחזירה את התגמול, האם המשחק נגמר, האם זה ניצחון או הפסד.

  • מושג: זו הפונקציה שמספקת לסוכן את אות הלמידה (Reward Signal).


7) מדיניות ε-greedy (חקירה לעומת ניצול)

python
a = random.randint(0, 3) if random.random() < epsilon else int(np.argmax(Q[r, c]))
  • תפקיד: בוחר פעולה במצב הנוכחי (r, c).

  • מושג:

    • הסתברות ε → פעולה אקראית (חקירה – Exploration).

    • אחרת → פעולה עם ערך ה-Q הגבוה ביותר (ניצול – Exploitation).


8) עדכון Q-learning (לב הלמידה)

python
next_max = np.max(Q[next_pos[0], next_pos[1]]) if not done else 0
Q[r, c, a] += alpha * (reward + gamma * next_max - Q[r, c, a])
Q[r, c, a] += alpha * (reward + gamma * next_max - Q[r, c, a]) # חזרה מכוונת בקוד שלך
  • תפקיד: מעדכן את ערך ה-Q עבור זוג מצב–פעולה (r, c, a) לפי משוואת בלמן (Bellman Equation).

  • מושגים:

    • מטרה (Target): reward + γ * max(Q(next_state, all_actions))

    • שגיאת TD: ההפרש בין המטרה לערך הנוכחי.

    • עדכון: Q ← Q + α * (שגיאת TD)

  • הקוד שלך מבצע עדכון פעמיים בכל צעד – זה לא סטנדרטי אבל משאיר את ההתנהגות המקורית.


9) לולאת פרק (Episode Loop)

python
for ep in range(episodes):
pos = START_POS
...
while not done:
# בחירת פעולה
# מעבר מצב
# חישוב תגמול
# עדכון Q
  • תפקיד: מריץ הרבה פרקים כדי שהסוכן ילמד מהניסיון.

  • מושג: ככל שיש יותר אינטראקציות, הערכים בטבלה מתכנסים ומובילים למדיניות טובה יותר.


10) מחזורי אימון והתחלה מחדש

python
while True:
Q[:] = 0
RED_POSITIONS = generate_red_positions()
...
for ep in range(episodes):
...
wait_with_events(10, "Restarting fresh in")
  • תפקיד: אחרי כל 100 פרקים – ממתין 10 שניות, מאתחל את טבלת ה-Q ומגריל מחדש את התאים האדומים.

  • מושג: מאפשר צפייה בלמידה מחדש כל פעם בתנאי סביבה שונים.


סיכום

  • אלגוריתם: Tabular Q-learning – למידת חיזוק ללא מודל (Model-Free).

  • מודל: טבלת Q – מערך דו־ממדי של ערכי מצב–פעולה.

  • מדיניות: ε-greedy – שילוב של חקירה וניצול.

  • עדכון: משוואת בלמן לעדכון ערכי ה-Q.

  • מטרה: ללמוד להגיע ליעד מהר תוך הימנעות ממוקשים, על ידי מקסום תגמול מצטבר.

 

 

 

 

 

 

 

 

ChatGPT said:

התוכנית מדמה סוכן Q-learning שמנווט ברשת 5×5, לומד להימנע מעיגולים אדומים ולהגיע לעיגול זהב, תוך הצגת ה־Q-table ומשחק בזמן אמת.

 

 

 


AI Agent Lands Lunar on the Moon

 

הנה הסבר בעברית על החוקים, המדיניות (Policy) ומערכת התגמולים/עונשים (Reward & Punishment) של סוכן בינה מלאכותית בסביבת LunarLander-v2 (הנחיתה על הירח) של OpenAI Gym/Gymnasium.


תיאור כללי של הסביבה

המשחק מדמה נחיתה רכה של נחתת על הירח.
הסוכן מקבל בכל צעד מצב (State), בוחר פעולה (Action), ומקבל תגמול (Reward) בהתאם להתנהגות.


מרחב המצבים (State Space) – וקטור עם 8 ערכים:

  1. מיקום אופקי ואנכי של הנחתת (x, y)

  2. מהירות אופקית ואנכית (ẋ, ẏ)

  3. זווית של הנחתת

  4. מהירות זוויתית

  5. שני ערכים בוליאניים – האם הרגל השמאלית והאם הרגל הימנית נוגעות בקרקע


מרחב הפעולות (Action Space) – 4 פעולות אפשריות:

  1. לא לעשות כלום

  2. להפעיל מנוע צד שמאלי (לסיבוב ימינה)

  3. להפעיל מנוע ראשי (דחיפה כלפי מעלה)

  4. להפעיל מנוע צד ימני (לסיבוב שמאלה)


חוקי התגמול/עונש (Reward Function)

במהלך הצעדים:

  • תנועה לכיוון אזור הנחיתה, האטה מהירות, ושמירה על יציבות הזווית → תגמול חיובי

  • +10 נקודות על כל רגל שנוגעת בקרקע

  • שימוש במנועים עולה בניקוד (עונש קטן):

    • מנוע ראשי: –0.3 נקודות לכל פריים

    • מנועי צד: –0.03 נקודות לכל פריים

בסיום הפרק:

  • נחיתה רכה ומוצלחת (הגעה למנוחה) → +100 נקודות

  • התרסקות → –100 נקודות


סיום פרק (Episode End) קורה כאשר:

  • הנחתת התרסקה

  • הנחתת יצאה מחוץ לגבולות המסך

  • הנחתת נחתה ונשארה במנוחה (פיזיקלית “נרדמה”)


מטרת האימון

הסוכן צריך ללמוד מדיניות (Policy) שתמקסם את התגמול הכולל:

  • להגיע לאזור הנחיתה

  • לשמור על מהירות נמוכה וזווית יציבה

  • להימנע מהתרסקות

  • לחסוך בדלק (שימוש מועט במנועים)


מדיניות (Policy) ולמידה

  • בשיטת Q-Learning / DQN – נשמרת טבלת Q או רשת נוירונים שמעריכה את ערך כל פעולה בכל מצב (Q(s,a)). המדיניות לרוב תהיה ε-greedy: לפעמים לבחור פעולה אקראית (חקירה – Exploration), ולפעמים את הפעולה עם ערך ה-Q הכי גבוה (ניצול – Exploitation).

  • בשיטות Policy Gradient / PPO / Actor-Critic – המודל לומד ישירות פונקציית הסתברות לבחירת פעולה בכל מצב (π(a|s)) ומשפר אותה לפי התגמולים שקיבל.


טבלה מסכמת

רכיב פירוט
מצב (State) מיקום, מהירות, זווית, מהירות זוויתית, מגע רגליים
פעולות (Actions) 0: כלום, 1: מנוע צד שמאלי, 2: מנוע ראשי, 3: מנוע צד ימני
תגמול בכל צעד +קרבה/יציבות, +10 לכל רגל נוגעת; –0.3 למנוע ראשי, –0.03 למנועי צד
תגמול סופי +100 לנחיתה רכה, –100 להתרסקות
סיום פרק התרסקות, יציאה מהמסך, נחיתה סופית
פתרון הסביבה ציון ≥ 200

 

כתיבת תגובה