בתשובה לעומר, 30/03/18 16:28
רשתות נוירונים - AMA 698339
תודה!

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

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

בפיתוח תוכנה, נכון שכאשר מדובר ביישום של אלגוריתמיקה או business logic אין בכלל וודו באופן עקרוני, אבל כמעט תמיד הוא נמצא שם באופן מעשי, בגלל מנגנונים (עם סייד-אפקטס מורגשים) שמסתתרים מאחורי אבסטרקציה שאותה המתכנת לא ממש מכיר (ה-cache replacement policy של המעבד, ה-congestion control בראוטר, אופטימיזציות של הקומפיילר וכו'). הדרך להתמודד עם זה היא כמובן לדבוק בשיטות-פיתוח בדוקות ומקובלות בתקווה שהכל פשוט יעבוד, ולעבור לווריאציות של ניסוי-וטעייה כשזה לא עובד. וכאשר מדובר בעיצוב תוכנה - אז כבר כמעט כל ההחלטות נשענות על היוריסטיקות ומורשת קרב. זה אולי לא "וודו", אבל זה עונה לתיאור "מובנה, תכליתי ומנומק" רק במובן מאד רחב, שתקף באותה מידה גם לבנייה ואימון של רשתות נוירונים.

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

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

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