টেনসরফ্লোতে লগইট শব্দের অর্থ কী?


250

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

loss_function = tf.nn.softmax_cross_entropy_with_logits(
     logits = last_layer,
     labels = target_output
)

উত্তর:


215

লজিটস একটি ওভারলোড হওয়া শব্দ যা এর অর্থ বিভিন্ন রকম হতে পারে:


মঠে , লজিট একটি ফাংশন যা সম্ভাব্যতাগুলি ( [0, 1]) থেকে আর ( (-inf, inf)) এর মানচিত্র করে

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

০.০ এর সম্ভাব্যতা ০.০ এর একটি লগইটের সাথে মিলে যায়

এমএল , এটি হতে পারে

কাঁচা (অ-নরমালাইজড) এর ভেক্টর পূর্বাভাস দেয় যে একটি শ্রেণিবদ্ধকরণ মডেল উত্পন্ন করে, যা সাধারণভাবে পরে একটি নরমালাইজেশন ফাংশনে স্থানান্তরিত হয়। যদি মডেলটি একটি বহু-শ্রেণীর শ্রেণিবিন্যাস সমস্যার সমাধান করে, লগইটগুলি সাধারণত সফটম্যাক্স ফাংশনের ইনপুট হয়ে যায়। সফটম্যাক্স ফাংশন তার পরে প্রতিটি সম্ভাব্য শ্রেণীর জন্য একটি মান সহ (সাধারণীকরণের) সম্ভাবনার একটি ভেক্টর তৈরি করে।

লগইটগুলি মাঝে মধ্যে সিগময়েড ফাংশনের উপাদান-ভিত্তিক বিপরীতকেও বোঝায়।


127
টেনসরফ্লো এর জন্য: এটি এমন একটি নাম যা মনে করা হয় যে এই টেনসরটি এমন পরিমাণ যা সফটম্যাক্স দ্বারা সম্ভাবনার সাথে ম্যাপ করা হচ্ছে।
থারটেক

1
এটি কি ঠিক সেই একই জিনিস যা সফটম্যাক্সের আগেই ঘনিষ্ঠ হয়? অর্থাৎ softmax(logit) = exp(logit)/Z(logit)তাহলে logit = h_NN(x)? সুতরাং লজিট "স্কোর" সমান?
চার্লি পার্কার

4
টেনসরফ্লো ডোমেনে ব্যক্তিগত বোঝাপড়া, লগইটগুলি সফটম্যাক্সের ইনপুট হিসাবে ব্যবহৃত মান। আমি এই টেনসরফ্লো টিউটোরিয়ালের উপর ভিত্তি করে এই বোঝাপড়াতে এসেছি।
দিয়ানশেং

2
এটি প্রশ্নের উত্তর দেয় কিনা তা আমি নিশ্চিত নই। সম্ভবত সে কারণেই এটি কখনই গৃহীত হয়নি। আমি লজিট ফাংশনটি কী তা বুঝতে পেরেছি, তবে টেনসরফ্লো কেন এই আর্গুমেন্টগুলিকে লগিট বলে তা আমার ধাঁধাটিও ধাঁধা দেয়। এছাড়া একই Tensorflow এর ফাংশন প্যারামিটার বিভিন্ন জন্য উপাধি
dleal

1
অভিবাদন! আপনি কি একটি সাধারণ উদাহরণ তৈরি করতে পারেন? এটা কী ঠিক? [1, 0.5, 0.5]নরমালাইজেশন হয়ে ওঠার [0.5, 0.25, 0.25]পরে নরম সর্বাধিক হয়ে যায় [0,]যদি একজন গরম থাকে [1, 0, 0]? বা ঠিক আউট [1, 0, 0]আউটপুট একটি ভেক্টর হওয়া উচিত কারণ?
টিনা লিউ

91

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

ডায়ানশেংয়ের উত্তর এবং জ্যাকজেজের উত্তর এটি সঠিকভাবে পেয়েছে । শীতল শাহ পোস্ট করা
একটি নতুন উত্তর একটি আরও ভাল এবং আরও সম্পূর্ণ উত্তর।


