Eureqa
The robot scientist
חוברת הדרכה
כתב: אביעד מלכה
הקדמה
Eureqa היינה תוכנה בעלת יכולת זיהוי משוואות וקשרים מתמטיים חבויים במקור נתונים. התוכנה יכולה לתאר מתמטית, בצורה פשטנית את המכאניזם אשר מייצר את הנתונים.
Eureqa היינה תוכנה בעלת יכולת זיהוי משוואות וקשרים מתמטיים חבויים במקור נתונים. התוכנה יכולה לתאר מתמטית, בצורה פשטנית את המכאניזם אשר מייצר את הנתונים.
חוברת ההדרכה מבוססת על מקור נתונים של מטוטלת (זמן, וזוית), לשם הבנת עוצמתה של התוכנה, Eureqa יכולה תוך שעות בודדות לגלות את הקשרים בין המשתנים שונים (כוח מסה תאוצה) שלקחו לאייזיק ניוטון שנות מחקר רבות.
(Eureqa - WS)
ננסה בעזרת התוכנת למצוא משוואה מתמטית אשר תמדל את מקור הנתונים וכן ננסה למצוא קשרים חבויים הטמונים במקור הנתונים.
מקור נתונים: Angle Vs. Time , 700 דגימות של מטוטלת
שלב א': ייבוא נתונים ל-Eureqa (Enter Data)
התוכנה תומכת בפורמט CSV ו-TXT, כמו כן ניתן להעתיק נתונים מתוך אקסל או ממקור נתונים טבלאי אחר ע"י הדבקה לתוך התוכנה או בעזרת אפשרות של יבוא (file -> import data)
מבנה הממשק Data Entry :
מטריצה דו מימדית\ דמוי ממשק אקסלי.
· כל עמודה מייצגת ערך נומרי של משתנה במקור נתונים
· תיאור משתנה - שורה ראשונה "desc" מאפשרת להזין תיאור לעמודה / ערכי משתנה - time,angle· סימון משתנה - שורה שנייה "var" מאפשרת להזין סימן לכל משתנה ומשתנה t,x
· לחיצה כפולה על תא מאפשרת עדכון/עריכה של ערך תא (ערכים נומריים)
איור 1: מסך קליטת נתונים
שלב ב': "החלקת" נתונים Data Smoothing (Preview Data)
אפשרות זו הינה אופציונלית, Data Smooth ("החלקה") ,היינה שיטה סטאטיסטית למציאת דפוסים patterns בגרף תוך כדי הקטנת רעשים או העלמתן לחלוטין. החלקת נתונים יכולה לשפר בצורה ניכרת את מהירות חיפוש המשוואות המתארות את המכאניזים של הנתונים.
איור 2: מסך החלקת נתונים: גרף לפני החלקה
באיור 2 אנו רואים גרף של זוית על ציר זמן, כל נק' בדידה מייצגת דגימה/ תצפית
החלקת משתנה
· נבחר בתא Enable Smooth במשתנה בלתי תלוי שנרצה "להחליק", בתצוגה מקדימה נראה כל תצפית ותצפית. "Smooth vs." בדוגמא שלנו אבחר להחליק v כנגד t
· לאחר לחיצה על enable smooth התוכנה תבצע את ההחלקה
לאחר שהגדרנו את הפרמטרים התוכנה מבצעת אינטרפולציה מסוג Cubic B-Spline , אינטרפולציה בעלת דיוק הטוב והיא רובסטית לרעשים.
Spline זוהי פונקציה פולינומיאליות בחלקים, המרכיבה עקומה המשחזרת את הרצף בין נקודות הקצה של התצפיות. הרצף כאמור יהיה “חלק” יחסית.
Spline זוהי פונקציה פולינומיאליות בחלקים, המרכיבה עקומה המשחזרת את הרצף בין נקודות הקצה של התצפיות. הרצף כאמור יהיה “חלק” יחסית.
שלב ג': הגדרת פרמטרים (Pick modeling task)
בשלב זה נגדיר את מאפייני המידול, במקרה שלנו ננסה למדל את הקשר שבין מהירות לזמן עם מאפייני ברירת מחדל. (error metric: MAE)
איור 6: מסך הגדרות
· נגדיר Syntax שיבטא את הקשר בין משתנים במודל לדוגמא: v = f(t) כמו כן, ניתן להגדיר פונקציות מורכבת יותר.
· Fitness metric –אומדן טעויות, אפשרות זו מאפשרת לבחור Error Metric / שיטות מדידה שונות. לרשימה המפורטת, ראה נספח א'.
· Order data points by – הגדרת מיון נתונים בתצוגה.
· Weight errors by – הגדרת משקל לכל data point בהתאם ל- fitness metric
· Using building-blocks – הגדרת פונק' ואופרטורים לשימוש התוכנה בפונק' שתתאר את הקשר בין המשתנים השונים. הגבלת פונק' ואופרטורים לשימוש מאיצה זמן ניתוח הנתונים, ראה נספח ב'.
· Use the following servers – באפשרות התוכנה לנצל משאבים של מס' מחשבים, אפשרות זו מאיצה את הפעילות החישובית
שלב ד': חיפוש משוואה (Start/Stop Search)
הסכנה בניתוח של נתונים היא הסיכוי הקיים שהתוצאה שתתקבל תהיה מקרית. לכן תהליך מדגם הנתונים מחולק למספר חלקים: אימון (Training) תיקוף (Validation) ובדיקה (Testing). באמצעות שני הראשונים מפתחים את המודל והמדגם השלישי משמש לתיקוף סופי - חלק שמאל של המסך. חלק ימני של המסך מציג אינדיקטורים (KPI) של Performance המצביעים על זמן ביצוע כמות חישובים וכו'.
. 
איור 7: מסך KPI
· לחיצה על כפתור Start תריץ את תהליך חיפוש המשוואה שממדלת את מקור הנתונים
· מסך השמאלי מציג איניקטורים שונים (מס' מחשבים מחוברים, מעבד, מהירות ביצוע ועוד)
· צד ימין של המסך, גרף של ה- Fitness metric הטוב ביותר שהתוכנה מצאה מעת הרצת התוכנה.
שלב ה': תוצאה (solution result)
3
רמת דיוק ומורכבות
1
2
איור 8: ממשק תוצאתי
· לאחר הרצת החיפוש, התוכנה תתחיל למדל את הנתונים, מסך 1, נקבל את המשוואות שהתוכנה מצאה, המשוואה העליונה ביותר היא בעלת רמת הדיוק accuracy ("Error") ומורכבות[1] complexity ("Size") הגבוה ביותר. לחיצה כפולה על המשוואה, נקבל את הגרף של המשוואה, מסך3 מציג את מס' שגיאות, ניתן לשפר את התוצאות ע"י שימוש ב-Error metric שונה.
ניתן לראות בגרף
אמפליטודה – מרחק בין קצה לקצה בגרף
peak peak to ,
peak peak to ,
גל סינוסי דועך
אינדיקטור זה מצביע על על רמת דיוק (הנק' הימנית מציינת את רמת הדיוק הגבוה ביותר)
הרכיב במשוואה המתאר את האמפליטודה (משרעת) , הגל היינו סינופי, פונקציה המתארת גל סינוסי היא: היא ניראית כמו זו שמחזור אחד שלה מוצג בתרשים שלעיל, אך עם הגבהה בגודל b. A היא המשרעת והיא שווה למשרעת השיא סביב b וגם למחצית המשרעת שיא לשיא. k הוא מספר הגל, ω היא התדירות הזוויתית והם קובעים את אורך הגל, זמן המחזור ומהירות הגל. משרעת RMS היא שורש ממוצע הריבועים של הפונקציה וגם היא מבטאת את המידה שבה הפונקציה משתנה. משרעת ה-RMS של גל מחזורי מתכונתית למשרעת שיא לשיא שלו, והיחס ביניהם תלוי בצורת הגל. . (Wikipedia - sin) |
רכיב זה במשוואה את הדעיכה של המטוטלת, חלק זה של המשוואה מתאר מצב של ריסון תת קריטי אזי האמפליטודה דועכת אקספוננציאלית בזמן (Wikipedia - exp) דעיכה נובעת: רמת דעיכהt 0 0.34-0.34* 1 0.34- 0.34-0.34* 2 0.68- 0.34-0.34* 3 |
סיכום ממצאים:
התוכנה הצליחה לגלות קשרים חבויים תוך דקות ספורות דוגמאת ω התדירות הזוויתית ,
המופע ההתחלתי , קצב הדעיכה תוך התחשבות ברמת דיוק ומורכבות.
נספח א': Error matric
Mean Absolute Error (MAE): minimizes the mean of the absolute value of residual errors, mean(abs(error)). Assumes noise follows a double exponential distribution.
Mean Squared Error (MSE): minimizes the mean of the squared residual errors, mean(error^2). Assumes noise follows a normal distribution.
Root Mean Squared Error (RMSE): minimizes the square root of the MSE, sqrt(mean(error^2)). Assumes noise follows normal distribution.
Mean Logarithmic Error (MLE): minimizes the mean of the natural log of the residual errors, mean(log(1 + error)). Assumes noise follows a heavy-tailed distribution with large outliers.
Exponential Mean Logarithmic Error (EMLE): minimizes the exponential of the MLE, exp(mean(log(1 + error))). Assumes noise follows a heavy-tailed distribution with large outliers.
Correlation Coefficient (R): maximizes the correlation coefficient, normalized covariance. Scale and offset invariant, models the "shape" of the data.
Minimize the Difference: minimizes the signed difference between left and right hand sides of the target formula. Use to create custom fitness functions, for example "(y - f(x))^4 = 0", would minimize the 4th-power error.
Akaike Information Criterion (AIC): minimizes natural log of the MSE and number of paramters (see wikipedia). Entropy measure, use to explicitly minimize the number of free parameters of the model.
Bayesian Information Criterion (BIC): minimizes natural log of the MSE and number of paramters (see wikipedia). Entropy measure, use to explicitly minimize the number of free parameters of the model.
Maximum Error (Maximum): minimizes the single highest error of the residuals. Use to minimize the worst case error or to force algorithm to model a small residual feature.
Median Error (Median): minimizes the single median error of the residuals. Invariant to outliers, use to minimize the "typical case" error.
Implicit Derivative Error (Implicit): minimizes the difference between implicit derivatives derived from a model and estimated from the data set. Use to search for invariant relationships, e.g. "f(x, y) = 0", where "x" and "y" are continuous and in ordered by an indepedent variable such as time.
נספח ב': פונק' זמינות
add: a + b
subtract: a - b
multiply: a*b
divide: a/b
power: a^b
square root: sqrt(x) = x^0.5
exponential: exp(x) = e^x
logarithm: log(x) = natural logarithm of x
sine: sin(x)
cosine: cos(x)
tangent: tan(x)
absolute value: abs(x) = |x|
gamma function: gamma(x) = pow((x/e)*sqrt(x*sinh(1/x)), x)*sqrt(2pi/x)
gaussian function: gauss(x) = exp(-x^2)
logistic function: logistic(x) = 1/(1+ exp(-x))
hill function: hill2(x) = x^2/(1 + x^2)
step function: if x > 0: step(x) = 1, otherwise: step(x) = 0
sign function: if x < 0: sign(x) = -1, if x > 0: sign(x) = +1, otherwise: sign(x) = 0
minimum: if a < b: min(a, b) = a, otherwise: min(a,b) = b
maximum: if a < b: max(a, b) = b, otherwise: max(a,b) = a
No comments:
Post a Comment