एक सॉफ्टमैक्स क्लासिफायरियर को प्रशिक्षण देने पर, मैं यहाँ मेरा सूत्र पाया जा सकता है। क्या कोई मुझे बताता है कि मेरी त्रुटि कहां है? मुझे त्रुटि मिली, मुझे सिग्मायॉइड फ़ंक्शन का उपयोग नहीं करना चाहिए , यह केवल 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