Deep Learning with MATLAB – New Features in R2018b
חידושים משמעותיים רבים נוספו לכלי ה-Deep Learning של חברת MathWorks בגרסת R2018b!
גרסת R2018b של כלי MathWorks, אשר שוחררה לפני מספר שבועות, כוללת יכולות חדשות רבות ותיקוני באגים בכלים הקיימים, ואף מספר כלים חדשים (לסקירת יכולות הגרסה – לחצו פה). מבחינת תחום ה-Deep Learning – כמו בגרסה הקודמת (לחצו לסקירה) – גם בגרסה השניה לשנת 2018 התחום מקבל פוקוס מיוחד. למעשה, לאור העובדה של-Neural Network Toolbox נוספו כל כך הרבה יכולות בתחום ה-Deep Learning בתקופה האחרונה, עד שתחום זה הפך למסה העיקרית של הכלי – החברה החליטה לשנות את שם הכלי ל-Deep Learning Toolbox.
אז…מה חדש בתחום ה-Deep Learning בגרסת R2018b?
להלן החידושים המרכזיים:
- תוספת Apps – כדי להקל על השימוש ולשפר את היעילות. ה-Apps החדשים הינם:
- Deep Network Designer – ממשק גרפי לעבודה עם רשתות – ניתן לבנות רשת באמצעות גרירת אבני בניין וחיבורן, ללא הקלדת פקודות; ניתן לייבא רשת מאומנת ולערוך אותה בקלות לצורך ביצוע Transfer Learning; ניתן לנתח את הרשת כדי לוודא שהארכיטקטורה מוגדרת כהלכה ולאתר בעיות לפני תחילת האימון (על ידי פתיחת ה-Network Analyzer ישירות מתוך App זה); וניתן כמובן לייצא את הרשת. למידע נוסף: יש ללחוץ פה.
- Audio Labeler – ממשק גרפי המקל על הכנת Labeled data sets לצורך הפעלת טכניקות מתחום ה-Deep Learning על סיגנלים חד-ממדיים (אודיו) – אפשר לעבוד על אוספי הקלטות או להקליט ישירות עם ה-App; אפשר לנווט בצורה אינטראקטיבית; אפשר להגדיר וליישם labels על קבצים שלמים או על איזורים בתוך קבצים; אפשר לייבא וליצא תיקיות אודיו, הגדרות של labels ו-datastores. למידע נוסף: יש ללחוץ פה.
בהקשר זה יוזכר ה-Audio Datastore שהתווסף ל-Audio System Toolbox בגרסה זו, ומאפשר לנהל אוספים גדולים של קבצי אודיו (יצירת labeles על סמך שמות התיקיות, דגימה של קבצים בצורה אקראית, גישה מקבילית לצורך עיבוד מקדים או חילוץ פיצ'רים או אוגמנטציה וכו').
הרשום בסעיף זה מהווה "טעימה" לתחום מיקוד משני שהוסיפה MathWorks בכל הקשור ליכולות הכלים של החברה בעולם ה-Deep Learning – לא עוד "רק עיבוד תמונה וראיה ממוחשבת" – אלא גם יכולות בתחומים עיבוד אות, ניתוח טקסט ודיבור.
- Video Labeler App – ממשק גרפי לתיוג רצפי תמונות וסרטוני וידאו המכיל את היכולות השימושיות של ה-Ground Truth Labeler אך אינו מחייב רישיון ל-Automated Driving System Toolbox. מאפשר אוטומציה של תהליך התיוג באמצעות עקיבה אחר אוביקטי עניין וכן מאפשר תיוג ברמת הפיקסל לצורך ביצוע Semantic segmentation. למידע נוסף – יש ללחוץ פה.
- קל יותר לאמן בענן ועל HPC Boxes (כמו Nvidia DGX) לצורך בדיקת היתכנות לפני שמשקיעים ברכישת חומרה פרטית ולצורך האצת האימון.
- דרך אחת – MATLAB Reference Architectures ל- Azure ו-Amazon – מאפשרת לקבל בקלות מכונה וירטואלית שעובדת על כל אחד מה-domainים האלה. למידע נוסף – יש ללחוץ פה.
- דרך שניה – קונטיינרים ל-(NGC (Nvidia GPU Cloud – יש תמיכה ב-Nvidia DGX. למידע נוסף – יש ללחוץ פה.
- אינטראופרביליות עם סביבות Deep Learning מבוססות Python כמו Keras-Tensorflow, PyTorch ואחרות – R2018b הינה הגרסה הרשמית הראשונה של כלי MathWorks שכוללת את התמיכה בפורמט ONNX מאז שתמיכה זו שוחררה כ-Support Package. הפיצ'ר מאפשר גישה לכל תוצאות המחקרים האחרונים הזמינים בסביבות Deep Learning נפוצות, מאפשר שיתוף פעולה בין חברי צוות שמעדיפים לעבוד כל אחד בסביבה אחרת, ומאפשר ניצול יכולות MATLAB בתחומים כמו תיוג או עיבוד מקדים או יצירת קוד והורדה למערכת Embedded. כלומר – לא חייבים לבחור סביבה אחת או סביבה אחרת, אפשר ליהנות מכל העולמות!
- Out of box targeting for popular GPU boards – ה-GPU Coder הוא כלי של MathWorks המאפשר המרת קוד MATLAB לקוד CUDA עבור GPU-ים של חברת Nvidia. על מנת לחסוך זמן יקר שכרוך ב-setup וחיבור לכרטיסי חומרה במהלך תהליך הפיתוח, בגרסה החדשה של ה-GPU Coder נוספו support packages לפלטפורמות Nvidia Jetson ו-Nvidia Drive.
- מהירות Inference – גם בגרסה החדשה נשמרה העליונות של ה-GPU Coder מבחינת קצבי Inference בהשוואה לסביבות החינמיות:
- תמיכה ביצירת קוד עבור GPU-ים של Nvidia, מעבדי Intel ופלטפורמות ARM מתוך מגוון רחב יותר של סוגי שכבות (טבלה מצורפת למטה. למציאת הרשימה המלאה עבור כל target יש להשתמש בפקודה getDeepLearningLayers).
- Network Assembly משכבות ומשקולות מיובאות, ללא צורך באימון – שימושי למשל למי שרוצה ליבא רשת מסביבת Deep Learning מבוססת Python ומייד להמיר אותה בצורה אוטומטית לקוד כמו קוד CUDA. בעזרת הממשק עם ONNX המוזכר למעלה אפשר לטעון לתוך MATLAB רשת שאומנה בסביבה מסוימת, וכעת לאחר הפעלת הפקודה assembleNetwork אפשר לייצר מהרשת הזו קוד באופן מיידי. כלומר אם בעבר היה צריך לאמן את הרשת המיובאת epoch אחד, עכשיו בעזרת פקודת assembleNetwork אפשר לייבא ומייד להשתמש.
- יכולות ויזואליזציה –
- נוספה הפונקציה confusionchart אשר מספקת דרך נוחה לחקור את החיזויים של הרשת לעומת התגיות הנכונות שאותן היא היתה אמורה לחזות (בבעיות סיווג). ניתן לשלוט על מאפייני ה-confusion matrix, לצפות בסיכומים סטטיסטיים, לבצע מיונים וכו'. למידע נוסף – יש ללחוץ פה.
- ניתן לבצע ויזואליזציה של הפלט של שכבות ביניים ברשתות DAG
- רשתות מאומנות זמינות לשימוש – מאז הגרסה הקודמת נוספה תמיכה במגוון רשתות חדשות, כמו ResNet-18, DenseNet-201, Inception-ResNet-v2, SqueezeNet. הרשתות המאומנות הללו יכולות לשמש כנקודת התחלה עבור עבודה בגישת Transfer Learning, וניתן לטעון כל אחת מהן תוך שימוש בשורת קוד אחת. לרשימה המלאה של כל ה-Pre-trained Networks הזמינות – לחצו פה.
- ולידציית רשתות LSTM/BiLSTM עבור מידע time series בצורה אוטומטית במהלך האימון – מסייעת למניעת overfitting.
ויש כמובן עוד חידושים עליהם ניתן לקרוא בתיעוד.
לסיכום, היכולות החדשות ב-Deep Learning Toolbox, יחד עם היכולות שהיו קיימות בכלי בעבר, נותנות ל-MATLAB יתרונות רבים בהשוואה לחלופות החינמיות. ביניהם:
- תיוג מהיר ונוח, באמצעות מגוון Apps. מאפשר לסמן bounding boxes בתמונות/וידאו או לבצע תיוג ברמת הפיקסל לצורך סגמנטציה סמנטית ואף לבצע אוטומציה לתהליך וכן לתייג קטעי אודיו.
- מהירות אימון
- מהירות Inference
- אפשרות להמיר בצורה אוטומטית את קוד ה-MATLAB לקוד CUDA מהיר וחסכוני בזיכרון לצורך מימוש על מערכות Embedded או לקוד C עבוד מעבדים של אינטל ופלטפורמות ARM. אם אתם רוצים להתנסות בגרסת בטא של הפיצ'ר המאפשר המרה לקוד עבור FPGA – כתבו למטה.
- נוחות עבודה – הודות לשימוש בסביבת פיתוח המיועדת למהנדסים ומדענים
- תמיכה מלאה במערכת ההפעלה Windows בנוסף לתמיכה במערכות הפעלה אחרות
- יכולות ויזואליזציה ודיבאגינג – צפיה ב-activations, הצגת Deep Dream Images, צפיה במשקולות, בחינה של התקדמות האימון בכיוון הנכון, תצוגה גרפית של הרשת לצורך איתור בעיות אפשריות לפני ביצוע האימון וכו'…
- תיעוד מקיף וברור, כמיטב המסורת של סביבת MATLAB
- תמיכה טכנית מקצועית בטלפון 03-7660111 לבעלי רישיון תחת חוזה שירות
וכל זאת – מבלי להתפשר על האפשרות לייבא לתוך MATLAB מודלים שפותחו ואומנו בסביבות החינמיות ולייצא מודלים מ-MATLAB אליהן. אפשר לייבא מ-Keras, Caffe, Caffe2, PyTorch, Chainer ו-CNTK ולייצא אל TensorFlow, Caffe2, CNTK, MXNet ו-CoreML.
מה הלאה?
ההשקעה של MathWorks בתחום ה-Deep Learning נמשכת, וצפויים חידושים משמעותיים גם בגרסת R2019a המתוכננת לחודש מרץ הקרוב. אם יש יכולות שאתם זקוקים להן והן עדיין לא נכללות בכלים – אתם מוזמנים לכתוב זאת למטה בתגובה ואשמח לבדוק עבורכם האם הן מתוכננות (ובמידה ולא – אעביר אותן לצוות הפיתוח על מנת שישקול לעבוד עליהן).
רוצים להתנסות בעבודה על Deep Learning בסביבת MATLAB ללא התחייבות, בזמנכם החופשי, ומבלי להתקין שום דבר על המחשב? אתם מוזמנים לנסות את ה-Hands On Tutorial החינמי באתר MathWorks. לא צריך רישיון ל-MATLAB בשביל לעבוד איתו, הכל מבוצע דרך הדפדפן. ה-Hands On אמור לקחת לכם כשעתיים, וניתן לעצור אותו בכל שלב ולהמשיך כאשר אתם רוצים. לכניסה – לחצו פה.