Meezo ML نشر 2 يوليو 2021 أرسل تقرير نشر 2 يوليو 2021 خوارزمية التحسين Adadelta Optimization واستخدامها في Keras؟ اقتباس
1 Ali Haidar Ahmad نشر 2 يوليو 2021 أرسل تقرير نشر 2 يوليو 2021 (معدل) هو طريقة تدرج عشوائي SGD تعتمد على تحديث معامل التعلم بناء على تحديثات gradient descent يساهم في حل مشكلة التدهور المستمر لمعدلات التعلم خلال عملية التدريب كذلك يعطي معامل تعلم أولي، وهذا يساعد في أن لا نقوم بوضع معامل تعلم يمكن أن يأثر على الموديل سلباً. وهذا يقلل عدد العمليات للوصول إلى المعاملات العليا. لاستخدامها في كبراس نمررها إلى الدالة compile: model.compile( optimizer=Adadelta(learning_rate=0.001) ... ) # أو model.compile( optimizer='adadelta' ... ) # لاحظ أنه في الطريقة الثانية سيستخدم معمل الخطوة الافتراضي # لذا إذا أردت تغييرها استخدم الصيغة الأولى مثال عن طريقة الاستخدام حيث يأخذ Adadelta الوسيط learning_rate الذي يمثل معامل التعلم أو مقدار الخطوة: #استدعاء المكتبات from keras.models import Sequential from keras import layers from keras.datasets import mnist from keras.optimizers import Adadelta #تحميل الداتا (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مع معامل تعلم Adadelta استخدام model.compile(optimizer=Adadelta(learning_rate=0.001), loss='sparse_categorical_crossentropy',metrics=['accuracy']) #تدريب الموديل model.fit(X_train,y_train) تم التعديل في 2 يوليو 2021 بواسطة Ali Haidar Ahmad 1 اقتباس
1 ريم المهدي نشر 3 يوليو 2021 أرسل تقرير نشر 3 يوليو 2021 لقد تحدثت عن خوارزميات التحسين و أهميتها للنموذج هنا، يمكنك مراجعة المقدمة فقط لتتعرف على أهميتها. والان بعد أن قمت بفهم أهمية خوارزميات التحسين لنتحدث عن Adadelta بالتحديد. Adadelta هي إختصاراً لadaptive delta و هي دالة مطورة من دوال الإتزان و دلتا هنا تشير للأوزان قبل و بعد التعديل. و ما يميز هذه الخوارزمية تحديداً هو تعديل learning rate بإستخدام عدد من gradient updates و بذلك تتابع التعلم و تعديل learning rate مع التغيير الحاصل في الأوزان. وهي من الخوارزميات التي ينصح بأن تترك بالقيم الإفتراضية التي تأتي بها، موضحة كالاتي: tf.keras.optimizers.Adadelta(learning_rate=0.001, rho=0.95, epsilon=1e-07, name="Adadelta") حيث أن: learning_rate: هو عبارة عن معامل التعلم و هو عبارة عن قيمة كسرية أكبر من 0 rho: قيمة كسرية أكبر من 0 أو مصفوفة تمثل معدل التناقص في معامل التعلم لكل عملية تعديل. epsilon: قيمة كسرية أكبر من 0 و قيمته الإفتراضية هي K.epsilon وهي0.0000001 وهو المسؤول عن جعل العمليات الحسابية مستقرة. يمكن إستخدام Adadelta بإحدى طريقتين: بعد إستيراد المكتبات اللازمة، تم تعريف نموذج و إضافة عدد 2Layers الأولى تحتوي على شكل البيانات المدخلة و عدد الneurons الثانية تحتوي على دالة التنشيط activation function وهي المسؤولة عن إضافة non-linearity للنموذج. بعد ذلك عرفنا دالة الموزانة Adadelta و في هذه الحالة ستسخدم الدالة القيم الإفتراضية. ومن ثم نقوم بتعريف ال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.Adadelta() 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='Adadelta') اقتباس
السؤال
Meezo ML
خوارزمية التحسين Adadelta Optimization واستخدامها في Keras؟
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.