হ্যাঁ, পরিসংখ্যানগুলিতে logit গাণিতিক ক্রিয়াকলাপ হিসাবে , তবে logitনিউরাল নেটওয়ার্কগুলির প্রসঙ্গে ব্যবহৃত আলাদা different পরিসংখ্যান logitএমনকি এখানে কোন ধারণা দেয় না।


আমি কোথাও একটি প্রথাগত সংজ্ঞা পাইনি, তবে logitমূলত এর অর্থ:

নিউরাল নেটওয়ার্কের শেষ স্তরটি থেকে বেরিয়ে আসা কাঁচা পূর্বাভাস।
1. এটি খুব টেনসর যার উপর আপনি argmaxপূর্বাভাসীকৃত ক্লাসটি পেতে ফাংশনটি প্রয়োগ করেন ।
২. এটি খুব টেনসর যা আপনি softmaxপূর্বাভাসীকৃত ক্লাসগুলির সম্ভাব্যতা অর্জনের জন্য ফাংশনে ফিড দিন ।


এছাড়াও, অফিশিয়াল টেনসরফ্লো ওয়েবসাইটে একটি টিউটোরিয়াল থেকে :

লজিটস স্তর

আমাদের নিউরাল নেটওয়ার্কের চূড়ান্ত স্তর হ'ল লগইট স্তর, যা আমাদের পূর্বাভাসের জন্য কাঁচা মানগুলি ফিরিয়ে দেবে। আমরা লিনিয়ার অ্যাক্টিভেশন (ডিফল্ট) সহ 10 টি নিউরন (প্রতিটি লক্ষ্য শ্রেণীর 0-9) সহ একটি ঘন স্তর তৈরি করি:

logits = tf.layers.dense(inputs=dropout, units=10)

আপনি যদি এখনও বিভ্রান্ত থাকেন তবে পরিস্থিতিটি এরকম:

raw_predictions = neural_net(input_layer)
predicted_class_index_by_raw = argmax(raw_predictions)
probabilities = softmax(raw_predictions)
predicted_class_index_by_prob = argmax(probabilities)

যেখানে, predicted_class_index_by_rawএবং predicted_class_index_by_probসমান হবে।

raw_predictionsউপরের কোডটির জন্য অন্য একটি নামlogit


হিসাবে কেন logit ... আমি কোন ধারণা আছে। দুঃখিত।
[সম্পাদনা করুন: পদটির পিছনে historicalতিহাসিক প্রেরণার জন্য এই উত্তরটি দেখুন ]]


তুচ্ছ বস্তু

যদিও, আপনি চাইলে, আপনি ফাংশন থেকে বেরিয়ে আসার logitজন্য পরিসংখ্যান প্রয়োগ করতে পারেন ।probabilitiessoftmax

একটি নির্দিষ্ট শ্রেণীর সম্ভাব্যতা হয়, তাহলে p,
তারপর লগ-মতভেদ যে ক্লাসের হয় L = logit(p)

এছাড়াও, এই শ্রেণীর সম্ভাবনাটি ফাংশনটি p = sigmoid(L)ব্যবহার করে পুনরুদ্ধার করা যায় sigmoid

লগ-প্রতিক্রিয়া গণনা করার জন্য খুব দরকারী নয়।


80

লজিট একটি ফাংশন যা সম্ভাবনার মানচিত্র [0, 1]করে [-inf, +inf]

সফটম্যাক্স এমন একটি ফাংশন যা সিগময়েডের সমান মানচিত্র [-inf, +inf]করে [0, 1]। তবে সফটম্যাক্স মান (আউটপুট ভেক্টর) এর যোগফলকে 1 হতে সাধারণ করে তোলে।

টেন্সরফ্লো "লজিট সহ" : এর অর্থ হল যে আপনি সংখ্যাগুলিকে স্বাভাবিক করতে লগইট করার জন্য একটি সফটম্যাক্স ফাংশন প্রয়োগ করছেন। ইনপুট_ভেক্টর / লগিটটি স্বাভাবিক হয় না এবং [-inf, inf] থেকে স্কেল করতে পারে।

