קורס מבוא : פיתוח בינה מלאכותית RB207-01


Perceptron Model

הוחלף

איך יש למידה ?
על ידי התאמה של המשקלים ל קלט יש למידה


אבל מה קורה אם X הינו 0 ?
ממקרה כזה לא משנה מה ערך של W לא ישפיע אל Y ולכן לא תיהיה למידה
פתרון
הוספת בייס

או לכתוב כך :

אפשר להמיר :

ל את הבייס מתמטית

בעיה ש פספטרון 1 לא מספיק ללמידה של דברים מורכבים ולכן נבנה מודל אחר

אם יש לנו שתי HIDDEN LAYERS נקרא לרשת DEEP NEURAL NETWORKS


החוקרים הראו

Activation function

נניח ש Z יכול להיות 0 או 1
למשל


אז מצאו יותר קע


https://en.wikipedia.org/wiki/Activation_function
MULTICLASS

או


עבור OUTPUT






;

(Loss function) Cost function
מראה כיצד המערכת שלנו לומדת
מול המערכת שלמדה ומול הנתונים הידועים TRAIN מול TEST

חושב להבין Z הוא החלק שעובר בפונקציית אקטיבציה

a – פונקציית אקטיבציה
L – השכבה האחרונה ברשת
C – COST FUNCITON
Y(X) זה הערכים האמיתיים a(x) ערכים שמנבעים

איך LOSS עובדת ?
היא תנסה הלתאים את הממשקל \ המשקלים כך שהשגיעה תיהיה הכי קטנה לניבוי הכי גבוה

איזה ערך של W גורם לפונקציה להיות מינמלית

פתרון קלאסי זה לעשות נגזרת – וזה טוב למימד אחד 2 אולי 3 , עבור N מימדים שהיטה איטית ביותר ולא יעליה ואז העל רעיון אחר שהזניק את הבינה מלאכותית קדימה

במקום נגזרת אלא Gradient descent במקום נגזרת שלב אחרי שלב
נעשה קפיצות בצעדים STEPS



בסוךף נקבל איזור ש W קרוב ל לאפס


אבל בגדול נילך בקפיצות , הקפיצות נקראות LEARNING RATE במקרה זה צעגים שווים
אבל אז אמרו איזה יופי באו נקטין את הצעדים ככל שהמשיק זווית קרובה לאפס0 זה נקרא
ADAPTIVE GRADIENT DESCENT
רעיון זה פורסם רק ! 2015 – אופטמזציית ADAM

כמובן שיש עוד שיטות

ואדם טוב יותר מכל השיטות
בסמנטיקה gradient זה עבור N מימדים
Backpropagation
אחרי שעשינו סיבוב ומצאתנו את המשקלים ו ה BIAS עלידי LOSS נעדכן את הרשת פעולת הסיבוב והעדכון המשקלים נקראת
Backpropagation
https://www.udemy.com/course/complete-tensorflow-2-and-keras-deep-learning-bootcamp/learn/lecture/16844538#overview

לפי סוגי הבעיה נחבר את האופטמצייבר שלנו ופונקציה LOSS



למשל אם עבור בעית רגירסיה נבחר

בשורה זאת – המודל מבצע את הלימידה
הוא מוצא את הקשרים \ הקורולציות בין הנתונים ב X_train ל Y_train


הגרף מראה לנו את הלימדה – וניתן לראות שאחרי 170 איפוקס המכונה כבר לא לומדת יותר
אבלואציה של המודול – ניבדוק כמה טוב המודול שלנו מתפקד על ניתונים שהוא לא ראה לפני
בשביל זה נעזר ב TEST , נציב לו את X_test המודל ינבה מה צריך להיות ה Y ונשווה אותו ל Y_test
ככל שהמודל שלנו יתן תצואות Y_predict שוות או קרובות ל Y_test ככה המודול שלנו למד טוב יותר , כלכ שרחוק יותר ככה המודול פחות טוב והלימידה שלו הייתה פחות טובה.

מחזיר את הערך של LOSS של המודול במודול שלנו אמרנו לו לחשבת את ה LOSS=MSE
MEAN SQUAIR ERROR וזה היה עבור TRAIN

מחזיר את הערך של LOSS של המודול במודול שלנו אמרנו לו לחשבת את ה LOSS=MSE
MEAN SQUAIR ERROR וזה היה עבור TEST
נבדוק את המודול (רשת ) שלנו על ערכי X_test – נזכור שהמודול כבר מקומפל עם משקלים ובייסם והמערכת כבר ביצע את הלמידה , עכשיו המערכת תקבל את ערכי TEST כקלט וכפלט test_predictions


עכשיו נשווה את test_predictions ל y_test נמיר הכל ל DATAFRAME

![]()

ניראה את הקשר


כלומר אנחנו 4 דולר מהמחיר של הניבוי , ואירך נידע אם זה טוב או רע ?

אם נסתכל על הממוצע זה 498 שזה לא רע בכלל
https://www.udemy.com/course/complete-tensorflow-2-and-keras-deep-learning-bootcamp/learn/lecture/16904692#overview