কনভোলশনাল নিউরাল নেটওয়ার্কে ইনপুট হিসাবে পরিবর্তনীয় আকারের চিত্রগুলি দেওয়া কি সম্ভব?


17

আমরা কি বস্তুর সনাক্তকরণের জন্য একটি কনভোলজিকাল নিউরাল নেটওয়ার্ককে ইনপুট হিসাবে পরিবর্তনশীল আকারের চিত্রগুলি দিতে পারি? সম্ভব হলে আমরা কীভাবে তা করতে পারি?


তবে আমরা যদি চিত্রটি ক্রপ করার চেষ্টা করি তবে আমরা চিত্রটির কিছু অংশ হারাব এবং যদি আমরা পুনরায় আকার দেওয়ার চেষ্টা করি, তবে চিত্রটির স্পষ্টতা নষ্ট হবে। এর অর্থ কী যে চিত্রটির স্বচ্ছতা বিবেচনার মূল বিষয়টি যদি অন্তর্নিহিত নেটওয়ার্ক সম্পত্তি ব্যবহার করা সবচেয়ে ভাল হয়?

উত্তর:


9

এটি করার বিভিন্ন উপায় রয়েছে। এর মধ্যে বেশিরভাগ স্ট্যাকওভারফ্লো, কোওড়া এবং অন্যান্য সামগ্রী ওয়েবসাইটের বেশ কয়েকটি পোস্টে কভার করা হয়েছে।

সংক্ষিপ্তসার হিসাবে, তালিকাভুক্ত বেশিরভাগ কৌশল সমাধানের দুটি শ্রেণিতে বিভক্ত করা যেতে পারে, যথা,

  1. রূপান্তরের
  2. সহজাত নেটওয়ার্ক সম্পত্তি

রূপান্তরগুলিতে, কেউ যেমন কৌশলগুলি সন্ধান করতে পারে

  • পুনরায় আকার দিন , যা উল্লিখিত সমস্ত কৌশলগুলির মধ্যে সবচেয়ে সহজ
  • ক্রপ , যা স্লাইডিং উইন্ডো বা তথ্য ক্ষতির সাথে এক সময়ের ফসল হিসাবে করা যেতে পারে

যে কোনও নেটওয়ার্ক তৈরি করে তার স্তর আচরণের গুণে ইনপুটটির আকার থেকে সুরক্ষিত থাকার সহজাত সম্পত্তি রয়েছে এমন কোনও নেটওয়ার্কও সন্ধান করতে পারে। এর উদাহরণগুলির শর্তে পাওয়া যেতে পারে,

  • সম্পূর্ণ কনভ্যুশনাল নেটওয়ার্কগুলি (এফসিএন) , যার ইনপুট আকারের মোটেও কোনও সীমাবদ্ধতা নেই কারণ একবার কার্নেল এবং ধাপের আকার বর্ণিত হলে প্রতিটি স্তরের কনভোলশনটি সংশ্লিষ্ট ইনপুট অনুসারে উপযুক্ত মাত্রা আউটপুট তৈরি করতে পারে।

  • স্পেসিয়াল পিরামিড পুলিং (এসপিপি) , এফসিএনগুলির একটি সম্পূর্ণ সংযুক্ত ঘন স্তর নেই এবং তাই চিত্রের আকারের অজ্ঞেয়বাদী, তবে বলুন যে কেউ যদি ইনপুট ট্রান্সফর্মেশনগুলি বিবেচনা না করে ঘন স্তরটি ব্যবহার করতে চায়, তবে সেখানে একটি আকর্ষণীয় কাগজ রয়েছে যা স্তরটিকে ব্যাখ্যা করে একটি গভীর শিক্ষা নেটওয়ার্ক।

তথ্যসূত্র:

  1. https://www.quora.com/How-are-variably-shaped-and-sized-images-given-inputs-to-convoluted-neural-networks
  2. /ai/2008/how-can-neural-networks-deal-with-varying-input-sizes
  3. https://discuss.pytorch.org/t/how-to-create-convnet-for-variable-size-input-dimension-images/1906

পিএস আমি কয়েকটি কৌশল উদ্ধৃত করে মিস করতে পারি। এটি একটি সম্পূর্ণ তালিকা হিসাবে দাবি করে না।


1
এটি তাত্ত্বিকভাবে ঠিক মনে হয়, তবে টেনসরফ্লোতে কাজ করে না। কারও কি এর কোন প্রয়োগ রয়েছে?
হোসেইন

1
@ হোসেইন আমি ব্যবহারিক বাস্তবায়নের ক্ষেত্রেও কিছু সমস্যার মধ্যে পড়েছিলাম তবে টেনস্রফ্লো কেরাস ২.x এ কিছু সীমাবদ্ধতা নিয়ে আজ আমি একটি পরিবর্তনশীল আকারের সিএনএন পেয়েছি। কিছু বাস্তব ব্যবহারিক বিশদ সম্পর্কে আমি আমার উত্তরে পদ্ধতির একটি রূপরেখা পোস্ট করেছি। শুভকামনা করছি!
জে ট্রানা

