كيف يمكنني تطبيق مؤشرات الترددات إلى إعادة تدريب الشبكة العصبية لعادلة الظهر؟

StackOverflow https://stackoverflow.com/questions/1830350

سؤال

بالنسبة لمشروعي الجامعي، أقوم بإنشاء شبكة عصبية يمكنها تصنيف احتمال وجود معاملة بطاقات الائتمان عبارة عن احتيالية أم لا. أنا أتدرب مع backpropagation. أنا أكتب هذا في جاوة. أرغب في تطبيق مؤشرات الترابط، لأن جهاز الكمبيوتر الخاص بي هو I7 رباعي النواة. يخجلني لقضاء ساعات التدريب ونرى معظم النوى الخمول.

ولكن كيف يمكنني تطبيق مؤشرات الترابط إلى الوراء؟ يعمل BackProp عن طريق ضبط الأخطاء إلى الوراء من خلال الشبكة. يجب أن يتم طبقة واحدة قبل أن يستمر الآخر. هل هناك أي طريقة يمكنني تعديل برنامجي للقيام بخلف Multicore؟

هل كانت مفيدة؟

المحلول

أولا وقبل كل شيء لا تستخدم BackPropagation. هناك العديد من الخيارات الأخرى هناك. أود أن أقترح تجربة RPROP (انتشار مرنة). لن يكون هذا التعديل كبيرا لخوارزمية إعادة الاتصال بك. لا تحتاج إلى تحديد معدل التعلم أو الزخم. لها حقا كما لو كان لديك معدل فردي ومتغير ومعلومات تعلم لكل اتصال في الشبكة العصبية.

كما هو الحال لتطبيق متعدد المركبات إلى الوراء. أنا فقط كتبت مقالة حول هذا الموضوع.

http://www.heatonresearch.com/encog/mprop/compare.html.

أساسا أقوم بإنشاء عدد من الخيوط وتقسيم بيانات التدريب حتى يتمتع كل مؤشر ترابط بقرب مساواة. أنا حساب التدرجات في كل مؤشر ترابط ويتم تلخيصها في خطوة تقليل. تعتمد كيفية تطبيق التدرج على الأوزان على خوارزمية التدريب في الانتشار المستخدمة، ولكن يتم تحديث الوزن في قسم حرج.

عندما يكون لديك عينات تدريبية أكثر بكثير من الأوزان ينفق التعليمات البرمجية المزيد من الوقت في حساب التدرج متعدد الخيوط من تحديث الوزن القسم الحرج.

أقدم بعض نتائج الأداء على الرابط أعلاه. انها حقا تسريع الأشياء!

نصائح أخرى

لاستخدام المزيد من النوى CPU مع Java، يمكنك فقط تجربة المزيد من الخيارات ل JVM دون تغيير الرمز:

  • -الخادم
  • -d64.
  • -xx: -USPEARALLLGC.

وغيرها من الخيارات في http://java.sun.com/javase/technologies/hotspot/vmoptions.jsp.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top