এসভিএমগুলিকে অনুপ্রাণিত করার জন্য কমপক্ষে দুটি উপায় রয়েছে তবে আমি এখানে সরল রুটটি নিয়ে যাব।
এখন, এসভিএম সম্পর্কে আপনার জানা সমস্ত কিছু মুহুর্তের জন্য ভুলে যান এবং কেবলমাত্র সমস্যার মুখোমুখি হন। আপনি পয়েন্ট একটি সেট দেওয়া হয় কিছু লেবেল (সহ Y আমি ) যা থেকে { 1 , - 1 } । এখন, আমরা 2 ডি তে একটি লাইন সন্ধান করার চেষ্টা করছি যে লেবেল 1 সহ সমস্ত পয়েন্টগুলি লাইনটির একপাশে পড়ে এবং লেবেলযুক্ত সমস্ত পয়েন্ট - অন্য দিকে 1 টি পড়ে।D={(xi1,xi2,yi)}yi{1,−1}1−1
প্রথম সব, বুঝতে পারি যে 2D মধ্যে একটি লাইন এবং W 0 + + W 1 এক্স 1 + + W 2 এক্স 2 > 0 লাইনের এবং "এক দিকে" প্রতিনিধিত্ব করে W 0 + w 1 x 1 + w 2 x 2 < 0 লাইনের "অন্য দিকে" উপস্থাপন করে sidew0+w1x1+w2x2=0w0+w1x1+w2x2>0w0+w1x1+w2x2<0
থেকে আমরা উপরে উপসংহারে আসতে পারি যে আমরা কিছু ভেক্টর চান যেমন যে,
W 0 + + W 1 এক্স আমি 1 + + W 2 এক্স আমি 2 ≥ 0 সব পয়েন্ট জন্য x আমি সঙ্গে Y আমি = 1 এবং ডব্লু 0 + ডাব্লু 1 এক্স আই 1 + ডাব্লু 2 এক্স আই 2 < 0[w0,w1,w2]w0+w1xi1+w2xi2≥0xiyi=1w0+w1xi1+w2xi2<0সব পয়েন্ট জন্য সঙ্গে Y আমি = - 1 [1]।xiyi=−1
আসুন ধরে নেওয়া যাক যে এই জাতীয় লাইন আসলে বিদ্যমান তবে আমি নিম্নলিখিত উপায়ে শ্রেণিবদ্ধকে সংজ্ঞায়িত করতে পারি,
min|w0|+|w1|+|w2|subject to:w0+w1xi1+w2xi2≥0,∀xi with yi=1w0+w1xi1+w2xi2<0,∀xi with yi=−1
আমি উপরে একটি স্বেচ্ছাচারিত উদ্দেশ্যমূলক ফাংশন ব্যবহার করেছি, আমরা এই মুহূর্তে কোন যত্ন নিই না যে উদ্দেশ্যমূলক ফাংশনটি ব্যবহৃত হয়। আমরা কেবল এমন একটি চাই যা আমাদের প্রতিবন্ধকতাগুলি পূরণ করে। যেহেতু আমরা ধরে নিয়েছি যে একটি রেখার অস্তিত্ব রয়েছে যে আমরা সেই লাইনের সাথে দুটি শ্রেণি পৃথক করতে পারি, তাই আমরা উপরের অপ্টিমাইজেশান সমস্যার সমাধান খুঁজে পাব।w
উপরেরটি এসভিএম নয় তবে এটি আপনাকে একটি শ্রেণিবদ্ধ :-) দেবে। তবে এই শ্রেণিবদ্ধকারী খুব ভাল নাও হতে পারে। তবে আপনি কীভাবে একটি ভাল শ্রেণিবদ্ধের সংজ্ঞা দেন? একটি ভাল শ্রেণিবদ্ধকারী সাধারণত হয় যা পরীক্ষার সেটটিতে ভাল করে। আদর্শভাবে, আপনি সমস্ত সম্ভাব্য উপর দিয়ে যাবেন যা আপনার প্রশিক্ষণের ডেটা পৃথক করে এবং পরীক্ষাগুলির ডেটাতে এর মধ্যে কোনটি ভাল করে দেখবে। যাইহোক, অসীম ডাব্লু এর আছে, তাই এটি যথেষ্ট হতাশ। পরিবর্তে, আমরা একটি ভাল শ্রেণিবদ্ধের সংজ্ঞায়নের জন্য কিছু তাত্পর্যপূর্ণ বিবেচনা করব। একটি হিউরিস্টিক হ'ল যে রেখাটি ডেটা পৃথক করে তা সমস্ত পয়েন্ট থেকে যথেষ্ট দূরে থাকবে (অর্থাত পয়েন্ট এবং লাইনের মধ্যে সর্বদা ফাঁক বা মার্জিন থাকে)। এর মধ্যে সেরা শ্রেণিবদ্ধকারী হ'ল সর্বোচ্চ মার্জিনের সাথে একটি with এসভিএমগুলিতে এটি ব্যবহৃত হয়।ww
পরিবর্তে নিয়ে গোঁ ধরে থাকার সব পয়েন্ট জন্য x আমি সঙ্গে Y আমি = 1 এবং W 0 + + W 1 এক্স আমি 1 + + W 2 এক্স আমি 2 < 0 সব পয়েন্ট জন্য x i এর সাথে y i = - 1 , যদি আমরা সেই ডাব্লু 0 + জোর করিw0+w1xi1+w2xi2≥0xiyi=1w0+w1xi1+w2xi2<0xiyi=−1 সব পয়েন্ট জন্য x আমি সঙ্গে Y আমি = 1 এবং W 0 + + W 1 এক্স আমি 1 + + W 2 এক্স আমি 2 ≤ - 1 সব পয়েন্ট জন্য x আমি সঙ্গে Y আমি = - 1w0+w1xi1+w2xi2≥1xiyi=1w0+w1xi1+w2xi2≤−1xiyi=−1, তারপরে আমরা আসলে জোর দিচ্ছি যে পয়েন্টগুলি লাইন থেকে খুব দূরে থাকবে। এই প্রয়োজনীয়তার সাথে জ্যামিতিক মার্জিন 1 হয়ে আসে ।1∥w∥2
সুতরাং, আমরা নিম্নলিখিত অপটিমাইজেশন সমস্যাটি পাই,
max1∥w∥2subject to:w0+w1xi1+w2xi2≥1,∀xi with yi=1w0+w1xi1+w2xi2≤−1,∀xi with yi=−1
min∥w∥2subject to:yi(w0+w1xi1+w2xi2)≥1,∀i
উদাহরণস্বরূপ সমস্যা সমাধানের জন্য সিভিএক্স স্ক্রিপ্ট:
A = [1 2 1; 3 2 1; 2 3 1; 3 3 1; 1 1 1; 2 0 1; 2 1 1; 3 1 1];
b = ones(8, 1);
y = [-1; -1; -1; -1; 1; 1; 1; 1];
Y = repmat(y, 1, 3);
cvx_begin
variable w(3)
minimize norm(w)
subject to
(Y.*A)*w >= b
cvx_end
সংযোজন - জ্যামিতিক মার্জিন
wyi(w0+w1x1+w2x2)≥1yi(w0+wTx)≥1≥1
x+wTx++w0=1x−wTx−+w0=−1x+x−x+−x−
∥x+−x−∥2
wTx++w0=1
wTx−+w0=−1
wT(x+−x−)=2
|wT(x+−x−)|=2
∥w∥2∥x+−x−∥2=2
∥x+−x−∥2=2∥w∥2
1−1