সফটম্যাক্স বনাম সিগময়েড ফাংশন লজিস্টিক শ্রেণিবদ্ধে?


62

কোন লজিস্টিক শ্রেণিবদ্ধে ফাংশনের (সফটম্যাক্স বনাম সিগময়েড) পছন্দ কী সিদ্ধান্ত নেয়?

ধরুন এখানে 4 টি আউটপুট ক্লাস রয়েছে। উপরের প্রতিটি ফাংশন প্রতিটি শ্রেণীর সঠিক আউটপুট হওয়ার সম্ভাবনা দেয়। তাহলে কোনটি ক্লাসিফায়ারের জন্য নেওয়া উচিত?


16
সফটম্যাক্স ফাংশন সিগময়েডের সাধারণীকরণ ছাড়া কিছুই নয়, সুতরাং "সফটম্যাক্স বনাম সিগময়েড" বলতে আপনার অর্থ কী তা সম্পূর্ণ পরিষ্কার নয়।
dsaxton

2
সিগময়েডের ক্ষেত্রে এটি হয়। যখন আমরা সিগময়েড ব্যবহার করি তখন একটি শ্রেণীর সম্ভাব্যতা থাকে এবং সম্ভাব্যতা । exp(βTx)/(exp(βTx)+1)1/(exp(βTx)+1)
dsaxton

3
রেডডিট পোস্টারটি একটি পার্থক্য তৈরি করছে যা আমি মনে করি ভুল বা কমপক্ষে অপ্রাসঙ্গিক। ক্লাসগুলির মধ্যে একটির ওজন হ'ল কিনা তা কেবল স্কোর স্থানান্তরিত করার বিষয়, যা সম্ভাবনার উপর কোনও প্রভাব ফেলেনি।
dsaxton


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

উত্তর:


77

সিগমা ফাংশন , দুই শ্রেণীর লজিস্টিক রিগ্রেশন জন্য ব্যবহার করা হয় যেহেতু softmax ফাংশন multiclass লজিস্টিক রিগ্রেশন (ওরফে Maxent, MULTINOMIAL লজিস্টিক প্রত্যাবৃত্তি, softmax রিগ্রেশন, সর্বোচ্চ এনট্রপি ক্লাসিফায়ার) জন্য ব্যবহৃত হয়।


দ্বি-শ্রেণীর লজিস্টিক রিগ্রেশনে সিগময়েড ফাংশনটি ব্যবহার করে ভবিষ্যদ্বাণী করা প্রোব্লাব্লিগুলি নিম্নরূপ:

Pr(Yi=0)=eβXi1+eβ0XiPr(Yi=1)=1Pr(Yi=0)=11+eβXi

মাল্টিক্লাস লজিস্টিক রিগ্রেশন, ক্লাস সহ, ভবিষ্যদ্বাণী করা সম্ভাবনাগুলি সফটম্যাক্স ফাংশনটি ব্যবহার করে নিম্নরূপ:K

Pr(Yi=k)=eβkXi 0cKeβcXi

কেউ পর্যবেক্ষণ করতে পারেন যে সফটম্যাক্স ফাংশনটি সিগময়েড ফাংশনটির মাল্টিক্লাস কেসটির একটি এক্সটেনশন যা নীচে ব্যাখ্যা করা হয়েছে। আসুন ক্লাস সহ মাল্টিক্লাস লজিস্টিক রিগ্রেশনটি দেখুন :K=2

Pr(Yi=0)=eβ0Xi 0cKeβcXi=eβ0Xieβ0Xi+eβ1Xi=e(β0β1)Xie(β0β1)Xi+1=eβXi1+eβXiPr(Yi=1)=eβ1Xi 0cKeβcXi=eβ1Xieβ0Xi+eβ1Xi=1e(β0β1)Xi+1=11+eβXi

সঙ্গে । আমরা দেখতে পাই যে সিগময়েড ফাংশনটি ব্যবহার করে আমরা দ্বি-শ্রেণীর লজিস্টিক রিগ্রেশনের মতো একই সম্ভাবনাগুলি পাই। উইকিপিডিয়া এতে আরও কিছুটা প্রসারিত করে।β=(β0β1)


