top of page
חיפוש

אינטליגנציה מלאכותית ולימוד מכונה

תמונת הסופר/ת: ehood
ehood
8 במרץ 2023
זמן קריאה 3 דקות

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


אינטליגנציה מלאכותית היא היכולת של תוכנת מחשב להציג התנהגות שנראית אינטליגנטית, לדוגמא: "מצא לי תמונה של כלב מבין כל התמונות של החיות", או משהו יותר מעשי: "צלם את הדרך ואם תראה תמרור – תגיד לי מה המשמעות של התמרור".


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


בשנים האחרונות, המגמה השתנתה וכעת מדברים על "למידת מכונה". במקרה הזה, אתה מציג למחשב הרבה נתוני קלט עם תשובות מוכנות ומצפה שהוא ילמד לבד מה התשובה לנתון הקלט החדש שיציגו לו.


לדוגמא: אני מציג למחשב הרבה תמונות של חיות, לכל תמונה אני אומר איזו חיה יש בתמונה ולבסוף, אחרי מיליוני תמונות כאלה, אני מציג תמונה של חתול והמחשב אומר לי "חתול". אין לי מושג איך הוא יודע, הוא למד את זה לבד !


אבל איך המחשב למד "לבד" ?


למידת המכונה מבוססת על רשתות נוירונים. אלו אוסף של צמתים שלכל צומת מחוברים צמתים אחרים בחיבורים רבים וכל צומת עצמאית להוציא מספר החוצה, כתלות במספרים שנכנסים אליה, ובפונקציה שהיא מבצעת על המספרים הנ"ל.


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


בעלי מקצוע מיוחדים שנקראים "אנליסטים" - מגדירים איזו צורה תהייה לרשת (מה יחובר עם מה) ואיזו פונקציה תהייה לכל אחד מסוגי התאים. לאחר הלימוד – הרשת תקבע את המקדמים ותדע לתת תשובה נכונה.


נשמע מסובך ? נכון... אבל הנה דוגמא פשוטה: רשת שמבינה רמזור...

נניח ש B, A, ו- C הם אורות הרמזור: A = אדום, B = צהוב, C = ירוק - ולכן הערכים המתאימים הינם 1 (אור דולק) או 0 (אור כבוי).

ואז Out צריך להוציא 0 = עצור או 1 = סע.


בעולמות האמיתיים, כמובן שהכול הרבה יותר מסובך וכל קלט יכול להיות נקודה בתוך תמונה ענקית של חיה והפלט יכול להיות שם של חיה (כלב, חתול, וכד').


במקרה שלנו חיברנו כל זוג כניסות לעוד צמתים, את A ו- B חיברנו ל H1. את A ו- C ל H2, וכד'.

גם הצומת של התשובה Out מקבל כניסות של H1, H2 וגם H3.


לכל חיבור יש משקל וגם לכל צומת יש מקדם ולכן הערך ב H1 נקבע כך: A*WA1+B*WB1-BH1, כך גם H2 ו- H3. הערך ב Out נקבע כך: Out = H1*WH1+H2*WH2+H3*WH3-Bout


עכשיו נשאר רק לקבוע מה ערך של כל המשקלים (W..) ושל כל הקבועים (B..).

תהליך הלימוד, במקרה זה, הינו מאד פשוט - מציגים לרשת את כל האפשרויות:



שימו לב שפה אני מרשה לרכב לנסוע באור צהוב (שבא אחרי ירוק).

לאחר סיום הלימוד, המחשב קובע את כל המשתנים, במקרה שלנו הוא קבע:


ועכשיו אם נותנים לו מצב כלשהו, הוא יודע לחשב מה התוצאה:


כלומר, באור ירוק – נוסעים !



עובדה מעניינת נוספת:

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


לשמחתנו יש לנו רכיבים שעושים את זה, בצורה טובה מאד, ואלו הם הכרטיסים הגרפיים (GPU) שבהם השתמשנו לצרכים גרפיים. זו הסיבה שהחברות הללו קיבלו תנופת פיתוח ענקית ומייצרות מעבדים גרפיים חזקים יותר ויותר שמיועדים , כיום, לאינטליגנציה מלאכותית – למידת מכונה.


 
 
 

תגובות


bottom of page