"Machine intelligence is the last invention that humanity will ever need to "make - Nick Bostrom
יום ראשון, 5 ביולי 2020
כישורים נחוצים ומסלול לימוד מומלץ ללמידת מכונה
למידה סטטית לעומת זמן אמת
העשור האחרון הוא כרנסאנס של למידת המכונה
העברת למידה
בפוסטים הקודמים דיברנו על כמה מסובך לעשות פרוייקט מוצלח של למידת מכונה. היום נציג שיטה שמטרתה היא הקלה וקיצור זמני הפיתוח של פרוייקטי למידת מכונה.פרוייקט קלאסי מתחיל בבנית מודל ואז אימונו בעזרת הסט הדגימות שלנו, אך האם אנחנו חייבים לבנות את המודל מאפש כל פעם מחדש? כאן נכנסת "העברת למידה".השיטה נהגתה בשנת 1993 והמוטיבציה מאחוריה היא שמסווגים מבוססי מודלים מורכבים בנויים ממספר רב של שכבות שלכל אחת מטרה ספציפית והן מתאימים בדר"כ לבעיה ספציפית מאוד, אך האם כל המורכבות והשעות שהשקענו באימון המודל באמת לא רלוונטיות לבעיות אחרות? אז מסתבר שאכן ניתן לשמר חלק מהידע שאגור במסווג מסויים ולעבירו למסווג אחר. דוגמה קלאסית היא מודלי זיהוי התמונה הנפוצים היום. רוב השכבות בו מאומנות לפרק תמונה לגורמים (פיצרים) משמעותיים ולעבד אותם ורק השכבה האחרונה באמת עושה את ההבדלה בין חתול לכלב. שנרצה לאמן מסווג שמבדיל בין ברווז וארנב נוכל להשתמש בכל השכבות מלבד האחרונה, אותה נצטרך לאמן מחדש בעזרת סט דגימות משלנו.שיטה זו תרמה רבות למוניטזציה הרחבה של למידת מכונה בשנים האחרונות – אוניבריסטאות וחברות ענק מפתחות מודלים שמתאימים לבעיות בתחומים שונים (עיבוד תמונה, קול, ניבויי אקלים) ואז משתמשים מרחבי כל העולם יכולים להשתמש במודלים הללו. השיטה אפשרה למשתמשים ביתיים ליצוור מסווגים מורכבים במהירות ולהשיג תוצאות דיוק ברמה שהייתה שמורה קודם לכן לצוותי מחקר עתורי דוקטרים שעמלו עליה חצי שנה לפחות.מלבד הייתורנות המובהקים של חיסכון בזמן פיתוח ובידע הנדרש, יש לשיטה זו עוד שני יתרונות. מכיוון שרב המודל כבר מטוייב, אחנו נצטרך הרבה פחות דגימות להגיע לאותו אחוז דיוק אם היינו מאמנים את המודל מאפס, והשתמע מכך הוא חסיכון בזמן האימון וכוח העיבוד הדרוש לשם כך.
סוגי שגיאות בסיווג בלמידת במכונה
יום שבת, 2 במאי 2020
איך נראה פרוייקט למידת מכונה?
בפוסט הזה נסקר בקצרה את השלבים בפרוייקט למידת מכונה.
כל פרוייקט מתחיל, ולא דווקא בלמידת מכונה, מתחיל בהגדרה קפדנית של מטרת הפרוייקט, אנשי מפתח שצריכים להשקיע זמן בפרוייקט והמדד להצלחה\כישלון של הפרוייקט.
שלב הבא הוא תרגום הבעיה לשפת למידת מכונה. לדוגמא – השאלה "איך לארגן מחדש את כח העבודה לשנה הבאה" היא שאלה מורכבת. למידת מכונה יכולה לעזור לנו ע"י מענה על השאלה "כמה פניות לתמיכה טכנית של כל מוצר יהיו ביום" וכך נוכל לנתב משאבים בצורה יעילה יותר.
אחרי שתרגמנו את הבעיה\שאלה לאחת שלמידת מכונה יכולה לפתור, אנחנו עוברים לחקור מה מקורות המידע הזמינים לנו – דוחות מאנשי מכירות, נתונים מהמערכת עצמה, מאגרי מידע חיצוניים, וכו'.
לפעמים מגיעים למסקנה שאין לנו מספיק נתונים כרגע וצריך להחליט האם אנחנו מוותרים על הפרוייקט בשלב זה או שאנחנו מתחילים בתהליך איסוף נתונים ידני – מראיינים את כל אנשים מהכירות, או שאנחנו מפתחים ומטמיעים כלים במערכת שיאפשרו לה לאסוף את המידע הנחוץ לנו.
כעת, שבידנו יש מידע גולמי, אנחנו צריכים לעבד אותו לצורה אותה אלגוריתמים של למידת מכונה יודעת לקלוט. בדר"כ זאת תהיה טבלה ללא שדות ריקים (נתונים ריקים נסמן כ"MISSING VALUE"), בדר"כ עם ערכים מספריים אפילו לשדות קטגוריים. מין לדגומא יהפך מ "זכר"/"נקבה"/"הפרעה נפשית" ל0/1/2.
כעת עלינו להחליט אילו מהנתונים שאספנו הם חשובים ואלו מיותרים. לדוגמא, מין האדם יכול להשפיע על סיכוייו לחלות בסרטן, אך השכלתו לא. ניתן לטעון שאנשים משכילים יותר יקפידו על תזונה נכונה אשר כן משפיעה על סיכויו לחלות, אך אנחנו נשתדל להשיג את הנתונים לגבי תזונתו ולהוריד את מספר ההשערות שאנחנו מניחים למינימום.
עכשיו שיש לנו מידע מועבד היטב, נזין אותו לאלגוריתם של למידת מכונה ונמתין לתוצאות. זמן הלימוד של המוכנה נע בין דקות לימים, בהתאם למורכבות השאלה ולכמות המידע ממנו הוא לומד.
לאחר קבלת תוצאות ראשוניות אנחנו מתחילים לטייב את האלגוריתם. לדוגמא, אם שמנו לב שיש לנו יותר מדי זיהוי שווא (FALSE POSITIVE) נעלה את המחיר של כל טעות מסוג זה ונריץ שוב. ברגע שהגענו ליחס FP-FN סביר, מספרים ששתנים בין פרוייקטים – מערכת ספאם יכולה להיות בעלת אחוז FN גבוהה יחסית, מ'סימום נמחק את האימייל בעצמנו. לעומת זאת למערכת שמזהה התפתחות סרטנית נסלח יותר על התראות שווא – מקסימום עשינו בדיקה נוספת סתם, מאשר פיספוס של אבחון.
לבסוף נותר להציג את התוצאות בפני מנהלים ובעלי עניין ולקבל את אישורם להטמיע את המסווג שבנינו במוצר.
מקווה שכעת כולנו מבינים איך נראה פרוייקט למידת מכונה.
יום שני, 6 באפריל 2020
האם מישהו סוף סוף ינצח את האסייתים בגיימינג? והאם זה בכלל יהיה מחשב?
יום חמישי, 26 במרץ 2020
אז מה זה בעצם למידת מכונה
ראשית בואו נעשה קצת סדר בעולם המונחים הקרוב של למידת המכונה.
מה ההבדל בין אוטומציה ללמידת מכונה?
יש שיגידו שלמידת מכונה היא פשוט דרך חדשה להגיד אוטומציה, אך ההבדל טמון בכך שאוטומציה מתבססת על חוקיות מוגדרת מראש ואילו למידת מכונה מאפשרת למחשבים ללמוד מידע ונתונים חדשים ועל ידי כך לשפר את תהליך קבלת ההחלטות של המכונה וביצועיה. למידת מכונה היא נסיון לדמות או להחליף את תהליך קבלת ההחלטות של אדם, בדרך כלל מומחה בתחומו, על ידי המחשב ואילו אוטומציה היא נסיון להחליף את הפעולות השגרתיות של בני האדם על ידי מכונה ועל ידי כך לחסוך זמן, משאבים ולמנוע טעויות אנוש.
מה ההדל בין בינה מלאכותית ללמידת מכונה?
עם לידתו של תחום הבינה המלאכותית בשנות ה50, הבינה המלאכותית הוגדרה כ"מכונה המסוגלת לבצע משימה שתצריך בדרך כלל אינטלגנציה אנושית". מכאן אפשר להסיק ששני התחומים די חופפים ואפילו ניתן לומר שלמידת מכונה היא שיטה דרכה ניתן להשיג בינה מלאכותית. מערכות בינה מלאכותית יסתמכו בדרך כלל על לפחות חלק מהתכונות הבאות: למידה, שיקול דעת, פתרון בעיות, יצוג מידע, תפיסה, תנועה ומניפולציה ובמידה פחותה - אינטלגנציה חברתית ויצירתיות.
ועכשיו לקצת היסטוריה -






