סיקור מקיף

‫בינה מלאכותית – מחשבים החושבים בכוחות עצמם / יאסר ס' אבו-מוצטפה‬

טכניקות חדשות שמלמדות מחשבים כיצד ללמוד מצליחות לנצח את המומחים

פנימו של מחשב ביתי, באדיבות ויקיפדיה
פנימו של מחשב ביתי, באדיבות ויקיפדיה

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

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

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

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

ימי האימון

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

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

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

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

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

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

מערכות למידה חישובית שונות מפתחות מערכים ייחודיים של מאפיינים. בשבועות האחרונים של תחרות Netflix, קבוצות שעבדו באופן עצמאי התחילו לשלב את האלגוריתמים שלהן בשיטות שמכונות בשם "טכניקות צבירה". בשעה האחרונה של התחרות בת שלוש השנים עוד נאבקו שני צוותים על הפרס. לוח התוצאות הראה יתרון קטן ל-The Ensemble, צוות שכלל בוגר תואר שלישי מקבוצת המחקר שלי במכון הטכנולוגי של קליפורניה, על פני צוות BellKor's Pragmatic Chaos, אך החישוב הסופי הציב את הצוותים בתיקו סטטיסטי: כל אחד מהם השיג 10.06 אחוזי שיפור לעומת האלגוריתם המקורי. על פי כללי התחרות, במקרה של תיקו, יינתן הפרס לצוות שהציג את הפתרון שלו מוקדם יותר. בסיומן של שלוש שנות מאבק, בשעה האחרונה של הקרב, צוות BellKor's Pragmatic Chaos הגיש את הפתרון שלו עשרים דקות לפני The Ensemble. עיכוב של עשרים דקות בלבד בתחרות שנמשכה שלוש שנים גרם להפסד פרס של מיליון דולר.

ההתאמה המושלמת

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

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

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

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

בעיות של מידע עודף

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

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

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

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

קרדיט: http://work.caltech.edu/telecourse.html

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

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

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

בדרך כלל, חוקרים מאמתים את האלגוריתם באמצעות נתונים שאינם נכללים בנתוני האימון. כך אפשר להבטיח שהביצועים שמתקבלים הם ביצועי אמת ולא תּוֹצָא שָׁוְא של נתוני האימון. בתחרות של Netflix, לדוגמה, השיפוט לא נעשה על סמך הנתונים שסופקו למשתתפים, אלא על סמך אוסף נתונים חדש שרק אנשי Netflix הכירו.

לחזות את העתיד

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

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

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

________________________________________________________________________________________________________________________________________________________________________

על המחבר

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

ועוד בנושא

Machines That Learn from Hints. Yaser S. Abu-Mostafa in Scientific American, Vol. 272, No. 4, pages 64-69; April 1995.

Recommend a Movie, Win a Million Bucks. Joseph Sill in Engineering Science, Vol. 73, No. 2, pages 32–39; Spring 2010.

Learning from Data. Yaser S. Abu-Mostafa, Malik Magdon-Ismail and Hsuan-Tien Lin. AMLbook, 2012. http://amlbook.com

Learning from Data (online course): http://work.caltech.edu/telecourse.html

Post to Twitter Post to Facebook Facebook

2 תגובות

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

כתיבת תגובה

האימייל לא יוצג באתר.

דילוג לתוכן