1
আমি এটির মধ্যে নির্বোধ, কিন্তু আমি এটি অনেক সময় দেখছি β = - (β0 − β1) এর সম্ভাব্য ব্যাখ্যা কী হতে পারে? যতদূর আমি সিগময়েডগুলিতে জানি - এটি ভেক্টর হবে। এবং তারা সাধারণত প্রদত্ত রান জন্য এক। তারপরে ছবিতে and0 এবং β1 আসে কীভাবে?
ইশান ভট্ট

1
@ ইশানভট্ট এই মন্তব্যটি সাহায্য করতে পারে।
টম হেল

আশ্চর্যজনকভাবে যথেষ্ট, আমি কেবলমাত্র সিগময়েড ব্যবহার করে মাল্টিক্লাসগুলিতে
প্রতিক্রিয়া জানাতে পারি

15

এগুলি আসলে, সমতুল্য, এই অর্থে যে একজনকে অন্যটিতে রূপান্তর করা যায়।

মনে করুন যে আপনার ডেটাটি নির্বিচারে মাত্রার ভেক্টর by দ্বারা প্রতিনিধিত্ব করা হয়েছে এবং আপনি সফটম্যাক্সের পরে একটি অ্যাফাইন ট্রান্সফর্মেশন ব্যবহার করে এর জন্য একটি বাইনারি শ্রেণিবদ্ধ তৈরি করেছেন:x

(z0z1)=(w0Tw1T)x+(b0b1),
P(Ci|x)=softmax(zi)=eziez0+ez1,i{0,1}.

আসুন এটি একটি সমতুল্য বাইনারি শ্রেণিবদ্ধে রূপান্তর করুন যা সফটম্যাক্সের পরিবর্তে সিগময়েড ব্যবহার করে। সবার আগে, আমাদের সিদ্ধান্ত নিতে হবে যে সিগময়েড আউটপুট (যা বা শ্রেণির জন্য হতে পারে ) এর সম্ভাবনাটি আমাদের মধ্যে কী। এই পছন্দটি একেবারে নির্বিচারে তাই আমি বর্গ চয়ন । তারপরে, আমার শ্রেণিবদ্ধকারীটি ফর্মের হবে:C0C1C0

z=wTx+b,
P(C0|x)=σ(z)=11+ez,
P(C1|x)=1σ(z).

শ্রেণিবদ্ধীরা সমতুল্য যদি সম্ভাবনাগুলি একই থাকে তবে আমাদের অবশ্যই চাপিয়ে দিতে হবে:

σ(z)=softmax(z0)

প্রতিস্থাপন করা হচ্ছে , এবং পরিপ্রেক্ষিতে তাদের এক্সপ্রেশন দ্বারা এবং এবং কিছু সহজবোধ্য করছেন বীজগণিত ম্যানিপুলেশন, আপনি যাচাই করতে পারেন যে উপরের সাম্যতা হ'ল এবং কেবল যদি এবং দেওয়া থাকে:z0z1zw0,w1,w,b0,b1,bxwb

w=w0w1,
b=b0b1.

@ নুল ওকে, আমি যদি এটি জিজ্ঞাসা করি তবে আপনি আমার ব্যাখ্যাটি বুঝতে পারেন নি। আমাকে আপনার নির্দিষ্ট সমস্যার সমাধান করতে দাও: আপনি যদি আমাকে বলেন যে আপনি আপনার ডেটা সিগময়েডকে খাওয়ান, তবে এটি অবশ্যই এক-মাত্রিক সংখ্যা হতে হবে, । সিগময়েডকে খাওয়ানোর সময়, আপনি আপনার দুটি শ্রেণির মধ্যে একটিতে থাকার সম্ভাবনা পাবেন , উদাহরণস্বরূপ : । তারপরে, থাকা এর সম্ভাবনা হ'ল: । এবার আসুন আপনার সিগময়েডকে একটি সফটম্যাক্স দ্বারা প্রতিস্থাপন করুন। (চলবে). xxC0P(C0|x)=σ(x)xC1P(C1|x)=1P(C0|x)=σ(x)
ডি ...

(ধারাবাহিকতা)। দুটি শ্রেণীর সাথে শ্রেণিবদ্ধকরণের সমস্যায় সফটম্যাক্স প্রয়োগ করার জন্য আপনার একটি মাত্রিক ডেটা দ্বিমাত্রিক ভেক্টরে রূপান্তরিত হওয়া দরকার। অতএব, আমাদের আমাদের আমাদের এবং সংজ্ঞায়িত করতে হবে । আসুন বেছে নিন । যেহেতু সন্তুষ্ট করা আবশ্যক , আমরা , তাই । এখন, আমাদের এবং । এটি ব্যবহার করে আপনি তাৎক্ষণিকভাবে যাচাই করতে পারেন যে । w0w1w0=1w1w=w0w11=1w1w1=0z0=w0x=xz1=w1x=0σ(x)=softmax(z0)
ডি ...

