البرمجة

تعلم العلاقات الرياضية باستخدام TensorFlow

لديك مشكلة في تحديد دالة الخطأ والتحسين في الشيفرة التي قمت بتقديمها. في المثال الحالي، أنت تحاول تدريب شبكة عصبية لتقدير العلاقة الخطية بين إشارة الدخل (x) والإشارة المطلوبة للإخراج (y) حيث يكون الإخراج هو -x. ولكن، الأسلوب الذي تستخدمه لحساب الخطأ (cross_entropy) وتحسين الشبكة (train_step) ليس ملائمًا لمشكلتك.

بالنسبة لدالة الخطأ، يُفضل استخدام ميزان مربعات الانحدار (Mean Squared Error) لمشكلتك بدلاً من استخدام cross entropy، حيث تكون الدالة على النحو التالي:

python
mse = tf.reduce_mean(tf.square(net - expected))

بالنسبة لعملية التحسين، يجب استخدام خوارزمية تحسين مناسبة لمشكلة تقدير القيم المستمرة، مثل AdamOptimizer، بدلاً من GradientDescentOptimizer، كما هو موضح في الشيفرة التالية:

python
train_step = tf.train.AdamOptimizer(learning_rate=0.001).minimize(mse)

بعد تغيير الخطأ وعملية التحسين، يُمكنك تجربة تدريب الشبكة مرة أخرى ومراقبة النتائج. قد تحتاج أيضًا إلى زيادة عدد الدورات التدريبية (TRAINING_RUNS) وحجم الدفعة (BATCH_SIZE) لتحقيق أداء أفضل للشبكة العصبية.

لا تتردد في طرح المزيد من الأسئلة إذا كنت بحاجة إلى مزيد من المساعدة في فهم أو تنفيذ هذا النوع من الشبكات العصبية في TensorFlow.

المزيد من المعلومات

في مشكلتك الحالية، تحاول إنشاء شبكة عصبية بسيطة باستخدام TensorFlow لتعلم العلاقة بين الإدخالات والمخرجات. تريد أن يكون الإخراج قيمة مستمرة (floating point) بناءً على قيم الإدخال. تقوم بتوليد بيانات الاختبار عشوائيًا تحتوي على قيم إدخال والمخرجات المتوقعة. بعد ذلك، تقوم بتعريف النموذج العصبي باستخدام طبقة واحدة فقط تحتوي على وحدة واحدة (بسبب بساطة المشكلة). تستخدم خطأ معين (cross_entropy) ومعدل التعلم 0.5 لتدريب النموذج. ومع ذلك، يبدو أن النموذج لا يتعلم العلاقة الصحيحة وأن الأوزان والانحياز دائمًا يكونان صفرين بعد التدريب.

لحل هذه المشكلة، يجب تعديل النموذج وعملية التدريب. يجب استخدام دالة خطأ مناسبة للمشكلة التي تواجهها، مثل ميزان مربعات الانحدار (Mean Squared Error) بدلاً من cross entropy. يجب أيضًا استخدام خوارزمية تحسين مناسبة للتعلم على القيم المستمرة، مثل AdamOptimizer. كما يجب زيادة عدد الدورات التدريبية وحجم الدفعة لتحسين أداء النموذج.

تحتاج أيضًا إلى التحقق من البيانات التي تقوم بتوليدها والتأكد من أنها تتبع العلاقة الصحيحة بين الإدخال والمخرجات المتوقعة. إذا كانت هذه العلاقة بسيطة مثل y=-x، يجب أن تكون البيانات متناسقة مع ذلك.

بعد تطبيق هذه الإصلاحات، يجب أن ترى تحسنًا في أداء النموذج وقدرته على تعلم العلاقة بين الإدخال والإخراج المطلوب.

زر الذهاب إلى الأعلى