Yolo ক্ষতি ফাংশন ব্যাখ্যা


16

আমি ইয়োলো ভি 2 ক্ষতির ফাংশনটি বোঝার চেষ্টা করছি:

λcoordi=0S2j=0B1ijobj[(xix^i)2+(yiy^i)2]+λcoordi=0S2j=0B1ijobj[(wiw^i)2+(hih^i)2]+i=0S2j=0B1ijobj(CiC^i)2+λnoobji=0S2j=0B1ijnoobj(CiC^i)2+i=0S21iobjcclasses(pi(c)p^i(c))2

যদি কোনও ব্যক্তি ফাংশনটি বিশদ করতে পারেন।


5
প্রসঙ্গ ব্যতীত কেউ আপনাকে সহায়তা করতে পারে না ... কমপক্ষে আমাদের বলুন এটি কোন কাগজ থেকে এসেছে।
বিডিওনোভিচ

1
"আমি বুঝতে পারি না" এবং "ফাংশনটির বিশদটি" অত্যধিক বিস্তৃত। দয়া করে নির্দিষ্ট প্রশ্নগুলি সনাক্ত করার চেষ্টা করুন। নোট করুন যে ইতোমধ্যে ইয়োলো সম্পর্কিত অসংখ্য প্রশ্ন রয়েছে , যার মধ্যে কয়েকটি আপনাকে যা
চেয়েছে

1
আমি এই উত্তরটি যুক্ত করব যদি আপনি এই দুর্দান্ত ব্যাখ্যাটি থেকে কী পরিষ্কার নয় তা নির্দেশ করে: मध्यम.com
@

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

উত্তর:


18

বিভিন্ন পদাবলীর ব্যাখ্যা:

  • 3 ক্ষতির ক্রিয়াকলাপের আরও একটি দিক বিবেচনা করার জন্য কেবল ধ্রুবক। নিবন্ধে the প্রথম আরও বেশি গুরুত্ব পেতে সর্বোচ্চλ সি আর ডিλλcoord
  • Yolo এর ভবিষ্যদ্বাণী একটি হল ভেক্টর: প্রতিটি গ্রিড কোষ এবং জন্য bbox ভবিষ্যৎবাণী প্রতিটি গ্রিড সেল জন্য ক্লাস ভবিষ্যদ্বাণী (যেখানে শ্রেণীর সংখ্যা)। I কক্ষের জে বক্সের 5 টি বাক্সের আউটপুটগুলি , উচ্চতা , প্রস্থ এবং একটি আত্মবিশ্বাস সূচক এর tte কেন্দ্রের স্থানাঙ্কবি সি সি x আমি Y আমি আমি W আমি সি আমি SS(B5+C)BCCxij yijhijwijCij
  • আমি কল্পনা করেছি যে টুপি সহ মানগুলি হ'ল লেবেল থেকে পড়া এবং আসল মানগুলি হ'ল পূর্বাভাসিত মান। সুতরাং প্রতিটি বক্স আইজ এর আত্মবিশ্বাস স্কোরের জন্য লেবেল থেকে আসল মানটি কী ? এটি লেবেল থেকে থাকা একটির সাথে পূর্বাভাসযুক্ত সীমাবদ্ধ বাক্সটির ইউনিটকে ছেদ করে।C^ij
  • 1আই01iobj হয় যখন কক্ষে একটি বস্তুর এবং অন্যত্র1i0
  • আমি1আমি 1 এন b আমি আমি1ijobjth "বোঝায় যে সেল তে তম বাউন্ডিং বাক্স ভবিষ্যদ্বাণী সেই ভবিষ্যদ্বাণীটির জন্য দায়ী"। অন্য কথায়, এটা সমান হলে কক্ষে একটি বস্তুর এবং আস্থা তম এই কক্ষের ভবিষ্যতবক্তা এই কক্ষটি সব ভবিষ্যতবক্তা মধ্যে সর্বোচ্চ। প্রায় 1 মান ব্যতীত যখন সেল কোনও অবজেক্ট নেইji1ij1ijnoobji

নোট করুন যে আমি প্রতিটি ববক্সের পূর্বাভাসের জন্য দুটি সূচক এবং ব্যবহার করেছি, নিবন্ধে এটি হয় না কারণ সর্বদা একটি উপাদান જે বা সুতরাং কোনও দ্ব্যর্থহীন ব্যাখ্যা নেই: নির্বাচিত সেই ঘরের সর্বোচ্চ আত্মবিশ্বাসের স্কোরের সাথে সম্পর্কিত।1 আমি 1 এন b আমি ij1ijobj1ijnoobjj

