מה זה TensorFlow? הסבירו ספריית למידת המכונה

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

נוצר על ידי צוות המוח של גוגל, TensorFlow היא ספריית קוד פתוח לחישוב מספרי ולמידת מכונה בקנה מידה גדול. TensorFlow מצרף יחד שלל מודלים ואלגוריתמים של למידת מכונה ולמידה עמוקה (המכונה גם רשת עצבית) והופך אותם לשימושיים באמצעות מטאפורה משותפת. היא משתמשת בפייתון כדי לספק ממשק API מקומי נוח לבניית יישומים עם המסגרת, תוך ביצוע יישומים אלה ב- C ++ ביצועים גבוהים.

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

איך עובד TensorFlow

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

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

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

ניתן להריץ יישומי TensorFlow בכל יעד שנוח: מכונה מקומית, אשכול בענן, מכשירי iOS ו- Android, מעבדים או GPUs. אם אתה משתמש בענן של גוגל עצמו, תוכל להריץ את TensorFlow בסיליקון TensorFlow Processing Unit (TPU) המותאם אישית של גוגל לצורך האצה נוספת. המודלים המתקבלים שנוצרו על ידי TensorFlow, עם זאת, יכולים להיות פרוסים על כל מכשיר שבו הם ישמשו לשרת חיזויים.

TensorFlow 2.0, שפורסם באוקטובר 2019, חידש את המסגרת בדרכים רבות על סמך משוב משתמשים, כדי להקל על העבודה איתה (למשל, באמצעות ממשק ה- API הפשוט יחסית של Keras לאימון מודלים) וביצועים יותר. אימון מבוזר קל יותר להפעלה הודות לממשק API חדש, ותמיכה ב- TensorFlow Lite מאפשרת לפרוס מודלים במגוון גדול יותר של פלטפורמות. עם זאת, קוד שנכתב עבור גרסאות קודמות של TensorFlow חייב להיות כתוב מחדש - לפעמים רק מעט, לפעמים באופן משמעותי - כדי לנצל את המרב מהתכונות החדשות של TensorFlow 2.0.

יתרונות TensorFlow

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

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

TensorFlow זוכה גם להרבה יתרונות מהגיבוי של תלבושת מסחרית ברשימה A בגוגל. גוגל לא רק הזניקה את קצב הפיתוח המהיר שעומד מאחורי הפרויקט, אלא יצרה הצעות רבות ומשמעותיות סביב TensorFlow המקלות על הפריסה והקלה יותר לשימוש: סיליקון TPU הנ"ל לביצועים מואצים בענן של גוגל; מרכז מקוון לשיתוף מודלים שנוצרו במסגרת; גלגולים מסגרת בתוך הדפדפן והנייד. ועוד הרבה.

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

סרטון בנושא: למידת מכונה ופענוח AI

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

TensorFlow לעומת התחרות

TensorFlow מתחרה עם שלל מסגרות למידת מכונה אחרות. PyTorch, CNTK ו- MXNet הן שלוש מסגרות עיקריות העונות על רבים מאותם צרכים. להלן ציינתי היכן הם בולטים ומגיעים נגד TensorFlow.

  • PyTorch , בנוסף לבנייה עם Python, ויש לה קווי דמיון רבים אחרים ל- TensorFlow: רכיבים מואצים חומרה מתחת למכסה המנוע, מודל פיתוח אינטראקטיבי במיוחד המאפשר עבודה תוך כדי תנועה, ורכיבים שימושיים רבים שכבר נכללו. בדרך כלל PyTorch היא בחירה טובה יותר לפיתוח מהיר של פרויקטים שצריכים לפעול תוך זמן קצר, אך TensorFlow זוכה בפרויקטים גדולים יותר ובתהליכי עבודה מורכבים יותר.

  • CNTK , ערכת הכלים הקוגניטיבית של מיקרוסופט, כמו TensorFlow משתמשת במבנה גרפי לתיאור זרימת נתונים, אך מתמקדת בעיקר ביצירת רשתות עצביות למידה עמוקה. CNTK מטפלת בעבודות רשת עצביות רבות מהר יותר, ויש לה מערך API רחב יותר (Python, C ++, C #, Java). אבל CNTK כרגע לא קל ללמוד או לפרוס כמו TensorFlow.

  • אפאצ'י MXNet , שאומצה על ידי אמזון כמסגרת הלימוד העמוקה המובילה ב- AWS, יכולה להתמקד כמעט באופן ליניארי במספר GPUs ומספר מכונות. הוא תומך גם במגוון רחב של ממשקי API של שפה - Python, C ++, Scala, R, JavaScript, Julia, Perl, Go - אם כי ה- API המקורי שלה לא נעים לעבוד איתו כמו של TensorFlow.