בתשובה לאח של אייל, 30/03/18 13:12
תשע (מליון) בכיכר ביום שישי 698334
אני לא בטוח למה הכוונה ברשתות שהן טיורינג-שלמות. אם אתה רוצה תפרט, אבל בכל מקרה, אין לנו אלגוריתם להוכחת משפטים במתמטיקה או לתכנות ברמה שמתחילה אפילו לדגדג בני אדם (מומחים), אז מה עוזר אם רשת עצבית היא טיורינג-שלמה?

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

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

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

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

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

אבל אם מדובר בהוכחת משפטים ספציפיים במתמטיקה, זה דווקא תחום מאד וותיק במדעי המחשב ועם הישגים (כלומר, הצליח להוכיח משפטים שבני אדם לא הצליחו). לגבי הקשר של רשתות עצביות לתחום: אני משאיר כאן קישור למאמר שהכותרת שלו היא Deep network guided proof search.

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

בהקשר לײאפטמום המהלך הבאײ - אם אני חושב על machine learning ועל תת התחום supervised learning - הוא נשמע לי כמו בעיית אופטימזציה קלאסית. יש לך אוסף כלים כלשהו (לוח וגיר, דוגמאות אימון, פרמטרים של רשת הניורונים, מה שתרצה) ובעזרתם אתה צריך לגרום לתלמיד לקבל ציון כמה שיותר טוב - ותוך זמן סביר. כלומר אתה צריך לבחור בתבונה מה הכלי הבא אותו אתה מפעיל. דווקא נשמע לי מתבקש להשתמש ברשת נירונים כדי לתכנת (כלומר לאמן) תוכנות אחרות.
תשע (מליון) בכיכר ביום שישי 698340
אפטום המהלך הבא הוא אחד מסוגי הבעיות שהתחייסתי אליהן כבעיות מתאימות לרשת נוירונים.
תשע (מליון) בכיכר ביום שישי 698341
אבל התייחסת לתכנות כאל בעיה בלתי מתאימה.
הראיתי איך היא כן - אפשר להשתמש ברשתות ל supervised learning
תשע (מליון) בכיכר ביום שישי 698353
אז לא הבנתי את כוונתך, ואני עדיין לא. "עבודה של מתכנת" היא (לצורך העניין) קבלת מפרט לתוכנה בשפה אנושית, והפקת קוד מחשב שיבצע את המפרט. האם אתה יכול להראות איך מגיעים באמצעות למידה מפוקחת לרשת נוירונים שתעשה את זה?
תשע (מליון) בכיכר ביום שישי 698357
''מפרט לתוכנה בשפה אנושית'' הוא להבנתי בעיית בינה כללית.
''מפרט למסווג שיודע לזהות הונאות כרטיס אשראי בהתבסס על אוסף דוגמאות'' הוא בעיני גם בעיה תכנות, רק בעייה ספציפית שבעבר העסיקה מתכנתים אנושיים. וכאן יש אלגוריתם שמשאיר אבק למתכנתים אנושיים.
תשע (מליון) בכיכר ביום שישי 698359
אוקיי, ברור. כשכתבתי ''משימות תכנות לא ניתנות בקלות לרדוקציה לאחד משלושת סוגי הבעיות שרשתות עצביות יודעות עקרונית לעשות.'' לא התכוונתי שאף משימת תכנות אינה ניתנת וגו' - הרי כל רשת עצבית פותרת משהו שאפשר היה לממש (פחות טוב) כמשימת תכנות קלאסית. התכוונתי שמגוון משימות התכנות שמתכנת אנושי ממוצע יכול לעשות לא ניתן וגו'.

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

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