Meezo ML نشر 4 يوليو 2021 أرسل تقرير نشر 4 يوليو 2021 خوارزمية التحسين Adamax Optimization واستخدامها في Keras؟ اقتباس
2 Ali Haidar Ahmad نشر 4 يوليو 2021 أرسل تقرير نشر 4 يوليو 2021 هو طريقة تحسين مشابهه ل Adam التي تقوم بتسريع GD وتخفف التذبذب وامتداد لها ويكون adamax أفضل من adam أو أكثر فعالية في بعض المشكلات يقوم adam بتحدث الأوزان اعتمادا على متوسط الأوزان الأسية للمشتقات السابقع ومتوسط الأوزان الاسية لمربعات المشتقات السابقة في حين أن adamax يقوم بتوسيع الحد الأقصى للمشتقات السابقة ويقوم إيضا بتكييف معدل تعلم لكل معلمة في عملية التحسين بشكل منفصل لاستخدامها في كبراس نمررها إلى الدالة compile: model.compile( optimizer=Adamax(learning_rate=0.001) ... ) # أو model.compile( optimizer='Adamax' ... ) # لاحظ أنه في الطريقة الثانية سيستخدم معمل الخطوة الافتراضي. # لذا إذا أردت تغييرها استخدم الصيغة الأولى. مثال عن طريقة الاستخدام حيث يأخذ Adamax الوسيط learning_rate الذي يمثل معامل التعلم أو مقدار الخطوة: #استدعاء المكتبات from keras.models import Sequential from keras import layers from keras.datasets import mnist from keras.optimizers import Adamax #تحميل الداتا (X_train,y_train),(X_test,y_test)=mnist.load_data() #تقييس الداتا وتغيير حجم الدخل منعنا لحدوث خطأ X_train = X_train.reshape((60000, 28 * 28))/255.0 X_test = X_test.reshape((10000, 28 * 28))/255.0 #بناء الشبكه العصبونيه بطبقه واحده وطبقة خرج ب 10 أصناف model = Sequential() model.add(layers.Flatten()) model.add(layers.Dense(512, activation='relu', input_shape=( 28*28,))) model.add(layers.Dense(10, activation='softmax')) #0.001مع معامل تعلم Adamax استخدام model.compile(optimizer=Adamax(learning_rate=0.001), loss='sparse_categorical_crossentropy',metrics=['accuracy']) #تدريب الموديل model.fit(X_train,y_train) 1 اقتباس
0 ريم المهدي نشر 9 يوليو 2021 أرسل تقرير نشر 9 يوليو 2021 هي نوع من أنواع خوارزميات التحسين وهي إمتداد لAdam والتي تستخدم infinity norm بدلاً من L2 norm كما تفعل Adam. والان لنعرف ما هو norm هي عبارة عن دالة تحول المدخل لمخرج معين، وذلك بإدراج طول موجب لvector متجه معين، وبالتالي فهي تخبرنا بطول المتجه، هنالك العديد من أنواع الnormalities التي يمكن أن تطبق،منها L1 norm وهو الذي يعطي طول المتجه في شكل blocks و L2 norm الذي يخرج الناتج في شكل أقصر طريقة للوصول بين نقطتين أو بحساب Euclidian distance وفي هذه الحالة الحساب يعتمد على قيمة p والتي تساوي 2 لكن حينما تزيد قيمة الp تصل لأعلى قيمة ممكنة لها نسميها infinity norm وهي التي تستخدم في حالة AdaMax. في هذه الحالة p ترمز لمتوسط الأوزان في تدريب النموذج، كلما زادت قيمة p كان للنموذج القدرة على الحصول على دقة أعلى. يمكن إستخدام Adamax بإحدى طريقتين: بعد إستيراد المكتبات اللازمة، تم تعريف نموذج و إضافة عدد 2Layers الأولى تحتوي على شكل البيانات المدخلة و عدد الneurons الثانية تحتوي على دالة التنشيط activation function وهي المسؤولة عن إضافة non-linearity للنموذج. بعد ذلك عرفنا دالة الموانة Adamax بإستخدام القيم الإفتراضية. ومن ثم نقوم بتعريف الoptimizer في model.compile. from tensorflow import keras from tensorflow.keras import layers model = keras.Sequential() model.add(layers.Dense(64, kernel_initializer='uniform', input_shape=(10,))) model.add(layers.Activation('softmax')) opt = keras.optimizers.Adamax() model.compile(loss='categorical_crossentropy', optimizer=opt) تذكر أن model.compile تقوم بالأتي: اقتباس Compile defines the loss function, the optimizer and the metrics بالتالي نحن نحتاج إلى عملية التجميع قبل أن نقوم بأي عملية تدريب للنموذج. يمكننا أن نقوم بتمرير الoptimizer إلى دالة التجميع مباشرة دون التعريف المسبق كالتالي: model.compile(loss='categorical_crossentropy', optimizer='Adamax') اقتباس
السؤال
Meezo ML
خوارزمية التحسين Adamax Optimization واستخدامها في Keras؟
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.