কেরাস, এসজিডি শেখার হার ক্ষয় কীভাবে কাজ করবে?


23

আপনি যদি ডকুমেন্টেশনটি http://keras.io/optimizer/ দেখুন তবে ক্ষয়র জন্য এসজিডিতে একটি প্যারামিটার রয়েছে। আমি জানি এটি সময়ের সাথে শিক্ষার হার হ্রাস করে। তবে এটি ঠিক কীভাবে কাজ করে তা আমি বুঝতে পারি না। এটি কী এমন মূল্য যা শিক্ষার হার দ্বারা গুণিত হয় lr = lr * (1 - decay) যেমন এটি তাত্পর্যপূর্ণ? এছাড়াও আমার মডেল কী শিখার হার ব্যবহার করছে তা আমি কীভাবে দেখতে পারি? আমি যখন model.optimizer.lr.get_value()কয়েকটি যুগের উপরে ফিট রাখার পরে মুদ্রণ করি তখন এটি ক্ষয় স্থির করে নিলেও মূল শিক্ষার হার ফিরিয়ে দেয়।

এছাড়াও আমাকে নেস্টেরভ সেট করতে হবে = গতি ব্যবহারের জন্য সত্য বা আমি ব্যবহার করতে পারি এমন দুটি ভিন্ন ধরণের গতি আছে। উদাহরণস্বরূপ এটি করার একটি বিন্দু আছেsgd = SGD(lr = 0.1, decay = 1e-6, momentum = 0.9, nesterov = False)

উত্তর:


24

আপনি যে ডকুমেন্টেশনটির উল্লেখ করছেন সেগুলিতে পাইথন উত্সের একটি রেফারেন্স অন্তর্ভুক্ত রয়েছে (কেবলমাত্র [Source]উপযুক্ত জায়গায় লিঙ্কটিতে ক্লিক করুন ), যা আপনার প্রশ্নের উত্তর দেওয়ার জন্য ব্যবহার করা যেতে পারে। decayশেখার হারকে কীভাবে সংশোধন করে তা দেখিয়ে এখানে সর্বাধিক প্রাসঙ্গিক লাইন :

lr = self.lr * (1. / (1. + self.decay * self.iterations))

nesterovবিকল্পের জন্য ভরবেগ ব্যবহার করা সত্যতে সেট করা থাকতে হবে না; এটি গতিবেগকে অন্যভাবে ব্যবহার করার ফলস্বরূপ, উত্স থেকে আবার দেখা যায়:

v = self.momentum * m - lr * g  # velocity

if self.nesterov:
    new_p = p + self.momentum * v - lr * g
else:
    new_p = p + v

1
এবং self.iterationsপৃথক এসজিডি পদক্ষেপের সংখ্যা বোঝায়, পর্বের সংখ্যা নয়, র‌্যাগ?
guillefix
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.