בתרגילים האינטראקטיביים שלהלן, תחקרו לעומק את אופן פעולתן הפנימי של רשתות נוירונים. ראשית, תראו כיצד שינויים בפרמטרים ובהיפר-פרמטרים משפיעים על תחזיות הרשת. לאחר מכן תשתמשו במה שלמדתם כדי לאמן רשת נוירונים להתאים נתונים לא ליניאריים.
תרגיל 1
הווידג'ט הבא מגדיר רשת נוירונים עם התצורה הבאה:
- שכבת קלט עם 3 נוירונים המכילים את הערכים
0.00 , 0.00 ו 0.00 - שכבה נסתרת עם 4 נוירונים
- שכבת פלט עם נוירון אחד
- פונקציית הפעלת ReLU מוחלת על כל צמתי השכבה הנסתרים ועל צומת הפלט
סקור את ההגדרה הראשונית של הרשת (הערה: אל תלחצו עדיין על הכפתורים ▶️ או >| ), ולאחר מכן השלימו את המשימות שמתחת לווידג'ט.
משימה 1
הערכים עבור שלושת מאפייני הקלט למודל הרשת הנוירונים הם כולם 0.00 . לחץ על כל אחד מהצמתים ברשת כדי לראות את כל הערכים שאותחלו. לפני שתלחץ על כפתור ההפעלה ( ▶️ ), ענה על השאלה הזו:
איזה סוג של ערך פלט לדעתך ייווצר: חיובי, שלילי או 0?
ערך פלט חיובי
בחרת בערך פלט חיובי . פעל לפי ההוראות שלהלן כדי לבצע הסקה על נתוני הקלט ולראות אם אתה צודק.
ערך פלט שלילי
בחרת ערך פלט שלילי . פעל לפי ההוראות שלהלן כדי לבצע הסקה על נתוני הקלט ולראות אם אתה צודק.
ערך פלט של 0
בחרת ערך פלט של 0. פעל לפי ההוראות שלהלן כדי לבצע הסקה על נתוני הקלט ולראות אם אתה צודק.
כעת לחצו על כפתור ההפעלה (▶️) מעל הרשת, וצפו בכל ערכי השכבה הנסתרת וצמתי הפלט מאוכלסים. האם התשובה שלכם לעיל הייתה נכונה?
לחצו כאן להסבר
ערך הפלט המדויק שתקבלו ישתנה בהתאם לאופן שבו פרמטרי המשקל וההטיה מאותחלים באופן אקראי. עם זאת, מכיוון שלכל נוירון בשכבת הקלט יש ערך של 0, המשקלים המשמשים לחישוב ערכי הצומת של השכבה הנסתרת יאפסו כולם. לדוגמה, חישוב הצומת הראשון של השכבה הנסתרת יהיה:
y = ReLU(w 11 * 0.00 + w 21 * 0.00 + w 31 * 0.00 + b)
y = ReLU(b)
לכן, ערך כל צומת בשכבה נסתרת יהיה שווה לערך ReLU של ההטיה (b), שיהיה 0 אם b שלילי ו-b עצמו אם b הוא 0 או חיובי.
ערך צומת הפלט יחושב לאחר מכן באופן הבא:
y = ReLU(w 11 * x 11 + w 21 * x 21 + w 31 * x 31 + w 41 * x 41 + b)
משימה 2
לפני שינוי הרשת הנוירונים, ענו על השאלה הבאה:
אם תוסיף שכבה נסתרת נוספת לרשת הנוירונים לאחר השכבה הנסתרת הראשונה, ותיתן לשכבה החדשה הזו 3 צמתים, תוך שמירה על כל פרמטרי הקלט והמשקל/הטיה זהים, אילו חישובים של צמתים אחרים יושפעו?
כל הצמתים ברשת, למעט צמתי הקלט
בחרת את כל הצמתים ברשת, מלבד צמתי הקלט . פעל לפי ההוראות שלהלן כדי לעדכן את הרשת הנוירונים ולראות אם אתה צודק.
רק הצמתים בשכבה הנסתרת הראשונה
בחרת רק את הצמתים בשכבה המוסתרת הראשונה . פעל לפי ההוראות שלהלן כדי לעדכן את הרשת הנוירונים ולראות אם אתה צודק.
רק צומת הפלט
בחרת רק את צומת הפלט . פעל לפי ההוראות שלהלן כדי לעדכן את הרשת הנוירונים ולראות אם אתה צודק.
כעת שנה את הרשת הנוירונים כדי להוסיף שכבה נסתרת חדשה עם 3 צמתים באופן הבא:
- לחץ על כפתור ה- + משמאל לשכבה הנסתרת של הטקסט 1 כדי להוסיף שכבה נסתרת חדשה לפני שכבת הפלט.
- לחצו פעמיים על כפתור ה- + מעל השכבה המוסתרת החדשה כדי להוסיף עוד שני צמתים לשכבה.
האם התשובה שלך למעלה הייתה נכונה?
לחצו כאן להסבר
רק צומת הפלט משתנה. מכיוון שההסקה עבור רשת נוירונים זו היא "הזנה קדימה" (החישובים מתקדמים מתחילתה ועד סופה), הוספת שכבה חדשה לרשת תשפיע רק על צמתים לאחר השכבה החדשה, לא על אלה שקדמו לה.
משימה 3
לחץ על הצומת השני (מלמעלה) בשכבה המוסתרת הראשונה של גרף הרשת. לפני ביצוע שינויים כלשהם בתצורת הרשת, ענה על השאלה הבאה:
אם תשנה את ערך המשקל w 12 (מוצג מתחת לצומת הקלט הראשון, x 1 ), אילו חישובים של צמתים אחרים עלולים להיות מושפעים עבור ערכי קלט מסוימים?
אַף לֹא אֶחָד
לא בחרת אף אחד . פעל לפי ההוראות שלהלן כדי לעדכן את הרשת הנוירונים ולראות אם אתה צודק.
הצומת השני בשכבה הנסתרת הראשונה, כל הצמתים בשכבה הנסתרת השנייה, וצומת הפלט.
בחרת את הצומת השני בשכבה המוסתרת הראשונה, את כל הצמתים בשכבה המוסתרת השנייה, ואת צומת הפלט . פעל לפי ההוראות שלהלן כדי לעדכן את הרשת הנוירונים ולראות אם אתה צודק.
כל הצמתים בשכבה הנסתרת הראשונה, בשכבה הנסתרת השנייה ובשכבת הפלט.
בחרת את כל הצמתים בשכבה הנסתרת הראשונה, בשכבה הנסתרת השנייה ובשכבת הפלט . פעל לפי ההוראות שלהלן כדי לעדכן את הרשת הנוירונים ולראות אם אתה צודק.
כעת, לחצו בשדה הטקסט עבור המשקל w 12 (מוצג מתחת לצומת הקלט הראשון, x 1 ), שנו את ערכו ל 5.00 ולחצו על Enter. שימו לב לעדכונים בגרף.
האם תשובתך הייתה נכונה? היזהר בעת אימות תשובתך: אם ערך צומת לא השתנה, האם פירוש הדבר שהחישוב הבסיסי לא השתנה?
לחצו כאן להסבר
הצומת היחיד המושפע בשכבה המוסתרת הראשונה הוא הצומת השני (זה שלחצת עליו). חישובי הערך עבור הצמתים האחרים בשכבה המוסתרת הראשונה אינם מכילים את w 12 כפרמטר, ולכן הם אינם מושפעים. כל הצמתים בשכבה המוסתרת השנייה מושפעים, מכיוון שחישוביהם תלויים בערך הצומת השני בשכבה המוסתרת הראשונה. באופן דומה, ערך צומת הפלט מושפע מכיוון שחישוביו תלויים בערכי הצמתים בשכבה המוסתרת השנייה.
האם חשבתם שהתשובה היא "אין" מכיוון שאף אחד מערכי הצומת ברשת לא השתנה כאשר שיניתם את ערך המשקל? שימו לב שחישוב בסיסי עבור צומת עשוי להשתנות מבלי לשנות את ערך הצומת (לדוגמה, ReLU(0) ו-ReLU(–5) שניהם מייצרים פלט של 0). אל תניחו הנחות לגבי האופן שבו הרשת הושפעה רק על ידי התבוננות בערכי הצומת; הקפידו לבדוק גם את החישובים.
תרגיל 2
בתרגילי הצלב תכונות במודול נתונים קטגוריים , בניתם ידנית הצלבות תכונות כדי להתאים לנתונים לא ליניאריים. כעת, תראו אם תוכלו לבנות רשת נוירונים שיכולה ללמוד באופן אוטומטי כיצד להתאים נתונים לא ליניאריים במהלך האימון.
המשימה שלך: להגדיר רשת נוירונים שיכולה להפריד בין הנקודות הכתומות לנקודות הכחולות בתרשים למטה, תוך השגת אובדן של פחות מ-0.2 הן בנתוני האימון והן בנתוני הבדיקה.
הוראות:
בווידג'ט האינטראקטיבי למטה:
- שנה את ההיפר-פרמטרים של הרשת הנוירונית על ידי התנסות בכמה מהגדרות התצורה הבאות:
- הוסף או הסר שכבות נסתרות על ידי לחיצה על הכפתורים + ו- משמאל לכותרת HIDDEN LAYERS בדיאגרמת הרשת.
- הוסף או הסר נוירונים משכבה נסתרת על ידי לחיצה על כפתורי + ו- מעל עמודה של שכבה נסתרת.
- שנה את קצב הלמידה על ידי בחירת ערך חדש מהתפריט הנפתח קצב למידה שמעל לתרשים.
- שנה את פונקציית ההפעלה על ידי בחירת ערך חדש מהתפריט הנפתח הפעלה מעל התרשים.
- לחצו על כפתור ההפעלה (▶️) מעל התרשים כדי לאמן את מודל הרשת הנוירונים באמצעות הפרמטרים שצוינו.
- התבוננו בוויזואליזציה של המודל המתאים לנתונים ככל שהאימון מתקדם, כמו גם בערכי אובדן הבדיקה ואובדן האימון במקטע הפלט .
- אם המודל אינו משיג הפסד מתחת ל-0.2 בנתוני הבדיקה והאימון, לחץ על איפוס וחזר על שלבים 1-3 עם סט שונה של הגדרות תצורה. חזור על תהליך זה עד שתשיג את התוצאות הרצויות.
לחצו כאן לפתרון שלנו
הצלחנו להשיג הפסד מתחת ל-0.2 הן במבחן והן באימונים על ידי:
- הוספת שכבה נסתרת אחת המכילה 3 נוירונים.
- בחירת קצב למידה של 0.01.
- בחירת פונקציית הפעלה של ReLU.