যোগফলের প্রতিটি পদটির আরও সাধারণ ব্যাখ্যা:

  1. এই শব্দটি কোষের কেন্দ্রের খারাপ স্থানীয়করণকে শাস্তি দেয়
  2. এই পদটি সঠিক উচ্চতা এবং প্রস্থের সাথে সীমাবদ্ধ বাক্সটিকে শাস্তি দেয়। স্কোয়ার রুটটি উপস্থিত রয়েছে যাতে ছোট বাউন্ডিং বাক্সগুলিতে ত্রুটিগুলি বড় বাউন্ডিং বাক্সগুলির ত্রুটির চেয়ে বেশি শাস্তিযোগ্য হয়।
  3. এই পদটি আত্মবিশ্বাসের স্কোরটিকে আইউইউ সমান করার চেষ্টা করে যখন একটি বস্তু থাকে এবং পূর্বাভাসের মধ্যে থাকে one
  4. কক্ষে কোনও অবজেক্ট না থাকলে আত্মবিশ্বাসের স্কোর কাছাকাছি করার চেষ্টা করে0
  5. এটি একটি সাধারণ শ্রেণিবিন্যাস ক্ষতি (নিবন্ধে ব্যাখ্যা করা হয়নি)

1
দ্বিতীয় দফা হওয়ার কথা কি B*(5+C)? YOLO v3 এর ক্ষেত্রে এটি সর্বনিম্ন।
sachinruk

@ সাচিনরুক এটি মূল ইওলো এবং এটি ভি 2 এবং ভি 3 এর মধ্যে মডেলের পরিবর্তনগুলি প্রতিফলিত করে।
ডেভিড রেফেলি

12

λcoordi=0S2j=0B1ijobj[(xix^i)2+(yiy^i)2]+λcoordi=0S2j=0B1ijobj[(wiw^i)2+(hih^i)2]+i=0S2j=0B1ijobj(CiC^i)2+λnoobji=0S2j=0B1ijnoobj(CiC^i)2+i=0S21iobjcclasses(pi(c)p^i(c))2

YOLOv2 ক্ষতি ফাংশন কি ভীতিজনক দেখাচ্ছে না? এটা আসলে না! এটি চারপাশের অন্যতম সাহসী, স্মার্ট লোকসান কার্য function

আসুন প্রথমে দেখে নেওয়া যাক নেটওয়ার্কটি আসলে কী ভবিষ্যদ্বাণী করে।

যদি আমরা পুনরায় সংশোধন করি তবে YOLOv2 13x13 বৈশিষ্ট্যের মানচিত্রে সনাক্তকরণের পূর্বাভাস দিয়েছে, সুতরাং মোট, আমাদের কাছে 169 মানচিত্র / ঘর রয়েছে।

আমাদের 5 টি অ্যাঙ্কর বাক্স রয়েছে। প্রতিটি অ্যাঙ্কর বাক্সের জন্য আমাদের অবজেক্ট-কনফিডেন্স স্কোর (কোনও বস্তু পাওয়া গেছে কিনা?), অ্যাঙ্কর বক্সের জন্য 4 সমন্বয় ( এবং ) এবং 20 শীর্ষ শ্রেণীর প্রয়োজন। এটিকে ক্রুডলি 20 টি স্থানাঙ্ক, 5 আত্মবিশ্বাস স্কোর এবং সমস্ত 5 অ্যাঙ্কর বাক্স পূর্বাভাসের জন্য একত্রে রাখা 100 শ্রেণীর সম্ভাবনা হিসাবে দেখা যেতে পারে।tx,ty,tw,th

