নিউরাল নেটওয়ার্ক - সর্বাধিক অনুরূপ চিত্রগুলি সন্ধান করুন


11

আমি পাইথন, সাইকিট-লার্ন এবং কেরাসের সাথে কাজ করছি। আমার কাছে নিম্নোক্তগুলির মতো সামনের মুখী ঘড়ির 3000 হাজার চিত্র রয়েছে: ওয়াচ_1 , ওয়াচ_2 , ওয়াচ_3

আমি একটি প্রোগ্রাম লিখতে চাই যা ইনপুট হিসাবে একটি আসল ঘড়ির ছবি পেয়ে থাকে যা সম্ভবত উপরের ছবিগুলির তুলনায় কম আদর্শ অবস্থার অধীনে নেওয়া হয় (বিভিন্ন ব্যাকগ্রাউন্ড রঙ, গাer় বজ্রপাত ইত্যাদি) এবং এতে 3000 টির মধ্যে সর্বাধিক অনুরূপ ঘড়ি খুঁজে পেতে পারি। সাদৃশ্যটির সাথে আমার অর্থ এই যে আমি যদি কোনও ইনপুট হিসাবে পাতলা জরির সাথে একটি বৃত্তাকার, বাদামী ঘড়ির ছবি দেই তবে আমি আশা করি আউটপুটটি বৃত্তাকার আকৃতির, গা dark় বর্ণের এবং পাতলা জরিযুক্ত ঘড়ি হিসাবে।

এটি করার জন্য সবচেয়ে দক্ষ মেশিন লার্নিং অ্যালগরিদম কী?

উদাহরণস্বরূপ, এই লিঙ্কটি অনুসরণ করে আমার মনে দুটি পৃথক সমাধান রয়েছে:

1) কোনও সিএনএন একটি বৈশিষ্ট্য নিষ্কর্ষক হিসাবে ব্যবহার করে এবং ইনপুট চিত্রের সাথে রেফারেন্স সহ প্রতি জোড়া চিত্রের জন্য এই বৈশিষ্ট্যগুলির মধ্যে দূরত্বগুলির তুলনা করুন।

2) চিত্রগুলির তুলনা করার জন্য সিয়ামেস নিউরাল নেটওয়ার্কে দুটি সিএনএন ব্যবহার করা।

এই দুটি বিকল্প কি এই কাজের জন্য সেরা বা আপনি অন্য কোনও কিছুর পরামর্শ দিচ্ছেন?

আপনি কি এই কাজের জন্য কোনও পূর্ব-প্রশিক্ষিত নিউরাল নেটওয়ার্ক (পূর্ব নির্ধারিত হাইপারপ্যারামিটার সহ) জানেন?

আমি স্ট্যাকওভারফ্লোতে এই সম্পর্কে কিছু আকর্ষণীয় পোস্ট পেয়েছি তবে সেগুলি বেশ পুরানো: পোস্ট_1 , পোস্ট_2 , পোস্ট_3


সাইটে স্বাগতম! এম্বেডিং শিখুন (আমি এক হাজার বিটের ক্রম অনুসারে দ্রুত পুনরুদ্ধারের জন্য বাইনারি হ্যাশ প্রস্তাব দিই ) তারপরে সাদৃশ্য অনুসন্ধান করুন।
এমরে

এখানে এসে আমার আনন্দের ... হা হা! ... হ্যাঁ, এটি একটি ভাল ধারণা এবং আমি ইতিমধ্যে এই কাগজটি পড়েছিলাম ...
আউটকাট

উত্তর:


4

