Meezo ML نشر 6 يوليو 2021 أرسل تقرير نشر 6 يوليو 2021 ماهي دالة التكلفة Huber loss وكيف يتم تطبيقها في كيراس Keras؟ اقتباس
1 Ali Haidar Ahmad نشر 7 يوليو 2021 أرسل تقرير نشر 7 يوليو 2021 يمكن اعتبارها كتحسين لل MSE أو كتطوير لها للتعامل مع حالات معينة، وهي مزيج من ال MSE و MSA. إن ال (MSE) يركز على القيم المتطرفة في مجموعة البيانات، بينما متوسط الخطأ المطلق (MAE) جيد لتجاهل القيم المتطرفة. لكن في بعض الحالات فإن البيانات التي تبدو وكأنها قيم متطرفة، قد لا تشكل مشكلة بالنسبة لك، وأيضاً تلك النقاط من البيانات لا ينبغي أن تحظى بأولوية عالية. وهنا حيث يأتي هوبر لوس. الصيغة الرياضية: كما قلنا فهي مزيج من MSE و MAE مما يعني أنها تربيعية (MSE) عندما يكون الخطأ صغيرًا وإلا فهي MAE. دلتا هنا تعتبر من المعاملات العليا hyperparameter لتحديد نطاق MAE و MSE. من المعادلة نجد أنه عندما يكون الخطأ أقل من دلتا ، يكون الخطأ تربيعيًا وإلا يكون مطلقًا. يمن استخدامها في كيراس بسهولة كالتالي: # تحميل الداتا from keras.datasets import boston_housing import keras (train_data, train_targets), (test_data, test_targets) = boston_housing.load_data() # توحيد البيانات mean = train_data.mean(axis=0) train_data -= mean std = train_data.std(axis=0) train_data /= std test_data -= mean test_data /= std from keras import models from keras import layers # بناء النموذج def build_model(): model = models.Sequential() model.add(layers.Dense(64, activation='relu', input_shape=(train_data.shape[1],))) model.add(layers.Dense(64, activation='relu')) model.add(layers.Dense(1)) #model.compile(optimizer='rmsprop', loss='Huber', metrics=['mae']) return model # تدريب النموذج model = build_model() model.fit(train_data, train_targets,epochs=8, batch_size=64) """ Epoch 1/8 7/7 [==============================] - 7s 2ms/step - loss: 21.8385 - mae: 22.3385 Epoch 2/8 7/7 [==============================] - 0s 3ms/step - loss: 20.6043 - mae: 21.1043 Epoch 3/8 7/7 [==============================] - 0s 3ms/step - loss: 19.8923 - mae: 20.3920 Epoch 4/8 7/7 [==============================] - 0s 3ms/step - loss: 18.4374 - mae: 18.9368 Epoch 5/8 7/7 [==============================] - 0s 4ms/step - loss: 17.2154 - mae: 17.7146 Epoch 6/8 7/7 [==============================] - 0s 3ms/step - loss: 15.7804 - mae: 16.2756 Epoch 7/8 7/7 [==============================] - 0s 2ms/step - loss: 14.0492 - mae: 14.5466 Epoch 8/8 7/7 [==============================] - 0s 3ms/step - loss: 12.3948 - mae: 12.8905 """ 2 اقتباس
0 ريم المهدي نشر 29 أغسطس 2021 أرسل تقرير نشر 29 أغسطس 2021 (معدل) Huber loss هي إحدى دوال حساب الخطأ في regression و تعتبر أقل تأثراً بالقيم الشاذة او المتطرفة من mean squared error. تعتبر Huber loss من الدوال التربيعية تستخدم mean squared error loss في حال كان الفرق بين القيم الحقيقية و المتوقعة صغير و تعتبر الدالة خطية و تحسب عن طريق mean absolute error في حال كان الفرق كبير، المتغير دلتا هو من يحدد نقطة التحول من الحساب الخطي للحساب التربيعي في الدالة، لاحظ المعادلة: لاحظ المثال التالي: from tensorflow import keras yActual = [4, -1.5, 5, 2] yPredicted = [3.5, 1, 5, 3] huberObject = keras.losses.Huber(delta=0.5) huberTensor = huberObject(yActual, yPredicted) huber = huberTensor.numpy() print(huber) والناتج هو قيمة 0.40625 والتي نتجت من العمليات الحسابية التالية: تم التعديل في 29 أغسطس 2021 بواسطة Reem Elmahdi اقتباس
السؤال
Meezo ML
ماهي دالة التكلفة Huber loss وكيف يتم تطبيقها في كيراس Keras؟
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.