, ও যে কোনও সংমিশ্রণ যা সন্তুষ্ট করে (যা, ) ঠিক একই ফলাফলের দিকে নিয়ে যায়। এটি দেখায় যে সফটম্যাক্সের একটি অপ্রয়োজনীয় প্যারামিটার রয়েছে। যদিও এটি নির্বোধ বলে মনে হতে পারে তবে এটি প্রকৃতপক্ষে একটি আকর্ষণীয় সম্পত্তি, যেহেতু এটি পরামিতিগুলির স্বাভাবিককরণের অনুমতি দেয় যা শিক্ষার অ্যালগরিদম এবং অনুমানের সংখ্যার স্থায়িত্ব প্রচার করে। তবে এটি কেবল একটি অতিরিক্ত মন্তব্য, আপনার প্রশ্নের উত্তর দেওয়া গুরুত্বপূর্ণ নয় :)w0w1w=w0w11=w1w0wi
ডি ...

অনেক ধন্যবাদ. আমি বুঝতে পেরেছি. আপনার প্রথম মন্তব্যে সম্ভাবনা সম্ভবত হওয়া উচিত । আমি এখন বুঝতে পারি যে রূপান্তরের পিছনে কী ধারণা রয়েছে। P(C1|x)1σ(x)
নাল

খুশী যে আপনি এটি বুঝতে পেরেছেন;) হ্যাঁ, এটি একটি টাইপো, এটি অবশ্যই । এটা ইশারা জন্য ধন্যবাদ! P(C1|x)=1σ(x)
ডি ...

8

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

  • যদি আপনার একাধিক-লেবেল শ্রেণিবদ্ধকরণ সমস্যা থাকে = একাধিক "সঠিক উত্তর" থাকে = আউটপুটগুলি পারস্পরিক একচেটিয়া না হয় তবে প্রতিটি কাঁচা আউটপুটে স্বতন্ত্রভাবে একটি সিগময়েড ফাংশন ব্যবহার করুন। সিগময়েড আপনাকে আপনার সমস্ত শ্রেণীর, তাদের মধ্যে কয়েকটি বা তাদের কোনওটিরও উচ্চ সম্ভাবনা থাকতে দেয়। উদাহরণ: বুকের এক্স-রে ইমেজে রোগের শ্রেণিবদ্ধকরণ। চিত্রটিতে নিউমোনিয়া, এম্ফিজিমা এবং / বা ক্যান্সার থাকতে পারে বা এর কোনও ফলাফল নেই।
  • আপনার যদি একাধিক শ্রেণির শ্রেণিবিন্যাস সমস্যা থাকে = কেবলমাত্র একটি "সঠিক উত্তর" থাকে = আউটপুটগুলি পারস্পরিক একচেটিয়া হয় তবে একটি সফটম্যাক্স ফাংশন ব্যবহার করুন। সফটম্যাক্স প্রয়োগ করবে যে আপনার আউটপুট ক্লাসগুলির সম্ভাব্যতার যোগফল একের সমান, সুতরাং নির্দিষ্ট শ্রেণীর সম্ভাব্যতা বাড়াতে আপনার মডেলটিকে যথাযথভাবে অন্যান্য শ্রেণীর কমপক্ষে একটির সম্ভাবনা হ্রাস করতে হবে। উদাহরণ: হাতের লেখার অঙ্কের এমএনআইএসটি ডেটা সেট থেকে চিত্রগুলি শ্রেণিবদ্ধকরণ। অঙ্কের একক ছবিতে কেবল একটি আসল পরিচয় থাকে - ছবি একই সাথে 7 এবং 8 টি হতে পারে না।

তথ্যসূত্র: উদাহরণ গণনা সহ নিউরাল নেটওয়ার্ক ডিজাইনে সিগময়েড বনাম সফটম্যাক্স কখন ব্যবহার করবেন তার আরও বিশদ ব্যাখ্যার জন্য দয়া করে এই নিবন্ধটি দেখুন: "শ্রেণিবদ্ধকরণ: সিগময়েড বনাম সফটম্যাক্স।"


