התאמה אישית של מודלים של למידת מכונה: הדרך הקלה

1. מבוא

2a934d0e86f14118.png

עדכון אחרון: 28.03.2022

למידת מכונה

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

לגרסאות האלה בדרך כלל יש מודל. אפשר להבין מודלים בתור משוואות מתמטיות ארוכות מאוד שבהן קלט (למשל: תמונה) מפיק תוצאה (למשל: סיווג)

  • מה קורה אם רוצים להשתמש באחד מהמודלים החדשים האלה עם נתונים משלכם?
  • איך אתם יכולים ליהנות מהמודלים המתקדמים האלה לתרחיש לדוגמה שלכם או לאפליקציה שלכם?

ה-Codelab הזה ידריך אותך בתהליך ההתאמה האישית של מודלים של למידת מכונה לנתונים שלך, בדרך הקלה.

כשיוצרים ואימון מודלים של למידת מכונה, יש הרבה אתגרים:

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

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

ב-Codelab הזה תלמדו איך לבצע למידה באמצעות Transfer Learning, למה היא פועלת ומתי להשתמש בה.

מה תלמדו

  • מהי ההגדרה 'העברה של למידה' ומתי להשתמש בה.
  • איך משתמשים בהעברת הלמידה.
  • איך לכוונן מודלים.
  • איך להשתמש ב-TensorFlow Lite Model Maker.
  • איך משתמשים ב-TensorFlow Hub.

מה צריך להכין

  • כל הקוד מבוצע באמצעות Google Colaboratory, כך שאין צורך להתקין שום דבר במחשב שלך. כדי להיכנס ל-Colab צריך רק גישה לאינטרנט ולחשבון Google.
  • ידע בסיסי ב-TensorFlow וב-Keras API.
  • ידע ב-Python.

אם אין לכם ידע בסיסי ב-TensorFlow או בלמידת מכונה, אתם עדיין יכולים ללמוד על Transfer Learning. לקריאת השלב הבא – 'מהי תהליך הלמידה של ההעברה' את התיאוריה שמאחורי השיטה, ואז ממשיכים לשלב 'העברת למידה באמצעות Model Maker'. אם אתם רוצים להתעמק בנושא ולראות את התהליך בפירוט רב יותר, תוכלו למצוא אותו בקטעים על Transfer Learning with TensorFlow Hub.

2. מהי העברת הלמידה?

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

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

יש שתי דרכים להתאים אישית מודל למידת מכונה

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

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

תוכלו לנסות את שתי הדרכים (חילוץ תכונות וכוונון) באמצעות שתי דרכים שונות לביצוע למידת העברה:

  • הספרייה של TensorFlow Lite Model Maker מבצעת באופן אוטומטי את רוב צינור עיבוד הנתונים ואת יצירת המודלים, ולכן התהליך הרבה יותר קל. המודל שנוצר ניתן גם לייצא בקלות לשימוש בנייד ובדפדפן.
  • המודלים של TensorFlow Hub מתבססים על המאגר העצום של מודלים של למידת מכונה שזמינים ב-TensorFlow Hub. החוקרים והקהילה תורמים למודלים האלה כדי להפוך את המודלים האמנותיים לזמינים במהירות ובמגוון רחב יותר.

3. העברת הלמידה באמצעות הכלי ליצירת מודלים

עכשיו, אחרי שקראתם את הרעיון שעומד מאחורי Transfer Learning (למידה), נתחיל להשתמש בספרייה של TensorFlow Lite Model Maker כלי שיעזור לכם לעשות זאת בדרך הקלה.

הספרייה TensorFlow Lite Model Maker היא כלי בקוד פתוח שמפשט את התהליך של העברת למידה והופך את התהליך לנגיש יותר למפתחים שלא משתמשים ב-ML, כמו מפתחים של אתרים וניידים.

ה-notebook של Colab ינחה אותך בשלבים הבאים:

  • טוענים את הנתונים.
  • פיצול נתונים.
  • יצירה ואימון של המודל
  • להעריך את המודל.
  • לייצא את המודל.

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

Colaboratory

בשלב הבא נעבור אל Google Colab כדי לאמן את המודל המותאם אישית.

