সফটম্যাক্স শ্রেণিবদ্ধে, কেন সাধারণীকরণের জন্য এক্সপ্যাক্ট ফাংশন ব্যবহার করবেন?


30

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

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

সম্ভাব্য দৃষ্টিভঙ্গি হিসাবে: লগ সম্ভাব্যতা দেখার জন্য অনুপ্রেরণা কি? যুক্তিটি কিছুটা মনে হচ্ছে "আমরা সফটম্যাক্সে e ^ x ব্যবহার করি, কারণ আমরা এক্সকে লগ-প্রব্যাবিলিটি হিসাবে ব্যাখ্যা করি"। একই যুক্তি সহ আমরা বলতে পারি, আমরা সফটম্যাক্সে e ^ e ^ e ^ x ব্যবহার করি, কারণ আমরা এক্সকে লগ-লগ-লগ-সম্ভাবনা হিসাবে ব্যাখ্যা করি (অবশ্যই এখানে অতিরঞ্জিত)। আমি সফটম্যাক্সের সংখ্যাগত সুবিধা পেয়েছি তবে এটি ব্যবহারের তাত্ত্বিক প্রেরণা কী?


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

@ ইমর ধন্যবাদ! তবে "সর্বাধিক ফাংশনের মতো আচরণ করে" এর অর্থ কী? তদুপরি, যদি আমার আরও একটি ফাংশন থাকে যা পার্থক্যযুক্ত, একঘেয়েমি বৃদ্ধি এবং অ-নেতিবাচক ফলাফলের দিকে পরিচালিত করে, তবে আমি সূত্রটিতে এক্সপ্রেস ফাংশনটি প্রতিস্থাপনের জন্য এটি ব্যবহার করতে পারি?
হ্যান্স

আপনি যখন using ব্যবহার করে স্বাভাবিক করেন তখন সর্বাধিক যুক্তিটি 1 এ ম্যাপ হয় এবং বাকীটি শূন্যে ম্যাপ হয়ে যায়, তদন্তকারী ফাংশনের বৃদ্ধির কারণে। max
এমরে

উত্তর:


37

এটি কেবল সংখ্যার চেয়ে বেশি। সফটম্যাক্সের একটি দ্রুত অনুস্মারক:

P(y=j|x)=exjk=1Kexk

যেখানে হল একটি ইনপুট ভেক্টর যার দৈর্ঘ্য শ্রেণীর সংখ্যার সমান । সফটম্যাক্স ফাংশনে 3 টি খুব সুন্দর বৈশিষ্ট্য রয়েছে: 1. এটি আপনার ডেটাকে স্বাভাবিক করে তোলে (একটি যথাযথ সম্ভাবনা বিতরণ আউটপুট দেয়), ২ পার্থক্যযোগ্য এবং ৩. এটি আপনার উল্লেখ করা এক্সপ ব্যবহার করে। কয়েকটি গুরুত্বপূর্ণ বিষয়:কেxK

  1. ক্ষতির ফাংশন সরাসরি সফটম্যাক্সের সাথে সম্পর্কিত নয়। আপনি স্ট্যান্ডার্ড নরমালাইজেশন ব্যবহার করতে পারেন এবং এখনও ক্রস-এনট্রপি ব্যবহার করতে পারেন।

  2. একটি "হার্ডম্যাক্স" ফাংশন (অর্থাত্ আর্গম্যাক্স) পৃথক নয়। সফটম্যাক্স আউটপুট ভেক্টরের সমস্ত উপাদানকে কমপক্ষে সংখ্যার সম্ভাব্যতা দেয় এবং তাই এটি আলাদাভাবে পার্থক্যযোগ্য, সুতরাং সফ্টম্যাক্সে "নরম" শব্দটি।

  3. এখন আমি আপনার প্রশ্ন পেতে। softmax প্রাকৃতিক সূচকীয় ফাংশন। আমরা স্বাভাবিক হওয়ার আগে আমরা এর গ্রাফের মতো রূপান্তর করি :x e xexex

প্রাকৃতিক সূচকীয় ফাংশন