-1

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

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

এছাড়াও, এটি লক্ষণীয় যে ফাংশনগুলি সমান (মাল্টিক্লাস শ্রেণিবদ্ধকরণের উদ্দেশ্যে) তাদের প্রয়োগের ক্ষেত্রে কিছুটা পৃথক হয় (বিশেষত তাদের ডেরিভেটিভগুলির সাথে সম্পর্কিত এবং কীভাবে y এর প্রতিনিধিত্ব করবেন)।

একাধিক বাইনারি শ্রেণিবদ্ধকরণ (যেমন সিগময়েডস) একটি একক মাল্টিক্লাস শ্রেণিবদ্ধকরণ (অর্থাৎ সফটম্যাক্স) এর সাহায্যে ব্যবহার করার একটি বড় সুবিধা হ'ল যদি আপনার সফটম্যাক্সটি খুব বড় হয় (উদাহরণস্বরূপ যদি আপনি 10 কে বা তার বেশি ডিকোরিয়ামের আকারের এক-গরম শব্দ ব্যবহার করছেন) ) - এটি প্রশিক্ষণের জন্য অদক্ষ হতে পারে। পরিবর্তে আপনি যা করতে পারেন তা হ'ল আপনার প্রশিক্ষণ-সেটের একটি ছোট্ট অংশ গ্রহণ করুন এবং এটি আপনার সিগময়েডগুলির একটি ছোট অংশকে প্রশিক্ষণের জন্য ব্যবহার করুন। নেগেটিভ স্যাম্পলিংয়ের পিছনে এটিই মূল ধারণা ।


ফাংশন হয় না কারণ softmax নেটওয়ার্কের আউটপুট হিসাবে শ্রেণীর উপর একটি সম্ভাব্যতা বিতরণের উত্পাদন করতে বাধ্য করা হয় সমতুল্য: ভেক্টর অ নেতিবাচক এবং 1. অঙ্কের সিগমা ইউনিট অ নেতিবাচক, কিন্তু তারা কোন সংখ্যা যোগ করে করতে 0 এবং ; এটি একটি বৈধ সম্ভাবনা বন্টন নয়। এই দুটি পার্থক্যের পার্থক্য কীভাবে তা চিহ্নিত করার জন্য এই পার্থক্যটি গুরুত্বপূর্ণ। CC
মনিকা পুনরায় ইনস্টল করুন

আপনার সমতুল্য সংজ্ঞা কি? খনিটি হ'ল: আপনি কোনও সমস্যা ছাড়াই মাল্টিক্লাস শ্রেণিবদ্ধকরণের জন্য ব্যবহার করতে পারেন। এছাড়াও - সফ্টম্যাক্স ব্যবহার করে যে কোনও মাল্টিক্লাস শ্রেণিবদ্ধকরণ সিগময়েডগুলি ব্যবহার করে এমন একটি বাইনারি শ্রেণিবদ্ধকরণে রূপান্তরিত হতে পারে। আমি কেন 1 এর আউটপুটগুলির বিতরণ সম্পর্কে যত্ন নেব?
ডেভিড রেফেলি

মাল্টি-লেবেল শ্রেণিবিন্যাস সম্পর্কে আপনার যুক্তি দেখায় যে সিগময়েড এবং সফটম্যাক্স সমতুল্য নয়। সফটম্যাক্স ব্যবহার করার সময়, এক শ্রেণীর সম্ভাব্যতা বাড়ানো অন্যান্য সমস্ত শ্রেণির মোট সম্ভাবনা হ্রাস করে (কারণ সমষ্টি থেকে 1)। সিগময়েড ব্যবহার করে, এক শ্রেণির সম্ভাবনা বাড়ানো অন্য শ্রেণির মোট সম্ভাব্যতা পরিবর্তন করে না। এই পর্যবেক্ষণ হল কারণ যে সিগমা বহু-ট্যাগ শ্রেণীবিভাগ জন্য বিশ্বাসযোগ্য: একটি একক উদাহরণ অন্তর্গত করতে পারেন ক্লাস। সম-টু -1 হ'ল মাল্ট-লেবেল শ্রেণিবিন্যাসের জন্য সফটম্যাক্স উপযুক্ত নয় এমন কারণও। 0,1,2,,C
মনিকা

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