আমাদের উদ্বিগ্ন হওয়ার মতো কয়েকটি বিষয় রয়েছে:

  • xi,yi , যা অ্যাঙ্কর বক্সের সেন্ট্রয়েডের অবস্থান
  • wi,hi , যা অ্যাঙ্কর বক্সের প্রস্থ এবং উচ্চতা
  • Ci , যা অবজেক্টনেস , অর্থাত্ কোনও বস্তু আছে কি নেই তার আত্মবিশ্বাস স্কোর এবং
  • pi(c) , যা শ্রেণিবদ্ধার ক্ষতি।
  • আমাদের কেবল কোনও ঘরে কোনও বস্তু উপস্থিত থাকলে সনাক্ত করার জন্য নেটওয়ার্ককে প্রশিক্ষণ দেওয়ার প্রয়োজন নেই, আমাদের নেটওয়ার্কটিকে শাস্তিও দেওয়া দরকার, এটি কোনও ঘরে কোনও বস্তুর পূর্বাভাস দেয়, যখন সেখানে কিছু ছিল না। আমরা এটা কিভাবে করব? আমরা প্রতিটি কক্ষের জন্য একটি মুখোশ ( এবং ) ব্যবহার করি। তাহলে মূলত সেখানে একটি বস্তু ছিল 1 এবং অন্যান্য কোন-বস্তুর কোষ হয় 0. মাত্র বিপরীত হয় , যেখানে এটি 1 যদি সেখানে ছিল কোন বস্তু কক্ষে এবং 0 যদি ছিল না।𝟙iobj𝟙inoobj𝟙iobj𝟙inoobj𝟙iobj
  • আমাদের সমস্ত 169 কোষের জন্য এটি করা দরকার, এবং
  • আমাদের এটি 5 বার করতে হবে (প্রতিটি অ্যাঙ্কর বাক্সের জন্য)।

সমস্ত ক্ষয়ক্ষতি শ্রেণিবিন্যাস ক্ষতি ব্যতীত, গড়-স্কোয়ার ত্রুটি, যা ক্রস-এন্ট্রপি ফাংশন ব্যবহার করে।

এখন, ইমেজ মধ্যে কোড ভাঙ্গা যাক।

  • আমাদের প্রতিটি অ্যাঙ্কর বক্সের জন্য লোকসান গণনা করতে হবে (মোট 5 টি)

    • j=0B এই অংশটির প্রতিনিধিত্ব করে, যেখানে বি = 4 (5 - 1, যেহেতু সূচক 0 থেকে শুরু হয়)
  • আমাদের 13x13 কোষের প্রতিটি যেখানে এস = 12 (যেহেতু আমরা 0 থেকে সূচী শুরু করি) এর জন্য এটি করা দরকার

    • i=0S2 this এই অংশটি উপস্থাপন করে।
  • 𝟙ijobj 1 1 হয় যখন কক্ষে অন্য কোনও 0 থাকে।i

  • 𝟙ijnoobj 1 1 হয় যখন সেল অন্য কোনও বস্তু নেই , অন্য 0।i
  • 𝟙iobj 1 হয় যখন কোনও নির্দিষ্ট শ্রেণি পূর্বাভাস হয় তবে অন্য 0।
  • const গুলি ধ্রুবক। dete সনাক্তকরণে আরও ফোকাস করার জন্য সমন্বয়কারীদের পক্ষে সর্বোচ্চ (মনে রাখবেন, YOLOv2 এ, আমরা প্রথমে এটি স্বীকৃতির জন্য এবং তারপরে সনাক্তকরণের জন্য, স্বীকৃতির জন্য ভারীভাবে শাস্তি দেওয়া সময় অপচয় করা নয়, বরং আমরা সেরা বাউন্ডিং বাক্সগুলি পাওয়ার দিকে মনোনিবেশ করি!)
  • আমরা আরও খেয়াল করতে পারি যে অধীনে under এটি ছোট বাউন্ডিং বাক্সগুলিকে দণ্ডিত করার জন্য করা হয় কারণ আমাদের বৃহত্তর অবজেক্টের (লেখকের কল) এর চেয়ে ছোট বস্তুর উপর আরও ভাল ভবিষ্যদ্বাণী প্রয়োজন। নীচের টেবিলটি দেখুন এবং দেখুন যদি আমরা "স্কোয়ার-রুট" পদ্ধতিটি অনুসরণ করি তবে কীভাবে ছোট মানগুলি আরও বেশি শাস্তি প্রাপ্ত হয় (ইনপুট মান হিসাবে আমাদের 0.3 এবং 0.2 থাকে তবে প্রতিস্থাপনের পয়েন্টটি দেখুন) (PS: আমি var1 এর অনুপাত রেখেছি এবং কেবল বর্ণনার জন্য var2 একই):wi,hi

        var1 | var2 | (var1 - var2) ^ 2 | (sqrtvar1 - sqrtvar2) ^ 2

        0.0300 | 0.020 | 9.99e-05 | 0.001

        0.0330 | 0.022 | 0.00012 | 0,0011

        0.0693 | 0.046 | 0.000533 | 0,00233

        0.2148 | 0.143 | 0.00512 | 0,00723

        0.3030 | 0.202 | 0.01 | 0.01

        0.8808 | 0.587 | 0.0862 | 0,0296

        4.4920 | 2.994 | 2.2421 | 0,1512

