অ্যাপ্লিকেশনগুলির পাশাপাশি স্নায়বিক নেটওয়ার্কগুলিতে ব্যবহৃত ব্যয় ফাংশনের একটি তালিকা


133

নিউরাল নেটওয়ার্কগুলির কার্যকারিতা মূল্যায়নে সাধারণ ব্যয়ের কাজগুলি কী কী?

বিস্তারিত

(এই প্রশ্নটির বাকি অংশটি নির্দ্বিধায় নির্দ্বিধায় মনে করুন, এখানে আমার উদ্দেশ্যটি কেবল সাধারণভাবে পাঠকের কাছে আরও বোধগম্য হতে পারে এমন উত্তরগুলিতে উত্তরগুলি ব্যবহার করতে পারে এমন স্বরলিপি সম্পর্কে স্পষ্টতা প্রদান করা)

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

স্বরলিপি

সুতরাং শুরু করার জন্য, আমি একটি স্বরলিপিটি সংজ্ঞায়িত করতে চাই যা আমরা সবাই এগুলি বর্ণনা করার সময় ব্যবহার করি, সুতরাং উত্তরগুলি একে অপরের সাথে পুরোপুরি ফিট হয়।

এই স্বরলিপিটি নীলসেনের বই থেকে এসেছে ।

একটি ফিডফর্ডার নিউরাল নেটওয়ার্ক হ'ল নিউরনের অনেক স্তর এক সাথে সংযুক্ত। তারপরে এটি একটি ইনপুট নেয়, সেই ইনপুটটি নেটওয়ার্কের মাধ্যমে "ট্রিকলস" করে এবং তার পরে নিউরাল নেটওয়ার্ক একটি আউটপুট ভেক্টরকে ফেরত দেয়।

আরো আনুষ্ঠানিকভাবে, কল aji সক্রিয়তার (ওরফে আউটপুট) মধ্যে স্নায়ুর স্তর, যেখানে হয় ইনপুট ভেক্টর মধ্যে উপাদান।jthithaj1jth

তারপরে আমরা পরবর্তী স্তরের ইনপুটটিকে নীচের সম্পর্কের মাধ্যমে পূর্বের সাথে সম্পর্কিত করতে পারি:

aji=σ(k(wjkiaki1)+bji)

কোথায়

σ হ'ল অ্যাক্টিভেশন ফাংশন,

wjki থেকে ওজন মধ্যে স্নায়ুর স্তর মধ্যে স্নায়ুর স্তর,kth(i1)thjthith

bji হ'ল স্তরের নিউরনের পক্ষপাত , এবংjthith

aji এ নিউরনের সক্রিয়করণের মান উপস্থাপন করেjthith স্তরটিতে ।

কখনও কখনও আমরা লিখি উপস্থাপন করতে , অন্য কথায়, অ্যাক্টিভেশন ফাংশন প্রয়োগ করার আগে একটি নিউরনের সক্রিয়করণের মান ।zjik(wjkiaki1)+bji

এখানে চিত্র বর্ণনা লিখুন

আরও সংক্ষিপ্ত স্বরলিপি জন্য আমরা লিখতে পারেন

ai=σ(wi×ai1+bi)

input কিছু ইনপুট জন্য একটি ফিডফোর্ড নেটওয়ার্কের আউটপুট গণনা করতে এই সূত্রটি ব্যবহার করতে , set সেট করুন , তারপরে , , ..., গণনা করুন , যেখানে মি স্তরগুলির সংখ্যা।IRna1=Ia2a3am

ভূমিকা

একটি ব্যয় ফাংশন হল "কতটা ভাল" একটি পরিমাপ যা একটি নিউরাল নেটওয়ার্ক এটির প্রশিক্ষণের নমুনা এবং প্রত্যাশিত আউটপুটকে সম্মান করে did এটি ওজন এবং বায়াসের মতো ভেরিয়েবলগুলির উপরও নির্ভর করে।

একটি ব্যয় ফাংশন একটি ভেল্ট নয়, একটি একক মান, কারণ এটি নির্ধারণ করে যে নিউরাল নেটওয়ার্ক সামগ্রিকভাবে কতটা ভাল করেছে।

বিশেষত, একটি ব্যয় ফাংশন ফর্ম হয়

C(W,B,Sr,Er)

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

ব্যাকপ্রসারণে, ব্যয় ফাংশনটি আমাদের আউটপুট স্তর, মাধ্যমে ত্রুটি গণনা করতে ব্যবহৃত হয়δL

δjL=CajLσ(zji)

যা দিয়ে ভেক্টর হিসাবেও লেখা যেতে পারে

δL=aCσ(zi)

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

ব্যয় ফাংশন প্রয়োজনীয়তা

