מה זה למידת מכונה?

מבוא ללמידת מכונה

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

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

אז מה זה למידת מכונה?

ובכן למידת מכונה – Machine Learning (ML) – זהו תהליך אימון של תוכנה, הנקראת מודל, כדי שהיא תוכל לייצר תצפיות או לייצר תוכן מתוך דאטה.
לדוגמה, נניח ואנחנו רוצים ליצור אפליקציה שחוזה האם ירד גשם. אנחנו יכולים להשתמש בגישה המסורתית או בגישה של ML.

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

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

מילון מושגים בסיסי

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

  • דאטה – Data
  • מודל – Model
  • אימון – Training
  • מאפייני מודל נתונים – dataset

דאטה

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

  • תמונות של חתולים
  • מחירי בתים
  • מידע של מזג אוויר

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

דוגמאות אשר מכילות גם את הפיצ׳רים וגם את התגיות נקראות דוגמאות עם תשובות (labeled examples). בניגוד לזה, דוגמאות שמגיעות רק עם הפיצ׳רים ובלי התגית נקראות unlabeled examples. אחרי שאנחנו ניצור מודל הוא יחזה את התגיות מתוך הפיצ׳רים.

תאריךקו אורךקו רוחבטמפרטורהלחותעננותכיוון הרוחלחץ אטמוספריכמות גשם
09.09.202149.71N82.16W16203צפונית18.60.01
09.09.202132.71N117.16W20426דרום מערבית29.940.23

מאפייני מבני הנתונים

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

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

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

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

מודל

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

אימון

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

סוגים של למידת מכונה

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

  • למידה מפוקחת – supervised learning
  • למידה לא מפוקחת – unsupervised learning
  • למידת חיזוק – Reinforcement learning
  • בינה מלאכותית יוצרת – Generative AI

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

למידה מפוקחת – Supervised learning

מודלי supervised-learning יכולים לבצע תחזיות רק אחרי שהם רואים מידע עם התשובות הנכונות של התחזיות, ואז לפי הסיווג הזה הם לומדים את החיבורים בין האלמנטים השונים בדאטה שלנו, ולפי זה יודעים לייצר את התשובות הנכונות גם על קלט שהם לא ראו לפני זה.
אפשר לדמות את זה לסטודנט שלומד חומר חדש על ידי למידה של בחינות עבר (יש מישהו שלא למד ככה באוניברסיטה?) שיש בהן גם את התשובות הנכונות לשאלות. אחרי שהסטודנט עבר על מספיק בחינות הוא מוכן מספיק כדי לגשת לבחינה חדשה שהוא לא ראה לפני.
מערכות ה-ML הללו הן ״מפוקחות״ במובן שאדם נותן למכונה מידע עם התשובות הנכונות.

שתי הדוגמאות הנפוצות ביותר ב-supervised learning הן #regression ו- #classification

רגרסיה – Regression

מודל רגרסיה – חוזה ערך מספרי. למשל מודל של מזג אוויר יכול לחזות את כמות הגשם במ״ל או באינצ׳ הוא מודל רגרסיה.

הנה עוד כמה דוגמאות למודלי רגרסיה:

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

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

מודלי קלסיפיקציה מחולקים לשני סוגים:

  1. קלסיפיקציה בינארית – binary classification
  2. קלסיפיקציה מרובת קטגוריות – multi-class classification

קלסיפיקציה בינארית יודעת להבחין בין שתי אופציות (קלאס – class) בלבד. כלומר הוא יודע לענות על שאלות של כן או לא? האם יהיה גשם או לא יהיה?
קלסיפיקציה מרובת קטגוריות יודעת להבחין ביותר משתי קלאסים, כלומר המודל ידע לחזות האם יהיה גשם או איזה סוג של גשם יהיה (שלג, ברד, ערפל וכו׳)

אז אם היינו רוצים להשתמש במודל ML על מנת לחזות את צריכת האנרגיה בבניינים מסחריים, באיזה מודל היינו צריכים להשתמש?

חשבו רגע לפי שתקראו את התשובה:

תשובה

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

Unsupervised Learning

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

מודל נפוץ מסוג unsupervised learning משתמש בטכניקה שנקראת #clustering. המודל מוצא במידע נקודות נתונים אשר תוחמות את המידע לקבוצות בצורה טבעית.

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

קרדיט: גוגל
קרדיט: גוגל

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

אז מה מבדיל בין גישת ה-supervised לבין גישת ה-unsupervised?

תשובה

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

Reinforcement learning

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

Generative AI

אלו מדולי למידת מכונה אשר יוצרים תוכך על בסיס הקלט של המשתמש. למשל מודל אשר יודע לייצר תמונות (Dall E), מוזיקה, או בדיחות. לסכם מאמרים, להסביר איך לבצע את משימה או לערוך תמונה.
המודלים הפופולריים ביותר היום הם כאלה:

  • ChatGPT של open-ai
  • Gemini של גוגל
  • Claude של Anthropic

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

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

  • טקסט-ל-טקסט
  • טקסט-ל-תמונה
  • טקסט-ל-וידאו
  • טקסט-ל-קוד
  • טקסט-ל-דיבור
  • תמונה וטקסט-ל-תמונה
איך generative AI עובד?

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

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

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

השאר תגובה

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

Scroll to Top