লজিস্টিক রিগ্রেশনে ব্যয় ফাংশনের পাইথন বাস্তবায়ন: কেন একটি অভিব্যক্তিতে বিন্দুবৃদ্ধি করা হয় তবে অন্যটিতে উপাদান-ভিত্তিক গুণ


18

আমার একটি খুব বেসিক প্রশ্ন রয়েছে যা লজিস্টিক রিগ্রেশন সেটিংয়ে পাইথন, অলস এবং ম্যাট্রিকের গুণনের সাথে সম্পর্কিত।

প্রথমে গণিতের স্বরলিপি ব্যবহার না করার জন্য আমাকে ক্ষমা চাইতে দিন।

আমি ম্যাট্রিক্স ডট গুণ গুণ বনাম উপাদান বিজ্ঞানীর ব্যবহার সম্পর্কে বিভ্রান্ত। ব্যয়ের কাজটি প্রদান করেছেন:

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

এবং পাইথনে আমি এই হিসাবে লিখেছি

    cost = -1/m * np.sum(Y * np.log(A) + (1-Y) * (np.log(1-A)))

তবে উদাহরণস্বরূপ এই অভিব্যক্তি (প্রথমটি - ডাব্লু এর সাথে সম্মানের সাথে জে এর উদ্দীপনা)

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

হয়

   dw = 1/m * np.dot(X, dz.T)

উপরের দিক থেকে বিন্দুবৃদ্ধি কেন সঠিক তা আমি বুঝতে পারি না, তবে ব্যয় কার্যক্রমে উপাদান অনুসারে গুণগুলি ব্যবহার করুন কেন নয়:

   cost = -1/m * np.sum(np.dot(Y,np.log(A)) + np.dot(1-Y, np.log(1-A)))

আমি সম্পূর্ণরূপে পেয়েছি যে এটি বিস্তৃতভাবে ব্যাখ্যা করা হয়নি তবে আমি অনুমান করছি যে প্রশ্নটি এতটাই সহজ যে এমনকি যে কোনও বেসিক লজিস্টিক রিগ্রেশন অভিজ্ঞতার সাথে আমার সমস্যা বুঝতে পারে।


2
yilog(ai)Y * np.log(A)X(AY)Tnp.dot(X, dz.T)

2
ধন্যবাদ নীল অস্পষ্টতার জন্য দুঃখিত। দ্বিতীয়. আমি গণিতের সূত্রগুলি বুঝতে পারি। আমি কেবল একটিতে
বিন্দুবৃদ্ধির

উত্তর:


12

এই ক্ষেত্রে, দুটি গণিতের সূত্রগুলি আপনাকে সঠিক ধরণের গুণকে দেখায়:

  • yilog(ai)ya

  • ABC=ABCik=jAijBjknp.dot

অংশে আপনার বিভ্রান্তিটি ভেক্টরিয়েশন থেকে শুরু হয়েছে যা কোর্স উপকরণগুলির সমীকরণগুলিতে প্রয়োগ করা হয়েছে, যা আরও জটিল পরিস্থিতিতে প্রত্যাশিত। আপনি আসলে ব্যবহারে পারে cost = -1/m * np.sum( np.multiply(np.log(A), Y) + np.multiply(np.log(1-A), (1-Y)))বা cost = -1/m * np.sum( np.dot(np.log(A), Y.T) + np.dot(np.log(1-A), (1-Y.T)))থাকাকালীন Yএবং Aআকৃতি আছে (m,1)এবং এটি একই ফলাফল দিতে হবে। এনবি np.sumএটিতে কেবল একটি একক মানকে সমতল করছে, যাতে আপনি এটিকে ফেলে দিতে পারেন এবং তার পরিবর্তে [0,0]শেষের দিকে থাকতে পারেন। তবে এটি অন্যান্য আউটপুট আকারগুলিতে সাধারণীকরণ করে না (m,n_outputs)তাই কোর্সটি এটি ব্যবহার করে না।


1
নীল - হ্যাঁ, আপনি ঠিক বলেছেন। অ্যান্ড্রু এনজিএস নতুন ডিএল কোর্স। এবং আপনার উত্তর নিখুঁত জ্ঞান করে তোলে। ইনপুট জন্য ধন্যবাদ।
ঘোস্টরাইডার

