תחי ישראל - אין לנו ארץ אחרת

תחי ישראל -אין לנו ארץ אחרת

אלגוריתמים לחיים

מחבר:
בתאריך:

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

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

המעבר בין חיפוש לזינוק תלוי במגוון של גורמים:

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

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

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

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

המדריך מבוסס על הספר המצוין "אלגוריתמים לחיים" algorithms to live by, by Christian and Griffiths.

כריכת הספר Algorithms to Live By: The Computer Science of Human Decisions

 

להמשיך לחפש או להשאר עם מה שיש?

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

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

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

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

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

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

 

אלגוריתמים של תזמון

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

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

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

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

scheduling algorithms from the book algorithms to live by

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

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

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

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

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

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

 

איך לאחסן דברים ביעילות?

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

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

 

מתי לחשוב פחות?

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

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

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

איך פותרים בעיה של למידה עודפת overfitting?

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

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

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

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

 

איך להרגיע בדרך לפתרון בעיות?

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

 

המדריך מבוסס על הספר המצוין "אלגוריתמים לחיים" algorithms to live by: The Computer Science of Human Decisions. המדריך הינו חלק מתוך הסדרה כישורי חיים - רעיונות ששווה לשתף.

 

אולי גם זה יעניין אותך

כיצד למצוא רעיונות חדשניים לעסקים?

מאיפה תביא את הרעיון הבא שלך?

איך להיכשל כמעט בכל דבר ועדיין להצליח בגדול

 

אהבתם? לא אהבתם? דרגו!

0 הצבעות, ממוצע 0 מתוך 5 כוכבים

 

 

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

הוסף תגובה חדשה

 

 

ענה על השאלה הפשוטה הבאה כתנאי להוספת תגובה:

איך אומרים בעברית אינטרנט?