যদি 0 হয় তবে , যদি 1 হয়, তবে , এবং 2 হয়, এখন ! বিশাল পদক্ষেপ! এটাকেই আমাদের অস্বাভাবিক লগ স্কোরের একটি অ-রৈখিক রূপান্তর বলা হয়। Softmax মধ্যে নিয়মমাফিককরণ সঙ্গে মিলিত সূচকীয় ফাংশন আকর্ষণীয় সম্পত্তি যে উচ্চ স্কোর হল অনেক কম স্কোর বেশী সম্ভবপর হয়ে ওঠে।y = 1 x y = 2.7 x y = 7 xxy=1xy=2.7xy=7x

একটি উদাহরণ । বলুন , এবং আপনার লগ স্কোর ভেক্টর । সহজ আরগম্যাক্স ফাংশন আউটপুট:এক্স [ 2 , 4 , 2 , 1 ]K=4x[2,4,2,1]

[0,1,0,0]

আরগম্যাক্স লক্ষ্য, তবে এটি পৃথকযোগ্য নয় এবং আমরা এটি দিয়ে আমাদের মডেলটিকে প্রশিক্ষণ দিতে পারি না :( একটি সাধারণ সাধারণকরণ, যা পার্থক্যযোগ্য, নিম্নলিখিত সম্ভাবনাগুলিকে ছাড়িয়ে যায়:

[0.2222,0.4444,0.2222,0.1111]

এটি আরগম্যাক্স থেকে সত্যিই অনেক দূরে! :( যেখানে সফটম্যাক্স আউটপুটস:

[0.1025,0.7573,0.1025,0.0377]

এটি আরগম্যাক্সের অনেক কাছাকাছি! যেহেতু আমরা প্রাকৃতিক সূচকটি ব্যবহার করি, তাই আমরা স্ট্যান্ডার্ড নরমালাইজেশনের সাথে তুলনা করলে সবচেয়ে বড় স্কোরের সম্ভাবনা বাড়িয়ে তুলি এবং কম স্কোরের সম্ভাবনা হ্রাস করি। সুতরাং সফটম্যাক্সে "সর্বাধিক"।


3
দুর্দান্ত তথ্য। তবে ব্যবহারের পরিবর্তে eধ্রুবক 3 বা 4 বলুন কী? ফলাফল কি একই হবে?
চেওক ইয়ান চেং

7
@ চেওকান চ্যাং, হ্যাঁ তবে eএকটি ভাল ডেরাইভেটিভ রয়েছে;)
Vega

আমি দেখেছি যে সফটম্যাক্সের ফলাফলটি সাধারণত প্রতিটি শ্রেণীর অন্তর্গত হওয়ার সম্ভাবনা হিসাবে ব্যবহৃত হয়। অন্যান্য ধ্রুবকের পরিবর্তে 'ই' এর পছন্দটি যদি স্বেচ্ছাসেবী হয় তবে সম্ভাবনার দিক থেকে এটি দেখার অর্থ হবে না, তাই না?
javierdvalle

@ ওয়েগা দুঃখিত, তবে আমি এখনও দেখতে পাচ্ছি না যে এই প্রশ্নের উত্তর কীভাবে দেয়: কেন একই কারণে E ^ e ^ e ^ e ^ e ^ x ব্যবহার করবেন না? দয়া করে ব্যাখ্যা করুন
গুলজার

@ জ্যাভলে এটি eএটিকে সম্ভাব্যতা হিসাবে ব্যাখ্যাযোগ্য করে তোলে না, এটিই সত্য যে সফটম্যাক্স আউটপুটটির প্রতিটি উপাদান [0,1] এবং পুরো অঙ্ক 1 এর সাথে আবদ্ধ হয়
Vega

2

ভেজার ব্যাখ্যা ছাড়াও,

আসুন জেনেরিক সফটম্যাক্স সংজ্ঞায়িত করা যাক: যেখানে একটি ধ্রুবক> = 1

P(y=j|x)=ψxjk=1Kψxk
ψ

যদি , তবে @ ওয়েগা উল্লিখিত হিসাবে আপনি আরগম্যাক্স থেকে বেশ দূরে।ψ=1

আসুন এখন ধরে নেওয়া যাক , আপনি এখন আরগম্যাক্সের খুব কাছাকাছি থাকলেও আপনার কাছে নেতিবাচক মানগুলির জন্য খুব ছোট সংখ্যা এবং ধনাত্মকতার জন্য বড় সংখ্যা রয়েছে। এই সংখ্যাগুলি সহজেই ভাসমান পয়েন্ট গণিতের সীমাটি উপচে পড়ে যায় (উদাহরণস্বরূপ, নিম্পী ফ্লোট 64 এর সর্বাধিক সীমা )। এছাড়াও, নির্বাচনটি যদি যা চেয়ে অনেক ছোট , ফ্রেমওয়ার্কগুলিতে সফটম্যাক্সের আরও স্থিতিশীল সংস্করণ প্রয়োগ করা উচিত (ধ্রুবক দিয়ে উভয় সংখ্যক এবং ডিনোমিনেটর উভয়কেই গুণ করে ) ফলাফল প্রকাশ করতে সক্ষম হওয়ার জন্য ছোট হয়ে যায় যেমন নির্ভুলতা সঙ্গে।ψ=10010 308 ψ = 100 সি10308ψ=e100C

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

এবং অবশ্যই, এছাড়াও বেশ সুন্দর ডেরাইভেটিভ আছে।e


2

এই প্রশ্নটি খুব আকর্ষণীয়। আমি সঠিক কারণটি জানি না তবে আমি মনে করি যে ঘনিষ্ঠভাবে ফাংশনটির ব্যবহারটি ব্যাখ্যা করার জন্য নিম্নলিখিত কারণটি ব্যবহার করা যেতে পারে। এই পোস্টটি পরিসংখ্যান মেকানিক্স এবং সর্বাধিক এনট্রপির নীতি দ্বারা অনুপ্রাণিত।

আমি একটি উদাহরণ ব্যবহার করে এই ব্যাখ্যা করবে চিত্র, যা দ্বারা গঠিত হয় বর্গ থেকে চিত্রগুলি , বর্গ থেকে চিত্রগুলি ... এবং বর্গ থেকে চিত্রগুলি । তারপরে আমরা ধরে নিই যে আমাদের নিউরাল নেটওয়ার্কটি আমাদের চিত্রগুলিতে একটি ননলাইনার ট্রান্সফর্ম প্রয়োগ করতে সক্ষম হয়েছিল, যেমন আমরা সমস্ত শ্রেণিতে একটি 'শক্তি স্তর' নির্ধারণ করতে পারি । আমরা ধরে নিই যে এই শক্তিটি একটি ননলাইনার স্কেলে রয়েছে যা আমাদের চিত্রগুলি রৈখিকভাবে পৃথক করতে দেয়।Nn1C1n2C2nKCKEk

গড় শক্তি নীচের সম্পর্কের দ্বারা অন্যান্য শক্তির সাথে সম্পর্কিত E¯Ek

NE¯=k=1KnkEk.()

একই সময়ে, আমরা দেখতে পাই যে মোট পরিমাণ চিত্র নীচের যোগফল হিসাবে গণনা করা যেতে পারে

N=k=1Knk.()

সর্বাধিক এনট্রপি নীতিটির মূল ধারণাটি সম্পর্কিত শ্রেণিতে চিত্রের সংখ্যা এমনভাবে বিতরণ করা হয় যাতে প্রদত্ত শক্তি বিতরণের জন্য সম্ভাব্য সংমিশ্রণের সংখ্যা সর্বাধিক হয়। এটিকে আরও সহজভাবে বলতে গেলে সিস্টেমটি এমন রাজ্যে যাবে না যেখানে আমাদের কেবল ক্লাস এটি এমন একটি রাজ্যেও যাবে না যেখানে আমাদের প্রতিটি ক্লাসে একই সংখ্যার চিত্র রয়েছে। কিন্তু কেন এই হল? সমস্ত চিত্র যদি এক শ্রেণিতে থাকে তবে সিস্টেমে খুব কম এনট্রপি থাকত। দ্বিতীয় কেসটিও হবে খুব অপ্রাকৃত পরিস্থিতি। এটি আরও বেশি সম্ভাবনা রয়েছে যে আমাদের মাঝারি শক্তি সহ আরও বেশি চিত্র এবং খুব উচ্চ এবং খুব কম শক্তিযুক্ত কম ইমেজ থাকবে।n1

সমন্বয় যা আমরা বিভক্ত করতে পারেন নম্বর দিয়ে এনট্রপি বৃদ্ধি মধ্যে চিত্র , , ..., সংশ্লিষ্ট শক্তি ইমেজ ক্লাস। এই সংমিশ্রণের সংখ্যাটি বহু-গুণগত সহগ দ্বারা দেওয়া হয়েছেNn1n2nK

(N!n1!,n2!,,nK!)=N!k=1Knk!.

আমরা এই সংখ্যাটি সর্বাধিক করার চেষ্টা করে ধরে নিব যে আমাদের অনেকগুলি চিত্র । তবে তার সর্বাধিককরণের সমতা বাধাও রয়েছে এবং । এই ধরণের অপ্টিমাইজেশানকে সীমাবদ্ধ অপ্টিমাইজেশন বলা হয়। ল্যাংরেঞ্জ গুণকগুলির পদ্ধতিটি ব্যবহার করে আমরা বিশ্লেষণ করে এই সমস্যাটি সমাধান করতে পারি। আমরা সামঞ্জস্যের সীমাবদ্ধতার জন্য ল্যাঞ্জরেঞ্জ গুণক এবং প্রবর্তন করি এবং আমরা ।N()()βαL(n1,n2,,nk;α,β)

L(n1,n2,,nk;α,β)=N!k=1Knk!+β[k=1KnkEkNE¯]+α[Nk=1Knk]

যেমন আমরা ধরে আমরা ও ধরে নিতে পারি এবং ব্যবহার করতে পারিNnk

lnn!=nlnnn+O(lnn).

দ্রষ্টব্য যে এই অনুমানের (প্রথম দুটি শব্দ) কেবলমাত্র অ্যাসিম্পটোটিক এটির অর্থ এই নয় যে এই রূপান্তরিত হবেজন্য ।lnn!n

respect সম্মানের সাথে ফাংশনের আংশিক ডেরিভেটিভের ফলাফল হবেnk~

Lnk~=lnnk~1α+βEk~.

যদি আমরা এই আংশিক ডেরাইভেটিভকে শূন্যতে সেট করি তবে আমরা এটি খুঁজে পেতে পারি

nk~=exp(βEk~)exp(1+α).()

যদি আমরা এটি পিছনে রাখি আমরা পেতে পারি()

exp(1+α)=1Nk=1Kexp(βEk).

যদি আমরা এটিকে পিছনে রাখি আমরা এমন কিছু পাই যা আমাদের সফটম্যাক্স ফাংশনটির স্মরণ করিয়ে দেয়()

nk~=exp(βEk~)1Nk=1Kexp(βEk).

যদি আমরা ক্লাস দ্বারা দ্বারা সম্ভাব্য হিসাবে সংজ্ঞায়িত করি তবে আমরা এমন কিছু অর্জন করব যা স্নায়ম্যাক্স ফাংশনের সাথে সত্যই সমানnk~/NCk~pk~

pk~=exp(βEk~)k=1Kexp(βEk).

সুতরাং, এটি আমাদের দেখায় যে সফটম্যাক্স ফাংশনটি হ'ল ফাংশন যা চিত্রগুলির বিতরণে এনট্রপিকে সর্বাধিক করে তোলে। এই বিন্দু থেকে, এটি চিত্রের বিতরণ হিসাবে এটি ব্যবহার করা বোধগম্য। যদি আমরা set সেট করি তবে আমরা ঠিক আউটপুটটির জন্য সফটম্যাক্স ফাংশনের সংজ্ঞা পেয়েছি ।βEk~=wkTxkth

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