এই স্বাভাবিকীকরণটি মাল্টিক্লাস শ্রেণিবদ্ধকরণ সমস্যার জন্য ব্যবহৃত হয়। এবং বহুবিধ শ্রেণীবদ্ধকরণের সমস্যার জন্য সিগময়েড নরমালাইজেশন ব্যবহৃত হয়tf.nn.sigmoid_cross_entropy_with_logits


10
সুতরাং লজিট "স্কোর" এর সমান
চার্লি পার্কার

1
আমি আপনার উত্তরে স্পষ্টভাবে পার্থক্যমূলক Logitফাংশন (পরিসংখ্যান) এবং logitsস্তর (সেন্সরফ্লো)
আনিসআহমেড 777

62

সারসংক্ষেপ

লগইট স্তর গভীর শেখার প্রসঙ্গে অর্থ হল সেই স্তর যা সফটম্যাক্সে ফিড করে (বা অন্যান্য সাধারণকরণ)। সফটম্যাক্সের আউটপুট হ'ল শ্রেণিবদ্ধকরণ কার্যের সম্ভাবনা এবং এর ইনপুটটি লজিট স্তর। লগইট স্তরটি সাধারণত ইনফিনিটি থেকে + ইনফিনিটিতে মান তৈরি করে এবং সফটম্যাক্স স্তরটি 0 থেকে 1 পর্যন্ত মানগুলিতে রূপান্তর করে।

ঐতিহাসিক প্রেক্ষাপট

এই শব্দটি কোথা থেকে এসেছে? 1930 এবং 40 এর দশকে, বেশিরভাগ লোক সম্ভাব্যতার পূর্বাভাস দেওয়ার সমস্যার সাথে লিনিয়ার রিগ্রেশনকে অভিযোজিত করার চেষ্টা করছিলেন। তবে লিনিয়ার রিগ্রেশন ইনফিনিটি থেকে ইনফিনিটি থেকে আউটপুট উত্পাদন করে থাকে যখন সম্ভাবনার জন্য আমাদের কাঙ্ক্ষিত আউটপুট 0 থেকে 1 হয় এটি করার একটি উপায় হ'ল সম্ভাবনাগুলি 0 থেকে 1 থেকে ইনফিনিটি + ইনফিনিটি ম্যাপিং এবং তারপরে যথারীতি লিনিয়ার রিগ্রেশন ব্যবহার করুন। এরকম একটি ম্যাপিং হল ক্রমবর্ধমান স্বাভাবিক বিতরণ যা ১৯৩34 সালে চেস্টার ইত্তনার ব্লিস ব্যবহার করেছিলেন এবং তিনি এই "প্রবিট" মডেলটিকে "সম্ভাবনা ইউনিট" এর জন্য সংক্ষিপ্ত বলে অভিহিত করেছিলেন। তবে বহু-শ্রেণীর শ্রেণিবদ্ধকরণের জন্য কিছু পছন্দসই বৈশিষ্ট্যের অভাবের সময় এই ফাংশনটি গণনামূলকভাবে ব্যয়বহুল। 1944 সালে জোসেফ বার্কসন এই ফাংশনটি ব্যবহার করেছিলেনlog(p/(1-p))এই ম্যাপিংটি করতে এবং একে লজিট বলে, "লজিস্টিক ইউনিট" এর জন্য সংক্ষিপ্ত। লজিস্টিক রিগ্রেশন শব্দটি এটি থেকেও উদ্ভূত হয়েছিল।

দ্বিধা

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

টেনসরফ্লো কোড

