לפני מספר ימים שוחררה גרסת ה-MATLAB הראשונה לשנה זו, R2018a, והיא כוללת יכולות חדשות רבות ותיקוני באגים בכלים הקיימים, ואף
מספר כלים חדשים (לסקירת יכולות הגרסה – לחצו פה).
תחום ה-Deep Learning קיבל תשומת לב רבה בגרסה
הקודמת (לחצו לסקירה), וגם בגרסת R2018a נמשכים המאמצים של MathWorks לתת ערך מוסף משמעותי
למשתמשים ב-MATLAB בתחום זה.
כזכור – כבר בגרסה הקודמת היו ל-MATLAB יתרונות רבים בהשוואה לחלופות החינמיות, למשל:
·
מהירות אימון (ראו
בתחתית הפוסט שנפתח על ידי לחיצה פה)
·
נוחות עבודה – הודות לשימוש
בסביבת פיתוח שנועדה למהנדסים ומדענים
תמיכה מלאה במערכת ההפעלה Windows – בנוסף לתמיכה במערכות הפעלה אחרות
·
יכולות ויזואליזציה
ודיבאגינג – צפיה ב-activations, הצגת Deep Dream Images, צפיה במשקולות, בחינה של התקדמות האימון בכיוון הנכון וכו'...
תיעוד מפורט, כמיטב המסורת של תוכנת MATLAB
·
תמיכה טכנית מקצועית בטלפון
03-7660111 לבעלי רישיון תחת חוזה שירות
וכל זאת - מבלי להתפשר על האפשרות לייבא מודלים שפותחו ואומנו בסביבות
החינמיות (Keras, Caffe, PyTorch). בקרוב, אגב, גם מתוכננת
תמיכה ב-ONNX לצורך ייבוא וייצוא של
המידע בין MATLAB והסביבות האחרות (עריכה - התמיכה כבר קיימת).
אז...מה נשתנה בתחום ה-Deep
Learning בגרסת R2018a? להלן
החידושים המרכזיים:
·
תצוגה גרפית של הרשת בעזרת
ה-Network Analyzer App – לצורך
איתור בעיות אפשריות לפני ביצוע האימון (לחצו פה)
· ייצוא/ייבוא מודלים בין MATLAB ופורמט ONNX – ייצוא המודלים מ-MATLAB מאפשר שימוש בהם בתוך סביבות התומכות בפורמט זה, דוגמת TensorFlow, Caffe2, CNTK, MXNet, CoreML. ייבוא המודלים מאפשר להכניס לתוך MATLAB מודלים מסביבות כמו CNTK, PyTorch, Chainer, Caffe2. למידע נוסף - לחצו פה
·
יצירה, אימון וניתוח
של רשתות 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 (Neon), דבר שיאפשר, למשל,
לטרגט טלפון אנדרואיד
·
יכולות חדשות
באפליקציות התיוג – ה-Ground Truth Labeler תומך כעת בסגמנטציה ברמת הפיקסל, ב-Sub-Labels וכן בצירוף Attributes ל-labels (הנ"ל יכולים להיות
ערכים נומרים ועשויים לסייע בתרחישי תיוג לצורך משימות רגרסיה). גם הוא וגם ה-Image Labeler מקלים כעת עוד יותר על ביצוע תיוג ברמת הפיקסל,
באמצעות אופציית ה-Smart Polygon המאפשרת לעדן את הסגמנטציה
בתוך איזור עניין על ידי סימון פיקסלים בתור רקע או אובייקט
·
ולידציה של Custom Layers - כזכור, החל מהגרסה הקודמת
ניתן לייצר סוגים חדשים של שכבות באמצעות שפת MATLAB, והחל מהגרסה הנוכחית –
ניתן לבצע ולידציה אוטומטית לטיפוסי המידע והמימדים, לבחון תאימות מבחינת עבודה עם GPU ולוודא שהגרדיאנטים
הוגדרו כנדרש
·
תמיכה של רשתות CNN במידע תמונתי בעל יותר מ-3 ערוצים
(מולטיספקטרלי)
·
שיפור מהירות ריצה על
CPU באימון ו-Inference
·
אופטימייזרים חדשים – Adam ו-RMSProp (בנוסף ל-SGDM)
· המימד השלישי של הקלט לא חייב להיות רק 1 או 3
· הקפאת שכבות – נוספה הפקודה freezeWeights שגורמת לכך שהפרמטרים של שכבות שרוצים להקפיא - פשוט לא יתעדכנו במהלך האימון. ומכיוון שלא מחשבים את הגרדיאנטים של השכבות האלה - האימון יהיה מהיר יותר. ואגב, אם ה-data set החדש שבו משתמשים ב-transfer learning הוא קטן, אז הקפאה של השכבות הראשונות יכולה למנוע overfitting שלהן אליו.
·
שימוש בטכניקת Gradient Clipping כדי למנוע "התפוצצות" של הגרדיאנטים ברשתות עמוקות במיוחד (שימושי
לרוב בעבודה עם RNNs)
·
LSTM – תמיכה
ברשתות LSTM עם שכבת רגרסיה בקצה; תמיכה ברשתות LSTM דו-כיווניות (כדי ללמוד מכל ההקשר של הרצף)
מה הלאה?
ההשקעה של MathWorks בתחום ה-Deep Learning נמשכת, וצפויים חידושים משמעותיים גם בגרסת R2018b שמתוכננת לחודש ספטמבר. אם יש יכולות שאתם זקוקים להן והן
עדיין לא נכללות בכלים – אתם מוזמנים לכתוב זאת למטה בתגובה ואשמח לבדוק האם הן
מתוכננות (ובמידה ולא – אעביר אותן לצוות הפיתוח על מנת שישקול לעבוד עליהן). כדי להוסיף תגובה - לחצו על הכיתוב "אין תגובות".
רוצים להתנסות בעבודה על Deep Learning בסביבת MATLAB ללא התחייבות, בזמנכם החופשי, ומבלי להתקין
שום דבר? אתם מוזמנים לנסות את ה-Hands On Tutorial החינמי באתר MathWorks. לא צריך רישיון ל-MATLAB בשביל לעבוד איתו, הכל
מבוצע דרך הדפדפן. ה-Hands On אמור לקחת לכם כשעתיים,
וניתן לעצור אותו בכל שלב ולהמשיך כאשר אתם רוצים. לכניסה – לחצו פה.
מעוניינים להשתתף בכנס מקצועי בנושא Deep
Learning, בו ירצו מומחים מהתעשייה והאקדמיה? בתאריך 7/5/18
מתוכנן כנס באיזור הרצליה, ההשתתפות ללא עלות, אך דרושה הרשמה מראש. לרישום
מוקדם – לחצו פה.
לעמוד ה-Deep Learning באתר MathWorks – לחצו פה.