ভয়াবহ নয়, তাই না!

বিস্তারিত জানতে এখানে পড়ুন ।


1
আমি এবং জেতে 0 এর পরিবর্তে 1 থেকে শুরু করা উচিত?
ওয়েববার্টিজার

1
হ্যাঁ, এটি সঠিক ওয়েবারটাইজার, সেই অনুযায়ী উত্তরটি আপডেট করেছে। ধন্যবাদ!
আরশ্রভান

নয 1 যখন বক্স ঞ সীমান্ত কোষ আমি একটি বস্তু কে? এবং সব জে জন্য না? আমরা কীভাবে একটি জে সেট করব এবং বাকিটি শূন্যে সেট করব। অর্থাৎ যেখানে এটি চালু আছে সেখানে সঠিক স্কেল / অ্যাঙ্কর কী। 1ijobj
sachinruk

1
আমি বিশ্বাস করি এস এর পরেও 13 হওয়া উচিত তবে যোগফল 0 এ শুরু হলে এটি শেষ হওয়া উচিতS21
জুলিয়ান

3
@ শ্রাবণ, আপনি বলেছেন: "সমস্ত ক্ষয়ক্ষতি শ্রেণিবিন্যাস ক্ষতি ব্যতীত, গড়-স্কোয়ার ত্রুটি, যা ক্রস-এন্ট্রপি ফাংশন ব্যবহার করে"। আপনি ব্যাখ্যা করতে পারেন? এই সমীকরণে, এটি এমএসই হিসাবেও দেখায়। অগ্রিম ধন্যবাদ
জুলিয়ান

3

আপনার ক্ষতি ফাংশন YOLO v1 এর জন্য, YOLO v2 এর জন্য নয়। আমি ক্ষতির দুটি কার্যের মধ্যে পার্থক্য নিয়েও বিভ্রান্ত হয়ে পড়েছিলাম এবং মনে হয় অনেক লোক হ'ল: https://groups.google.com/forum/#!topic/darknet/TJ4dN9R4iJk

YOLOv2 কাগজটি YOLOv1 থেকে আর্কিটেকচারের পার্থক্যটি নীচে ব্যাখ্যা করেছে:

আমরা YOLO (v1) থেকে সম্পূর্ণ সংযুক্ত স্তরগুলি সরিয়ে ফেলি এবং সীমানা বাক্সগুলির পূর্বাভাস দেওয়ার জন্য অ্যাঙ্কর বাক্স ব্যবহার করি ... যখন আমরা অ্যাঙ্কর বাক্সে চলে যাই তখন আমরা স্থানের অবস্থান থেকে শ্রেণি পূর্বাভাস প্রক্রিয়াটি ডিকুয়াল করি এবং পরিবর্তে প্রতিটি অ্যাঙ্করবক্সের জন্য শ্রেণি এবং অবজেক্টের পূর্বাভাস করি।

এর অর্থ হ'ল উপরের আত্মবিশ্বাসের সম্ভাবনা কেবলমাত্র এবং নয়, অ্যাঙ্কর বক্স সূচকেও নির্ভর করবে , বলে । অতএব, ক্ষতিটি উপরে থেকে আলাদা হওয়া দরকার। দুর্ভাগ্যক্রমে, YOLOv2 কাগজটি তার ক্ষতির ক্রিয়াটি স্পষ্টভাবে বলে না doespi(c)icj

আমি YOLOv2 এর ক্ষয়ক্ষতি সম্পর্কে একটি অনুমান করার চেষ্টা করেছি এবং এটি এখানে আলোচনা করব: https://fairyonice.github.io/Part_4_Object_Detection_with_Yolo_used_VOC_2012_data_loss.html


1

এখানে আমার স্টাডি নোট

  1. ক্ষতি ফাংশন: যোগফলের ত্রুটি

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

    λcoord=5
    λnoobj

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

