আমি বন্দীদের সাথে একটু খেলছি। বিশেষত, আমি ক্যাগল বিড়াল-বনাম-কুকুর ডেটাসেট ব্যবহার করছি যা 25000 চিত্রের উপর বিভক্ত বা কুকুর (প্রতিটি 12500) হিসাবে লেবেলযুক্ত।
আমি আমার পরীক্ষার সেটটিতে প্রায় 85% শ্রেণিবদ্ধতা নির্ভুলতা অর্জন করতে সক্ষম হয়েছি, তবে আমি 90% নির্ভুলতা অর্জনের লক্ষ্য স্থির করেছি।
আমার মূল সমস্যাটি হ'ল ফিট। একরকম এটি সর্বদা শেষ হয়ে যায় (সাধারণত 8-10 এর আগে)। আমার নেটওয়ার্কের আর্কিটেকচারটি VGG-16 দ্বারা আলগাভাবে অনুপ্রাণিত হয়েছে, আরও সুনির্দিষ্টভাবে আমার চিত্রগুলি পুনরায় আকার দেওয়া হয়েছে এবং তারপরে আমি চালিয়ে যাচ্ছি:
Convolution 1 128x128x32 (kernel size is 3, strides is 1)
Convolution 2 128x128x32 (kernel size is 3, strides is 1)
Max pool 1 64x64x32 (kernel size is 2, strides is 2)
Convolution 3 64x64x64 (kernel size is 3, strides is 1)
Convolution 4 64x64x64 (kernel size is 3, strides is 1)
Max pool 2 32x32x64 (kernel size is 2, strides is 2)
Convolution 5 16x16x128 (kernel size is 3, strides is 1)
Convolution 6 16x16x128 (kernel size is 3, strides is 1)
Max pool 3 8x8x128 (kernel size is 2, strides is 2)
Convolution 7 8x8x256 (kernel size is 3, strides is 1)
Max pool 4 4x4x256 (kernel size is 2, strides is 2)
Convolution 8 4x4x512 (kernel size is 3, strides is 1)
Fully connected layer 1024 (dropout 0.5)
Fully connected layer 1024 (dropout 0.5)
শেষটি ব্যতীত অন্যান্য সমস্ত স্তরের অ্যাক্টিভেশন ফাংশন হিসাবে পুনরায় স্থান রয়েছে।
নোট করুন যে আমি কনভোলশনের বিভিন্ন সংমিশ্রণ চেষ্টা করেছি (আমি সহজ কনভোলিউশন দিয়ে শুরু করেছি)।
এছাড়াও আমি চিত্রগুলি মিরর করে ডেটাসেটটি বাড়িয়েছি যাতে মোট আমার 50000 টি চিত্র থাকে।
এছাড়াও, আমি সর্বনিম্ন সর্বাধিক নরমালাইজেশন ব্যবহার করে চিত্রগুলি স্বাভাবিক করছি, যেখানে এক্স চিত্র
কোডটি টেনসরফ্লোতে লেখা এবং ব্যাচের আকার 128।
প্রশিক্ষণের উপাত্তের মিনি ব্যাচগুলি সর্বোপরি 100% যথার্থতা অর্জন করে এবং বৈধতা ডেটা প্রায় 84-85% এ শিখতে বন্ধ করে দেয় বলে মনে হয়।
আমি ড্রপআউট হার বাড়াতে / হ্রাস করার চেষ্টাও করেছি।
অপটিমাইজারটি ব্যবহৃত হচ্ছে হ'ল 0.0001 শিখার হার সহ অ্যাডামঅ্যাপটিমাইজার
এই মুহূর্তে আমি এই সমস্যাটি নিয়ে গত 3 সপ্তাহ ধরে খেলছি এবং 85% আমার সামনে বাধা তৈরি করেছে বলে মনে হচ্ছে।
রেকর্ডের জন্য, আমি জানি যে আমি আরও উচ্চতর ফলাফল অর্জন করতে ট্রান্সফার লার্নিং ব্যবহার করতে পারি, তবে আমি একটি স্ব-শিক্ষার অভিজ্ঞতা হিসাবে এই নেটওয়ার্কটি তৈরিতে আগ্রহী।
হালনাগাদ:
আমি ভিন্ন ব্যাচের আকারের সাথে একই নেটওয়ার্ক চালাচ্ছি, এক্ষেত্রে আমি অনেক ছোট ব্যাচের আকার (128 এর পরিবর্তে ১ 16) ব্যবহার করছি এখন পর্যন্ত আমি ৮.5.৫% নির্ভুলতা অর্জন করছি (85% এর পরিবর্তে)) বলেছিল যে, যাইহোক নেটওয়ার্কটি সর্বোপরি শেষ হয়। তবুও আমি বুঝতে পারি না যে 50% ইউনিটের একটি ড্রপআউট কীভাবে সহায়তা করছে না ... স্পষ্টতই আমি এখানে কিছু ভুল করছি। কোন ধারনা?
আপডেট 2:
মনে হচ্ছে সমস্যাটি ব্যাচের আকারের মতো ছিল যেমন ছোট আকারের (128 এর পরিবর্তে 16) আমি এখনই আমার পরীক্ষার সেটটিতে 92.8% যথার্থতা অর্জন করছি, ছোট ব্যাচের আকারের সাথে নেটওয়ার্কটি এখনও অধিক পরিমাণে ছাপিয়ে গেছে (মিনি ব্যাচগুলি শেষ হয়েছে) 100% এর নির্ভুলতার সাথে) তবে লোকসান (ত্রুটি) কমতে থাকে এবং এটি সাধারণভাবে আরও স্থিতিশীল থাকে। কনসটি অনেক ধীর চলমান সময়, তবে এটি সম্পূর্ণ অপেক্ষা করার মতো।