Tuesday 15 February 2011

machine learning - The cost function and gradient of softmax classifier -


एक सॉफ्टमैक्स क्लासिफायरियर को प्रशिक्षण देने पर, मैं Matlab में minFunc फ़ंक्शन का इस्तेमाल किया , लेकिन यह काम नहीं कर रहा था, चरण आकार शीघ्रता से टोलएक्स तक पहुंच जाएगा और सटीकता 5% भी नहीं है। इसमें कुछ गड़बड़ होनी चाहिए, लेकिन मुझे यह नहीं मिल सका।

यहाँ मेरा Matlab कोड फ़ंक्शन और ढाल के बारे में है:

Z = x * डब्ल्यू; % x इनपुट डेटा है, यह एक एम * एन मैट्रिक्स है, मी नमूनों की संख्या है, एन इनपुट परत में इकाइयों की संख्या है डब्ल्यू एक n * o मैट्रिक्स है, ओ आउटपुट परत में इकाइयों की संख्या है।

a = सिग्मोयॉइड (z)। / Repmat (sum (सिग्मोयॉइड (z), 2), 1 , ओ); % a क्लासिफायरफ़ाइल का आउटपुट है।

J = -mean (राशि (लक्ष्य। * लॉग (ए), 2 )) + एल / 2 * योग (राशि (डब्ल्यू ^ 2)); % यह लागत कार्य है, लक्षित वांछित आउटपुट है, यह एक एम * एन मैट्रिक्स है I L वजन क्षय पैरामीटर है।

  Wgrad = -x '* (लक्ष्य-ए) / मी + एल * डब्ल्यू;   

सूत्र पाया जा सकता है। क्या कोई मुझे बताता है कि मेरी त्रुटि कहां है?

मुझे त्रुटि मिली, मुझे सिग्मायॉइड फ़ंक्शन का उपयोग नहीं करना चाहिए , यह केवल exp होना चाहिए।

No comments:

Post a Comment