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

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

 

רקע

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

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

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

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

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

הבית של דיויד

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

 

השכונה של דיויד

 

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

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

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

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

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

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

בינה מלאכותית המבוססת על זיכרון אירגוני

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

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

 

 

האימייל לא יוצג באתר. שדות החובה מסומנים *

*
*