שיעור #1 – פונקציות ולמה זה חשוב בהקשר של למידה עמוקה המלל

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

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

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

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

אך ראשית מדוע רלוונטי לדבר על זה בכדי ללמוד deep learning ?

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

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

האימון הוא תהליך מתמשך המורכב מאיטרציות (epochs) כאשר לאורכו הרשת\האלגוריתם אמור להשתפר בביצוע המשימה שלו.

בכל איטרציית אימון הרשת מקבלת פיסות קלט מה training database והפרמטרים או משקלים של המודל\של הרשת מתעדכנים במטרה להשתפר במלאכת הסיווג (או המשימה שבאופן כללי נקרא לה הפרדיקציה).

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

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

Loss function משתנה.

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

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

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

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

חזרה לוידאו