נדרשים כ-15 דקות כדי לעבור על ההסבר ולהבין את העקרונות הבסיסיים של ה-notebook.

יתרונות:

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

חסרונות

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

4. חיפוש מודל ב-TensorFlow Hub

בסוף הקטע הזה תוכלו:

  • חיפוש מודלים של למידת מכונה ב-TensorFlow Hub.
  • הסבר על אוספים.
  • להבין סוגים שונים של מודלים.

כדי לבצע את העברת הלמידה, צריך להתחיל משני דברים:

  • נתונים, למשל תמונות מהנושאים שאתם רוצים לזהות.
  • מודל בסיס שאפשר להתאים אישית לנתונים.

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

TensorFlow Hub הוא מאגר המודלים לצרכים שלכם במודלים של TensorFlow.

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

חיפוש של דגם

קודם יתבצע חיפוש פשוט של מודלים ב-TensorFlow Hub, שתוכלו להשתמש בהם בקוד שלכם בהמשך.

שלב 1: בדפדפן, פותחים את האתר tfhub.dev.

תמונה של הדף הראשי ב-tfhub.dev

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

Feature Vectors יכולים להמיר תמונות לייצוג מספרי במרחב ה-N (כאשר N הוא מספר המידות של שכבת הפלט של המודל).

ב-TFHub אפשר לחפש ספציפית וקטורי פיצ'רים בלחיצה על כרטיס ספציפי.

תמונה של דף tfhub.dev עם ריבוע שמדגיש את המשימה 'וקטור מאפיין'

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

זו תמונה של דף החיפוש מ-tfhub.dev אחרי בחירה במשימה של וקטור מאפיין בדף הראשי

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

זהו הדף של אוסף התמונות מ-tfhub.dev

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

זה הדף של אוסף התמונות מ-tfhub.dev

בדף הפרטים של המודל אפשר לקרוא את כל המסמכים של המודל, לראות קטעי קוד כדי לנסות את המודל או אפילו לנסות אותו ישירות ב-Colab Notebook.

דף פרטים של מודל וקטור של מאפיין mobilenetV3

בינתיים, כל מה שדרוש לך הוא כתובת ה-URL בראש הדף. זאת נקודת האחיזה של המודל, והדרך שבה אפשר לגשת בקלות למודל מספריית TensorFlow Hub.

5. העברת הלמידה באמצעות TensorFlow Hub

עכשיו, אחרי שבחרתם מודל לשימוש, בואו נתאים אותו אישית וטוענים אותו באמצעות method KerasLayer מהספרייה של TensorFlow Hub.

השיטה הזו טוענת מודל שניתן להשתמש בו כשכבה במודל, וכך לבנות את המודל סביב השכבה הזו.

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

Colaboratory

בשלב הבא נעבור אל Google Colab כדי לאמן את המודל המותאם אישית.

נדרשים כ-20 דקות כדי לעבור על ההסבר ולהבין את העקרונות הבסיסיים של ה-notebook.

יתרונות:

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

חסרונות

  • עדיין נדרשת מומחיות ב-TensorFlow/Keras כדי להשתמש במודלים.

אם רוצים להעמיק עוד יותר, אפשר גם לבצע העברת למידה באמצעות אפליקציית Keras. זה תהליך דומה מאוד לשימוש ב-TensorFlow Hub, אבל הוא מבוסס רק על ממשקי ה-API של TensorFlow בליבה.

6. מזל טוב

כל הכבוד, למדת מהי העברה למידה ואיך ליישם אותה על הנתונים שלך!

ב-Codelab הזה למדנו איך להתאים אישית מודלים של למידת מכונה לנתונים שלכם באמצעות שיטה שנקראת Transfer Learning

ניסיתם 2 סוגים של העברת למידה:

  • שימוש בכלי כמו TensorFlow Lite Model Maker.
  • שימוש ב-Feature Vector מ-TensorFlow Hub.

לשתי האפשרויות יש יתרונות וחסרונות, וגם הרבה הגדרות אפשריות לצרכים הספציפיים שלך

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

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

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

השלבים הבאים

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

מידע נוסף

יש לכם שאלה?