ক। আবদ্ধ বাক্স স্থানাঙ্ক (x, y) থেকে ক্ষতি লক্ষ্য করুন যে ক্ষতি একটি গ্রিড ঘর থেকে একটি বাউন্ডিং বক্স থেকে আসে। এমনকি গ্রিড কক্ষে আপত্তি না থাকলেও স্থল সত্য হিসাবে।

{λcoordi=0S2[(xix^i)2+(yiyi^)2]responsible bounding box0 other

খ। প্রস্থ এবং w উচ্চতা থেকে ক্ষতি h। নোট করুন যে ক্ষতি গ্রিড সেল থেকে একটি বাউন্ডিং বক্স থেকে আসে, এমনকি যদি গ্রিড সেলে বস্তুটি স্থল সত্য হিসাবে না থাকে।

{λcoordi=0S2[(wiw^i)2+(hih^i)2]responsible bounding box0 other

গ। প্রতিটি আবদ্ধ বাক্সের আস্থা থেকে ক্ষতি ক্ষতি গ্রিড সেল থেকে একটি বাউন্ডিং বক্স থেকে আসে না, এমনকি বস্তু গ্রিড সেলে গ্রাউন্ড ট্রুথ হিসাবে না থাকলেও।

{i=0S2(CiC^i)2obj in grid cell and responsible bounding boxλnoobji=0S2(CiC^i)2obj not in grid cell and responsible bounding box0other
d। গ্রিড কক্ষের শ্রেণি সম্ভাবনা থেকে হ্রাস , কেবল যখন গ্রিড কক্ষে বস্তু স্থল সত্য হিসাবে থাকে।

{i=0S2cclasses(pi(c)p^i(c))2obj in grid cell0other

ক্ষতি গ্রন্থটি কেবল শ্রেণিবিন্যাসকে শাস্তি দেয় যদি আপত্তি গ্রিড ঘরে উপস্থিত থাকে। যদি সেই বাক্সটি গ্রাউন্ড বক্সের জন্য দায়ী হয় (সর্বোচ্চ আইওউ)


কাগজটিতে 'সি' সম্পর্কে প্রশ্ন, আত্মবিশ্বাস হ'ল আইওইউ দ্বারা গুণিত অবজেক্ট-বা-কোনও অবজেক্ট ভ্যালু; এটি কি কেবল পরীক্ষার সময় জন্য বা প্রশিক্ষণ ব্যয়ের জন্যও ব্যবহৃত হয়? আমি ভেবেছিলাম যে আমরা কেবল আউটপুট এবং লেবেল থেকে সি মান বিয়োগ করব (ঠিক যেমন আমরা গ্রিড মান দিয়েছিলাম) তবে এটি কি ভুল?
মুন্দ্রা

0

ক্ষয় সূত্র আপনি লিখেছেন হল মূল Yolo কাগজ ক্ষতি, না v2 অথবা v3 এর ক্ষয়।

সংস্করণগুলির মধ্যে কিছু বড় পার্থক্য রয়েছে। আমি কাগজপত্রগুলি পড়ার বা কোড বাস্তবায়নগুলি পরীক্ষা করার পরামর্শ দিচ্ছি। কাগজপত্র: ভি 2 , ভি 3

কিছু বড় পার্থক্য আমি লক্ষ্য করেছি:

  • সীমানা বাক্সে শ্রেণীর সম্ভাবনা গণনা করা হয় (সুতরাং আউটপুটটি এস এস (বি * 5 + সি) এর পরিবর্তে এখন এস ∗ এস ∗ বি * ( 5 + সি))

  • বাউন্ডিং বক্স সমন্বয়গুলির এখন আলাদা উপস্থাপনা রয়েছে

  • ভি 3-তে তারা 3 টি পৃথক "স্কেল" জুড়ে 3 টি বাক্স ব্যবহার করে

পাইথন / কেরাস বাস্তবায়ন ভি 2 , ভি 3 (ফাংশনটি yolo_loss দেখুন) বা সরাসরি সি বাস্তবায়ন ভি 3 (ডেল্টা_ইলো_বক্স এবং ডেল্টা_ইলো_ক্লাসের সন্ধান) এর মাধ্যমে আপনি ক্ষতির নাকাল-বিব্রত বিশদে যাওয়ার চেষ্টা করতে পারেন।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.