নিউরাল নেটওয়ার্ক: কোন ব্যয়টি ব্যবহার করতে হবে?


49

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

TensorFlow আমি আসার আগে কিছু সম্পূর্ণরূপে সংযুক্ত MLPs এবং সঙ্গে আমার নিজের কিছু পৌনঃপুনিক নেটওয়ার্ক কোডেড পাইথন এবং NumPy কিন্তু বেশিরভাগই আমি সমস্যার যেখানে একটি সহজ স্কোয়ারড ত্রুটি এবং একটি সহজ গ্রেডিয়েন্ট descient যথেষ্ট ছিল ছিল।

তবে, যেহেতু টেনসরফ্লো কাস্টম ব্যয় কার্যকারিতা তৈরি করার পাশাপাশি নিজেই অনেকগুলি ব্যয় কার্যকারিতা সরবরাহ করে, তাই আমি জানতে চাই যে নিউরাল নেটওয়ার্কগুলিতে ব্যয়ের জন্য বিশেষত কোনও ধরণের টিউটোরিয়াল রয়েছে কিনা? (আমি ইতিমধ্যে অফিশিয়াল টেনসরফ্লো টিউটোরিয়ালগুলির অর্ধেকের মতো করে দিয়েছি তবে তারা কেন নির্দিষ্ট ব্যয়ের কাজগুলি বা শিক্ষার্থীদের নির্দিষ্ট সমস্যার জন্য ব্যবহৃত হয় - কমপক্ষে শিক্ষানবিশদের জন্য নয়) তারা সত্যই ব্যাখ্যা করছে না're

কিছু উদাহরণ দিতে:

cost = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(y_output, y_train))

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

cost = tf.nn.l2_loss(vector)

এটা কিসের জন্য? আমি ভেবেছিলাম যে l2 ক্ষয়টি বেশ স্কোয়ার ত্রুটি তবে টেনসরফ্লো এর এপিআই বলেছে যে এটির ইনপুটটি কেবল একটি টেন্সর। আদৌ ধারণাটি পাই না ?!

পাশাপাশি আমি প্রায়শই ক্রস এন্ট্রপির জন্য দেখেছি :

cross_entropy = -tf.reduce_sum(y_train * tf.log(y_output))

... তবে কেন এটি ব্যবহার করা হয়? গাণিতিকভাবে ক্রস এনট্রপিতে ক্ষতি কি এটি নয়:

-1/n * sum(y_train * log(y_output) + (1 - y_train) * log(1 - y_output))

(1 - y_train) * log(1 - y_output)বেশিরভাগ টেনসরফ্লো উদাহরণগুলিতে অংশটি কোথায় ? অনুপস্থিত না?


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


1
ভাল প্রশ্ন. সাইটে আপনাকে স্বাগতম :)
ডওয়ানি 33

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

1
আমি মনে করি কমানো_সাম (y_train * tf.log (y_output)) প্রচুর ব্যবহৃত হয় কারণ এটি একটি প্রায় সাধারণ "সাধারণ কেস" উদাহরণ। এটি প্রতিটি ব্যাচের ত্রুটির পরিমাণ যোগ করবে, যার অর্থ আপনার ত্রুটি দ্বিগুণ হলে আপনার ত্রুটির দ্বিগুণ ব্যয় (এবং গ্রেডিয়েন্টের প্রস্থতা)। কমিয়ে আনাতে সাধারণ পরিবর্তন করা খুব কমপক্ষে ডিবাগিং এবং সেটিংসের সাথে খেলে আমার মতে আরও বোধগম্য হবে।
নিউরন

উত্তর:


34

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

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

যদি আপনি ক্রস-এন্ট্রপি, লজিট, এল 2 মান বা কোনও নির্দিষ্ট কিছু সম্পর্কিত উত্তর চান তবে আমি আপনাকে একাধিক, আরও নির্দিষ্ট প্রশ্ন পোস্ট করার পরামর্শ দিচ্ছি। এটি সম্ভাব্যতা বাড়িয়ে তুলবে যে নির্দিষ্ট জ্ঞানযুক্ত কেউ আপনার প্রশ্নটি দেখবে।


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

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