4

কনভোলশনাল স্তর এবং পুলিং স্তরগুলি ইনপুট মাত্রাগুলি থেকে স্বতন্ত্র are তবে কনভ্যুশনাল স্তরগুলির আউটপুটটিতে বিভিন্ন আকারের চিত্রগুলির জন্য পৃথক আকারের আকার থাকবে এবং এটির পরে যদি আমাদের একটি সম্পূর্ণ সংযুক্ত স্তর থাকে তবে (যেহেতু আমাদের সম্পূর্ণ সংযুক্ত স্তরটির একটি নির্দিষ্ট আকারের ইনপুট প্রয়োজন)। এর বেশ কয়েকটি সমাধান রয়েছে:

১. গ্লোবাল পুলিং: কনভ্যুশনাল স্তরগুলির শেষে সম্পূর্ণ সংযুক্ত স্তরগুলি এড়িয়ে চলুন এবং তার পরিবর্তে (এন, এইচ, ডাব্লু, সি) এর আকার (আপনার গ্লোবাল পুলের আগে) এর বৈশিষ্ট্য মানচিত্রকে হ্রাস করতে পুলিং (যেমন গ্লোবাল গড় পুলিং) ব্যবহার করুন global ) আকারে (এন, 1,1, সি) (গ্লোবাল পুলের পরে), যেখানে:

এন = মিনিবচের নমুনার সংখ্যা
এইচ = বৈশিষ্ট্য মানচিত্রের স্থানিক উচ্চতা
ডাব্লু = বৈশিষ্ট্য মানচিত্রের স্থানিক প্রস্থ
সি = বৈশিষ্ট্য মানচিত্রের সংখ্যা (চ্যানেল)

হিসাবে দেখা যায়, আউটপুট মাত্রা (এন * সি) বৈশিষ্ট্য মানচিত্রের স্থানিক আকার (এইচ, ডাব্লু) থেকে এখন স্বাধীন। শ্রেণিবিন্যাসের ক্ষেত্রে, তারপরে আপনি আপনার ক্লাসের জন্য লগইটগুলি পেতে উপরে একটি সম্পূর্ণ সংযুক্ত স্তর ব্যবহার করতে এগিয়ে যেতে পারেন।

2. পরিবর্তনশীল আকারের পুলিং:বিভিন্ন ইনপুট আকারের জন্য একই বৈশিষ্ট্য মানচিত্রের আকার পেতে ভেরিয়েবল আকারের পুলিং অঞ্চলগুলি ব্যবহার করুন।

৩. শস্য / পুনরায় আকার / প্যাড ইনপুট চিত্রগুলি: আপনি নিজের ইনপুট চিত্রগুলি একই আকারে পুনরুদ্ধার / ক্রপ / প্যাড করতে চেষ্টা করতে পারেন।


ট্রান্সফার শেখার প্রসঙ্গে আপনি মডেলটি যে প্রশিক্ষণ পেয়েছিলেন তার চেয়ে ভিন্ন আকারের ইনপুটগুলি ব্যবহার করতে চাইতে পারেন। এটি করার জন্য কয়েকটি বিকল্প এখানে রয়েছে:

৪. নতুনভাবে সম্পূর্ণ সংযুক্ত স্তর তৈরি করুন: আপনি সম্পূর্ণরূপে সংযুক্ত স্তরগুলি সম্পূর্ণরূপে খনন করতে পারেন এবং আপনার প্রয়োজনীয় মাত্রিকতার সাথে একটি নতুন সম্পূর্ণ সংযুক্ত স্তরটি শুরু করতে পারেন এবং এটি স্ক্র্যাচ থেকে প্রশিক্ষণ দিতে পারেন।