দুর্ভাগ্যক্রমে টেনসরফ্লো কোড এর মতো নামগুলিতে বিভ্রান্তি যুক্ত করে tf.nn.softmax_cross_entropy_with_logits। লগিট বলতে এখানে কী বোঝায়? এটির অর্থ কেবল উপরে বর্ণিত হিসাবে ফাংশনটির ইনপুটটি সর্বশেষ নিউরন স্তরটির আউটপুট বলে মনে করা হচ্ছে। _with_logitsপ্রত্যয় হয় , অপ্রয়োজনীয় বিভ্রান্তিকর এবং অর্থহীন । ফাংশনগুলির নাম যেমন খুব নির্দিষ্ট প্রেক্ষাপটে না রেখে নামকরণ করা উচিত কারণ এগুলি কেবল গাণিতিক ক্রিয়াকলাপ যা অন্য অনেকগুলি ডোমেন থেকে প্রাপ্ত মানগুলিতে সম্পাদন করা যেতে পারে। আসলে টেনসরফ্লোয়ের আরও একটি অনুরূপ ফাংশন রয়েছে sparse_softmax_cross_entropyযেখানে তারা সৌভাগ্যক্রমে _with_logitsঅসঙ্গতি তৈরি করতে এবং বিভ্রান্তিতে যুক্ত করতে ভুলে গিয়েছিলেন । অন্যদিকে পাইটর্চ কেবল এই ধরণের প্রত্যয় ছাড়াই এর ফাংশনটির নাম দেয়।

উল্লেখ

Logit / Probit বক্তৃতা স্লাইড logit বুঝতে শ্রেষ্ঠ সম্পদ অন্যতম। আমি উপরের কিছু তথ্য দিয়ে উইকিপিডিয়া নিবন্ধও আপডেট করেছি ।


31

টেনসরফ্লো ডোমেনে ব্যক্তিগত বোঝাপড়া, লগইটগুলি সফটম্যাক্সের ইনপুট হিসাবে ব্যবহৃত মান। আমি এই টেনসরফ্লো টিউটোরিয়ালের উপর ভিত্তি করে এই বোঝাপড়াতে এসেছি।

https://www.tensorflow.org/tutorials/layers


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

Σ −1 (x) ফাংশনটিকে পরিসংখ্যানগুলিতে লজিট বলা হয়, তবে এই শব্দটি মেশিন লার্নিংয়ে খুব কমই ব্যবহৃত হয়। σ −1 (x) মানে লজিস্টিক সিগময়েড ফাংশনের বিপরীত ফাংশন।

টেনসরফ্লোতে, এটি প্রায়শই সর্বশেষ স্তরের নাম হিসাবে দেখা যায়। বইয়ের 10 অধ্যায়ে আর অন মেশিন লার্নিং সঙ্গে Scikit-শিখতে এবং TensorFLow Aurélien Geron কসম, আমি যা বিবৃত এই অনুচ্ছেদ জুড়ে এসেছিল, logitsলেয়ার পরিষ্কারভাবে।

নোটম্যাক্স অ্যাক্টিভেশন ফাংশনের মধ্য দিয়ে যাওয়ার আগেlogits স্নায়বিক নেটওয়ার্কের আউটপুট এটি নোট করুন : অপ্টিমাইজেশনের কারণে, আমরা পরে সফটম্যাক্স গণনা পরিচালনা করব।

এর অর্থ এটি, যদিও আমরা আমাদের ডিজাইনের সর্বশেষ স্তরে অ্যাক্টিভেশন ফাংশন হিসাবে সফটম্যাক্স ব্যবহার করি, সহজেই গণনা সহজতর করার জন্য, আমরা logitsআলাদাভাবে বের করি । এটি একসাথে গণনা করা softmaxএবং cross-entropyক্ষতি করতে আরও দক্ষ because মনে রাখবেন যে cross-entropyএটি একটি ব্যয় ফাংশন, এগিয়ে প্রচারে ব্যবহৃত হয় না।


12

ভবিষ্যতের পাঠকদের জন্য এখানে একটি সংক্ষিপ্ত উত্তর দেওয়া হল। Tensorflowএর logitঅ্যাক্টিভেশন ফাংশন প্রয়োগের ছাড়া একটি স্নায়ুর আউটপুট হিসাবে সংজ্ঞায়িত করা হয়:

logit = w*x + b,

x: ইনপুট, ডাব্লু: ওজন, বি: পক্ষপাতিত্ব এটাই.