আমি মনে করি না যে এর মতো একটি উচ্চ স্তরের আর্কিটেকচারটি সবচেয়ে উপযুক্ত তবে এটি বরং অনেকগুলি কারণ এবং বিশদের উপর নির্ভর করে। আমি প্রথম পদ্ধতির বিষয়ে যা জানি তা থেকে প্রতিশ্রুতিবদ্ধ হয় বিশেষত টিফভিশনে যেমন অতিরিক্ত পদক্ষেপগুলি দ্বারা প্রসারিত হয় :

  1. বাকী থেকে চিত্রের প্রাসঙ্গিক অংশটি বৈষম্যের জন্য অতিরিক্ত বাউন্ডিং বক্স নেটওয়ার্ক ব্যবহার করা হয়
  2. বৈশিষ্ট্য ভেক্টরগুলি কেবল সরাসরি তুলনা করা হয় না বরং ট্রিপল্ট ব্যবহার করে তুলনা নেটওয়ার্ককে প্রশিক্ষণের জন্য ব্যবহার করা হয় (বৈশিষ্ট্য ভেক্টরগুলির উপর ভিত্তি করে সাদৃশ্য শিখতে এবং আরও এবং কম মিলের উদাহরণগুলির জন্য উদাহরণ)।

আপনি যা পোস্ট করেছেন তার চেয়ে এই কাজটি অনেক বেশি সাম্প্রতিক (২০১//১)) এবং একটি দুর্দান্ত সরঞ্জাম সেট এবং আরও বিশদ কাগজ নিয়ে আসে

কেন ট্রিপল্ট ওরফে ডিপ র‌্যাঙ্কিং ব্যবহার করছেন?

মন্তব্যে যেমন বলা হয়েছে: ফিচার ভেক্টর শেখার পরিবর্তে চিত্রের মিলের জন্য কেন তিনটি ব্যবহার করা উচিত এবং তাদের দূরত্ব গণনা করা উচিত? ট্রিপল্টস মূলত সাদৃশ্যটির যত্ন নেয় না এমন বৈশিষ্ট্য ভেক্টরগুলি শিখার পরিবর্তে শেখার সমস্যা হিসাবে মিলের প্রশ্নটি গঠনের একটি উপায়। এই দৃষ্টিভঙ্গি বিশেষত সেই ক্ষেত্রে ক্ষেত্রে উপলব্ধি করে যেখানে মানব-অনুভূতিযুক্ত মিল গুরুত্বপূর্ণ, যা মেশিন উপলব্ধি থেকে পৃথক হতে পারে।

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

এই সমস্ত পদ্ধতির সমস্ত তুলনামূলকভাবে জটিল। এটি খুব বেশি পরিমাণে কার্যকর হতে পারে তবে আপনি এটি করার সর্বোত্তম উপায়ও চেয়েছিলেন এবং ডিপ র‌্যাঙ্কিং খুব উচ্চ নির্ভুলতার মান অর্জন করে।


আপনার প্রতিক্রিয়ার জন্য আপনাকে ধন্যবাদ. এটি একটি আকর্ষণীয় (আমি এটি উত্সাহিত করেছি)। ট্রিপলটি সম্পর্কে ধারণাটি ভাল যদিও আমি ঠিক নিশ্চিত নই যে কেন আমার কাজের জন্য চিত্রের জোড়া ব্যবহার করার চেয়ে তিনবার চিত্র ব্যবহার করা ভাল। আপনি যদি চান, আপনি এটি আপনার পোস্টে আরও ব্যাখ্যা করতে পারেন। এছাড়াও আমি টিফভিশনে একটি নজর রাখব।
আউটকাস্ট

@ ইউনিভার্সালিস ইঙ্গিতটির জন্য ধন্যবাদ (এবং উত্সাহ)। ট্রিপল্ট এবং যুক্তি সম্পর্কিত আরও কিছু বিবরণ দিয়ে আমি আমার উত্তর আপডেট করেছি। কাগজটিও খুব ভাল লেখা আছে তাই সমস্ত বিবরণটি দেখুন। যদিও টিফভিশন এবং ডিপর্যাঙ্কিং উঠে আসার পরে এটি করার নতুন অভিনব উপায় থাকতে পারে।
জেজেনউইন্ড

আবারো ধন্যবাদ তোমার প্রতিক্রিয়ার জন্যে। হ্যাঁ, কাগজে আমার নজর ছিল এবং আপনি আপনার উত্তরে কী যুক্ত করেছিলেন সে সম্পর্কে এটি পরিষ্কার। এই অর্থে, আমি ইতিমধ্যে বুঝতে পেরেছিলাম আপনি কী উত্তরটি যুক্ত করেছেন এবং আমার প্রশ্নটি আরও স্পষ্টভাবে নিম্নলিখিতটি ছিল: চিত্রগুলি তাদের মিল অনুসারে র‌্যাঙ্ক করার জন্য 3 চিত্রের (একটি ট্রিপল) পরিবর্তে 2 টি চিত্র (একটি জোড়া) ব্যবহার করবেন না কেন? জোড়া পরিবর্তে ট্রিপল্ট ব্যবহার করার অতিরিক্ত সুবিধা কী?
ওদেরকে বিতাড়নের

হুম সম্ভবত আমি আপনার পদ্ধতির ভুল বুঝেছি। ট্রিপলটি তুলনামূলক তথ্য সরবরাহ করে যে চিত্র 1 চিত্রের চেয়ে 2 চিত্রের আরও নিকটতম only মাত্র 2 টি চিত্র থাকা এবং "এই 2 টি উল্লেখ করা" একই তুলনায় তুলনামূলক কারণের অভাব রয়েছে কারণ এই পদ্ধতির মধ্যে আপনি ধরে নিয়েছেন যে সরল দূরত্ব বৈশিষ্ট্য ভেক্টর আপনাকে যথেষ্ট বলতে না। অন্য কথায়: আপনি অর্ডার অনুসারে মিল খুঁজে পান এবং অর্ডার করতে কমপক্ষে 2 টি আইটেম না থাকলে আপনার অভাব হয়।
জেজেনওয়াইন্ড

আপনার প্রতিক্রিয়ার জন্য আবার আপনাকে ধন্যবাদ। যাইহোক, এখন থেকে এবং কাগজটি আরও যত্ন সহকারে পড়ার পরেও, আমার কাছে এটি স্পষ্ট নয় যে কেন আপনার এই অপ্রচলিত পদ্ধতির জন্য অবিচ্ছিন্নভাবে তিনটি এবং চিত্রের জোড়া লাগবে না। লেবেলগুলি ব্যবহার করার সময় এটি স্পষ্ট হয় যে ট্রিপল্টগুলি ব্যবহার করে আপনি চিত্রগুলির একটি সম্পূর্ণ মিলের র‌্যাঙ্কিং পাবেন যা আপনি জোড়ায় পেতে পারবেন না। তবে এই (সাজানোর) অপ্রচলিত পদ্ধতির মধ্যে যা আপনি প্রস্তাব করেন তারপরে প্রতি জোড়া চিত্রের জন্য লোকসান ফাংশনের মানগুলি (সর্বদা জোড়াটির একটি চিত্রই ইনপুট চিত্র হয়) খুঁজে বার করতে না কেন যেমন 5 টির সাথে একই রকম ইনপুট ইমেজ?
আউটকাস্ট

2

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

তবে, তারপরে আপনি অতিরিক্ত বৈশিষ্ট্যগুলি পান: অন্যান্য সমস্ত বিভাগের অ্যাক্টিভেশন স্তর। এটি আপনাকে 0 থেকে 1 এর মধ্যে হাজার মানের ভেক্টর দেয়।

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


আপনার প্রতিক্রিয়া (upvote) জন্য আপনাকে ধন্যবাদ। হ্যাঁ, আমার মনে এটি ছিল এবং এক অর্থে এটি আমার পোস্টে সরবরাহ করা প্রথম বিকল্পের সাথে সম্পর্কিত। সুতরাং আমি অন্যান্য ডিটেক্টরগুলি এসআরএফ এর মতো ব্যবহার করার বিষয়েও ভাবছিলাম ... আমি দেখতে পাবো যে এগুলি যথেষ্ট সফল কিনা ...
আউটকাট

2

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

বিভিন্ন সংমিশ্রণ সহ এটি বেশ কয়েকবার করুন এবং প্রতিটি ঘড়ির জন্য একটি লেবেল রাখুন। তারপরে আমি আপনাকে শ্রেণিবিন্যাসের জন্য নিয়মিত কনভোলশনাল নিউরাল নেটওয়ার্ক ব্যবহার করার পরামর্শ দেব। প্রতিটি লেবেলের একটি স্কোর থাকবে, সর্বোচ্চ আত্মবিশ্বাসের সাথে একটিটি বেছে নিন এবং এটির মধ্যে সবচেয়ে সাদৃশ্য হওয়া উচিত ।

উদাহরণস্বরূপ বলা যাক আপনি একটি চিত্র দিয়ে শ্রেণিবদ্ধ চালান এবং এই ফলাফলটি পান:

Watch1: 0.51

Watch2: 0.30

Watch3: 0.25

সিএনএন বলছে যে এটির একটি 51% আস্থা আছে যে ওয়াচ 1 ইনপুট চিত্রের ঘড়ি। তবে এটিও সত্য যা এটি মনে করে যা এটি আরও সাদৃশ্যযুক্ত বলে মনে হয়, ওয়াচ 2 এর পরেরটি আরও একই রকম হবে এবং এরকমই।

আপনি যদি ভাল ফলাফল না পান তবে সাধারণ করুন। পরামিতিগুলির সাথে পরীক্ষা করুন এবং / বা আরও স্তর যুক্ত করুন। এটি কোথায় ব্যর্থ হচ্ছে তা জানার চেষ্টা করুন। আপনার এই অন্তর্দৃষ্টি হওয়ার পরে, আপনি এটি আপনার নির্দিষ্ট সমস্যার জন্য আরও বিশেষ ধরণের কনভ্যুশনাল নেটওয়ার্ক চয়ন করতে ব্যবহার করতে পারেন। এটি কীভাবে সম্পাদন করবে তা পূর্বের জ্ঞান ছাড়াই এটি সন্ধান করা সঠিক পদ্ধতির নয়। আমি আপনাকে একটি প্রাথমিক সমাবর্তন মডেল দিয়ে শুরু করার পরামর্শ দেব এবং তারপরে সেখান থেকে কাজ করুন work


1
আপনার প্রতিক্রিয়া (upvote) জন্য আপনাকে ধন্যবাদ। হ্যাঁ, আমার মনে ইতিমধ্যে ডেটা বর্ধন ছিল। তবে আপনার প্রতিক্রিয়াটি বেশ অস্পষ্ট। "প্রতিটি ঘড়ির জন্য একটি লেবেল আছে" বলতে কী বোঝায়? আপনি কি প্রতিটি ঘড়ি পৃথক পৃথকভাবে লেবেল করা বা সেগুলির অনুরূপ কিনা তা নির্ভর করে অন্যটির সাথে জুটি হিসাবে লেবেল করা বোঝাতে চান? (যদি এটি পূর্বের হয় তবে দয়া করে কেন এটি দক্ষ please)
আউটকাস্ট করুন

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

এইচএম, হ্যাঁ এখন এটি আপনার স্পষ্ট বোঝার চেয়ে আরও স্পষ্ট হয়ে উঠেছে .... এটি অবশ্যই একটি ভাল সাধারণ পরামর্শ: বেসিকগুলি দিয়ে শুরু করুন এবং আরও জটিল সামগ্রীতে ধাপে ধাপে এগিয়ে যান ... যাইহোক ধন্যবাদ ...
আউটকাস্ট
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.