למידה עמוקה מול למידת מכונה: להבין את ההבדלים

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

הסביר למידת מכונה

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

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

אלגוריתמי סיווג

בעיית סיווג היא בעיית למידה מפוקחת המבקשת בחירה בין שניים או יותר שיעורים, לרוב מספקת הסתברויות לכל כיתה. השארת רשתות עצביות ולמידה עמוקה, הדורשות רמה גבוהה בהרבה של משאבי מחשוב, האלגוריתמים הנפוצים ביותר הם Naive Bayes, Tree Tree, רגרסיה לוגיסטית, K-Nearest Neighbors ו- Support Vector Machine (SVM). אתה יכול גם להשתמש בשיטות אנסמבל (שילובים של דגמים), כגון Random Forest, שיטות Bagging אחרות ושיטות הגברה כגון AdaBoost ו- XGBoost.

אלגוריתמי רגרסיה

בעיית רגרסיה היא בעיית למידה מפוקחת המבקשת מהמודל לחזות מספר. האלגוריתם הפשוט והמהיר ביותר הוא רגרסיה לינארית (הכי פחות ריבועים), אך לא כדאי לעצור שם, מכיוון שלעתים קרובות זה נותן לך תוצאה בינונית. אלגוריתמי רגרסיה נפוצים אחרים של למידת מכונה (חסרים רשתות עצביות) כוללים Naive Bayes, Tree Tree, K-Nearest Neighbors, LVQ (Learning Vector Quantization), LARS Lasso, Elastic Net, Forest Random, AdaBoost ו- XGBoost. תבחין שיש חפיפה כלשהי בין אלגוריתמים של למידת מכונה לצורך רגרסיה וסיווג.

אלגוריתמי אשכולות

בעיית אשכולות היא בעיית למידה ללא פיקוח המבקשת מהמודל למצוא קבוצות של נקודות נתונים דומות. האלגוריתם הפופולרי ביותר הוא אשכול K-Means; אחרים כוללים אשכולות ממוצעים משמרים, DBSCAN (אשכולות מרחביים מבוססי צפיפות של יישומים עם רעש), GMM (מודלים של תערובת גאוסית) ו- HAC (אשכולות אגרלומטיבים היררכיים).

אלגוריתמים להפחתת ממד

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

שיטות אופטימיזציה

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

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

ניקוי נתונים ללימוד מכונה

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

  1. בדוק את הנתונים והכלל את כל העמודות שיש בהן הרבה נתונים חסרים.
  2. התבונן שוב בנתונים ובחר את העמודות בהן תרצה להשתמש ( בחירת תכונות ) לצורך חיזויך. זה משהו שאולי תרצה לשנות כאשר אתה חוזר.
  3. אל תכלול שורות שעדיין חסרות נתונים בעמודות הנותרות.
  4. תקנו שגיאות הקלדה ברורות והתמזגו תשובות שוות ערך. לדוגמה, יש למזג את ארה"ב, ארה"ב, ארה"ב ואמריקה לקטגוריה אחת.
  5. אל תכלול שורות שיש בהן נתונים מחוץ לטווח. לדוגמה, אם אתה מנתח נסיעות במוניות בעיר ניו יורק, תרצה לסנן שורות עם קווי אורך ואורכי טנדר או הורדה מחוץ לתיבת הגבול של המטרופולין.

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

קידוד נתונים ונורמליזציה ללימוד מכונה

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

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

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

הנדסת תכונות ללימוד מכונה

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

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

חלק מהטרנספורמציות שאנשים משתמשים בהן כדי לבנות תכונות חדשות או להפחית את הממדיות של וקטורי התכונות הן פשוטות. לדוגמה, לחסר Year of Birthמן Year of Deathואתה בונה Age at Death, שהוא משתנה עצמאית הממשלה למשך כל החיים וניתוח התמותה. במקרים אחרים, בניית תכונות עשויה שלא להיות כה ברורה.

פיצול נתונים ללימוד מכונה

הנוהג המקובל עבור למידת מכונה בפיקוח הוא לפצל את מערכת הנתונים לתוך תת עבור אימונים , אימות , ואת מבחן . אחת הדרכים לעבוד היא להקצות 80% מהנתונים למערך נתוני האימון, ו -10% כל אחד לערכי האימות והבדיקה. (הפיצול המדויק הוא עניין של העדפה.) עיקר האימונים נעשים כנגד מערך נתוני האימון, והניבוי מתבצע כנגד נתוני האימות בסוף כל תקופה.

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

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

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

ספריות לימוד מכונה

ב- Python, Spark MLlib ו- Scikit-learning הן אפשרויות מצוינות עבור ספריות למידה ממוחשבת. ב- R, כמה אפשרויות חבילת למידת מכונה הן CARAT, randomForest, e1071 ו- KernLab. ב- Java, אפשרויות טובות כוללות את Java-ML, RapidMiner ו- Weka.

הסביר למידה עמוקה

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

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

רקע

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

נוירונים ברשתות עצביות מלאכותיות

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

פונקציות הפעלה ברשתות עצביות

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

[גם בנושא: 6 דרכים לגרום למידת מכונה להיכשל]

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

טופולוגיות רשת עצביות

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

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

הכשרת רשתות עצביות

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

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

אופטימיזציה לרשתות עצביות

אופטימיזציה לרשתות עצביות משתמשות בדרך כלל באלגוריתם של ירידת שיפוע בכדי להניע את התפשטות הגב, לרוב עם מנגנון שיעזור להימנע מלהיתקע במינימה מקומית, כגון אופטימיזציה של מיני קבוצות שנבחרו באופן אקראי (Stochastic Gradient Descent) והחלת תיקוני מומנטום על מִדרוֹן. חלק מאלגוריתמי האופטימיזציה מתאימים גם את קצב הלמידה של פרמטרי המודל על ידי התבוננות בהיסטוריית השיפוע (AdaGrad, RMSProp ו- Adam).