ইন ভূমিকা আমি শুধু বদলে গেছে
loss = tf.reduce_mean(tf.square(y - y_data))
প্রতি
loss = tf.reduce_mean(tf.abs(y - y_data))
এবং মডেল লোকসান শিখতে অক্ষম সময়ের সাথে আরও বড় হয়ে উঠেছে। কেন?
ইন ভূমিকা আমি শুধু বদলে গেছে
loss = tf.reduce_mean(tf.square(y - y_data))
প্রতি
loss = tf.reduce_mean(tf.abs(y - y_data))
এবং মডেল লোকসান শিখতে অক্ষম সময়ের সাথে আরও বড় হয়ে উঠেছে। কেন?
উত্তর:
আমি এটি চেষ্টা করেছিলাম এবং একই ফলাফল পেয়েছি।
এটি কারণ কারণ .abs
সাধারণ অপ্টিমাইজারের গ্রেডিয়েন্টটি মিনিমা অনুসরণ করা শক্ত হয়, বর্গক্ষেত্রের পার্থক্যের বিপরীতে যেখানে গ্রেডিয়েন্ট ধীরে ধীরে শূন্যের দিকে যায়, পরম পার্থক্যটির গ্রেডিয়েন্টের একটি নির্দিষ্ট মাত্রা থাকে যা হঠাৎ করে বিপরীত হয়, যা আশেপাশে অপটিমাইজার দোলকে পরিণত হয় সর্বনিম্ন পয়েন্ট বেসিক গ্রেডিয়েন্ট বংশোদ্ভূত গ্রেডিয়েন্টের মাত্রা এবং শিক্ষার হারের প্রতি খুব সংবেদনশীল, যা মূলত ধাপের আকারগুলির জন্য গ্রেডিয়েন্টের কেবল একটি গুণক।
সবচেয়ে সহজ ফিক্স হ'ল লার্নিং রেট হ্রাস করা যেমন লাইন পরিবর্তন করুন
optimizer = tf.train.GradientDescentOptimizer(0.5)
প্রতি
optimizer = tf.train.GradientDescentOptimizer(0.05)
এছাড়াও, বিভিন্ন অপটিমাইজারের সাথে একটি নাটক করুন। কেউ কেউ .abs
বেসড ক্ষতি আরও ভালভাবে মোকাবেলা করতে সক্ষম হবে ।