Meezo ML نشر 6 يوليو 2021 أرسل تقرير نشر 6 يوليو 2021 هل يمكننا استخدام تشابه جيب التمام CosineSimilarity كدالة تكلفة لمهام التوقع Regression في Keras؟ اقتباس
1 Ali Haidar Ahmad نشر 6 يوليو 2021 أرسل تقرير نشر 6 يوليو 2021 نعم يمكننا ذلك، ففي كيراس تم تعريف ال CosineSimilarity كدالة تكلفة لمهام التوقع. المعادلة الرياضية: loss = -sum(l2_norm(y_true) * l2_norm(y_pred)) يكون الخرج بين ال 1 و -1، بحيث كلما اقتربت القيم من ال -1 يكون التشابه أعظم وكلما اقترب من 1 يكون أقل تشابه وتشير ال 0 إلى حالة التعامد. وهذا مايجعلها قابلة للاستخدام كدالة تكلفة. يمكن استيرادها من الموديول: keras.losses لاستخدامها مع نموذج نمررها للدالة compile كما في المثال التالي: # تحميل الداتا 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=keras.losses.CosineSimilarity(axis=1), metrics=['mae']) #model.compile(optimizer='rmsprop', loss='CosineSimilarity', metrics=['mae']) return model # تدريب النموذج model = build_model() model.fit(train_data, train_targets,epochs=8, batch_size=64) 2 اقتباس
0 ريم المهدي نشر 29 أغسطس 2021 أرسل تقرير نشر 29 أغسطس 2021 يمكن إستخدامه لمعرفة التشابه و الإختلاف بين مجموعتين، و ذلك يتم عن طريق حساب ناتج الضرب النقطي للمجموعتين، راجع المثال: import numpy as np from sklearn.metrics.pairwise import cosine_similarity x = np.random.rand(1000,1000) y = np.random.rand(1000,1000) cosine_similarity(x, y) وناتج الدالة cosine_similarity في هذه الحالة عبارة عن مصفوفة ابعادها 1000*1000 لحاصل تشابه القيم في كل من x,y. يمكننا تنفيذ إستخدام CosineSimilarity في نموذج بيانات boston dataset والتي تعتبر من البيانات المستخدمة في عملية regression لتحديد سعر المنزل بإستخدام عدد من الخصائص. from keras import models, layers from sklearn.datasets import load_boston from sklearn.model_selection import train_test_split X, y = load_boston(return_X_y=True) X_train, X_test, y_train, y_test = train_test_split( X, y, test_size=0.4) print(X_train.shape, y_train.shape,X_test.shape, y_test.shape) model = models.Sequential() model.add(layers.Dense(13, activation='linear', input_shape=(13,))) model.add(layers.Dense(26, activation='sigmoid')) model.add(layers.Dense(1, activation='tanh')) model.compile(optimizer='rmsprop',loss=tf.keras.losses.CosineSimilarity(axis=1),metrics=['mse']) model.fit(X_train, y_train, epochs=3, batch_size=200) في هذه الحالة قمنا بإستخدام tf.keras.losses.CosineSimilarity و التي تعمل على مستوى الخصائص و ذلك عبر تحديد axis=1. اقتباس
السؤال
Meezo ML
هل يمكننا استخدام تشابه جيب التمام CosineSimilarity كدالة تكلفة لمهام التوقع Regression في Keras؟
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.