Deep Learning with MATLAB – New Features in R2019b

גרסת R2019b של כלי MathWorks, אשר שוחררה בשבוע שעבר, כוללת יכולות חדשות רבות ותיקוני באגים בכלים הקיימים בסביבות MATLAB ו-Simulink, ואף שני כלים חדשים (לסקירת יכולות הגרסה – לחצו פה). מבחינת תחום ה-Deep Learning – כמו בגרסה הקודמת (לחצו לסקירה) – גם בגרסה השניה לשנת 2019 התחום מקבל פוקוס מיוחד.

 

אזמה נשתנה בתחום ה-Deep Learning בגרסת R2019b?

להלן החידושים המרכזיים:

  1. ארכיטקטורות Deep Learning מתקדמות – נוספה תמיכה בבניה ואימון של:
    – GAN-ים (לחצו לדוגמה בה הרשת לומדת לייצר תמונות מלאכותיות איכותיות),
    רשתות סיאמיות (לחצו לדוגמה בה הנ"ל משמש לצורך השוואה בין תמונות או לחצו לדוגמה בה הנ"ל משמש להורדת מימדיות),
    רשתות Attention (לחצו לדוגמה בה הנ"ל משמש לצורך תרגום)
    – ו-Variational Autoencoders (לחצו לדוגמה בה הנ"ל משמש ליצירת תמונות. הנ"ל בנוסף לתמיכה ב-Convolutional Autoencoders  שהיתה קיימת עוד מלפני הגרסה החדשה, לחצו לדוגמה בה הנ"ל משמש לגילוי אנומליות בתמונות).
  2. גמישות אימון – אפשר להשתמש ב-Automatic Differentiation כדי לאמן רשתות Deep Learning מורכבות ללא צורך בחישוב ידני של הנגזרות (מדובר באוסף של טכניקות להערכה נומרית של הגרדיאנטים – למידע נוסף לחצו פה ולדוגמה – לחצו פה). הנ"ל חוסך זמן פיתוח ושגיאות שעלולות לצוץ בעת עבודה ידנית. כמו כן ניתן להשתמש במשקולות משותפות ולולאות אימון מותאמות אישית (בנוסף לתמיכה בפונקציות Loss מותאמות אישית שכבר קיימת זמן רב, וכעת אין יותר צורך בכתיבת ה-Backward Function. למידע נוסף – לחצו פה). אפשר כעת גם להציג בקלות רבה יותר תצוגות מיוחדות במהלך האימון.
  3. Occlusion Sensitivity – שיטת הניתוח והויזואליזציה הנ"ל בוחנת כיצד משתנה תשובת הרשת, על ערוציה, כתלות בהסתרת חלק מסוים מהתמונה, וניתן כעת להשתמש בשיטה הזו לצורך מיפוי Strongly Activating Features במידע הקלט (לחצו לדוגמה).

    שימוש בניתוח Occlusion כדי לבחון אילו איזורים בתמונה השמאלית תורמים יותר מאשר אחרים לבחירה בקלאס "פודל מיניאטורי" (באדום) ואילו איזורים מפריעים לכך (בכחול)

  4. יצירה ואימון של רשתות בעלות מספר קלטים ופלטים – ניתן כעת להגדיר ולאמן רשתות המקבלות קלטים ממגוון מקורות וסוגי מידע והמוציאות הן חיזויים בדידים (קלאסיפיקציה) והן רציפים (רגרסיה). למידע נוסף – לחצו פה.
  5. שיפור ביצועי האימון באמצעות מגוון אפשרויות לנירמול המידע – הנ"ל מתאפשר באמצעות שדה ה-Normalization של שכבת הקלט (לחצו למידע נוסף).
  6. הרחבת התמיכה ב-ONNX – כזכור, מזה מספר גרסאות ניתן לייבא לתוך MATLAB מודלים שפותחו ואומנו בסביבות Deep Learning אחרות ולייצא מודלים מ-MATLAB אליהן. החל מהגרסה החדשה אפשר לייצא לפורמט ONNX גם רשתות המשלבות שכבות CNN עם שכבות LSTM, וכן רשתות המכילות שכבות 3D CNN.
  7. קריאה לספריות Python כ-Process נפרד – ניתן כעת לקרוא למשל ל-TensorFlow ו-PyTorch כ-Process נפרד, כדי למנוע התנגשויות (לחצו למידע נוסף).
  8. חישוב Activations של שכבות ביניים ברשתות LSTM – פקודת activations תומכת כעת גם ברשתות LSTM (לחצו לדוגמה).
  9. הצגת תמונות Deep Dream גם עבור רשתות DAG – פקודת deepDreamImage תומכת כעת גם ברשתות DAG ומאפשרת לייצר גם עבורן תמונות הגורמות להן לאקטיבציה חזקה, דבר המאפשר לבחון אילו פיצ'רים הרשתות למדו.
  10. ריפוד וקטימת רצפים מצד שמאל – ניתן כעת לשלוט על כיוון הריפוד/הקטימה בעבודה עם רשתות LSTM, דבר העשוי להשפיע על דיוק החיזוי, הסיווג והאימון. הנ"ל מתאפשר באמצעות שדה ייעודי בפקודה המשמשת להגדרת הגדרות האימון.
  11. Labeling של אותות – לארסנל העשיר של כלי ה-Labeling בסביבת MATLAB, אשר עד הגרסה הקודמת כלל את ה-
    Image Labeler, Video Labeler, Ground Truth Labeler ו-Audio Labeler, נוסף ב-R2019a ה-Signal Labeler. הכלי האחרון מאפשר כעת לבצע אוטומציה לתהליך ה-Labeling על ידי שימוש בפונקציות מותאמות אישית (לחצו לדוגמה), וכן מסוגל לאתר נקודות מינימום ומקסימום מקומיות באותות. הכלי הלפני אחרון, המיועד לעוסקים בתחום ה-Audio, מסוגל כעת לבצע Labeling בצורה אוטומטית לאיזורים שבהם זוהה דיבור, וכן תומך כעת בביצוע תעתיק Speech-to-text באמצעות Speech APIs דוגמת אלה של IBM ,Google ו-Microsoft (לחצו למידע נוסף).
  12. אוגמנטציה – ליכולות האוגמנטציה הנוחות בסביבת MATLAB, אשר התמקדו עד כה רק בעולם עיבוד התמונה (imageDataAugmenter, AugmentedImageDatastore), נוספה התמיכה בביצוע אוגמנטציה בטכניקות ייעודיות לתחום ה-Audio. הפונקציה שמאפשרת זאת, audioDataAugmenter, מאפשרת לשלב גם אלגוריתמי אוגמנטציה מותאמים אישית.
    באשר לתחום עיבוד התמונה – יש כעת תמיכה בפעולות אוגמנטציה נוספות, כמו חיתוך של תמונות דו-ממדיות ותלת-ממדיות, התמרות אפיניות ועוד…לחצו פה לדוגמאות (שימו לב לכך שלכל הפקודות המכילות את התווים "2d" ומיועדות לאוגמנטציה של תמונות דו-ממדיות יש גם מקבילות עם התווים "3d" המיועדות עבור אוגמנטציה של תמונות תלת-ממדיות). משתמשים המאמנים גלאי אובייקטים יכולים להפעיל את פעולות האוגמנצטיה המוזכרות למעלה גם על ה-bounding boxes (לחצו לדוגמאות).
  13. Datastores – שימוש ב-Datastores מאוד מקל על עבודה עם אוספים גדולים של מידע, דבר הנפוץ במיוחד בתחום ה-Deep Learning. לרשימת ה-Datastores השימושיים בתחום (קישור) נוסף בגרסה החדשה ה-boxLabelDatastore, שמאפשר ליצור datastore עבור ה-bounding boxes של מידע תיוג של class-ים שונים. בנוסף, הפונקציות trainFasterRCNNObjectDetector ,trainFastRCNNObjectDetector ,trainYOLOv2ObjectDetector ,evaluateDetectionPrecision ו-evaluateDetectionMissRate  תומכות כעת ב-datastores.
  14. חילוץ patch-ים אקראיים – הפקודה randomPatchExtractionDatastore, אשר נוספה לפני כשנה במטרה לאפשר חילוץ של patch-ים במיקומים רנדומליים בדו-מימד מתוך תמונות רגילות או תמונות המתויגות ברמת הפיקסל, תומכת כעת גם בתלת-מימד וכן ב-Datastores שעברו טרנספורמציה (אשר בבסיסם הינם ImageDatastore או PixelLabelDatastore), ותהליך האימון שמשתמש בתוצר שלה ניתן כעת להאצה בעזרת ה-Parallel Computing Toolbox.
  15. Global Average Pooling – תוספת של שכבה חדשה, המסייעת בהפחתת מימדי הרשת ובמניעת Overfitting. קיימת שכבה למידע 2D  (קישור) ושכבה עבור מידע 3D (קישור).
  16. מגוון דוגמאות חדשות לתחומי יישום שונים – למשל, דוגמה לביצוע סיווג, העושה שימוש באוביקט ה-bigimage החדש שנועד לעבודה עם תמונות גדולות במיוחד, כמו צילומי לווין ותמונות רפואיות ברזולוציה גבוהה (לחצו לדוגמה).
  17. יצירת קוד C++/CUDA והורדה אוטומטית של רשתות לחומרה – ה-GPU Coder (המשמש ליצירה אוטומטית של קוד CUDA מתוך MATLAB) מאפשר כעת יצירת קוד גם עבור RNNs כמו רשתות LSTM, ובכלי הזה וכן ב-MATLAB Coder (המשמש ליצירת קוד ++C) נוספה תמיכה בארכיטקטורות נוספות ושכבות חדשות (לחצו פה לרשימה המלאה עבור ה-GPU Coder; לחצו כאן לרשימה עבור ה-MATLAB Coder). בשני הכלים הללו, MATLAB Coder ו-GPU Coder, נוספה כעת תמיכה על ידי MATLAB Online, שזו דרך להשתמש ב-MATLAB מכל דפדפן אינטרנט סטנדרטי (למידע על היתרונות שבכך – לחצו פה). פרט לכך נוספה תמיכה בספריית TensorRT של NVIDIA בעת יצירת קוד CUDA בסביבת Windows (לחצו למידע) ותמיכה בהורדת קוד למערכת Embedded העושה שימוש ב-ARM Mali GPU (לחצו למידע נוסף). למטה ניתן למצוא השוואות עדכניות של קצבי פריימים שניתן להשיג על חומרות שונות באמצעות שימוש ב-GPU Coder ליצירת קוד מתוך רשת Deep Learning ב-MATLAB, לעומת שימוש בסביבות קוד פתוח (כל אחת עם טכנולוגיית ההאצה שלה):

    סביבת MATLAB וכלי יצירת הקוד שלה (בצהוב) מהירים פי 2 מהסביבות PyTorch ו-TensorFlow (בירוק וכחול, בהתאמה) עבור Inference של ResNet-50 על Desktop

    גם על Embedded Target כמו Jetson TX2 – ה-GPU Coder שפועל בסביבת MATLAB (בצהוב) משיג קצב פריימים גבוה יותר מאשר סביבת TensorFlow (כחול) ב-Inference של ResNet-50, כששתי ההשוואות עושות שימוש ב-TensorRT של חברת NVIDIA

  18. Reinforcement Learning – בכלי הייעודי לתחום זה נוספה תמיכה בהרצת מספר סימולציות של Agent בו זמנית, כדי לבצע וריפיקציה ל-Policies מאומנות (היכולת מצריכה כלי מיקבול נוסף/נוספים, כתלות בסביבת ההרצה – מחשב מרובה ליבות, חוות מחשבים או ענן). כמו כן, פרט לתמיכה שהיתה קיימת באימון תוך שימוש באלגוריתמים דוגמת Q learning, PG, DQN, DDPG, A2C/A3C ו-SARSA, ניתן כעת גם לאמן Policies תוך שימוש באלגוריתם PPO לצורך שיפור יציבות האימון (לחצו למידע נוסף).
  19. Text Analytics – בכלי הייעודי לניתוח טקסט ניתן כעת לבצע Sentiment Scoring לתוכן של מדיה חברתית באמצעות אלגוריתמים דוגמת VADER. בנוסף אפשר כיום לבצע אתחול שכבת Word Embedding באמצעות Word Embeddings מאומנות ויצירת ה-Word Encoding התואם ישירות מתוך ה-Word Embedding Vocabulary (לחצו לדוגמה).
  20. ביצוע Wavelet Time Scattering על GPU – לפני כשנה נוספה ל-Wavelet Toolbox הפקודה waveletScattering, המאפשרת לייצר בצורה אוטומטית ייצוגים רובסטיים של סדרות זמן, לצורך ביצוע סיווג שלהן או רגרסיה (כחצי שנה אחרי כן נוספה גם הפקודה waveletScattering2 המיועדת לעבודה עם תמונות). החל מהגרסה החדשה ניתן להשתמש ב-GPU של NVIDIA כדי להאיץ את תהליך חילוץ הפיצ'רים האוטומטי עבור סדרות זמן (לדוגמה בה משתמשים בכך לצורך סיווג של סגנונות מוסיקליים של קטעי מוסיקה, לחצו פה; לדוגמה בה משתמשים בכך לצורך זיהוי של ספרות אשר נאמרות בקטע קול, לחצו פה).

ויש כמובן עוד חידושים עליהם ניתן לקרוא בתיעוד…

 

לסיכום, היכולות החדשות בתחום ה-Deep Learning בסביבת MATLAB יחד עם היכולות שהיו קיימות בכלי בעבר, הופכות את  התוכנה לתוכנה מובילה לתחום ה-Deep Learning, כפי שגם קבעה בתחילת השנה חברת המחקר והייעוץ בטכנולוגיית המידע Gartner, אשר מייעצת באופן אובייקטיבי ליותר מ-15,000 חברות ברחבי העולם (לחצו למידע נוסף).

 

בין היתרונות של MATLAB בעולם ה-Deep Learning:

  • Labeling מהיר ונוח, באמצעות מגוון Apps. מאפשר לסמן bounding boxes בתמונות/וידאו או לבצע תיוג ברמת הפיקסל לצורך סגמנטציה סמנטית ואף לבצע אוטומציה לתהליך וכן לתייג קטעי אודיו ואותות אחרים.
  • בניה מהירה של רשת חדשה או עריכה קלה של רשת מוכנה, באמצעות פקודות ו/או ממשק גרפי
  • מהירות אימון (ניתן להאיץ את התהליך עוד יותר באמצעות שימוש פשוט ונוח בחומרות נוספות כמו מספר GPUs, חוות מחשבים וענן)
  • מהירות Inference
  • אפשרות להמיר בצורה אוטומטית את קוד ה-MATLAB לקוד CUDA מהיר וחסכוני בזיכרון לצורך מימוש על מערכות Embedded או לקוד ++C  עבוד מעבדים של אינטל ופלטפורמות ARM. אם אתם רוצים להתנסות בגרסת בטא של הפיצ’ר המאפשר המרה לקוד עבור FPGA – כתבו למטה.
  • אפשרות לייבא לתוך MATLAB  מודלים שפותחו ואומנו בסביבות Deep Learning אחרות ולייצא מודלים מ-MATLAB אליהן, באמצעות פורמט ONNX
  • נוחות עבודה – הודות לשימוש בסביבת פיתוח המיועדת למהנדסים ומדענים
  • תמיכה מלאה במערכת ההפעלה Windows בנוסף לתמיכה במערכות הפעלה אחרות
  • יכולות ויזואליזציה ודיבאגינג– צפיה ב-activations, הצגת Deep Dream Images, צפיה במשקולות, בחינה של התקדמות האימון בכיוון הנכון, תצוגה גרפית של הרשת לצורך איתור בעיות אפשריות לפני ביצוע האימון, הצגת Class Activation Mapping וכו'…
  • תיעוד מקיף וברור ומגוון דוגמאות מוכנות לשימוש, כמיטב המסורת של סביבת  MATLAB
  • תמיכה טכנית מקצועית בטלפון 03-7660111 לבעלי רישיון תחת חוזה שירות.

 

מה הלאה?

ההשקעה של MathWorks בתחום ה-Deep Learning נמשכת, וצפויים חידושים משמעותיים גם בשנת 2020. אם יש יכולות שאתם זקוקים להן והן עדיין לא נכללות בכלים – אתם מוזמנים לכתוב זאת למטה בתגובה ואשמח לבדוק עבורכם האם הן מתוכננות (ובמידה ולא – אעביר אותן לצוות הפיתוח על מנת שישקול לעבוד עליהן).

רוצים להתנסות בעבודה על Deep Learning  בסביבת MATLAB  ללא התחייבות, בזמנכם החופשי, ומבלי להתקין שום דבר על המחשב? אתם מוזמנים לנסות את ה-Hands On Tutorial החינמי באתר MathWorks . לא צריך רישיון ל-MATLAB  בשביל לעבוד איתו, הכל מבוצע דרך הדפדפן. ה-Hands On אמור לקחת לכם כשעתיים, וניתן לעצור אותו בכל שלב ולהמשיך כאשר אתם רוצים. לכניסה – לחצו פה.

לשיחה עם מהנדס מכירות לצורך קבלת מידע נוסף ו/או תיאום פגישת הדגמה – התקשרו לטלפון 03-7660111 או שלחו מייל אליי ל- royf@systematics.co.il.

לצפיה בסיפורי משתמשים ישראלים – לחצו פה או פה.

לצפיה ב-הרצאות בעברית בנושא Deep Learning מתוך הכנס השנתי של חברת סיסטמטיקס  – לחצו כאן.

למידע בנוגע לקורס "Deep Learning עם MATLAB" של יום שלםלחצו פה.

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

 

פיתוח מכשור רפואי חדשני באמצעות SOLIDWORKS ומדפסות תלת-ממד בחברת Allium Medical

"זה משהו שאני יכול לעשות במהלך יום עבודה אחד: לתכנן ב-SOLIDWORKS, להדפיס במדפסת תלת-ממד ותוך
4-5 שעות יש לי את המוצר ביד
".

מדפסות התלת-ממד המקצועיות מבית Formlabs ו- Markforged מאפשרות לחברת Allium Medical לתכנן ולפתח מכשור רפואי חדשני בלוחות זמנים ובתקציבים שלא היו אפשריים בעבר. מדפסת Form 2 להדפסת חלקים מדויקים מאוד ובמגוון של חומרים ומדפסת Mark 2 להדפסת חלקים פונקציונליים וחזקים מאוד.

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

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

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

מתקן מודפס לבדיקות אבי טיפוס

שחף, מהנדס פיתוח משתף אותנו בתהליך:

Vertex Medical (חברת בת של Allium Medical) מפתחת מוצר שמטרתו להחליף ניתוח מעקפים ומגוון פרוצדורות פולשניות על מנת למנוע או לשפר איכות חיים של סוכרתיים כתוצאה מהשמנת יתר.

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

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

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

אב טיפוס מודפס

חומר מודפס במוצר עצמו

למידע נוסף על מדפסות תלת-ממד מקצועיות והשימוש בהן לטובת הדפסת אבי טיפוס

סימולציות דיגיטליות לבדיקת החלק המודפס

מריה, מהנדסת פיתוח מוסיפה:

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

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

 

לסיכום

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

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

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

>>למידע נוסף על חברת :Allium Medical – לחצו כאן!

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