StopGradient

الطبقة النهائية العامة StopGradient

إيقاف حساب التدرج.

عند تنفيذها في رسم بياني، تقوم هذه العملية بإخراج موتر الإدخال الخاص بها كما هو.

عند إنشاء عمليات لحساب التدرجات، تمنع هذه العملية أخذ مساهمة مدخلاتها بعين الاعتبار. عادةً، يضيف منشئ التدرج عمليات إلى الرسم البياني لحساب مشتقات "خسارة" محددة عن طريق اكتشاف المدخلات التي ساهمت في حسابها بشكل متكرر. إذا قمت بإدراج هذا المرجع في الرسم البياني، فسيتم إخفاء المدخلات من منشئ التدرج. لا يتم أخذها في الاعتبار عند حساب التدرجات.

يعد هذا مفيدًا في أي وقت تريد فيه حساب قيمة باستخدام TensorFlow ولكنك تحتاج إلى التظاهر بأن القيمة كانت ثابتة. على سبيل المثال، يمكن كتابة الدالة softmax للمتجه x بالشكل

def softmax(x):
     numerator = tf.exp(x)
     denominator = tf.reduce_sum(numerator)
     return numerator / denominator
 
ومع ذلك، يكون هذا عرضة للتجاوز إذا كانت القيم في x كبيرة. هناك طريقة بديلة أكثر استقرارًا وهي طرح الحد الأقصى لـ x من كل قيمة.
def stable_softmax(x):
     z = x - tf.reduce_max(x)
     numerator = tf.exp(z)
     denominator = tf.reduce_sum(numerator)
     return numerator / denominator
 
ومع ذلك، عندما ندعم من خلال softmax إلى x، لا نريد أن ندعم من خلال حساب tf.reduce_max(x) (إذا لم تكن القيم القصوى فريدة، فقد يتدفق التدرج إلى الإدخال الخاطئ) ونعامل ذلك على أنه ثابت. ولذلك، ينبغي لنا أن نكتب هذا كما
def stable_softmax(x):
     z = x - tf.stop_gradient(tf.reduce_max(x))
     numerator = tf.exp(z)
     denominator = tf.reduce_sum(numerator)
     return numerator / denominator
 
بعض الأمثلة الأخرى تشمل:
  • خوارزمية EM حيث لا ينبغي أن تتضمن الخطوة M انتشارًا عكسيًا من خلال إخراج الخطوة E.
  • تدريب التباعد التقابلي لآلات بولتزمان، حيث، عند التمييز بين وظيفة الطاقة، يجب ألا ينتشر التدريب بشكل عكسي من خلال الرسم البياني الذي أنشأ العينات من النموذج.
  • التدريب على الخصومة، حيث لا ينبغي أن يحدث أي دعم خلفي من خلال عملية توليد الأمثلة الخصومة.

الأساليب العامة

الإخراج <T>
كإخراج ()
إرجاع المقبض الرمزي للموتر.
ثابت <T> StopGradient <T>
إنشاء (نطاق النطاق ، إدخال المعامل <T>)
طريقة المصنع لإنشاء فئة تغلف عملية StopGradient جديدة.
الإخراج <T>

الطرق الموروثة

الأساليب العامة

الإخراج العام <T> كإخراج ()

إرجاع المقبض الرمزي للموتر.

المدخلات إلى عمليات TensorFlow هي مخرجات عملية TensorFlow أخرى. يتم استخدام هذه الطريقة للحصول على مقبض رمزي يمثل حساب الإدخال.

إنشاء StopGradient ثابت عام <T> (نطاق النطاق وإدخال المعامل <T>)

طريقة المصنع لإنشاء فئة تغلف عملية StopGradient جديدة.

حدود
نِطَاق النطاق الحالي
المرتجعات
  • مثيل جديد من StopGradient

الإخراج العام <T> الإخراج ()