#آموزش
پارامتر مربوط به regularization وزنها در Keras چیست؟!
#kernel_regularizer vs #activity_regularizer
اگر در مستندات مرتبط کراس نگاه کنید
سه پارامتر برای regularizer در این فریم ورک معرفی شده است:
-kernel_regularizer
-bias_regularizer
-activity_regularizer
برای مثال
خب پارامتر bias_regularizer که بر روی وزنهای بایاس است و معمولا به دلیل ابعاد کم استفاده نمیشود.
اما دو پارامتر دیگر چیستند؟ کدام پارامتر برای استفاده از l2 regularization معروف به weight decay است؟
احتمالا با روش L2 Regularization به عنوان روشی برای جلوگیری از overfitting آشنا هستید.
دوستانی که دیپ لرنینگ را با کورس های اندروانگ دنبال کردند
در کورس دوم Deep learning specialization که توسط Andrew Ng تحت عنوان Improving Deep Neural Networks, Hyperparameter tuning, Regularization and Optimization ارائه شد در روش های مختلف Regularization ایشون روشی را با نام L2 regularization معرفی کردند.
روشی که در این کورس مطرح شد و سایر منابع معمولا مطرح میکنند پنالتی بر روی وزنهای شبکه است که قبلا در فریم ورک کراس با پارامتر weight_regularizer بود...
اما این فریم ورک در نسخه ی فعلیش پارامتر weight_regularizer را ندارد و دو پارامتر به نامهای
▪️kernel_regularizer
▪️activity_regularizer
اضافه کرده است.
از بین این پارامتر ها kernel_regularizer در واقع همان weight_regularizer یا روش weigh-decay است که در منابعی مثل کورس اندرو انگ مطرح شدند و پنالتی را بر روی وزنهای شبکه اعمال میکند.
اما activity_regularizer که در کورس اندروانگ توضیح داده نشده ولی کراس آن را پیاده سازی کرده روشی است که پنالتی را بر روی خروجی هر لایه(بعد از تابع فعالیت) اعمال میکند! نکته ی مهم اینکه این روش از قبل نسخه ۲.۱.۴ باگ داشته و اگر میخواهید استفاده کنید باید نسخه کراس شما به روز باشد.
در مورد روش دوم در این لینک کمی توضیح داده شده است:
https://datascience.stackexchange.com/questions/15187/regularization-practice-with-anns/15195#15195
این مطلب در stackoverflow هم مرتبطه با ابهامی که بیان کردم:
https://stackoverflow.com/questions/44495698/keras-difference-between-kernel-and-activity-regularizers
#regularization
پارامتر مربوط به regularization وزنها در Keras چیست؟!
#kernel_regularizer vs #activity_regularizer
اگر در مستندات مرتبط کراس نگاه کنید
سه پارامتر برای regularizer در این فریم ورک معرفی شده است:
-kernel_regularizer
-bias_regularizer
-activity_regularizer
برای مثال
from keras import regularizers
model.add(Dense(64, input_dim=64,
kernel_regularizer=regularizers.l2(0.01),
activity_regularizer=regularizers.l1(0.01)))
خب پارامتر bias_regularizer که بر روی وزنهای بایاس است و معمولا به دلیل ابعاد کم استفاده نمیشود.
اما دو پارامتر دیگر چیستند؟ کدام پارامتر برای استفاده از l2 regularization معروف به weight decay است؟
احتمالا با روش L2 Regularization به عنوان روشی برای جلوگیری از overfitting آشنا هستید.
دوستانی که دیپ لرنینگ را با کورس های اندروانگ دنبال کردند
در کورس دوم Deep learning specialization که توسط Andrew Ng تحت عنوان Improving Deep Neural Networks, Hyperparameter tuning, Regularization and Optimization ارائه شد در روش های مختلف Regularization ایشون روشی را با نام L2 regularization معرفی کردند.
روشی که در این کورس مطرح شد و سایر منابع معمولا مطرح میکنند پنالتی بر روی وزنهای شبکه است که قبلا در فریم ورک کراس با پارامتر weight_regularizer بود...
اما این فریم ورک در نسخه ی فعلیش پارامتر weight_regularizer را ندارد و دو پارامتر به نامهای
▪️kernel_regularizer
▪️activity_regularizer
اضافه کرده است.
از بین این پارامتر ها kernel_regularizer در واقع همان weight_regularizer یا روش weigh-decay است که در منابعی مثل کورس اندرو انگ مطرح شدند و پنالتی را بر روی وزنهای شبکه اعمال میکند.
اما activity_regularizer که در کورس اندروانگ توضیح داده نشده ولی کراس آن را پیاده سازی کرده روشی است که پنالتی را بر روی خروجی هر لایه(بعد از تابع فعالیت) اعمال میکند! نکته ی مهم اینکه این روش از قبل نسخه ۲.۱.۴ باگ داشته و اگر میخواهید استفاده کنید باید نسخه کراس شما به روز باشد.
در مورد روش دوم در این لینک کمی توضیح داده شده است:
https://datascience.stackexchange.com/questions/15187/regularization-practice-with-anns/15195#15195
این مطلب در stackoverflow هم مرتبطه با ابهامی که بیان کردم:
https://stackoverflow.com/questions/44495698/keras-difference-between-kernel-and-activity-regularizers
#regularization
GitHub
Fix activity regularizer + model composition test · keras-team/keras@c42f9b0
Deep Learning for humans. Contribute to keras-team/keras development by creating an account on GitHub.
#آموزش
پارامتر مربوط به regularization وزنها در Keras چیست؟!
#kernel_regularizer vs #activity_regularizer
https://t.me/cvision/1219
#keras #tensorflow2 #regularization
پارامتر مربوط به regularization وزنها در Keras چیست؟!
#kernel_regularizer vs #activity_regularizer
https://t.me/cvision/1219
#keras #tensorflow2 #regularization