בתשובה לירדן ניר-בוכבינדר, 29/03/18 5:28
תשע (מליון) בכיכר ביום שישי 698284
(מצטרף לדיון במקום אקראי)

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

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

התרגום המקובל ל-sparse בהקשר של מטריצות הוא "דליל", אבל אולי כאן יותר יתאים "חסכוני".
תשע (מליון) בכיכר ביום שישי 698291
קרוב לודאי שאתה טועה בגדול. רשתות עצביות הן נושא מרתק ומהפכני שטומן בחובו מתמטיקה מרגשת וחדשנית. מי ששם לעצמו יעד של להגיע להבנה מעמיקה של התחום, יגלה שיש כאן נושא מורכב וקשה מאד שלפחות בעבר רב היה בו הנסתר על הנגלה.
הבעייה הכמעט יחידה של התחום בעבר (נניח לפני חילופי האלף), היו ההישגים והביצועים המאכזבים ממש. אומרים לי כאן שהתמונה השתנתה ומשתנה בימים אלו ממש.
אומרים לי שהתשובה טמונה ב"העמקת" הרשתות. לי הדבר היחיד שזה אומר, זה הגברת הסיכוי ל- overfitting. אבל מן הסתם אני טועה. השכבות הנוספות של הרשתות יכולות לגלם בתוכן אלגוריתמים מתמטיים ופיזיקליים חזקים המסייעים לפיתרון הבעיות. אשרי המאמין.
ההרצאה שממליצים עליה כאן אולי תוכל לעזור. בכל מקרה גם בעבר הלא כל כך אופטימי של התחום, אף אחד לא טען שמדובר בנושא משעמם וחסר פוטנציאל.
תשע (מליון) בכיכר ביום שישי 698295
יכול להיות שאני מזדהה, אבל האם זה משמעמם ומגושם באופן שונה ממערכות לפתרון נומרי של משוואות?
תשע (מליון) בכיכר ביום שישי 698322
בהסתייגות שאני לא מבין גדול ברשתות נוירונים או באנליזה נומרית (אבל בכל זאת מבין משהו), אז כן - רשתות נוירונים נראות לי יותר משעממות מהזווית המתמטית, כי למיטב ידיעתי כיום, בפועל, הן בעיקר אוסף של יוריסטיקות. אשמח להתבדות אחרי שאצפה בעיון בהרצאה של מיקי אלעד.
תשע (מליון) בכיכר ביום שישי 698335
למה אתה מתכוון? כארכיטקטורה כוללת, רשתות עצביות הן מנומקות היטב מבחינה מתמטית, להבנתי - כלומר, מובן היטב ברמה מתמטית למה תהליך האימון של רשת עצבית מעלה את ההסתברות שלה לסווג נכון, וזה אפילו לא לגמרי טריוויאלי אם כי גם לא מאוד מסובך, כך שאני מניח שאפשר לראות פה יופי.

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

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

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

ב. רמה למעלה - אפילו על סעיף א' כבר הרבה מדלגים. אתה רוצה רשת לזיהוי לטאות ירוקות עם קרניים בתמונות? אתה לוקח רשת *מוכנה* מהאינטרנט, רצוי זו שהיא מדינת-האמנות בתחום של זיהוי אובייקטים בתמונה בשנה האחרונה. עכשיו אתה לא נוגע בה, אלא רק מאמן את השכבה האחרונה שלה (טוב, אולי כמה כאלה) על תמונות הלטאות הירוקות שלך. קוראים לזה transfer learning וכבר הגיגול הקצר הזה מראה לך כמה הפרקטיקה הזאת פופולרית‏0.

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

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

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

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

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

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

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

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

חזרה לעמוד הראשי

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