מבחן טיורינג

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

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

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

{% include image-with-caption.html src="/2012/09/turing_test.png" caption="מבחן טיורינג, גרסת xkcd"%}

את המבחן הזה הציע טיורינג במאמר ששמו Computing Machinery and Intelligence משנת 1950 וניתן לראות כאן. המאמר הוא קריא ולא טכני יחסית (יחסית! יש בו חלקים טכניים באמצע שלטעמי הם מיותרים למדי) ואני ממליץ לכולכם לתת לו צ'אנס. המאמר עצמו פורסם בכתב עת פילוסופי, לא מתמטי, ונכתב בצורה לא-פורמלית למדי; לדעתי טיורינג עצמו לא לקח את המאמר יותר מדי ברצינות, מתוך הכרה בכך שהשאלה שהוא מנסה להתמודד איתה היא כבדה מדי מכדי שתוכל להיות מוכרעת באמצעות המבחן. ומה השאלה הזו? טיורינג פותח איתה את המאמר - זוהי השאלה "האם מכונות יכולות לחשוב?".

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

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

טיורינג מעלה מייד כמה נקודות ברורות בנוגע למבחן:

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

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

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

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

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

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

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

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

{% include image-with-caption.html src="/2012/09/klingon_turing_test.png" caption="גם במבחן טיורינג לקלינגונים יש בעיות עם השאלות (ותודה ל-Abstrusegoose)"%}

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

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

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

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

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

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

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

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

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

{% include image-with-caption.html src="/2012/09/Suspicion.png" caption="אל תשכחו להיבדק!"%}

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