ব্যাকপ্রেগেশন ব্যবহার করতে, একটি ব্যয় ফাংশন অবশ্যই দুটি বৈশিষ্ট্য সন্তুষ্ট করতে হবে:

1: ব্যয় ফাংশন অবশ্যই গড় হিসাবে লিখতে সক্ষম হবেC

C=1nxCx

পৃথক প্রশিক্ষণের উদাহরণগুলির জন্য ওভার ব্যয় ফাংশন , ।Cxx

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

2: ব্যয় ফাংশন আউটপুট মান পাশাপাশি কোনও নিউরাল নেটওয়ার্কের কোনও সক্রিয়করণ মানের উপর নির্ভরশীল নয় ।CaL

প্রযুক্তিগতভাবে একটি ব্যয় ফাংশন যে বা উপর নির্ভর করতে পারে । আমরা কেবল এই বিধিনিষেধটি তৈরি করি যাতে আমরা ব্যাকপ্রপাগেট করতে পারি, কারণ শেষ স্তরের গ্রেডিয়েন্টটি সন্ধান করার সমীকরণটি কেবলমাত্র ব্যয় ফাংশনের উপর নির্ভরশীল (বাকিগুলি পরবর্তী স্তরটির উপর নির্ভরশীল)। যদি ব্যয় ফাংশন আউটপুট একের পাশাপাশি অন্যান্য অ্যাক্টিভেশন স্তরগুলির উপর নির্ভর করে, ব্যাকপ্রপ্যাজেশন অবৈধ হবে কারণ "পিছনে পিছনে ট্রলিং করা" ধারণাটি আর কাজ করে না।ajizji

এছাড়াও, অ্যাক্টিভেশন ফাংশনগুলির সমস্ত জন্য আউটপুট । সুতরাং এই ব্যয় ক্রিয়াকলাপগুলি কেবলমাত্র এই ব্যাপ্তির মধ্যেই সংজ্ঞায়িত করা দরকার (উদাহরণস্বরূপ, valid বৈধ, যেহেতু আমরা )।0ajL1jajLajL0


3
এটি একটি প্রশ্নোত্তর সাইট এবং এই পোস্টের ফর্ম্যাটটি সত্যিই এটি খাপ খায় না। আপনার সম্ভবত বেশিরভাগ সামগ্রীর উত্তরে একটি উত্তর দেওয়া উচিত এবং কেবলমাত্র প্রশ্নটি ছেড়ে দেওয়া উচিত (যেমন এনএনএসে ব্যবহৃত ব্যয়গুলির তালিকাগুলি কী?)।
রজার ফ্যান

ঠিক আছে, এটা কি ভাল? আমি মনে করি সংজ্ঞাগুলি গুরুত্বপূর্ণ, অন্যথায় উত্তরগুলি সেগুলির পক্ষে অস্পষ্ট হয়ে যায় যা লেখক যে পরিভাষা ব্যবহার করেন তার সাথে পরিচিত নয়।
ফিলিইদা

তবে যদি কোনও আলাদা উত্তর বিভিন্ন স্বরলিপি বা পরিভাষা ব্যবহার করে?
রজার ফ্যান

3
ধারণাটি হ'ল প্রত্যেকে এখানে একই পরিভাষা ব্যবহার করে এবং এটি যদি আলাদা হয় তবে আমরা এটিকে রূপান্তর করি, সুতরাং উত্তরগুলি একে অপরের সাথে "ফিট" হয়। তবে আমি মনে করি আপনি যদি এটি সহায়ক বলে মনে করেন না তবে আমি সেই টুকরোটি সরিয়ে ফেলতে পারি।
ফিলিইদা

1
আমি কেবলমাত্র মনে করি যে প্রশ্নটিতে প্রশ্নটি প্রবেশ করা হয়েছে তা সত্যিই প্রয়োজনীয় বা প্রাসঙ্গিক নয়। এটি কিছুটা অতিরিক্ত এবং সীমিত মনে হচ্ছে, তবে এটি কেবল আমার।
রজার ফ্যান

উত্তর:


85

আমি এখন পর্যন্ত যাঁরা বুঝতে পেরেছি তারা এখানে। 0 এবং 1 এর মধ্যে মান দেওয়া হলে এর বেশিরভাগই সেরা কাজ করে।

চতুর্ভুজ ব্যয়

গড় স্কোয়ার ত্রুটি , সর্বাধিক সম্ভাবনা এবং যোগফলের স্কোয়ার ত্রুটি হিসাবেও পরিচিত , এটি হিসাবে সংজ্ঞায়িত হয়েছে:

CMST(W,B,Sr,Er)=0.5j(ajLEjr)2

নিউরাল নেটওয়ার্ক এবং কিছু নমুনা এর আউটপুট সম্মানের সাথে এই ব্যয় ফাংশনের গ্রেডিয়েন্টটি হ'ল:r