৫. সম্পূর্ণ সংযুক্ত স্তরটিকে একটি রূপান্তর হিসাবে বিবেচনা করুন: সাধারণত, আমরা সম্পূর্ণরূপে সংযুক্ত স্তরটিকে খাওয়ানোর আগে বৈশিষ্ট্য মানচিত্রগুলি (এন, এইচ, ডাব্লু, সি) থেকে (এন, এইচ * ডাব্লু * সি) রূপান্তর করি। তবে আপনি সম্পূর্ণরূপে সংযুক্ত স্তরটিকে (এইচ, ডাব্লু) এর একটি গ্রহণযোগ্য ক্ষেত্রের সাথে কনভলভ হিসাবে বিবেচনা করতে পারেন। তারপরে, আপনি এই বৈশিষ্ট্যটির মানচিত্রগুলির আকার নির্বিশেষে আপনার বৈশিষ্ট্য মানচিত্রের সাহায্যে এই কার্নেলটিকে কেবল মিশ্রিত করতে পারেন (প্রয়োজনে শূন্য প্যাডিং ব্যবহার করুন) [http://cs231n.github.io/transfer-learning/ ]।


1

আমাকে আজ এই সমস্যার মধ্য দিয়ে কাজ করতে হয়েছিল তাই আমি ভেবেছিলাম যে আমি যা কাজ করেছি তা ভাগ করে দেব। আমি খুঁজে পেয়েছি যে ওয়েবে বেশ কয়েকটি "এটি তত্ত্বের সাথে কাজ করতে পারে" উত্তর এবং উত্তোলন ছিল তবে একটি ব্যবহারিক "আপনি কীভাবে এই বিষয়টিকে নিবিড়ভাবে প্রয়োগ করছেন" এর থেকে কম।

টেনসরফ্লো কেরাস ব্যবহার করে এটি বাস্তবায়ন করতে আমাকে নিম্নলিখিতগুলি করতে হয়েছিল। সম্ভবত অন্য কেউ এর মধ্যে কিছু সংশোধন, শিথিল বা বাদ দেওয়া যেতে পারে।

  1. ইনপুট_শ্যাপে স্থানধারক মাত্রা হিসাবে "কিছুই নয়" ব্যবহার করে একটি পরিবর্তনশীল আকারের ইনপুটটির জন্য মঞ্জুরি দেওয়ার জন্য নেটওয়ার্কের ইনপুট সেট করুন। দেখুন ফ্রাঁসোয়া Chollet এর উত্তর এখানে
  2. বিশ্বব্যাপী পুলিং অপারেশন না হওয়া অবধি কেবল কনভ্যুশনাল স্তরগুলি ব্যবহার করুন (যেমন গ্লোবালম্যাক্সপুলিং 2 ডি)। তারপরে ঘন স্তর ইত্যাদি ব্যবহার করা যেতে পারে কারণ আকারটি এখন স্থির।
  3. ব্যাচের আকারটি কেবল 1 টি ব্যবহার করুন। এটি একটি ব্যাচের মধ্যে মিশ্র আকারের সাথে কাজ করা এড়ায়।
  4. একটি ছোট্ট কাস্টম সিকোয়েন্স লিখুন যা ইনপুটগুলির তালিকা থেকে 1 মাপের ব্যাচ তৈরি করে। আমি একক নম্পি অ্যারের ভিতরে বিভিন্ন আকারের সাথে ডিল এড়াতে এটি করেছি।
  5. প্রশিক্ষণ এবং বৈধতার জন্য আপনার কাস্টম সিকোয়েন্সে মডেল.ফিট_জেনেটর ব্যবহার করুন। (বনাম মডেল.ফিট)
  6. কিছু কারণে, মডেল.প্রেডিক্ট_জেনারেটর উপরের মত সিকোয়েন্স ব্যবহার করার পরেও পপ করেছেন। আমাকে ব্যক্তিগত ইনপুটগুলিতে Model.predict ব্যবহার করতে অবলম্বন করতে হয়েছিল।

নোট করুন যে মডেল.প্রডিক্টিতে কলগুলি কার্য সম্পাদনের বিষয়ে অভিযোগ করেছিল - যা সমাধানের অদক্ষতা দেখিয়ে আশ্চর্যজনক নয় - তবে এটি কার্যকর!


-2

হ্যাঁ, কেবল একটি উপযুক্ত ব্যাকবোন নেটওয়ার্ক নির্বাচন করুন যা কিছু সুনির্দিষ্ট মান হতে ইনপুট চিত্রের আকারের উপর নির্ভর করে না - বেশিরভাগ নেটওয়ার্ক এই মানদণ্ডকে সন্তুষ্ট করে।


3
আপনি ভুল নন, তবে আপনার উত্তর খুব তথ্যপূর্ণ নয় - কেন বেশিরভাগ আধুনিক সিএনএন পরিবর্তনশীল আকারের চিত্রগুলির সাথে কাজ করতে পারে তা বোঝানোর জন্য এটি প্রসারিত করার কী ? এছাড়াও, এই পরিবর্তনশীলতার সীমাবদ্ধতাগুলি কী কী (উদাহরণস্বরূপ, একই মিনি-ব্যাচে বিভিন্ন আকারের চিত্রগুলি মিশ্রন করার চেষ্টা করবেন না ...)? পুরানো ফ্যাশনযুক্ত এমএলপি (ইনপুট দৈর্ঘ্য স্থিরীকৃত) বা পুরানো ফ্যাশনযুক্ত সিএনএন (আলেকসনেট এবং ভিজিজি -১ এক্স) থেকে আসা বেশিরভাগ লোকেরা তাদের Flattenউদ্বেগজনক স্তরগুলি সহ বুঝতে পারেন না যে আধুনিক সিএনএন কীভাবে নীতিগতভাবে কোনও আকারের চিত্র নিতে পারে।
ডেল্টাভ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.