קל לארגן דפים בעזרת אוספים
אפשר לשמור ולסווג תוכן על סמך ההעדפות שלך.
נניח שאתם מפתחים אפליקציה להמלצה על אוכל, שבה
המשתמשים מזינים את הארוחות האהובות עליהם, והאפליקציה מציעה ארוחות דומות
שהם עשויים לאהוב. אתם רוצים לפתח מודל למידת מכונה (ML)
שיכול לחזות את הדמיון בין אוכל, כדי שהאפליקציה שלך תוכל ליצור איכות גבוהה
"מאחר שאתה אוהב פנקייקים, אנחנו ממליצים על קרפים").
כדי לאמן את המודל, צריך ליצור מערך נתונים של 5,000
ארוחות, כולל בורשט,
נקניקייה,
סלט,
פיצה,
ו-שווארמה.
איור 1. דגימה של פריטי הארוחה שנכללים במערך נתוני המזון.
אתם יוצרים תכונה meal שמכילה
בקידוד חד-פעמי
שייצג כל אחד מפריטי הארוחה במערך הנתונים.
איור 2. קידודים חמים של בורשט, נקניקייה ושווארמה.
האורך של כל וקטור קידוד חם אחד הוא 5,000 (ערך אחד לכל וקטור קידוד
פריט בתפריט במערך הנתונים). האליפסה בתרשים מייצגת
4,995 הערכים שלא מוצגים.
מלכודות של ייצוגי נתונים מועטים
עברתם על הקידודים החד-פעמיים האלה, ואתם מבחינים בשתי בעיות עיקריות
ייצוג בווקטור של הנתונים.
מספר המשקולות. וקטורי קלט גדולים מציינים מספר עצום
משקולות
לרשת נוירונים.
עם רשומות M בקידוד חד-פעמי, ו-N
בשכבה הראשונה של הרשת אחרי הקלט, המודל צריך לאמן את
משקולות MxN לשכבה הזו. משקלים רבים גורמים לבעיות נוספות:
מספר נקודות הנתונים. ככל שהמודל מכיל יותר משקלים, כך יהיו לה יותר נתונים
צריכים לאמן ביעילות.
סכום החישוב. ככל שיש יותר משקולות, כך נדרש יותר חישובים
כדי לאמן את המודל ולהשתמש בו. קל להתגבר על היכולות של
חומרה.
נפח זיכרון. ככל שיש יותר משקלים במודל, כך
שנדרש במאיצים שמאמנים ומגישים אותו. הרחבה נוספת
וקשה מאוד.
קושי בתמיכה
למידת מכונה במכשיר (ODML).
אם רוצים להריץ מודל למידת מכונה במכשירים מקומיים (בניגוד להצגת
אותם), תצטרכו להתמקד בהקטנת המודל,
כדי להפחית את מספר המשקולות.
היעדר קשרים משמעותיים בין וקטורים. ערכי הווקטורים
קידודים חמים אחד למזון לא מספקים מידע משמעותי על
דמיון בין פריטי מזון. מבחינה מתמטית, אינדקס 1 ("נקניקייה") הוא
קרוב יותר לאינדקס 2 ("סלט") מאשר לאינדקס 4999 ("שווארמה"), למרות
הכלב דומה יותר לשווארמה (בשניהם יש בשר ולחם) מאשר לסלט.
במודול הזה תלמדו איך ליצור הטמעות, עם ממדים נמוכים יותר
של נתונים מועטים, שמטפלים בשתי הבעיות האלה.
[[["התוכן קל להבנה","easyToUnderstand","thumb-up"],["התוכן עזר לי לפתור בעיה","solvedMyProblem","thumb-up"],["סיבה אחרת","otherUp","thumb-up"]],[["חסרים לי מידע או פרטים","missingTheInformationINeed","thumb-down"],["התוכן מורכב מדי או עם יותר מדי שלבים","tooComplicatedTooManySteps","thumb-down"],["התוכן לא עדכני","outOfDate","thumb-down"],["בעיה בתרגום","translationIssue","thumb-down"],["בעיה בדוגמאות/בקוד","samplesCodeIssue","thumb-down"],["סיבה אחרת","otherDown","thumb-down"]],["עדכון אחרון: 2024-08-13 (שעון UTC)."],[[["This module explains how to create embeddings, which are lower-dimensional representations of sparse data that address the problems of large input vectors and lack of meaningful relations between vectors in one-hot encoding."],["One-hot encoding creates large input vectors, leading to a huge number of weights in a neural network, requiring more data, computation, and memory."],["One-hot encoding vectors lack meaningful relationships, failing to capture semantic similarities between items, like the example of hot dogs and shawarmas being more similar than hot dogs and salads."],["Embeddings offer a solution by providing dense vector representations that capture semantic relationships and reduce the dimensionality of data, improving efficiency and performance in machine learning models."],["This module assumes familiarity with introductory machine learning concepts like linear regression, categorical data, and neural networks."]]],[]]