מה חדש בתחומי AI ו-Data Science בגרסאות R2021b ו-R2022a?
גרסאות R2021b ו-R2022a של כלי MathWorks כוללת יכולות חדשות בכל הכלים הקיימים בסביבות MATLAB ו-Simulink. פוסט זה מתמקד ביכולות החדשות העיקריות בתחומי AI ו-Data Science.
עשינו סדר בתחום ע"י חלוקה לשלושה חלקים:
1. Statistics and Machine Learning Toolbox
מוצר זה מכיל כלים מתקדמים לשימוש חכם בסטטיסטיקה תיאורית, בהדמיות, ביכולות מתוחכמות לניתוח נתונים, לביצוע מבחני השערות ועוד.
הפונקציות המתקדמות מאפשרות התאמת התפלגויות הסתברות לנתונים, ביצוע אלגוריתמי רגרסיה וסיווג לצורך הסקת מסקנות ממגוון מודלים בשתי דרכים: באמצעות האפליקציות Classification Learner ו-Regression Learner או באמצעות כתיבת קוד עם AutoML.
מוצר זה הינו ארגז כלים רחב והוא כולל גם כלים לניתוח נתונים רב מימדי ומיצוי תכונות ע"י ניתוח רכיבים עיקריים (PCA), רגולריזציה, הפחתת מימד ושיטות בחירת תכונות המאפשרות זיהוי משתנים עם כושר הניבוי הטוב ביותר.
משתמשי MATLAB עושים בו שימוש במגוון מאוד רחב של תחומים, כגון:
- תעופה וחלל – חקר אותות מכ"ם ואותות אחרים, גילוי חריגות ובניית מודלי חיזוי
- מכשירים רפואיים – בניית אלגוריתמים של למידת מכונה הניתנים להחלה על גבי סדרות זמן ביו-רפואיות ונתוני תמונה לפיתוח יישומים תוך עמידה בתקנים רגולטוריים
- תקשורת ועיבוד אותות – סיווג אותות שמע ואחרים, דגימת התקנים אלחוטיים, ניתוח סימולציות מעגלים משולבים
- אוטומציה ומכונות תעשייתיות – החלת סטטיסטיקה רב-משתנית ומידול חיזוי על נתוני תהליכים תעשייתיים, ניטור תהליכי ייצור ואיכות המוצר, שיפור הנצילות והתנובה (yield)
- ייצור אנרגיה – חיזוי ביקוש לאנרגיה, פיקוח על ציוד ייצור וייעול עיבוד של כימיקלים בנפט וגז.
- פיננסים וניהול סיכונים כמותיים – אימון, השוואה ואופטימיזציה של מודלים למסחר אלגוריתמי, הקצאת נכסים, סיכוני אשראי וזיהוי הונאה
- ביוטכנולוגיה ותרופות – ניתוח נתונים קליניים וביצוע מידול וסימולציה לגילוי ופיתוח של תרופות
החידושים האחרונים
בלוק חיזוי תהליכי גאוס: הדמיית מודל ויצירת קוד ב-Simulink
כעת ניתן לשלב את פונקציית החיזוי של אובייקט רגרסיה של תהליך גאוס (GP) כחלק ממודל Simulink באמצעות בלוק החיזוי החדש RegressionGP Predict במקום בלוק של פונקציות MATLAB. ניתן לייבא מודל מאומן ולהגדיר סוגי נתונים באמצעות תיבת Block Parameters.
בלוק RegressionGP Predict מנבא תגובות לנתונים חדשים באמצעות אובייקט רגרסיה GP מיובא (RegressionGP או CompactRegressionGP). הבלוק יכול גם להחזיר את סטיות התקן ומרווחי החיזוי של התגובות.
הבלוק תומך ביצירת קוד ++C/C (דרך Simulink Coder) וייצוג ב-Fixed Point (באמצעות Fixed-Point Designer).
איור 1 בלוק RegressionGP Predict
שימוש באלגוריתמים של דירוג תכונות כדי לבחור ניבוי מתאים
לפני אימון מודלים ב-Classification Learner או ב-Regression Learner, ניתן לקבוע אילו מכלל התכונות חשוב לכלול באלגוריתם באמצעות יכולת הדירוג החדשה. לאחר בחירת אלגוריתם לדירוג תכונה, האפליקציה מציגה את הציון של כל תכונה לפי רמת החשיבות שלה. האפליקציה מציגה גם את התכונות המדורגות וגם את הציונים שלהן בטבלה.
כדי להשתמש באלגוריתמים של דירוג תכונה ב- Classification Learner או ב-Regression Learner, לחץ על בחירת תכונה בחלק האפשרויות של הכרטיסייה Classification Learner או לומד רגרסיה. האפליקציה מאפשרת לבחור את האלגוריתם, בין אם זה MRMR (רלוונטיות מקסימלית יתירות מינימלית), Chi2, ReliefF, ANOVA (ניתוח חד-כיווני של שונות), או אלגוריתם Kruskal Wallis לסיווג, או מבחן MRMR, F, או אלגוריתם RReliefF עבור רגרסיה ועוד..
הוספת Live Task חדש ואינטראקטיבי ב-Live Editor למשימה נפוצה בתחום למידת מכונה – שימוש באלגוריתם האישכול (clustering)k-means בצורה נוחה וישירה:
איור 2 Cluster Data Task in the Live Editor
ניתן לבחור את מספר האשכולות באופן ידני או לבחור אינטראקטיבית כדי להעריך את המספר האופטימלי. ניתן גם לציין פרמטרים אופציונליים של אשכולות, כולל מדד המרחק ומספר השכפולים. בצורה ויזואלית נוחה ניתן לחקור באופן אינטראקטיבי את ההשפעות של שינויי ערכי פרמטרים שונים. כמו כן ניתן גם ליצור אוטומטית קוד MATLAB שמשתלב בתוך הסקריפט.
2. Deep Learning Toolbox
המוצר מספק מסגרת לתכנון והטמעה של רשתות עצביות עמוקות עם אלגוריתמים ומודלים מאומנים מראש. ניתן להשתמש ב-Convolutional Neural Networks (ConvNets, CNNs) וברשתות זיכרון לטווח קצר (LSTM) כדי לבצע סיווג ורגרסיה על נתוני תמונה, סדרות זמן וטקסט. כמו כן ניתן לבנות ארכיטקטורות רשת כגון: GANs ורשתות סיאמיות באמצעות בידול אוטומטי, לולאות אימון מותאמות אישית ומשקולות משותפים. עם אפליקציית Deep Network Designer ניתן לעצב, לנתח ולאמן רשתות בצורה גרפית. אפליקצייתExperiment Manager עוזרת לנהל ניסויי למידה עמוקה מרובים, לעקוב אחר פרמטרי אימון, לנתח תוצאות ולהשוות קוד מניסויים שונים.
החידושים האחרונים
- יצירה ואימון של רשתות עבור נתוני רצף וסדרות זמן (time series data)
- ניתן ליצור ולאמן רשתות למידה עמוקה עם שכבות קונבולוציה חד-מימדית עבור נתוני רצף וסדרות זמן
- כעת ניתן גם ליצור שכבת קונבולוציה שעברה היפוך (transpose) בקלות ובנוחות בעזרת הפונקציה transposedConv1dLayer. הפונקציה מחזירה אובייקט מוכן מסוג TransposedConvolution1DLayer.
- לדוגמה כיצד לבצע זיהוי אנומליות באמצעות שכבת קונבולוציית transpose, היכנסו לקישור הזה.
- ייצוא של רשתות מאומנות ל-Simulink.
- החל מ-R2022a, אפליקציית Experiment Manager תומכת בטעינת ניסויים ל-cluster (משאבי מחשוב וירטואליים). ניתן להגדיר את ה-cluster כך שיפעיל מספר ניסויים בו-זמנית או להפעיל ניסוי בודד בכל פעם על מספר ליבות במקביל. בזמן שהניסוי רץ ניתן להריץ גם ניסויים אחרים. כלומר, גם כאשר סוגרים את האפליקציה העבודות מתבצעות מאחורי הקלעים, כך שניתן להמשיך להשתמש ב-MATLAB באופן חופשי!
לצורך זה נדרש Parallel Computing Toolbox. מידע נוסף בקישור זה. - יצירת גרסה דחוסה של מודלים שצורכת פחות משאבי חישוב תוך שימוש בקוונטיזציה
- MATLAB Deep Learning Model Hub – מאגר מידע ב-GitHub המכיל מודלים של למידה עמוקה שאומנו מראש.
- ניתן להשתמש ב-MATLAB Coder או GPU Coder יחד עם Deep Learning Toolbox כדי לייצר קובץ MEX או קובץ standalone עבור רשת מיובאת. אפשר לייצר קוד עבור כל רשת מיובאת אשר השכבות שלה נתמכות.
- רשימת השכבות שנתמכות לייצור קוד עבור MATLAB Coder – זמינה כאן
- רשימת השכבות שנתמכות לייצור קוד עבור GPU Coder – זמינה כאן
- בנוסף, ניתן כעת גם לייצר קוד ++C/C עבור השכבות הבאות ב-Keras וב-ONNX:
- nnet.keras.layer.GlobalAveragePooling2dLayer
- nnet.keras.layer.FlattenCStyleLayer
- nnet.keras.layer.ZeroPadding2dLayer
- nnet.onnx.layer.ElementwiseAffineLayer
- nnet.onnx.layer.FlattenLayer
- וכמו כן, לייצר קובץ MEX או קובץ standalone CPU או standalone CUDA עבור השכבות הבאות ב-Keras וב-ONNX:
- nnet.keras.layer.ClipLayer
- nnet.keras.layer.PreluLayer
- nnet.keras.layer.TimeDistributedFlattenCStyleLayer
- nnet.onnx.layer.ClipLayer
- nnet.onnx.layer.GlobalAveragePooling2dLayer
- nnet.onnx.layer.PreluLayer
- nnet.onnx.layer.SigmoidLayer
- nnet.onnx.layer.TanhLayer
3. Curve Fitting Toolbox
המוצר מאפשר להתאים עקומות ומשטחים לנתונים, וביצוע ניתוח נתונים לצורך השוואת מודלים ולהסרת נתונים חריגים. ניתן לבצע ניתוח רגרסיה באמצעות ספריית המודלים הליניאריים והלא-ליניאריים המובנים, או להגדיר משוואות מותאמות אישית. המוצר תומך גם בטכניקות מידול לא פרמטריות, כגון Spline, אינטרפולציה והחלקה.
לאחר יצירת התאמה, ניתן ליישם מגוון שיטות עיבוד, כגון: אינטרפולציה ואקסטרפולציה; הערכת רווחי סמך; וחישוב אינטגרלים ונגזרות.
החידושים האחרונים
Curve Fitting app נקרא עכשיו Curve Fitter App, והוא למעשה כולל את כל הפונקציונליות שהייתה בעבר ב-cftool ו-sftool.
שימוש ב-Toolstrip חדש לשיפור קלות השימוש
בעת בחירת נתונים עבור התאמת עקומות או משטחים ב-Curve Fitter, ניתן להשתמש במשתנים מסוג Table. עבור כל משתנה נתונים (X Data, Y Data, Z Data או Weights), נבחר תחילה את שם הטבלה ולאחר מכן את השם של משתנה העמודה שבו ברצוננו להשתמש.
דוגמה מפורטת שמציגה שימוש בנתונים מסוג Table, נמצאת בקישור הזה.
איור 3 דוגמא להתאמת משטח לנתונים
איור 4 פאנל אפשרויות ההתאמה