আমি একটি সহজ লিখেছি MLP মধ্যে TensorFlow যা মডেলিং করা হয় XOR যাও-গেট ।
অনেক দূরে:
input_data = [[0., 0.], [0., 1.], [1., 0.], [1., 1.]]
এটি নিম্নলিখিত উত্পাদন করা উচিত:
output_data = [[0.], [1.], [1.], [0.]]
নেটওয়ার্কটিতে একটি ইনপুট স্তর, একটি লুকানো স্তর এবং প্রতিটি 2, 5 এবং 1 টি নিউরন সহ একটি আউটপুট স্তর রয়েছে।
বর্তমানে আমার নিচের ক্রস এনট্রপি রয়েছে:
cross_entropy = -(n_output * tf.log(output) + (1 - n_output) * tf.log(1 - output))
আমি এই সহজ বিকল্পটিও চেষ্টা করেছি:
cross_entropy = tf.square(n_output - output)
পাশাপাশি আরও কিছু চেষ্টা করে।
যাইহোক, আমার সেটআপ কী ছিল তা বিবেচনাধীন, একটির সাথে ত্রুটিটি একটি এর চেয়ে অনেক ধীর গতিতে GradientDescentOptimizer
হ্রাস পাচ্ছিল ।AdamOptimizer
প্রকৃতপক্ষে tf.train.AdamOptimizer(0.01)
400-800 শেখার পদক্ষেপের পরে সত্যিকারের ভাল ফলাফল তৈরি হয়েছিল (শেখার হারের উপর নির্ভরশীলতায়, যেখানে 0.01
সেরা ফলাফল ছিল) যখন tf.train.GradientDescentOptimizer
সর্বদা 2000 এরও বেশি শেখার পদক্ষেপের প্রয়োজন হয় না কেন ক্রস এনট্রপি গণনা বা শেখার হারটি ব্যবহৃত হয়েছিল।
কেন এমন হয়? মনে হয় AdamOptimizer
এটি সবসময়ই আরও ভাল পছন্দ ?!