Deep Learning with MATLAB in R2018a | MATLAB With Fun
מאת רועי פן
לפני מספר ימים שוחררה גרסת ה-MATLAB הראשונה לשנה זו, R2018a, והיא כוללת יכולות חדשות רבות ותיקוני באגים בכלים הקיימים, ואף מספר כלים חדשים (לסקירת יכולות הגרסה – לחצו פה).
תחום ה-Deep Learning קיבל תשומת לב רבה בגרסה הקודמת (לחצו לסקירה), וגם בגרסת R2018aנמשכים המאמצים של MathWorks לתת ערך מוסף משמעותי למשתמשים ב-MATLAB בתחום זה.
כזכור – כבר בגרסה הקודמת היו ל-MATLAB יתרונות רבים בהשוואה לחלופות החינמיות, למשל:
-
- תיוג מהיר ונוח, באמצעות Apps (לחצו למידע על ה-Image Labeler, המאפשר לתייג תמונות בקלות ואף לבצע תיוג ברמת בפיקסל לצורך סגמנטציה סמנטית; או לחצו למידע על ה-Ground Truth Labeler, המאפשר לתייג במהירות וידאו או סדרות של תמונות)
-
- מהירות אימון (ראו בתחתית הפוסט שנפתח על ידי לחיצה פה)
-
- מהירות Inference (לחצו לפוסט בנושא)
-
- אפשרות להמיר בצורה אוטומטית את קוד ה-MATLAB לקוד CUDA מהיר וחסכוני בזיכרון לצורך מימוש על מערכות Embedded (לחצו לפוסט בנושא ה-GPU Coder)
-
- נוחות עבודה – הודות לשימוש בסביבת פיתוח שנועדה למהנדסים ומדענים
-
- יכולות ויזואליזציה ודיבאגינג – צפיה ב-activations, הצגת Deep Dream Images, צפיה במשקולות, בחינה של התקדמות האימון בכיוון הנכון וכו’…
- תמיכה מקצועית בטלפון 03-7660111 לבעלי רישיון תחת חוזה שירות
וכל זאת – מבלי להתפשר על האפשרות לייבא מודלים שפותחו ואומנו בסביבות החינמיות (Keras,Caffe, PyTorch). בקרוב, אגב, גם מתוכננת תמיכה ב-ONNX לצורך ייבוא וייצוא של המידע.
אז…מה נשתנה בתחום ה-Deep Learning בגרסת R2018a? להלן החידושים המרכזיים:
-
- תצוגה גרפית של הרשת בעזרת ה-Network Analyzer App – לצורך איתור בעיות אפשריות לפני ביצוע האימון (מתוכנן להשתחרר בעוד כשבוע)
-
- יצירה, אימון וניתוח של רשתות DAG – אימון מהיר יותר (בעזרת GPUs), חישוב והצגה של activationsשל שכבות ביניים, החלפה פשוטה יותר של שכבות בעת עריכת רשתות מסוג זה.
-
- המרה של קוד MATLAB לקוד CUDA – אפשר כעת להמיר גם רשתות DAG ולייצר קוד CUDA מתוך רשתות נפוצות נוספות כמו GoogLeNet, ResNet (50/101), SegNet ו-SqueezeNet (טעינת הרשת האחרונה בצורה נוחה צפויה להתאפשר במהלך אפריל). לרשימת הרשתות והשכבות הנתמכות על ידי ה-GPU Coder – לחצו פה. בנוסף, יש כעת אפשרות להשתמש ב-TensorRT בעת יצירת קוד CUDA, בהמשך לרמיזה שנרמזה בבלוג זה בעבר (לחצו לקריאה, לפני הגרף השני), מה שיאפשר קבלת קוד CUDA מהיר במיוחד.
- תמיכה ביצירת קוד עבור חומרות נוספות – ה-GPU Coder מסוגל כעת לייצר קוד C עבור רשתות גם עבור מעבדים של אינטל (Intel Xeon CPU, למשל) ופלטפורמות Arm (Mali GPU, Neon), דבר שיאפשר, למשל, לטרגט טלפון אנדרואיד.
-
- יכולות חדשות באפליקציות התיוג – ה-Ground Truth Labeler תומך כעת ב-Sub-Labels וכן בצירוף Attributes ל-labels (הנ”ל יכולים להיות ערכים נומרים ועשויים לסייע בתרחישי תיוג לצורך משימות רגרסיה). ה-Image Labeler מקל כעת עוד יותר על ביצוע תיוג ברמת הפיקסל, באמצעות אופציית ה-Smart Polygon המאפשרת לעדן את הסגמנטציה בתוך איזור עניין על ידי סימון פיקסלים בתור רקע או אובייקט.
-
- ולידציה של Custom Layers – כזכור, החל מהגרסה הקודמת ניתן לייצר סוגים חדשים של שכבות באמצעות שפת MATLAB, והחל מהגרסה הנוכחית – ניתן לבצע ולידציה אוטומטית לטיפוסי המידע והמימדים, לבחון תאימות מבחינת עבודה עם GPU ולוודא שהגרדיאנטים הוגדרו כנדרש.
-
- תמיכה של רשתות CNN במידע תמונתי בעל יותר מ-3 ערוצים (מולטיספקטרלי)
-
- שיפור מהירות ריצה על CPU באימון ו-Inference
-
- אופטימייזרים חדשים – Adam ו-RMSProp (בנוסף ל-SGDM)
- שימוש בטכניקת Gradient Clipping כדי למנוע “התפוצצות” של הגרדיאנטים ברשתות עמוקות במיוחד (שימושי לרוב בעבודה עם RNNs)
- LSTM – תמיכה ברשתות LSTM עם שכבת רגרסיה בקצה; תמיכה ברשתות LSTM דו-כיווניות (כדי ללמוד מכל ההקשר של הרצף)
https://matlabisrael.blogspot.co.il
Subscribe
0 Comments