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


תשובה 1:

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

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

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

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


תשובה 2:

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

ההשפעה צריכה להיות שקולה להשפעה של סטוכסטיות ב- SGD.

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

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


תשובה 3:

עריכה:

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

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

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