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



במה דומה המוח לתוכנה?

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

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


רובוט שפותח לשחק טניס שולחן עם יריב אנושי | תמונה: Humanrobo, ויקיפדיה

אז מה שונה?

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

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

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

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

האם זה אותו דבר?

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

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

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

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

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


המחשב ווטסון משחק ב"מלך הטריוויה" | צילום: Raysonho, ויקיפדיה

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

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

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

אז איפה אנחנו עומדים?

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

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

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

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

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

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



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

3 תגובות

  • מייק

    תודה

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

    האם ניתן ליישם את הנוסחה של תורת הערך גם במחשב? מה שלכאורה יחסוך את הכתיבה של כל התוצאות מראש.

  • מיכל גורדון

    תשובה

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

  • מייק

    חישוב מקבילי

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