איך בנויה למידה עמוקה?

רוב שיטות הלמידה העמוקה משתמשות בארכיטקטורות של רשתות עצביות, וזו הסיבה שמודלים של למידה עמוקה מכונים לעתים קרובות Deep Neural Networks.

המונח "Deep" מתייחס בדרך כלל למספר השכבות הנסתרות (Hidden Layers) ברשת העצבית. רשתות עצביות מסורתיות מכילות רק 2-3 שכבות נסתרות, בעוד שרשתות עמוקות יכולות להכיל עד 150 שכבות.

מודלים של למידה עמוקה מאומנים על ידי שימוש בכמות גדולה של דאטה מתויג וארכיטקטורות רשתות עצביות הלומדים תכונות (features) ישירות מהנתונים, ללא צורך בביצוע חילוץ תכונות (feature extraction) באופן ידני.

למידה עמוקה – Deep Learning

Deep Learning היא טכניקה מעולם הMachine Learning שייעודה ללמד מחשבים לעשות את מה שטבעי לבני האדם: למידה באמצעות דוגמא.  תחום ה-Deep Learning  זוכה לתשומת לב רבה לאחרונה ולא בכדי, ניתן באמצעותו להשיג תוצאות למשימות מסובכות, שלא היו אפשריות קודם לכן.

Deep Learning משתמש ברשתות עצביות (Neural Networks) כדי ללמוד ייצוגים שימושיים של תכונות ישירות מנתונים, כלומר ללא צורך בחילוץ פיצ'רים מקדים.

במשימות של Deep Learning אנו מחשבים מודל אשר לומד לבצע משימות סיווג ישירות מתמונות, טקסט או קול למשל.

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

ההבדל בין למידה עמוקה ללמידת מכונה

ניתן להתייחס לתחום הלמידה עמוקה כתת קבוצה של למידת מכונה (Machine Learning).

תהליך העבודה של למידת מכונה מתחילה בחילוץ ידני של תכונות רלוונטיות (features) מהנתונים. הפיצ'רים משמשים לאחר מכן ליצירת מודל שמתאר את הנתונים.

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

הבדל מרכזי נוסף הוא יכולת השיפור המתמיד של אלגוריתמי למידה עמוקה ככל שכמות הנתונים עולה.

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

לכן יתרון מרכזי וחשוב של רשתות למידה עמוקה הוא שלעתים קרובות הן ממשיכות להשתפר ככל שגודל הנתונים גדל.

תכנון רשת נוירונים בגישת Low-Code/No-Code AI

The Experiment Manager App

החל מהרגע שנבנתה הרשת מתחיל התהליך האיטרטיבי של טסטים וביצוע tuning ושיפור הרשת לשיפור התוצאות והדיוק .

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

כלי מאוד שימושי שבא לענות בדיוק על צורך זה הוא ה- Experiment Manager app.

Deep Network Designer App

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

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

ניתן לבנות ולאמן את הרשת שלנו באמצעות אפליקציית Deep Network Designer.

האפליקציה מאפשרת יבוא רשתות קיימות ומוכרות (כולל כאלה שלא פותחו
ב-MATLAB), או בניית רשת מאפס. מהרגע שניטענה הרשת ניתן ממש כמו בתוכנת "צייר" – לערוך, לגרור את העכבר, ללחוץ בלחיצות ולבצע טסטים על הרשת , בין היתר ניתוח אוטומטי של מודלים, ניהול של הנתונים (כולל ביצוע של אוגמנטציות), הגדרת הגדרות האימון, אימון הרשת תוך כדי צפייה בגרף התקדמות האימון, ולבסוף – ייצוא הרשת המאומנת להמשך העבודה.

האצת אימון המודלים באמצעות שימוש ב-GPU

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

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

ניתן להתרשם מבלוג בנושא הטמעת אלגוריתם Deep Learning על גבי Jetson NVIDIA GPU – המתאר תהליך כתיבה קצר שמקצר מאוד את האיטרציות לאימון מחדש ומציאת באגים וכתוצאה מכך מקצר את זמן הריצה.

אינטגרציה עם סביבות AI נוספות

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

MATLAB מאפשרת גישה למחקר העדכני ביותר מכל מקום על ידי ייבוא מודלים ישירות מ-Tensorflow  ו-PyTorch, או ייבוא מודלים מ-Frameworks חיצוניים נוספים באמצעות ONNX, והמעבר הוא דו כיווני כלומר שגם מודלים שאומנו בMATLAB אפשר לייצא להמשך עבודה בסביבות קוד פתוח אחרות בהתאם לצורך.

בנוסף, קריאה מ-Python ל-MATLAB  ולהיפך מאפשרת גמישות מרבית בעת הפיתוח, ויכולת שיתוף פעולה עם עמיתים המשתמשים בקוד פתוח.

יכולת שיתוף הפעולה מאפשרת שימוש למשל ביכולות שונות של MATLAB כמו אפליקציות התיוג השונות או יכולות עיבוד אותות ויצירת קוד GPU, עבור מחקרי ה-Deep Learning העדכניים ביותר מהקהילה.

מידע נוסף

 

מה חדש בתחום ה-Deep Learning בסביבת MATLAB בגרסת R2021a?

למידה עמוקה על הענן עם MATLAB

תיוג אותות בצורה נוחה ומהירה לצרכי למידה עמוקה (Deep Learning)

MATLAB WEBINAR: Deep Learning for Medical Signal Processing | בעברית

MATLAB WEBINAR: Deep learning for signal processing – CES

Why Choose Deep Learning? | Deep Learning for Engineers

 Introducing Deep Learning with MATLAB – EBook 

מלאו פרטיכם וקבלו אליכם למייל קישור להורדת ה-EBOOK


    צרו עמנו קשר: