מה זה בינה מלאכותית (AI), איך זה קשור ללמידת מכונה (ML) ומאיפה מתחילים ללמוד את זה?
במאמר הזה אסביר כמה מונחים חשוב שכדאי לכם להכיר אם אתם בונים על קריירה בתפקידי AI, למידת מכונה ו- Data Science.
תוכן עניינים
מה זה AI (בינה מלאכותית)?
בינה מלאכותית (artificial intelligence או AI בקצרה) הוא תחום בו תוכנות מחשב או מנגנון טכנולוגי אחר מחקה מנגנון חשיבה אנושי.
בתחום רחב זה יש רמות שונות של בינה מלאכותית. כך למשל יש מערכות שמסוגלות ללמוד דפוסי התנהגות ולהתאים את עצמן לשינויים, ואילו מערכות אחרות אמנם מחקות מנגנון חשיבה אנושי, אך הן לא מתוחכמות מעבר למה שתכנתו אותן בהתחלה.
שואב רובוטי היודע לחשב את גודל החדר ואת מסלול הניקוי האופטימלי פועל לפי פרוצדורה ידועה מראש, ואין בו תחכום מעבר לתכנות הראשוני שלו. לעומת זאת תוכנה היודעת לסנן רעשים באופן מסתגל, או להמליץ על שירים בנגן מוזיקה בהתאם לסגנון של המשתמש, משתמשת בבינה מלאכותית ברמה גבוהה יותר, כיוון שהיא לומדת עם הזמן דברים חדשים.
המונח בינה מלאכותית מתייחס בדרך כלל למערכת שמחקה התנהגות אנושית, אך היא שגרתית, לא לומדת משהו חדש, ועושה את אותו הדבר כל הזמן. מערכת זו יכולה להיות משוכללת ולחשב דברים מסובכים ואף להסיק מסקנות בנוגע לדוגמאות חדשות שהיא מעולם לא ראתה. אך תמיד עבור אותו הקלט (Input), יהיה אותו הפלט (Output).
[the_ad id="14465"]
איך טכנולוגיית בינה מלאכותית נראית בחיי היומיום
דוגמא נפוצה לבינה מלאכותית היא מערכת סטרימינג של סרטים, למשל Netflix. כחלק משיפור המערכת והגדלת זמני הצפייה, ניתן לבנות מנגנון המלצות הבנוי על היסטוריית השימוש של הלקוחות שלי במערכת. אותו מנגנון ינתח איזה סרטים הם רואים, אילו ז'אנרים ומתי הם צופים בהם.
כשיש מעט צופים ומעט סרטים, ניתן לעשות זאת באופן ידני – למלא טבלאות של הנתונים, לנתח אותם ידנית ולבנות מערכת חוקים שמהווה מנוע המלצות מבוסס AI.
ניקח לדוגמא אדם שצופה ב"פארק היורה" וב"אינדיאנה ג'ונס" – סביר שהמערכת תמליץ לו לצפות גם ב-"פולטרגייסט".
לעומת זאת, אדם שצופה לעומת זאת ב"אהבה בין הכרמים" ו"הבית על האגם", ככל הנראה כדאי להמליץ לו על "הגשרים של מחוז מדיסון".
מערכת זו יכולה לעבוד טוב, אך בנקודה מסוימת כבר לא ניתן לנסח אותה כפרוצדורה מסודרת וכאוסף של חוקים ידוע מראש. מאגר הסרטים גדל, נוספים סוגים חדשים של תכנים (למשל סדרות, תוכניות ריאליטי ועוד). בנוסף, רוצים להתייחס לפרמטרים נוספים. למשל: האם הצופה ראה את כל הסרט או הפסיק באמצע, מה גיל הצופה ועוד. מערכת הבנויה באופן קלאסי אינה מסוגלת להתמודד עם כמויות המידע הקיימות, וכמות הכללים שנדרש לחשוב עליהם מראש היא עצומה ומורכבת לחישוב.
נתבונן על דוגמא נוספת – מערכת לניווט רכב. ניתן להגדיר כלל פשוט בו אם משתמש יוצא מתל אביב ורוצה להגיע לפתח תקווה, אז האפליקציה תיקח אותו דרך מסלול ספציפי שנבחר מראש. מסלול זה לא מתחשב בפרמטרים קריטיים כמו מה השעה, האם יש פקקים או חסימות ועוד. כמות הפרמטרים שיש להתייחס אליהם איננה ניתנת לטיפול על ידי מערכת כללים ידועה מראש, וגם הפונקציונאליות המתאפשרת היא מוגבלת מאוד – למשל לא ניתן לחזות מה תהיה שעת ההגעה וכדומה.
מה זה Machine Learning – איך עובדת למידת מכונה?
למידת מכונה (Machine Learning או ML בקצרה) הוא תת-תחום של בינה מלאכותית. למידת מכונה נועדה להתמודד עם שני האתגרים שתוארו קודם: היכולת לתכנת מערכת על בסיס מסות של נתונים ופרמטרים, וחיזוי דברים חדשים כתלות בפרמטרים רבים שיכולים להשתנות עם הזמן.
מנגנוני ML מנתחים כמויות אדירות של דאטה ומנסות להגיע לאיזו תוצאה. אם מדובר באפליקציית ניווט, המערכת תנתח את כל אותם הפקטורים ותנסה לחשב את משך הנסיעה המשוער. נניח והיא חזתה 20 דקות נסיעה. אם בסופו של דבר הנסיעה ארכה 30 דקות, האלגוריתם ינסה להבין איזה פקטור השתנה במהלך הדרך ומדוע הוא נכשל בחיזוי.
למשל: הכביש בן ארבעה נתיבים, אבל במקטע מסיים הוא מצטמצם לאחד וזה מייצר עיכוב, וזה עיכוב קבוע ברוב שעות היממה ולא פקק אקראי. בהינתן מספיק מקרים כאלה, האלגוריתם "מבין" שהוא טועה, והוא פשוט יתקן את עצמו ויכניס למערך החישובים גם פקטור של מספר נתיבים ויוריד אולי את המשקל של הטמפרטורה בחוץ. וככה באופן חזרתי האלגוריתם שוב ושוב מקבל קלט, מוציא פלט ובודק את התוצאה הסופית. לאחר מכן הוא בודק היכן הוא טעה, משנה את עצמו, מתקן את המשקל שהוא נותן לפקטורים שונים ומשתכלל מנסיעה לנסיעה.
במערכות אלה הקלט נשאר לכאורה קבוע, אבל הפלט משתנה – עבור זמני יציאה שונים, האלגוריתם יעריך זמני נסיעה שונים, כתלות במגוון הפרמטרים הרלוונטיים.
מערכות ML משמשות את כל רשתות הפרסום הגדולות. כל אחת מנסה בדרכה שלה לחזות למשל, איזה משתמש שהקליק על מודעה צפוי לבצע רכישה. הפלטפורמות השונות מנסות לזהות כוונה (Intent) על ידי למידה מניסיון. מכאן הביטוי למידת מכונה.
[the_ad id="14465"]
איך למידת מכונה עובדת (בגדול)
בעולם ה- Machine Learning התוכנות פשוט "מנחשות" על פי כמה פקטורים שהוזנו להם על ידי בני אדם.
לדוגמה, גוגל החליטה שמי שצופה בסרטוני יוטיוב של Unboxing הוא ב- Intent גבוה של רכישה. בהמשך הדרך, בהנחה והמשתמש מבצע רכישה כלשהי, האלגוריתם מקבל "נקודה טובה." אם הוא לא קנה, האלגוריתם מקבל "נקודה רעה." ככל שהוא מקבל יותר נקודות טובות ורעות, האלגוריתם יודע לשפר את עצמו, לתת משקל גדול יותר לפרמטרים טובים ולהזניח פרמטרים פחות משמעותיים. אבל רגע, מי אמר למערכת להסתכל בכלל בסרטוני Unboxing?
האמת שהיא שאף אחד. מישהו, בנאדם, אמר למערכת לזהות את כל הסרטונים שמשתמש צופה בהם ביוטיוב, לזהות מתוך הסרטון, האודיו, תיאור הסרטון ומילות המפתח וכו' – איזה סוג סרטון זה. ייתכן שאחרי מיליארדי צפיות בסרטונים, האלגוריתם מתחיל למצוא קשר בין סוג מסוים של סרטונים לבין פעולות כמו רכישה באתר. באופן הזה, גוגל מזינה את האלגוריתם בכל הפעולות שהמשתמש מבצע. המיילים שהוא קורא, המקומות שהוא מסתובב בהם, התמונות שהוא מעלה לענן, ההודעות שהוא שולח, כל מידע שיש אליו גישה. הכל נשפך לתוך מאגר הנתונים העצום בו מנסה גוגל לבנות פרופילים ולמצוא קשר בין פרופיל האדם לבין הסיכוי שלו לרכוש או כל פעולה אחרת שבא לה לזהות.
המכונה המופלאה הזו לומדת כל הזמן דברים חדשים ומנסה כל הזמן למצוא הקשרים, לחזות תוצאה, לבדוק אם היא הצליחה, ואם לא לתקן את עצמה שוב ושוב עד שהיא פוגעת במטרה. חשוב לציין שלמכונה אין סנטימנטים, כל המידע קביל ואם היא תמצא קשר מוכח בין מידת הנעליים של בנאדם לבין סרטונים של בייבי שארק, אז היא תשתמש בו גם אם זה לא נשמע הגיוני.
חשוב לשים לב לעניין המטרה – המטרה היא לא המצאה של האלגוריתם. הוא לא קם בבוקר ומחליט מה האפליקציה שלכם צריכה לעשות. המטרה מוגדרת על ידי היוצר של המערכת. למשל – חישוב זמן נסיעה, בניית מסלול אופטימלי בין A ל-B וכו.' המטרה של גוגל – שמשתמש יבצע רכישה, והכל מתנקז לזה בסוף, כי גוגל בראש ובראשונה היא מערכת פרסום.
אגב, גם ההגדרה של מסלול "אופטימלי" היא מעשה ידי אדם. המכונה לא יודעת מה זה אופטימלי, זו רק מילה. אז צריך לעזור לה ולהגיד לה שאופטימלי זה מינימום זמן, מעט עצירות, כמה שפחות רמזורים וכו'.
לסיכום, המטרה מאופיינת על ידי האדם ולא על ידי המכונה. המכונה רק חותרת למטרה שהוגדר לה.
יש מנגנוני ML המתבססים על דאטה מסודר ומתויג כמו ב- Netflix. עם כל המאפיינים של הסרטים אבל גם עם המאפיינים של הצופים (מדינה, גיל, שעת צפייה וכו'). לעומת זאת יש מנגנוני ML שמקבלים טיפה יותר חופש ומתבססים על מידע חלקי מאד. למשל: יש להם מידע על כל על הסרטים, אבל אין להם מידע על הצופה. מנגנונים אלו לא בהכרח מנסים לבנות מנוע המלצות אלא למצוא חוקיות בנתונים, חריגות וכו.'
כך או כך, המערך הסבוך הקרוי ML בנוי מאלגוריתמים שונים המיומנים בניתוח טקסט, אלגוריתמים אחרים המתמקדים בעיבוד אודיו, כאלה המנתחים היסטוריית גלישה או זיהוי מתוך דף ה- Web בו אתם צופים ועוד. עשרות או מאות מנגנונים כאלה מסתובבים ורצים ובונים את המפה השלמה. ככה רוב רשתות הפרסום הגדולות עובדות.
ככל שהמכונה של גוגל/פייסבוק תהיה חכמה יותר, ככה היא תדע להציג את המודעה המתאימה למשתמש הנכון, בזמן הנכון ועל הDevice- המתאים.
[the_ad id="14465"]
מונחים חשובים בהקשר של בינה מלאכותית ו- Machine Learning
המטרה הבסיסית של למידת מכונה היא היכולת להכליל מתוך הניסיון, ולבצע משימות באופן מדויק ככל הניתן על דאטה חדש שעדיין לא נצפה, על בסיס צבירת ניסיון מדאטה קיים. באופן כללי ניתן לדבר על שלושה סוגים של למידה:
- למידה מונחית (Supervised learning) – הדאטה הקיים הינו אוסף של דוגמאות, ולכל דוגמא יש תווית (label). מטרת האלגוריתמים במקרה זה היא לסווג דוגמאות חדשות שלא נצפו בתהליך הלמידה.
- למידה לא מונחית (Unsupervised learning) – הדאטה הקיים הינו אוסף של דוגמאות במרחב, בלי שנתון עליהן מידע כלשהו המבחין ביניהן. במקרה זה, בדרך כלל האלגוריתמים יחפשו מודל המסביר את התפלגות הנקודות –למשל חלוקה לקבוצות שונות וכדומה.
- למידה באמצעות חיזוקים (Reinforcement learning) – הדאטה בו נעזרים אינו מצוי בתחילת התוכנית אלא נאסף עם הזמן. ישנם סוכנים הנמצאים בסביבה מסוימת ומעבירים מידע למשתמש, והוא בתורו ילמד אסטרטגיה בה הסוכנים ינקטו בצעדים הטובים עבורם.
האלגוריתמים השונים של הלמידה מתחלקים לשתי קבוצות:
- מודלים דיסקרימנטיביים – המוציאים פלט על בסיס מידע נתון, אך לא יכולים ליצור מידע חדש בעצמם.
- מודלים גנרטיביים – לא רק לומדים להכליל את הדאטה הנלמד גם עבור דוגמאות חדשות, אלא יכולים גם להבין את מה שהם ראו וליצור מידע חדש על בסיס הדוגמאות שנלמדו.
כאמור, בשביל לבנות מודל יש צורך בדאטה. מודל טוב הוא מודל שמצליח להכליל מהדאטה הקיים גם לדאטה חדש. המודל למעשה מנסה למצוא דפוסים בדאטה הקיים, מהם הוא יוכל להסיק מסקנות גם על דוגמאות חדשות. כדי לוודא שהמודל אכן מצליח להכליל גם על דוגמאות חדשות, בדרך כלל מחלקים את הדאטה הקיים לשניים – קבוצת אימון (Training set) וקבוצת מבחן (Test set). סט האימון מאפשר לתת מדד להצלחת המודל – אם המודל מצליח למצוא דפוסים בסט האימון שנכונים גם עבור סט המבחן, זה סימן שהמודל הצליח למצוא כללים שיכולים להיות נכונים גם לדוגמאות חדשות שיבואו. לעיתים סט האימון מחולקת בעצמה לשניים – קבוצת דוגמאות עליהן המודל מתאמן, וקבוצת ולידציה (validation set).
מגוון התחומים בהם משתמשים בכלים של למידת מכונה הוא עצום, עד כדי כך שכמעט ואין תחום בו לא נכנס השימוש באלגוריתמים לומדים. דוגמאות בולטות למשימות בהם משתמשים באלגוריתמים לומדים:סיווג, רגרסיה (מציאת קשר בין משתנים), חלוקה לקבוצות, מערכת המלצות, הורדת ממד, ראייה ממוחשבת, עיבוד שפה טבעית (NLP) ועוד.
מאיפה מתחילים ללמוד?
אם אתם מתעניינים בתחום ורוצים ללמוד עוד, יצרתי בגיט מאגר עם המון מקורות ידע. מוזמנים לעבור על המאגר המלא לבינה מלאכותית ודאטה סיינס בעברית.
מעבר לכך, מוזמנים לעבור על מאמר מעולה בנושא למידה עמוקה, AI ו- ML שעזר לי בכתיבת המדריך הזה.
סטודנט לתואר שלישי בפקולטה להנדסה בבר אילן, ושותף במחקר בחברת סמסונג ישראל. מנגיש חומרים בעברית בתחומים של בינה מלאכותית ולמידת מכונה.