פיתוח בינה מלאכותית : רשת CNN חלק 5
אפשר שיהיה הרבה חזרות של קונבולציה ו ופולינג
בסוף אנחנו נעשה פעולה של FLAT – צריך לזכור שאנחנו תמיד גם נעביר את הקוד של הלייבל ! בנוסף
המערך חד המיידי יכנס לניירונים בתוספת LABAL או כל דבר אחר שנידרש .
בסוף אחרי הרשת תתן פלט בשכבה האחרונה של ה DEEP LEARNING
softmax לקטגוריה
sigmoid בין 0 ל 1
ERROR LOST \ COST FUNCTION
מראה לנו כמה מערכת שלנו למדה – ככול שה ERROR LOST קטן יותר כך מערכת שלנו למדה טוב יותר.
back propagation cnn IS VERY CONPLICATED
backpropagation ב-CNN הוא תהליך מורכב כי הוא משנה גם את המשקלות בשכבות וגם את המשקלות ב-kernels (המסננים). הנה הסבר פשוט:
- עדכון המשקלות ב-kernels: בשכבות של convolution (שכבות קונבולוציה), המסננים סורקים את התמונה ומוציאים ממנה תכונות. לכל מסנן יש משקלות, והמשקלות האלו משתנות במהלך תהליך ה-backpropagation כדי לשפר את זיהוי התכונות.
- חישוב הגרדיאנט: במהלך ה-backpropagation, צריך לחשב את השגיאה ולחזור אחורה בכל שכבות הרשת כדי לשנות את המשקלות. זה כולל את שכבות הקונבולוציה, השכבות של ה-pooling (שכבות מקטינות גודל), ואת השכבות המחוברות לחלוטין (fully connected).
- שכבות רבות: כיוון של-CNN יש הרבה שכבות, כל שכבה צריכה לעדכן את המשקלות שלה, וזה מוסיף מורכבות לתהליך.
- אופטימיזציה: האלגוריתם שמבצע את העדכונים (כמו SGD או Adam) משתמש בגרדיאנטים כדי לשנות את המשקלות. התהליך הזה צריך להיות מדויק כדי לשפר את ביצועי הרשת בלי לפגוע בתוצאות.
בקיצור, backpropagation ב-CNN הוא מורכב כי הוא משנה גם את המשקלות הרגילים וגם את המשקלות של המסננים, תוך שהוא מתחשב במבנה של התכונות והמרחב של התמונה.
backpropagation in a CNN is quite complicated because it involves updating both the weights in the fully connected layers and the weights (filters or kernels) in the convolutional layers. Here's why it's complex:
- Kernel weight updates: In the convolutional layers, the filters (kernels) slide over the input image, applying convolutions to extract features. These filters have their own weights, which are updated during backpropagation to improve feature extraction.
- Gradient computation: During backpropagation, the gradients of the loss function with respect to the output need to be propagated back through each layer of the network, including convolutional, pooling, and fully connected layers. Calculating gradients for convolutional layers involves complex operations like applying the chain rule for derivatives and handling the spatial dimensions of the input.
- Multiple layers: Since CNNs often have multiple convolutional layers stacked together, the backpropagation process needs to handle weight updates across all these layers, which adds to the complexity.
- Optimization: The optimizer (e.g., SGD, Adam) uses these gradients to update the weights in the network. Ensuring the updates improve the network's performance without overshooting or getting stuck in local minima adds another layer of complexity.
In summary, backpropagation in CNNs is complicated because it involves updating not only the traditional fully connected layers but also the kernels in the convolutional layers, all while considering spatial
hierarchies and feature maps.