উত্তর:
আমি একজন পাওয়া McLawrence দ্বারা উত্তর মধ্যে অপর এক প্রশ্নের খুব সহায়ক হবে। নীচে পুনরুত্পাদন:
একটি ওজন বাধা
max_norm
কি করে?
maxnorm(m)
যদি, আপনার ওজনের L2-Norm অতিক্রম করেm
, আপনার পুরো ওজন ম্যাট্রিক্সকে এমন একটি উপাদান দিয়ে স্কেল করুন যা আদর্শকে হ্রাস করেm
। আপনি খুঁজে পেতে পারেন হিসাবে keras কোড মধ্যেclass MaxNorm(Constraint)
:def __call__(self, w): norms = K.sqrt(K.sum(K.square(w), axis=self.axis, keepdims=True)) desired = K.clip(norms, 0, self.max_value) w *= (desired / (K.epsilon() + norms)) return w
প্রশাসনিকভাবে,
maxnorm
একটিaxis
যুক্তি রয়েছে, যার সাথে আদর্শ গণনা করা হয়। আপনার উদাহরণে আপনি একটি অক্ষ নির্দিষ্ট করে না, সুতরাং আদর্শটি পুরো ওজন ম্যাট্রিক্সের উপর দিয়ে গণনা করা হয়। উদাহরণস্বরূপ, আপনি প্রতিটি বিভাজনযুক্ত ফিল্টারের আদর্শকে সীমাবদ্ধ করতে চান, ধরে নিই যে আপনিtf
ডাইমেনশন অর্ডার ব্যবহার করছেন , ওজন ম্যাট্রিক্সটির আকৃতি থাকবে(rows, cols, input_depth, output_depth)
। আদর্শের ওভার গণনা করাaxis = [0, 1, 2]
প্রতিটি ফিল্টার প্রদত্ত রীতিতে সীমাবদ্ধ রাখবে।কেন করবেন?
সরাসরি ওজন ম্যাট্রিক্স নিয়ন্ত্রণ করা অন্য ধরণের নিয়ামকরণ। আপনি যদি একটি সাধারণ এল 2 নিয়মিতকরণ শব্দ ব্যবহার করেন তবে আপনি আপনার ক্ষতি ফাংশন দিয়ে উচ্চ ওজনকে দন্ডিত করেন। এই সীমাবদ্ধতার সাথে, আপনি সরাসরি নিয়মিত করুন। কোডটিতেও লিঙ্কযুক্ত, এটি
keras
একটিdropout
স্তরের সাথে বিশেষত ভাল কাজ করে বলে মনে হচ্ছে । আরও তথ্যের জন্য এই নিবন্ধে অধ্যায় 5.1 দেখুন
axis=0
।