aCMST=(aLEr)

ক্রস-এনট্রপি ব্যয়

বার্নোল্লি নেতিবাচক লগ-সম্ভাবনা এবং বাইনারি ক্রস-এন্ট্রপি হিসাবেও পরিচিত

CCE(W,B,Sr,Er)=j[Ejr ln ajL+(1Ejr) ln (1ajL)]

নিউরাল নেটওয়ার্ক এবং কিছু নমুনা আর এর আউটপুট সম্মানের সাথে এই ব্যয় ফাংশনের গ্রেডিয়েন্টটি r

aCCE=(aLEr)(1aL)(aL)

ক্ষতিকারক ব্যয়

τ

CEXP(W,B,Sr,Er)=τ exp(1τj(ajLEjr)2)

exp(x)ex

নিউরাল নেটওয়ার্ক এবং কিছু নমুনা আর এর আউটপুট সম্মানের সাথে এই ব্যয় ফাংশনের গ্রেডিয়েন্টটি r

aC=2τ(aLEr)CEXP(W,B,Sr,Er)

CEXPCEXP

হেল্পিংজার দূরত্ব

CHD(W,B,Sr,Er)=12j(ajLEjr)2

01

নিউরাল নেটওয়ার্ক এবং কিছু নমুনা আর এর আউটপুট সম্মানের সাথে এই ব্যয় ফাংশনের গ্রেডিয়েন্টটি r

aC=aLEr2aL

কুলব্যাক – লেবেলার বিচ্যুতি

এছাড়াও হিসাবে পরিচিত তথ্য ডাইভারজেন্স , তথ্য লাভ , আপেক্ষিক এনট্রপি , KLIC , অথবা কেএল ডাইভারজেন্স (দেখুন এখানে )।

DKL(PQ)=iP(i)lnP(i)Q(i)

DKL(PQ)QPP=EiQ=aLajiEji

CKL(W,B,Sr,Er)=jEjrlogEjrajL

P=EiQ=aL

নিউরাল নেটওয়ার্ক এবং কিছু নমুনা আর এর আউটপুট সম্মানের সাথে এই ব্যয় ফাংশনের গ্রেডিয়েন্টটি r

aC=EraL

জেনারালাইজড কুলব্যাক – লেবেলার বিচ্যুতি

থেকে এখানে

CGKL(W,B,Sr,Er)=jEjrlogEjrajLj(Ejr)+j(ajL)

নিউরাল নেটওয়ার্ক এবং কিছু নমুনা আর এর আউটপুট সম্মানের সাথে এই ব্যয় ফাংশনের গ্রেডিয়েন্টটি r

aC=aLEraL

ইতাকুড়া – সাইতো দূরত্ব

এখান থেকেও ।

CGKL(W,B,Sr,Er)=j(EjrajLlogEjrajL1)

নিউরাল নেটওয়ার্ক এবং কিছু নমুনা আর এর আউটপুট সম্মানের সাথে এই ব্যয় ফাংশনের গ্রেডিয়েন্টটি r

aC=aLEr(aL)2

((aL)2)j=ajLajL(aL)2aL


ভাগ করে নেওয়ার জন্য ধন্যবাদ, আপনি এগুলিও বিবেচনা করতে পারেন: github.com/torch/nn/blob/master/doc/criterion.md
ইয়ান্নিস

2
ক্রস-এনট্রপি ডেরিভেটিভের ডিনোমিনিটিভেটে আপনার একটি ছোট ভুল আছে, এটি হওয়া উচিত a*(1-a)নয়a*(1+a)
আম্রো

1
গড় ত্রুটির চেয়ে ত্রুটি কোয়ান্টাইলগুলি হ্রাস করতে পিনবল ক্ষতির ক্রিয়াকলাপটি প্রদর্শন করাও দুর্দান্ত। সিদ্ধান্ত সমর্থন সিস্টেমে খুব ব্যবহৃত।
রিকার্ডো ক্রুজ

আমি এগুলির জন্য গ্রাফগুলি কোথায় দেখতে পাব?
coiso

1

20

মন্তব্য করার খ্যাতি নেই, কিন্তু শেষ 3 গ্রেডিয়েন্টে সাইন ত্রুটি রয়েছে।

C=jEjlog(Ej/aj)=jEjlog(Ej)Ejlog(aj)dC=jEjdlog(aj)=j(Ej/aj)dajaC=Ea
এই একই সাইন ত্রুটি জেনারেলাইজড কেএল ডাইভারজেন্সে উপস্থিত হয়।

C=j(Ej/aj)log(Ej/aj)1=j(Ej/aj)log(Ej)+log(aj)1dC=j(Ej/aj2)daj+dlog(aj)=j(1/aj)daj(Ej/aj2)daj=j(ajEj)/aj2dajaC=aE(a)2
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.