כיצד רשתות עצביות לומדות – Finxter

Share on facebook
Share on twitter
Share on linkedin
Share on telegram
Share on whatsapp
Share on email
פרסומת
MAGNEZIX מגנזיקס


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

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

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

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

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

יסודות בסיסיים: כיצד פועלות רשתות עצביות

איור 1 מציג נוירון מלאכותי.

איור 1: נוירון מלאכותי

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

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

איור 2: רשת עצבית המסווגת תמונה (צילום כלב מאת גארפילד בסה)

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

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

אז איך מתכנתים את המשקולות וההטיות הללו?

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

סקירה כללית של איך רשתות עצביות לומדים

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

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

  1. ספק דוגמה לרשת.
  2. מכיוון שהרשת אינה מאומנת, היא כנראה תקבל את התשובה השגויה.
  3. חשב כמה רחוקה תשובה זו מהתשובה הנכונה. שגיאה זו ידועה בשם הֶפסֵד.
  4. חשב אילו שינויים במשקלים והטיות יקטין את ההפסד.
  5. בצע התאמות למשקלים והטיות אלה כפי שנקבע על ידי חישובים אלה.
  6. חזור על זה שוב ושוב עם דגימות רבות עד שהרשת תלמד לענות על הדגימות בצורה נכונה.

הצגת דוגמאות וחישוב הפסד

הבה נסקור חלק מזה ביתר פירוט תוך בחינת מקרה שימוש.

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

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

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

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

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

בחירה מתאימה לאומדן אובדן בגודל קהל היא השגיאה הריבועית:

איפה:

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

איור 3

אם הרשת מנחשת 350 אנשים ההפסד הוא 22500. אם הרשת מנחשת 600 אנשים ההפסד הוא 10000.

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

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

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

מזעור הפסד: חשבון והנגזרת

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

כאן נכנס החשבון לתמונה.

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

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

(באופן קפדני יש יותר בחשבון מזה, אבל הרעיון הזה הוא אחד מרעיונות הליבה של חשבון.)

💡 ההפסד L תלוי בפלט y של הרשת, אבל y תלוי בקלט, ובמשקלים w והטיות b. אז יש שרשרת קצת ארוכה ומסובכת של תלות שאנחנו צריכים לעבור כדי להבין איך L משתנה כאשר w ו-b משתנים.

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

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

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

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

הנה הנגזרת של המשוואה של הגרף באיור 3 (שים לב, לא נסביר איך זה מחושב, כלומר התחום של מהלך חישוב).

זה מכונה בדרך כלל "לקיחת הנגזרת של L ביחס ל-y". אתה יכול לקרוא את זה dL/dy כמו שאומר "כך L משתנה כאשר y משתנה". כעת נחשב כיצד L משתנה כאשר y משתנה בנקודה y = 350:

אז ב-y = 350, על כל סיבית y עולה, L יורד ב-300. זה מרמז שכאשר נגדיל את y ההפסד יקטן.

כעת נחשב כיצד L משתנה כאשר y משתנה בנקודה y = 600:

אז ב-y = 600, על כל סיביות y גדל, L גדל ב-200. מכיוון שאנו רוצים לְהַקְטִין ל, זה אומר שאנחנו צריכים לְהַקְטִין y.

החישובים הללו תואמים את מה שהסקנו מהסתכלות על הגרף.

אתה יכול גם לקרוא dL/dy כמו שאומר "זה השיפוע של הגרף".

זה הגיוני: בנקודה y = 350 שיפוע הגרף הוא -300 (שיפוע מטה בצורה תלולה), בעוד שבנקודה y = 600 שיפוע הגרף הוא 200 (שיפוע למעלה, לא כל כך תלול).

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

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

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

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

  • יש קשר כלשהו בין ההפסד L לבין המשקולות w וההטיות b ("גרף")
  • יש קבוצה מסוימת של משקלים והטיות שבהן ההפסד L הוא מינימום עבור קלט נתון
  • אנו יכולים להשתמש בחשבון כדי להבין כיצד להתאים את המשקולות וההטיות כדי למזער את ההפסד

משטח ההפסד והירידה בשיפוע

בואו ניקח בחשבון מקרה מאוד פשוט שבו יש רק שני משקלים, w1 ו-w2, וללא הטיות. הגרף של L כפונקציה של w1 ו-w2 עשוי להיראות כמו איור 4.

איור 4: גרף שגיאה בצורת קערה

בדוגמה זו, עם שני משקלים עצמאיים, בסופו של דבר נקבל משטח בצורת קערה עבור גרף ההפסד. במקרה זה, ההפסד ממוזער כאשר w1 = 4 ו- w2 = 3. בהתחלה, כאשר הרשת עדיין לא מאומנת המשקולות (בהתחלה מוגדרות לקטן אַקרַאִי מספרים) כמעט בוודאות אינם בערכים הנכונים כדי שההפסד יהיה מינימום.

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

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

💡 חָשׁוּב: התוצאה…



קישור לכתבת המקור – 2022-08-12 09:52:25

Share on facebook
Facebook
Share on twitter
Twitter
Share on linkedin
LinkedIn
Share on telegram
Telegram
Share on whatsapp
WhatsApp
Share on email
Email
פרסומת
MAGNEZIX מגנזיקס

עוד מתחומי האתר