עקרונות ליזמים שעוסקים ב-Deep Learning

הלמידה העמוקה היא תחום שסטארט-אפים רבים עוסקים בו, אבל הוא לא תמיד מובן עד הסוף ● המאמר הבא עושה סדר בדברים

04/04/2017 17:32
ליאור כהן, סמנכ"ל הפיתוח של PicScout. צילום: PicScout

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

ראשית, צריך להדגיש ולומר ש-Deep Learning (או בקיצור DL) הוא תחום מאוד רחב ומורכב להבנה. יש הממשילים אותו לתהליך הלימוד המתרחש במוח האנושי. כמו במוח, גם ב-Deep Learning נעשה שימוש ברשתות נוירונים.

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

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

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

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

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

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

זיכרו: GPU עדיף על CPU

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

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

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

שימוש במודלים קיימים

אחת השאלות הבוערות בתחום ה-Deep Learning היא: האם ניתן לקחת מודל מסוים ולהשתמש בו לאימון של מודל אחר?

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

נושא ה-Transfer learining הוא חשוב ומעניין, מכיוון שהוא יכול לסייע עד מאוד בהפחתת כמות הדוגמאות הנדרשת לאימון מודלים על תכנים דומים או סמוכים.

הכנת דוגמאות האימון (Training set)

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

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

הכותב הוא סמנכ"ל הפיתוח של PicScout.

תגובות

(0)

כתיבת תגובה

האימייל לא יוצג באתר. שדות החובה מסומנים *

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

אירועים קרובים