খরচ ফাংশন মধ্যে বিভিন্ন পার্থক্য আঁকা, আমাদের বাইনারি শ্রেণীবিন্যাস সমস্যা, যেখানে আমরা চাই, উদাহরণ ব্যবহার করার অনুমতি প্রতিটি নমুনা জন্য , বর্গ ।xnf(xn){0,1}

গণনামূলক বৈশিষ্ট্য দিয়ে শুরু ; "একই জিনিস" পরিমাপ করার জন্য দুটি কার্য কীভাবে বিভিন্ন ফলাফল হতে পারে। নিম্নলিখিত, সাধারণ ব্যয় কার্যকারিতা নিন; ত্রুটির শতাংশ আপনার যদি নমুনা থাকে, হ'ল পূর্বাভাসীকৃত শ্রেণি এবং প্রকৃত ক্লাস হয়, আপনি ছোট করতে চানNf(yn)yn

  • 1Nn{1 if f(xn)yn0 otherwise=nyn[1f(xn)]+[1yn]f(xn)

এই ব্যয় কার্যটি সহজে ব্যাখ্যাযোগ্য হওয়ার সুবিধা রয়েছে। তবে এটি মসৃণ নয়; যদি আপনার কাছে মাত্র দুটি নমুনা থাকে তবে ফাংশনটি "জাম্পিং" থেকে 0, 0.5 থেকে 1 হয়ে যায় 1. এটি এড়ানোর এক উপায় হ'ল কার্যের সম্ভাব্যতাগুলি ব্যবহারের জন্য ব্যয় কার্যকারিতা পরিবর্তন করা; । ফাংশন হয়ে যায়p(yn=1|xn)

  • 1Nnynp(yn=0|xn)+(1yn)p(yn=1|xn)

এই ফাংশনটি মসৃণ, এবং গ্রেডিয়েন্ট বংশোদ্ভূত পদ্ধতির সাথে আরও ভাল কাজ করবে। আপনি একটি 'সূক্ষ্ম' মডেল পাবেন। তবে এর অন্যান্য সমস্যাও রয়েছে; যদি আপনার কাছে অস্পষ্ট একটি নমুনা থাকে তবে ধরা যাক যে চেয়ে ভাল কিছু বলার মতো পর্যাপ্ত তথ্য আপনার কাছে নেই । তারপরে, এই ব্যয় ফাংশনে গ্রেডিয়েন্ট বংশদ্ভুত ব্যবহারটি এমন একটি মডেলকে নিয়ে যাবে যা এই সম্ভাবনাটি যতটা সম্ভব বাড়িয়ে তোলে এবং এইভাবে, সম্ভবত ওভারফিট।p(yn=1|xn)=0.5

এই ফাংশনের আর একটি সমস্যা হ'ল যদি যখন হয় তবে আপনি সঠিক বলে নিশ্চিত হন তবে আপনি ভুল। এই সমস্যাটি এড়াতে, আপনি সম্ভাবনার লগ নিতে পারেন, । হিসাবে এবং , নিম্নলিখিত ফাংশন সমস্যা নেই পূর্ববর্তী অনুচ্ছেদ বর্ণিত:p(yn=1|xn)=1yn=0logp(yn|xn)log(0)=log(1)=0

  • 1Nnynlogp(yn=0|xn)+(1yn)logp(yn=1|xn)

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

এটা তোলে খরচ কাজকর্মের জন্য সম্ভব এবং পরিমাপ একই ধারণা , কিন্তু অনেক ভালো ফল করার জন্য আপনার পদ্ধতি হতে পারে ।ABAB


এখন আসুন দেখুন কীভাবে বিভিন্ন ব্যয়ের ক্রিয়াকলাপ বিভিন্ন ধারণাটি পরিমাপ করতে পারে। তথ্য পুনরুদ্ধারের প্রসঙ্গে, গুগল অনুসন্ধানের মতো (যদি আমরা র‌্যাঙ্কিং উপেক্ষা করি), আমরা ফিরে আসা ফলাফলগুলি চাই

মনে রাখবেন যে আপনার অ্যালগরিদম যদি সমস্ত কিছু ফিরিয়ে দেয় তবে এটি প্রতিটি প্রাসঙ্গিক ফলাফলটি ফিরিয়ে দেবে এবং এর ফলে উচ্চতর স্মরণ রয়েছে, তবে খুব কম নির্ভুলতা রয়েছে। অন্যদিকে, যদি এটি কেবলমাত্র একটি উপাদান ফেরত দেয় তবে এটি যে সর্বাধিক নির্দিষ্ট তা প্রাসঙ্গিক, এটির উচ্চ নির্ভুলতা থাকবে তবে কম স্মরণ।

এই জাতীয় অ্যালগরিদম বিচার করার জন্য, সাধারণ ব্যয়ের কাজটি হ'ল স্কোর (উইকিপিডিয়া) । সাধারণ ক্ষেত্রে দেখা যায় -score, যা স্পষ্টতা এবং রিকল সমান ওজন দেয়, কিন্তু সাধারণ ক্ষেত্রে এটা -score, এবং আপনি বদলাতে পারেন পেতেFF1Fββ

  • উচ্চতর রিকাল, আপনি যদি ব্যবহার করেনβ>1
  • উচ্চতর নির্ভুলতা, যদি আপনি ব্যবহার করেন ।β<1

এই জাতীয় দৃশ্যে, ব্যয় কার্যকারিতাটি বেছে নেওয়া আপনার অ্যালগরিদমকে কী ট্রেড অফ করতে হবে তা বেছে নেওয়া হচ্ছে

আরও একটি উদাহরণ যা প্রায়শই উত্থাপিত হয় তা হ'ল চিকিত্সা নির্ণয়ের ক্ষেত্রে, আপনি একটি ব্যয় কার্যকারিতা চয়ন করতে পারেন যা তার চেয়ে বেশি ভাল তার উপর নির্ভর করে আরও মিথ্যা নেতিবাচক বা মিথ্যা ধনাত্মককে শাস্তি দেয়:

  • আরও স্বাস্থ্যবান মানুষ অসুস্থ হিসাবে শ্রেণীবদ্ধ করা হয়েছে (তবে তারপরে আমরা স্বাস্থ্যকর লোকদের চিকিত্সা করতে পারি, যা ব্যয়বহুল এবং তারা যদি অসুস্থ না হয় তবে তাদের ক্ষতি করতে পারে)
  • আরও অসুস্থ ব্যক্তিদের স্বাস্থ্যকর হিসাবে শ্রেণীবদ্ধ করা হচ্ছে (তবে তারা চিকিত্সা ছাড়াই মারা যেতে পারে)

উপসংহারে, ব্যয়ের ক্রিয়াটি সংজ্ঞায়িত করা আপনার অ্যালগরিদমের লক্ষ্য নির্ধারণ করছে। অ্যালগরিদম সেখানে পৌঁছানোর উপায় নির্ধারণ করে।


পার্শ্ব দ্রষ্টব্য: কিছু ব্যয় কার্যক্রমে তাদের লক্ষ্যে পৌঁছানোর জন্য দুর্দান্ত অ্যালগরিদম উপায় রয়েছে। উদাহরণস্বরূপ, এসভিএম (উইকিপিডিয়া) এর দ্বৈত সমস্যা সমাধানের মাধ্যমে ন্যূনতম হিন্জ ক্ষতির (উইকিপিডিয়া) সর্বনিম্ন করার একটি দুর্দান্ত উপায়


10

ক্রস এনট্রপিতে আপনার প্রশ্নের উত্তর দেওয়ার জন্য, আপনি লক্ষ্য করেছেন যে আপনি যা উল্লেখ করেছেন উভয়ই একই জিনিস।

1n(y_trainlog(y_output)+(1y_train)log(1y_output))

যেটি আপনি উল্লেখ করেছেন কেবলমাত্র বাইনারি ক্রস এন্ট্রপি ক্ষতি যেখানে আপনি ধরে যে হল 0/1 স্কেলার এবং সেই আবার একটি স্কেলার যা আউটপুট হওয়ার সম্ভাব্যতা নির্দেশ করে।y_trainy_output

আপনি যে অন্যান্য সমীকরণটি উল্লেখ করেছেন সেটি হ'ল একাধিক শ্রেণিতে বিস্তৃত এর আরও জেনেরিক বৈকল্পিক

-tf.reduce_sum(y_train * tf.log(y_output)) লেখার মতো একই জিনিস

ntrain_problog(out_prob)

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


4

বিএলইউএফ: ডেটা এবং ম্যাটপ্ল্লোলিবের সাবসেট সহ পুনরাবৃত্তির ট্রায়াল অ্যান্ড ত্রুটি।

দীর্ঘ উত্তর:

আমার দলটি এই একই প্রশ্নে অনেক আগে লড়াই করে যাচ্ছিল। এখানে সমস্ত উত্তর দুর্দান্ত তবে আমি প্রসঙ্গের জন্য এবং মেশিন লার্নিংয়ে নতুন যারা ভাবেন তাদের কাছে একটি সূচনা পয়েন্ট হিসাবে আমার সাথে আপনার "শিক্ষানবিশের উত্তর" আপনার সাথে ভাগ করে নিতে চেয়েছিলাম।

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

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

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

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

এই ধরণের উচ্চ পুনরাবৃত্তির ট্রায়াল-অ্যান্ড-ত্রুটি প্রক্রিয়াটি আমার এবং আমার প্রাথমিক শিক্ষানবিশদের দলটির জন্য বেশ ভালভাবে কাজ করে চলেছে এবং ব্যয় নির্বাচনের পিছনে গণিতের তত্ত্বকে গভীরভাবে ডুবাই না দিয়ে আমাদের প্রশ্নের সমাধানগুলি সন্ধানের দিকে আমাদের দৃষ্টি নিবদ্ধ করতে দেয় এবং মডেল অপ্টিমাইজেশন।

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

আশা করি এই উত্তর অত্যধিক সরল ও সুস্পষ্ট না হয়েই অন্য প্রাথমিকদের এখানে সহায়তা করবে।


3

আপনার প্রশ্নটি পুনরায় করা হচ্ছে

বেশিরভাগ টেনসরফ্লো উদাহরণগুলিতে (1 - y_train) * লগ (1 - y_output) অংশটি কোথায়? অনুপস্থিত না?

উত্তরটি হ'ল বেশিরভাগ আউটপুট ফাংশনগুলি সফটম্যাক্স। এর অর্থ আপনি ভুল ক্ষেত্রে সমস্ত সম্ভাবনা হ্রাস করার প্রয়োজন নেই কারণ আপনি যখন সঠিকটির সম্ভাবনা বাড়িয়ে দেবেন তখন সেগুলি স্বয়ংক্রিয়ভাবে হ্রাস পাবে they

উদাহরণ স্বরূপ:

অপ্টিমাইজেশনের আগে

y_output = [0.2, 0.2, 0.6] এবং y_train = [0, 0, 1]

অপ্টিমাইজেশন পরে

y_output = [0.15, 0.15, 0.7] এবং y_train = [0, 0, 1]

এখানে পর্যবেক্ষণ করুন যে আমরা সবে তৃতীয় মেয়াদ বাড়িয়ে দিলেও অন্যান্য সমস্ত পদ স্বয়ংক্রিয়ভাবে হ্রাস পেয়েছে

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