নিম্নলিখিতটি এই প্রশ্নের সাথে অপ্রাসঙ্গিক।

Historicalতিহাসিক বক্তৃতাগুলির জন্য, অন্যান্য উত্তরগুলি পড়ুন। হাটবাজার বন্ধ Tensorflowএর "সৃজনশীলভাবে" বিভ্রান্তিকর নামকরণ সম্মেলন। ইন PyTorch, কেবলমাত্র একটি রয়েছে CrossEntropyLossএবং এটি অ-অ্যাক্টিভেটেড আউটপুটগুলি গ্রহণ করে। রূপান্তর, ম্যাট্রিক্স গুণ এবং অ্যাক্টিভেশন একই স্তরের ক্রিয়াকলাপ। নকশাটি অনেক বেশি মডুলার এবং কম বিভ্রান্তিকর। আমি থেকে স্যুইচ Tensorflowকরার জন্য এটি অন্যতম কারণ PyTorch


8

( FOMO sapiens)।

যদি আপনি গণিত লজিট ফাংশনটি পরীক্ষা করে থাকেন তবে এটি আসল স্থানকে [0,1]অন্তর থেকে অনন্তে রূপান্তর করে [-inf, inf]

সিগময়েড এবং সফটম্যাক্স ঠিক বিপরীত কাজটি করবে। তারা [-inf, inf]আসল স্থানকে আসল জায়গাতে রূপান্তর করবে [0, 1]

এই কারণেই, মেশিন লার্নিংয়ে আমরা সিগময়েড এবং সফটম্যাক্স ফাংশনের আগে লজিট ব্যবহার করতে পারি (যেহেতু তারা মেলে)।

আর এই কেন "আমরা কল করতে পারেন" হয় কিছু মেশিন লার্নিং যে সামনে যায় সিগমা বা softmax ফাংশন logit

এই শব্দটি ব্যবহার করে এখানে জে হিন্টন ভিডিও রয়েছে

পুনশ্চ. আমি কেবল শব্দটি পরীক্ষা করতে ভিডিওটি দেখার পরামর্শ দিচ্ছি না।


5

এগুলি মূলত আপনি সম্পূর্ণ আগ্রহী মডেল যা আপনি নেটওয়ার্ক থেকে পেতে পারেন, কেবলমাত্র আমরা আগ্রহী এমন ক্লাসগুলির জন্য প্রয়োগ করার জন্য এটি স্কোয়াশ করার আগে Check কিছু গবেষক কীভাবে অগভীর নিউরাল নেট প্রশিক্ষণের জন্য কীভাবে গভীর ব্যবহার করেন তা নির্ধারণ করে দেখুন নেটওয়ার্ক শিখেছে: https://arxiv.org/pdf/1312.6184.pdf

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


1

লগিট (/ ˈloʊdʒɪt / LOH-jit) ফাংশনটি সিগময়েডাল "লজিস্টিক" ফাংশন বা লজিস্টিক ট্রান্সফর্মের গণিতে বিশেষত পরিসংখ্যানগুলিতে ব্যবহৃত হয় the যখন ফাংশনটির ভেরিয়েবলটি সম্ভাব্য পি প্রতিনিধিত্ব করে, লগইট ফাংশন লগ-প্রতিক্রিয়াগুলি বা প্রতিকূলতার লগারিদমকে p / (1 - p) দেয়।

এখানে দেখুন: https://en.wikedia.org/wiki/Logit


4
এটি পরিসংখ্যান / গণিতে রয়েছে। আমরা এখানে মেশিন লার্নিংয়ের কথা বলছি, যেখানে logitএর আলাদা অর্থ রয়েছে। দেখুন এই , এই , এই
আনিসআহমেড 777

1

logits

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

তদাতিরিক্ত, লগইটগুলি মাঝে মধ্যে সিগময়েড ফাংশনটির উপাদান অনুসারে বিপরীত হয়। আরও তথ্যের জন্য, দেখুন tf.nn.sigmoid_cross_entropy_with_logits।

অফিসিয়াল টেনসরফ্লো ডকুমেন্টেশন


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