মডেল.পরেডিক্ট ফাংশনটির কেরাস থেকে আউটপুট বলতে কী বোঝায়?


14

আমি কোওর অফিসিয়াল ডেটাসেটে সদৃশ প্রশ্নের পূর্বাভাস দেওয়ার জন্য একটি এলএসটিএম মডেল তৈরি করেছি। পরীক্ষার লেবেল 0 বা 1. হয় 1 টি প্রশ্নের জোড় নকল কিনা তা নির্দেশ করে। মডেলটি ব্যবহার করে নির্মাণের পরে model.fit, আমি model.predictপরীক্ষার ডেটা ব্যবহার করে মডেলটি পরীক্ষা করি । আউটপুট হ'ল নীচের মত মানগুলির একটি অ্যারে:

 [ 0.00514298]
 [ 0.15161049]
 [ 0.27588326]
 [ 0.00236167]
 [ 1.80067325]
 [ 0.01048524]
 [ 1.43425131]
 [ 1.99202418]
 [ 0.54853892]
 [ 0.02514757]

আমি অ্যারেতে প্রথম 10 টি মান দেখাব আমি বুঝতে পারি না এই মানগুলি কী বোঝায় এবং প্রতিটি প্রশ্নের জোড়ের জন্য পূর্বাভাসের লেবেলটি কী?


1
আমার মনে হয় আপনার নেটওয়ার্কে আপনার সমস্যা আছে .. সম্ভাবনাগুলি 0-1 স্কেল হওয়া উচিত .. তবে আপনার 1.99 আছে!, আমি মনে করি আপনার কিছু ভুল হয়েছে ..
Ghanem

উত্তর:


8

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

অনুরূপ প্রশ্নটি এখানে দেখুন যা কিছু কোডও দেখায়।

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

আপনি এখন এমন একটি ফাংশন লিখতে পারেন যা কিছু থ্রেশহোল্ডের উপর ভিত্তি করে আপনার মানগুলি 0 বা 1 তে রূপান্তর করে। উদাহরণস্বরূপ, মানগুলিকে ব্যাপ্তিতে [0, 1] হতে হবে তা স্কেল করুন, তারপরে মানটি 0.5 এর নীচে থাকলে 0 প্রদান করুন, যদি 0.5 এর উপরে হয়, তবে 1 প্রত্যাবর্তন করুন।


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

@ ডুকোটো_সাই আপনার নিজেরাই এটি সিদ্ধান্ত নিতে হবে
ব্লেইন

@ ডুকোটো_সিয়ে দয়া করে নোট করুন যে আপনার লেবেল যদি 0 বা 1 হয় তবে আপনার মানটি সেই সীমার মধ্যে হওয়া উচিত, [0, 2] এর পূর্বাভাসের মান স্কেলগুলি আকর্ষণীয় হয়, আপনার মডেল আউটপুট পরিবর্তন করতে হবে
জারমি ব্লেইন

7

এটি যদি শ্রেণিবিন্যাসের সমস্যা হয় তবে আপনার নেটওয়ার্কটি 2 আউটপুট নিউরন হিসাবে পরিবর্তন করা উচিত।

আপনি লেবেলগুলি ব্যবহার করে এক-গরম এনকোডযুক্ত ভেক্টরগুলিতে রূপান্তর করতে পারেন

y_train_binary = keras.utils.to_categorical(y_train, num_classes)
y_test_binary = keras.utils.to_categorical(y_test, num_classes)

তারপরে নিশ্চিত হয়ে নিন যে আপনার আউটপুট স্তরে একটি সফটম্যাক্স অ্যাক্টিভেশন ফাংশন সহ দুটি নিউরন রয়েছে।

model.add(Dense(num_classes, activation='softmax'))

এটি আপনাকে model.predict(x_test_reshaped)তালিকার একটি অ্যারে হিসাবে তৈরি করবে be যেখানে অভ্যন্তরীণ তালিকাটি প্রতিটি শ্রেণীর অন্তর্গত একটি উদাহরণের সম্ভাবনা। এটি 1 পর্যন্ত যোগ করবে এবং স্পষ্টতই সিদ্ধান্ত নেওয়া লেবেলটি সর্বোচ্চ সম্ভাবনার সাথে আউটপুট নিউরন হওয়া উচিত।

কেরাস এগুলি তাদের লাইব্রেরিতে অন্তর্ভুক্ত করেছে যাতে আপনার নিজের তুলনাটি নিজে করার দরকার নেই। আপনি সরাসরি ক্লাস লেবেল ব্যবহার করে পেতে পারেন model.predict_classes(x_test_reshaped)


3
"এটি যদি কোনও শ্রেণিবিন্যাসের সমস্যা হয় তবে আপনার নেটওয়ার্ককে 2 আউটপুট নিউরন থাকতে হবে" ".. দুঃখিত জাহ, তবে তার উচিত নয়, তিনি সফটম্যাক্স ফাংশনের পরিবর্তে একটি নিউরন এবং সিগময়েড দিয়ে এটি করতে পারেন।
Ghanem

@ মিনিয়ন, উভয় পদ্ধতিই মূলত সমতুল্য, থ্রোসোল্ডিং যা আপনাকে অন্যথায় একক আউটপুট নিউরনের সাথে করতে হবে তা স্পষ্টভাবে নেটওয়ার্কটিতে এম্বেড করা আছে। সুতরাং বাইনারি আউটপুট প্রদান।
জাহা ননো

1
হ্যাঁ আমি কা .. আমি কেবলমাত্র মন্তব্য করেছি কারণ তিনি উল্লেখ করেছেন: "আপনার নেটওয়ার্কটি 2 আউটপুট নিউরন হিসাবে পরিবর্তন করা উচিত।" .. থেঙ্ক্স
Ghanem

1

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

উদাহরণস্বরূপ, বাইনারি ক্রসসেন্টরোপি ক্ষতির সাথে আউটপুটটির জন্য 0-1 ইনপুট এবং সিগময়েড অ্যাক্টিভেশন ফাংশন সহ, আপনি 1 এর সম্ভাবনা পেয়ে যাবেন either সিদ্ধান্তটি উভয় দিকেই ভুল পাওয়ার ব্যয়ের উপর নির্ভর করে আপনি ঠিক কীভাবে সিদ্ধান্ত নিতে পারেন এই সম্ভাবনাগুলির সাথে ডিল করুন (উদাহরণস্বরূপ "1" বিভাগটির পূর্বাভাস দিন, যদি সম্ভাবনাটি 0.5% হয় বা সম্ভবত ইতিমধ্যে> 0.1 হয়)।

(-,

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