הבסיס
הקדמה
אז, קודם כל, מה היא בכלל למידת מכונה? אחת ההגדרות הנפוצות היא, למידה ע"ב נסיון - E, לבצע משימה כלשהי - T, שאת איכות ביצועה נמדוד כ - P. כך ש,
T- איכות ביצוע המשימה ע"י המכונה,P- שאותה נמדוד לפי הגדרת המשימה,E- תשתפר ככל שהמכונה תקבל יותר נסיון.
הלוגיקה הזו די פשוטה. ובטח אתם מכירים אותה מחיי היום-יום. הרי ככל שמישהו מבצע משימה כלשהי יותר, הוא צובר נסיון בביצועה, ומשתפר בה לאורך זמן. החידוש בין למידת מכונה לתכנות קלאסי הינו, לקיחת קונספט פשוט אך אפקטיבי זה, והכלתו על מכונות. כלומר, במקום לתת לממכונה הוראות מדוייקות כיצד לבצע משימה מסויימת, אם ניתן לה מספיק E, כיצד לבצע את T, בצורה אפקטיבית P - היא כבר תבין בעצמה.
לדוגמא, אלגוריתם לזיהוי תמונה של בן אדם כלשהו. עצם הזיהוי יהיה המשימה, T. על מנת לדעת לזהות את התמונה ניתן לו לראות סט תמונות, הבתוכו גם תמונות של אותו הבן אדם, היתוייגו כך, E. ע"ב ההבדלים בתמונות המחשב ילמד כיצד לזהות את הבן אדם, ואחוז ההצלחה של המחשב בזיהוי יהיה P.
שני סוגי הלמידה
ישנם שני סוגים של למידת מכונה,
Supervised Learning- בלמידה מפוקחת, אנחנו נדע מראש כיצד נרצה שהפלט מהמכונה יראה, לדוגמא, בדוגמא מעלה של אלגוריתם לזיהוי בן אדם מסויים, נדע מי הוא הבן אדם שנרצה לזהות, ולכן זוהי למידה מפוקחת.Unsupervised Learning- בלמידה לא מפוקחת, לא נדע מראש כיצד התוצאה תראה, אלא היא משתמשת למציאת דפוסים חוזרים. לדוגמא, אלגוריתם הבוחן תמונות של אנשים, ומחלק אותם לקבוצות לפי הבן אדם שבתמונה. כמו בגוגל פוטוס. לא נדע מראש מהי התוצאה, אלא רק שנרצה למצוא דפוסים חוזרים, כלומר תמונות בהן מופיעים אותם בני אדם. ולכן זוהי למידה לא מפוקחת.
למידה מפוקחת
למידה מפוקחת מתחלקת לשניים,
Regression- בבעיית נסיגה, נרצה לספק תשובה מתמשכת, לדוגמא, בהינתן גודל בית מסויים להעריך את המחיר שלו. הפלט יכול להיות מאינסוף עד למינוס אינסוף, ולכן הוא מתמשך. בפרקטיקה, דוגמא זו תבוא לידי ביטוי כך,
נקבל סט של נתונים, לדוגמא על מחיר בית וגודלו, המסומנים בתרשים כx, ועל בסיסם נייצר פונקצייה התחזה את מחיר הבית ע"ב גודלו. אותה הפונקצייה נקראתhypothesisונלמד עליה עוד בהמשך.Classification- בבעיית סיווג, נרצה לקבל תשובה קונקרטית של כן או לא, להאם הקלט מעיד על משהו. לדוגמא, לימוד מכונה למציאת תמונות של אדם ספציפי, הינה בעיית סיווג. שכן האפשרויות הינן כן או לא. עוד דוגמא תהיה תהליך לחיזוי נפילה של מבנה במקרה של רעידת אדמה, לפי גיל וגובה.
בתרשים מסומנים מבנים שהחזיקו ברעידת אדמה בo, וכאלה שנפלו בx. על בסיסם ננסה לייצר פונקצייה התפריד בצורה המיטבית בין שני המקרים. כך שאם נקבל להבא בניין שנתוניו יפלו מעל הפונקצייה, על פי המודל הוא לא יחזיק.
אדגיש כי אמנם זה לא אופטימלי, אך כמו בתרשים הנתון, לפעמים נבנה מודלים שלא יהיו נכונים עבור כל קלט שהם יקבלו. ישנם הרבה דרכים לשפר את דיוקו של המודל, אך צריך לקחת בחשבון שמושלמות היא דבר הקשה מאוד להגיע אליו.
המודל
לאחר שהכרנו את הצורות השונות של למידת המכונה, כעת נבחן את המודל של התהליך ללימוד מכונה,