"সুতরাং y এর প্রতিটি উপাদানই এর সাথে তার মিলের উপাদানগুলির সাথে কেবল ইন্টারেক্ট করে, যা মূলত উপাদান-বুদ্ধির সংজ্ঞা" - অবিশ্বাস্যভাবে সুস্পষ্ট ব্যাখ্যা।
ঘোস্টরাইডার

2

আপনি কি জিজ্ঞাসা করছেন, দুটি ভেক্টরের একটি বিন্দু পণ্য এবং তাদের উপাদান অনুসারে পণ্য যোগফলের মধ্যে পার্থক্য কী? তারা একই. np.sum(X * Y)হয় np.dot(X, Y)। সাধারণত ডট সংস্করণটি আরও দক্ষ এবং সহজে বোঝা যায়।

Ynp.dot

সুতরাং আমি অনুমান করি উত্তরটি হ'ল তারা বিভিন্ন কাজ করে বিভিন্ন অপারেশন, এবং এই পরিস্থিতিগুলি পৃথক, এবং মূল পার্থক্য হ'ল ভেক্টর বনাম ম্যাট্রিক্সের সাথে কাজ করা।


ধন্যবাদ। আমি যা বলছি তা পুরোপুরি নয়। ব্যয় ফাংশনের জন্য আমার কাছে বিকল্প কোড রয়েছে (কোডের শেষ বিট)। এটি ভুল, তবে কেন এটি ভুল তা বোঝার চেষ্টা করছি।
ঘোস্টরাইডার

2
ওপি এর যদি np.sum(a * y)না হিসাবে একই হতে যাচ্ছে np.dot(a, y)কারণ aএবং yকলাম ভেক্টর আকৃতি হয় (m,1), তাই dotফাংশন একটি ত্রুটি তুলব। আমি পুরোপুরি নিশ্চিত যে এগুলি সবই কোর্স.আর.আর.এলনার / স্নায়ুর- নেট ওয়ার্কস- ডিভিডি-এলার্নিং (একটি কোর্স যা আমি সম্প্রতি দেখেছিলাম), কারণ স্বরলিপি এবং কোড হুবহু মিল।
নিল স্লেটার

0

"ওপি'র ক্ষেত্রে এনপি.সাম (ক * ওয়াই) এনপি.ডট (ক, ওয়াই) এর সমান হতে চলেছে না কারণ a এবং y কলামের ভেক্টর আকৃতি (মি, 1), সুতরাং ডট ফাংশনটি হবে একটি ত্রুটি বাড়ান। "...

(আমার কাছে মন্তব্য বোতামটি ব্যবহার করে মন্তব্য করার মতো পর্যাপ্ত কুডো নেই তবে আমি ভেবেছিলাম আমি যুক্ত করব ..)

যদি ভেক্টরগুলি কলাম ভেক্টর হয় এবং আকৃতি (1, মি) থাকে তবে একটি সাধারণ প্যাটার্ন হ'ল বিন্দু ফাংশনের জন্য দ্বিতীয় অপারেটরটিকে ".T" অপারেটরের সাথে পোস্টফিক্স করা হয় যাতে এটি আকার (মি, 1) এ স্থানান্তর করতে পারে এবং তারপরে বিন্দু পণ্যটি (1, মি) হিসাবে কাজ করে m (মি, 1)। যেমন

এনপি.ডট (এনপি.লগ (1-এ), (1-ওয়াই)। টি)

মিটার সাধারণ মান ডট পণ্য (ম্যাট্রিক্স গুণ) প্রয়োগ করতে সক্ষম করে।

একইভাবে কলামের ভেক্টরগুলির জন্য, প্রথম সংখ্যায় যেমন np.dot (ডাব্লুটি, এক্স) প্রয়োগ করা হবে ট্রান্সপোজটি দেখতে হবে> 1 এর মাঝেরটি মাত্রাটি 'মাঝখানে' রাখতে।

এনপি.ডট থেকে স্কেলার পাওয়ার প্যাটার্নটি হ'ল 'বাহিরে' এবং 'ভিতরে' তে সাধারণ> 1 মাত্রার জন্য দুটি ভেক্টর আকৃতি পেতে:

(1, এক্স)। (এক্স, 1) বা এনপি.ডট (ভি 1, ভি 2) যেখানে ভি 1 আকৃতি (1, এক্স) এবং ভি 2 আকৃতি (এক্স, 1)

সুতরাং ফলাফলটি একটি (1,1) ম্যাট্রিক্স, অর্থাৎ একটি স্কেলার।

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