ক্রস-এনট্রপি লোকসানের ব্যাখ্যা


35

ধরুন আমি শ্রেণিবিন্যাসের জন্য একটি এনএন তৈরি করি। শেষ স্তরটি সফটম্যাক্স অ্যাক্টিভেশন সহ একটি ঘন স্তর। শ্রেণিবদ্ধ করার জন্য আমার পাঁচটি আলাদা ক্লাস রয়েছে। ধরুন, একক প্রশিক্ষণের উদাহরণ হিসাবে, ভবিষ্যদ্বাণীগুলি true labelহ'ল । এই উদাহরণটির জন্য আমি ক্রস এনট্রপি ক্ষতি কীভাবে গণনা করব?[1 0 0 0 0][0.1 0.5 0.1 0.1 0.2]

উত্তর:


50

ক্রস এনট্রপি সূত্র দুই ডিস্ট্রিবিউশন, লাগে সত্য বিতরণ, এবং , আনুমানিক বিতরণ, ওভার বিযুক্ত পরিবর্তনশীল সংজ্ঞায়িত এবং দেওয়া হয়p(x)q(x)x

H(p,q)=xp(x)log(q(x))

নিউরাল নেটওয়ার্কের জন্য, গণনাটি নিম্নলিখিতগুলির থেকে পৃথক:

  • কী ধরণের স্তর ব্যবহৃত হত।

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

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

L=ylog(y^)

যেখানে হ'ল ভেক্টর ডট পণ্য।

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

L=(1×log(0.1)+0×log(0.5)+...)

L=log(0.1)2.303

মন্তব্য থেকে একটি গুরুত্বপূর্ণ পয়েন্ট

তার অর্থ, ভবিষ্যদ্বাণীগুলি বা হলে ক্ষতিটি সমান হবে ?[0.1,0.5,0.1,0.1,0.2][0.1,0.6,0.1,0.1,0.1]

হ্যাঁ, এটি মাল্টিক্লাস লগলসের একটি মূল বৈশিষ্ট্য, এটি কেবল সঠিক শ্রেণীর সম্ভাব্যতার পুরষ্কার / দণ্ড দেয়। কীভাবে অবশিষ্ট সম্ভাবনা ভুল শ্রেণীর মধ্যে বিভক্ত হয় তার থেকে মানটি পৃথক।

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

J=1N(i=1Nyilog(y^i))

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


1
ঠিক আছে. তার অর্থ, ভবিষ্যদ্বাণীগুলি [0.1 ০.০ 0.1% 0.2] বা [0.1 0.6 0.1 0.1 0.1] হলে ক্ষতিটি সমান হবে?
নাইন

@ নাইন: এটি আপনার উদাহরণের জন্য সঠিক। ক্রস-এনট্রপি ক্ষতি ভুল শ্রেণীর সম্ভাবনার মানগুলির উপর নির্ভর করে না।
নীল স্লেটার

8

নীল থেকে উত্তর সঠিক। তবে আমি এটি উল্লেখ করা গুরুত্বপূর্ণ বলে মনে করি যে ক্ষতিটি ভুল শ্রেণীর মধ্যে বিতরণের উপর নির্ভর করে না (কেবলমাত্র সঠিক শ্রেণি এবং বাকীগুলির মধ্যে বন্টন), এই ক্ষতির ফাংশনের গ্রেডিয়েন্ট কীভাবে উপর নির্ভর করে ভুল শ্রেণিকে আলাদাভাবে প্রভাবিত করে তারা ভুল। সুতরাং আপনি যখন মেশিন লার্নিংয়ে ক্রস-এনট ব্যবহার করবেন তখন আপনি [0.1 ০.০ 0.1% 0.2] এবং [০.০.০ ০.০ 0.1%] এর জন্য ওজন আলাদাভাবে পরিবর্তন করতে পারবেন। এটি হ'ল কারণ সঠিক শ্রেণীর স্কোরটিকে অন্যান্য সম্ভাব্যতার মধ্যে পরিণত করার জন্য অন্যান্য সমস্ত শ্রেণীর স্কোর দ্বারা স্বাভাবিক করা হয়।


