הפיתרון האולטימטיבי לפיתוח רשתות למידה עמוקה

הפיתרון האולטימטיבי לפיתוח רשתות למידה עמוקה

Systematics deep learning

This post is also available in: enEnglish (אנגלית)

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

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

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

"קושי אחד הוא נושא התיוג (Labeling) של המידע, בין אם מדובר בתמונות, וידאו, אותות אודיו או אותות חד-מימדיים אחרים", ציין פן. "ללמידה עמוקה נחוץ מידע מתויג, והרבה ממנו, אבל אף אחד לא אוהב לתייג מידע. גם כלל לא פשוט לנהל מידע רב כמו זה שנדרש. קושי נוסף הוא האתגר שבשימוש בכוח מיחשוב חזק – לא כל אחד יודע להפעיל GPU או מנוסה בשליחת משימות להרצה על ענן. אתגר אחר הוא שבמקרים רבים לא מצליחים לגרום לרשת לתפקד כהלכה כבר אחרי האימון הראשון. בעיה נוספת היא שלא תמיד קל לבוא ולשנות רשת מאומנת על מנת שתדע לפתור את הבעיות שמעניינות אותנו. ובעיה אחרת – בסופו של דבר אנחנו לא מאמנים רשתות על מנת שהן יישארו על המחשב שלנו, אלא אנחנו רוצים להוריד אותן ל-GPU, CPU, FPGA וכדומה – ולא לכולנו יש את הידע והזמן הדרושים כדי לעשות זאת".

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

התמונה ממחישה תוצאות של ביצוע סגמנטציה סמנטית (Semantic Segmentation) בעזרת MATLAB. מצד שמאל: התמונה המקורית. מצד ימין: מפה מתאימה שנוצרה ובה כל פיקסל מסומן לפי הסיווג שלו לאחד מהקלאסים השונים שבתמונה המקורית – כביש, בניין, סימון של נתיב, רכב וכו'.

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

כיצד MATLAB מאפשרת להתמודד עם האתגרים בתחום הלמידה העמוקה?

"באשר לתיוג המידע, יש בסביבת MATLAB כלים שהופכים את הייאוש להרבה יותר נוח. בין אם זה סימון של אובייקטים בתמונות בעזרת Bounding Box, או תיוג ברמת הפיקסל עבור משימות של Semantic Segmentation, או תיוג של קבצי אודיו או אותות חד מימדיים אחרים – יש בסביבת MATLAB ממשקיים גרפיים מאוד ידידותיים ועתירי יכולות, שאפילו מאפשרים אוטומציה של התהליך". 

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

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

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

"באשר לשימוש בחומרה שתאיץ את זמני האימון וה-Inference, זה מאוד פשוט ב-MATLAB. למעשה, שימוש ב-GPU הוא ברירת המחדל של התוכנה".

"לגבי יכולות ויזואליזציה ודיבאגינג – זו תמיד היתה העוצמה של סביבת MATLAB, וזה לא השתנה גם בכל הקשור לתחום הלמידה העמוקה. אפשר להציג עם MATLAB עקומי Accuracy ו-Loss תוך כדי שהאימון מתקדם, לבחון את ה-Activations של השכבות השונות בתגובה לכניסות שונות, לייצר תמונות Deep Dream, לראות את ה-Features, להשתמש בטכניקות כמו Class Activation Mapping ו-Occlusion Sensitivity, להכין מטריצות Confusion מתקדמות וכו'. אפשר אפילו לתכנן את הרשת באמצעות ממשק גרפי".

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

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

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

ומה בקשר לזמן ההרצה של הרשת המאומנת על חומרה?

"באמצעות כלים שממירים את קוד ה-MATLAB לקוד C++ או CUDA אפשר היום להוריד את הרשתות המאומנות בצורה אוטומטית ל-GPU-ים של Nvidia, מעבדים של אינטל, פלטפורמות של ARM וכו' – ולקבל קוד יעיל במיוחד.  קצבי הפריימים שאפשר להשיג בעזרת MATLAB הם פי שניים מהקצבים שאנחנו רואים שאנשים משיגים עם TensorFlow ו-PyTorch, ובביתן שלנו בתערוכה שהתקיימה במסגרת הכנס והתערוכה Video Analytics של iHLS אף הדגמתי זאת".

אז נשאר רק השיקול של המחיר?

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

לסיום, מה מתוכנן בתחום הלמידה העמוקה בסביבת MATLAB לשנת 2020?

"כבכל שנה, גם ב-2020 מתוכננות לצאת שתי גרסאות עיקריות, עם המון חידושים ב-MATLAB בכלל, ובפרט בתחום המאוד דינמי של הלמידה העמוקה, שימשיך לזכות לפוקוס מיוחד. אחרי שבגרסאות האחרונות נוספו יכולות אוגמנטציה מתקדמות לתחום האודיו ולתחום התמונה, כלי לתחום ה-Reinforcement Learning, יכולת של מציאה אוטומטית של פרמטרי האימון האופטימלים, יכולת של בניית שכבות מותאמות אישית, תמיכה בארכיטקטורות מתקדמות ועוד – אנו עובדים על יכולת שתאפשר להמיר אוטומטית את הרשתות המאומנות מ-MATLAB לקוד שרץ על FPGA, ממשק נוח לניהול ניסויים, למידה עמוקה לענני נקודות ועוד".

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