Training set- אם הצלחתם להבין מהכתב הלא ברור שלי, השלב הראשון בבניית תהליך ל"מ (אקצר מכאן לימוד מכונה כך) הוא לאגד סט של דוגמאות, שאחריו ההליך יתחקה. הבנוי כך,ומורכב מהרכיבים,מחיר במיליונים (y) מ"ר (x) 1.0 10 1.1 19 2.0 23 0.9 24 1.8 36 2.4 39 1.3 43 2.2 44 3.0 50 m- מספר הדוגמאות בסט, לדוגמא במקרה שלנו,10.x- הקלט, שעל בסיסו המודל יחזה את הפלט, לדוגמא במקרה שלנו, נתון המ"ר. אמנם בדוגמא זו קיים רק אחד, אך יכולים להיות נתוני קלט רבים, הנקראים גםfeatures.y- הפלט, לדוגמא במקרה שלנו, נתון המ"ר.

כך שבמקוםiנציב את אינדקס השורה, המתחיל מ1. עבורxבאינדקס1נקבל10, עבור2,19, ועבורyבאינקס1,1.0.Learning algorithm- אלגוריתם הלמידה, המנתח את הTraining setועל בסיסו מייצרHypothesis. שהינה,Hypothesis- או בעברית, ההשערה, המיוצגת על ידי האותh, הינה השערה הנוצרת ע"י אלגוריתם הלמידה, אודות הקשר ביןx, לy.- לאחר בניית מודל ההשערה על ידי אלגוריתם הלמידה, נזין למכונה קלט, והיא תחזיר לנו את הפלט הצפוי ע"ב אותו המודל.
- לדוגמא, במקרה הבתים, אלגוריתם הלמידה מייצר השערה אודות הקשר בין גודל הדירה למחירה.
- שימוש בהליך ל"מ הינו בבסיסו מימוש של מודל השערה על קלט כלשהו. ככל שאלגוריתם הלמידה יהיה מתוכנן טוב יותר, ההשערה תהיה קרובה יותר לייצוג המציאות, והנתונים הנגזרים ממנה - למציאות.
ההשערה
השערה כפונקצייה לינארית
אחת הדרכים לייצג את h היא כפונקצייה לינארית,

כלומר, שההשערה שלנו לגבי הקשר בין הקלט לפלט הוא שיש יחס ישר ביניהם. אדגיש כי זאת רק דרך אחת מיני רבות לייצר את המודל, ונתחיל איתה בשל פשטותה.
הפונקצייה hθ(x) שלפעמים גם תרשם רק כh(x) כקיצור, מורכבת מθ0 וθ1, או בעברית טטא אפס, וטטא אחת. הנקראים גם הפרמטרים של הפונקצייה, להם נדרש להתאים ערכים מתאימים.
פונקציית העלות
נניח שבאמת נרצה לבנות הליך ל"מ המקבל מ"ר דירה ומחזיר מחיר משוער, ראשית אספנו דוגמאות, והחלטנו שנרצה להשתמש בפונקצייה לינארית כבסיס המודל. כיצד נגיע מהדוגמאות שאספנו לפונקצייה לינארית? או במילים אחרות, כיצד נבנה את הLearning algorithm שיתן לנו את לערכי הθ המתאימים? הדרך שנעשה זאת היא באמצעות שימוש בפונקצייה הבאה,

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

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

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

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

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

רוב הזמן יהיה יותר פשוט לעבוד עם ייצוג זה, המתפקד בפועל כמו מפת גבהים, ששמו הוא contour plot. ללימוד קריאת מפת גובה אני ממליץ יציאה לקצונת קמ"נים. נוכל לראות בשני התרשימים שעבור הפונקצייה המוצגת המינימום הינו בערך כשθ0 היא 1.75 וθ1 היא -2. ולכן אלו הינם האידיאליים להצבה בh. עכשיו נותר להבין כיצד נמצא את אותו המינמום של פונקצייה הלוקחת שני פרמטרים בצורה מתמטית. אחת הדרכים היא,
ירידה במדרון
ערבות רומניה
תחשבו שאתם מטיילים בהרים ברומניה, ורוצים להגיע לנקודה הנמוכה ביותר האפשרית. אבל ישנה בעיה, אתם לא יכולים לראות.

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