3
আপনি কি এটি একটি সঠিক উদাহরণ দিয়ে ব্যাখ্যা করতে পারেন?
নাইন

@ লুকাস অ্যাডামস, আপনি দয়া করে একটি উদাহরণ দিতে পারেন?
Koryakinp

প্রতিটি Y_i (সফটম্যাক্স আউটপুট) এর ডেরিভেটিভ প্রতিটি ই-লগিট z (বা প্যারামিটার নিজেই) প্রতিটি y_i এর উপর নির্ভর করে। मध्यम.com
হারুন

2

আসুন দেখুন ক্ষতির গ্রেডিয়েন্টটি কীভাবে আচরণ করে ... আমাদের একটি ক্ষতির ফাংশন হিসাবে ক্রস-এনট্রপি রয়েছে, যা দ্বারা প্রদত্ত

H(p,q)=i=1np(xi)log(q(xi))=(p(x1)log(q(x1))++p(xn)log(q(xn))

এখান থেকে যাচ্ছি .. আমরা কিছু : যেহেতু পার্থক্যজনিত কারণে অন্যান্য সমস্ত পদ বাতিল হয়েছে। আমরা এই সমীকরণটিকে আরও একধাপ এগিয়ে নিয়ে যেতে পারি xi

xiH(p,q)=xip(xi)log(q(xi)).
xiH(p,q)=p(xi)1q(xi)q(xi)xi.

এ থেকে আমরা দেখতে পাচ্ছি যে আমরা এখনও সত্যিকারের ক্লাসগুলিকেই শাস্তি দিচ্ছি (যার জন্য মান রয়েছে )। অন্যথায় আমাদের কাছে কেবল শূন্যের গ্রেডিয়েন্ট রয়েছে।p(xi)

সফটওয়্যার প্যাকেজগুলি 0-এর পূর্বাভাসিত মানটির সাথে কীভাবে ডিল করতে হয় তা অবাক করি, যখন সত্যিকারের মানটি শূন্যের চেয়ে বড় ছিল ... যেহেতু আমরা সেই ক্ষেত্রে শূন্য দ্বারা ভাগ করছি iding


আমি মনে করি আপনি যা চান তা ডেরাইভেটিভ আর্ট প্যারামিটার নেওয়া, x_i আর্ট নয়।
হারুন

1

আসুন তথ্য তত্ত্বের এনট্রপি বোঝার সাথে শুরু করা যাক: ধরুন আপনি "aaaaaaaa" বর্ণমালার একটি স্ট্রিং যোগাযোগ করতে চান। আপনি এটি 8 * "ক" হিসাবে সহজেই করতে পারেন। এখন আর একটি স্ট্রিং "jteikfqa" নিন। এই স্ট্রিং যোগাযোগ করার একটি সংকুচিত উপায় আছে? সেখানে নেই। আমরা বলতে পারি যে ২ য় স্ট্রিংয়ের এনট্রপি আরও বেশি হিসাবে এটি যোগাযোগ করার জন্য আমাদের আরও "বিট" তথ্য প্রয়োজন need

এই সাদৃশ্য সম্ভাব্যতার ক্ষেত্রেও প্রযোজ্য। আপনার যদি আইটেমগুলির একটি সেট থাকে, উদাহরণস্বরূপ, ফলগুলি, সেই ফলের বাইনারি এনকোডিং যেখানে n ফলের সংখ্যা। 8 টি ফলের জন্য আপনার 3 টি বিট প্রয়োজন। এটি দেখার আরেকটি উপায় হ'ল যে কেউ এলোমেলোভাবে ফল নির্বাচন করার সম্ভাব্যতাটি ১/৮ হ'ল, কোনও ফল নির্বাচিত হলে অনিশ্চয়তা হ্রাস হ'ল যা ৩. আরও নির্দিষ্টভাবে,log2(n)log2(1/8)

i=1818log2(18)=3
এই এনট্রোপি নির্দিষ্ট সম্ভাবনা বিতরণের সাথে জড়িত অনিশ্চয়তার কথা বলে; সম্ভাব্যতা বিতরণে যত বেশি অনিশ্চয়তা / প্রকরণ হয়, তত বেশি হয় এনট্রপি (যেমন 1024 ফলের জন্য এটি 10 ​​হবে)।

"ক্রস" - এন্ট্রপিতে, নামটি যেমন বোঝায়, আমরা দুটি ভিন্ন সম্ভাবনা বিতরণের পার্থক্য ব্যাখ্যা করার জন্য প্রয়োজনীয় বিটের সংখ্যার উপর ফোকাস করি। সর্বোত্তম ক্ষেত্রে পরিস্থিতি হ'ল উভয় বিতরণ একরকম, এক্ষেত্রে বিটগুলির সর্বনিম্ন পরিমাণ প্রয়োজন হয় যেমন সহজ এনট্রপি। গাণিতিক ভাষায়,

H(y,y^)=iyiloge(y^i)

যেখানে the হ'ল পূর্বাভাসযুক্ত সম্ভাবনা ভেক্টর (সফটম্যাক্স আউটপুট), এবং the স্থল-সত্য ভেক্টর (যেমন এক-গরম) one আমরা প্রাকৃতিক লগটি ব্যবহার করার কারণ হ'ল এটি পার্থক্য করা সহজ (রেফারেন্ট গণনা করা গ্রেডিয়েন্টস) এবং আমরা গ্রাউন্ড ট্রুথ ভেক্টরের লগ না নেওয়ার কারণ হ'ল এটিতে প্রচুর পরিমাণে 0 রয়েছে যা সমষ্টিটিকে সহজতর করে।y^y

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


0

আমি লুকাসের সাথে একমত নই। উপরের মানগুলি ইতিমধ্যে সম্ভাব্যতা। নোট করুন যে মূল পোস্টটি নির্দেশ করেছে যে মানগুলিতে একটি সফটম্যাক্স অ্যাক্টিভেশন ছিল।

ত্রুটিটি কেবল "হট" শ্রেণিতে ফিরে প্রচার করা হয় এবং অন্য শ্রেণীর মধ্যে সম্ভাবনাগুলি একে অপরের মধ্যে স্থানান্তরিত হলে সম্ভাবনা Q (i) পরিবর্তন হয় না।


2
লুকাস ঠিক আছে। ওপি দ্বারা বর্ণিত আর্কিটেকচারের সাথে, তারপরে সমস্ত লগইটে গ্রেডিয়েন্ট (আউটপুটগুলির বিপরীতে) শূন্য নয়, কারণ সফটম্যাক্স ফাংশনটি তাদের সকলকে সংযুক্ত করে। সুতরাং "হট" শ্রেণিতে ত্রুটির [গ্রেডিয়েন্ট] সমস্ত আউটপুট নিউরনে প্রচার করে।
নিল স্লেটার

নীল এবং লুকাসের জন্য +1
অ্যারন

-1

সমস্যাটি হ'ল সম্ভাবনাগুলি একটি 'জটিল' ফাংশন থেকে আসছে যা প্রদত্ত মানটির সাথে অন্য আউটপুটগুলিকে অন্তর্ভুক্ত করে। ফলাফলগুলি আন্তঃসংযুক্ত, সুতরাং আমরা প্রকৃত ফলাফলের সাথে সম্পর্কিত হচ্ছি না, তবে প্রতিটি ফলাফলের জন্য শেষ সক্রিয়করণ ফাংশন (সফটম্যাক্স) এর সমস্ত ইনপুট দ্বারা।

আমি গভীর নোট.আইও / সোফটম্যাক্স-ক্রসসেন্ট্রোপিতে একটি খুব সুন্দর বর্ণনা পেয়েছি যেখানে লেখক দেখায় যে আসল ডেরাইভেটিভ ।piyi

Gombru.github.io/2018/05/23/cross_entropy_loss এ অন্যান্য ঝরঝরে বর্ণনা ।

আমি মনে করি যে একটি শেষ অ্যাক্টিভেশন স্তর হিসাবে একটি সাধারণ সিগময়েড ব্যবহার করা অনুমোদিত উত্তরের দিকে নিয়ে যাবে, তবে সফটম্যাক্স ব্যবহার করা বিভিন্ন উত্তরকে নির্দেশ করে।


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