নিউরাল নেটওয়ার্কগুলির কার্যকারিতা মূল্যায়নে সাধারণ ব্যয়ের কাজগুলি কী কী?
বিস্তারিত
(এই প্রশ্নটির বাকি অংশটি নির্দ্বিধায় নির্দ্বিধায় মনে করুন, এখানে আমার উদ্দেশ্যটি কেবল সাধারণভাবে পাঠকের কাছে আরও বোধগম্য হতে পারে এমন উত্তরগুলিতে উত্তরগুলি ব্যবহার করতে পারে এমন স্বরলিপি সম্পর্কে স্পষ্টতা প্রদান করা)
আমি মনে করি যে তারা ব্যবহারে ব্যবহার করা হয়েছে এমন কয়েকটি উপায়ের পাশাপাশি সাধারণ ব্যয় ক্রিয়াকলাপগুলির একটি তালিকা থাকা কার্যকর হবে। সুতরাং অন্যরা যদি এতে আগ্রহী হয় তবে আমি মনে করি কোনও সম্প্রদায়ের উইকি সম্ভবত সেরা পন্থা, বা বিষয়টিকে বন্ধ রেখে আমরা এটিকে নামিয়ে আনতে পারি।
স্বরলিপি
সুতরাং শুরু করার জন্য, আমি একটি স্বরলিপিটি সংজ্ঞায়িত করতে চাই যা আমরা সবাই এগুলি বর্ণনা করার সময় ব্যবহার করি, সুতরাং উত্তরগুলি একে অপরের সাথে পুরোপুরি ফিট হয়।
এই স্বরলিপিটি নীলসেনের বই থেকে এসেছে ।
একটি ফিডফর্ডার নিউরাল নেটওয়ার্ক হ'ল নিউরনের অনেক স্তর এক সাথে সংযুক্ত। তারপরে এটি একটি ইনপুট নেয়, সেই ইনপুটটি নেটওয়ার্কের মাধ্যমে "ট্রিকলস" করে এবং তার পরে নিউরাল নেটওয়ার্ক একটি আউটপুট ভেক্টরকে ফেরত দেয়।
আরো আনুষ্ঠানিকভাবে, কল সক্রিয়তার (ওরফে আউটপুট) মধ্যে স্নায়ুর স্তর, যেখানে হয় ইনপুট ভেক্টর মধ্যে উপাদান।
তারপরে আমরা পরবর্তী স্তরের ইনপুটটিকে নীচের সম্পর্কের মাধ্যমে পূর্বের সাথে সম্পর্কিত করতে পারি:
কোথায়
হ'ল অ্যাক্টিভেশন ফাংশন,
থেকে ওজন মধ্যে স্নায়ুর স্তর মধ্যে স্নায়ুর স্তর,
হ'ল স্তরের নিউরনের পক্ষপাত , এবং
এ নিউরনের সক্রিয়করণের মান উপস্থাপন করে স্তরটিতে ।
কখনও কখনও আমরা লিখি উপস্থাপন করতে , অন্য কথায়, অ্যাক্টিভেশন ফাংশন প্রয়োগ করার আগে একটি নিউরনের সক্রিয়করণের মান ।
আরও সংক্ষিপ্ত স্বরলিপি জন্য আমরা লিখতে পারেন
input কিছু ইনপুট জন্য একটি ফিডফোর্ড নেটওয়ার্কের আউটপুট গণনা করতে এই সূত্রটি ব্যবহার করতে , set সেট করুন , তারপরে , , ..., গণনা করুন , যেখানে মি স্তরগুলির সংখ্যা।
ভূমিকা
একটি ব্যয় ফাংশন হল "কতটা ভাল" একটি পরিমাপ যা একটি নিউরাল নেটওয়ার্ক এটির প্রশিক্ষণের নমুনা এবং প্রত্যাশিত আউটপুটকে সম্মান করে did এটি ওজন এবং বায়াসের মতো ভেরিয়েবলগুলির উপরও নির্ভর করে।
একটি ব্যয় ফাংশন একটি ভেল্ট নয়, একটি একক মান, কারণ এটি নির্ধারণ করে যে নিউরাল নেটওয়ার্ক সামগ্রিকভাবে কতটা ভাল করেছে।
বিশেষত, একটি ব্যয় ফাংশন ফর্ম হয়
যেখানে আমাদের নিউরাল নেটওয়ার্কের ওজন, আমাদের নিউরাল নেটওয়ার্কের বায়াস, হ'ল একক প্রশিক্ষণ নমুনার ইনপুট, এবং সেই প্রশিক্ষণের নমুনার পছন্দসই আউটপুট। উল্লেখ্য এই ফাংশন এছাড়াও সম্ভাব্য উপর নির্ভরশীল হতে পারে এবং কোন স্নায়ুর জন্য স্তরে , কারণ যারা মান উপর নির্ভরশীল , , আর ।
ব্যাকপ্রসারণে, ব্যয় ফাংশনটি আমাদের আউটপুট স্তর, মাধ্যমে ত্রুটি গণনা করতে ব্যবহৃত হয়
যা দিয়ে ভেক্টর হিসাবেও লেখা যেতে পারে
আমরা দ্বিতীয় সমীকরণের ক্ষেত্রে ব্যয় ফাংশনের গ্রেডিয়েন্ট সরবরাহ করব, তবে যদি কেউ এই ফলাফলগুলি নিজেরাই প্রমাণ করতে চায় তবে প্রথম সমীকরণটি ব্যবহার করার পরামর্শ দেওয়া হচ্ছে কারণ এটির সাথে কাজ করা সহজ।
ব্যয় ফাংশন প্রয়োজনীয়তা
ব্যাকপ্রেগেশন ব্যবহার করতে, একটি ব্যয় ফাংশন অবশ্যই দুটি বৈশিষ্ট্য সন্তুষ্ট করতে হবে:
1: ব্যয় ফাংশন অবশ্যই গড় হিসাবে লিখতে সক্ষম হবে
পৃথক প্রশিক্ষণের উদাহরণগুলির জন্য ওভার ব্যয় ফাংশন , ।
এটি তাই আমাদের একক প্রশিক্ষণের উদাহরণের জন্য গ্রেডিয়েন্ট (ওজন এবং বায়াসের প্রতি সম্মানের সাথে) গণনা করতে এবং গ্রেডিয়েন্ট বংশোদ্ভূত চালানোর অনুমতি দেয়।
2: ব্যয় ফাংশন আউটপুট মান পাশাপাশি কোনও নিউরাল নেটওয়ার্কের কোনও সক্রিয়করণ মানের উপর নির্ভরশীল নয় ।
প্রযুক্তিগতভাবে একটি ব্যয় ফাংশন যে বা উপর নির্ভর করতে পারে । আমরা কেবল এই বিধিনিষেধটি তৈরি করি যাতে আমরা ব্যাকপ্রপাগেট করতে পারি, কারণ শেষ স্তরের গ্রেডিয়েন্টটি সন্ধান করার সমীকরণটি কেবলমাত্র ব্যয় ফাংশনের উপর নির্ভরশীল (বাকিগুলি পরবর্তী স্তরটির উপর নির্ভরশীল)। যদি ব্যয় ফাংশন আউটপুট একের পাশাপাশি অন্যান্য অ্যাক্টিভেশন স্তরগুলির উপর নির্ভর করে, ব্যাকপ্রপ্যাজেশন অবৈধ হবে কারণ "পিছনে পিছনে ট্রলিং করা" ধারণাটি আর কাজ করে না।
এছাড়াও, অ্যাক্টিভেশন ফাংশনগুলির সমস্ত জন্য আউটপুট । সুতরাং এই ব্যয় ক্রিয়াকলাপগুলি কেবলমাত্র এই ব্যাপ্তির মধ্যেই সংজ্ঞায়িত করা দরকার (উদাহরণস্বরূপ, valid বৈধ, যেহেতু আমরা )।