आपने पिछले अभ्यास में देखा था कि सिर्फ़ हमारे नेटवर्क की छिपी हुई लेयर, नॉन-लीनियर को दिखाने के लिए काफ़ी नहीं थीं. रैखिक संक्रियाओं पर की जाने वाली रैखिक कार्रवाइयां, अब भी रैखिक होती हैं.
सीखने के लिए न्यूरल नेटवर्क को कैसे कॉन्फ़िगर किया जा सकता है क्या वैल्यू के बीच नॉनलीनियर रिलेशनशिप है? हमें नॉनलीनियर को शामिल करने के लिए कोई तरीका चाहिए अब मॉडल के तौर पर गणित के सवाल हल किए जा सकते हैं.
अगर यह कुछ हद तक पहले से जाना-पहचाना लगता है, तो इसका मतलब है कि हमने असल में नॉनलीनियर गणितीय संक्रियाएं, जो पहले रैखिक मॉडल के आउटपुट के रूप में कोर्स. लॉजिस्टिक रिग्रेशन में मॉड्यूल के तौर पर, हमने 0 से कॉन्टिन्यूअस वैल्यू देने के लिए, लीनियर रिग्रेशन मॉडल को अपनाया है से 1 (संभावना को प्रदर्शित करना) के लिए मॉडल के आउटपुट को sigmoid फ़ंक्शन.
यही सिद्धांत अपने न्यूरल नेटवर्क पर भी लागू किया जा सकता है. चलिए, अपने मॉडल को फिर से देखते हैं पहले कसरत 2 से, लेकिन इस बार, पहले हर नोड का मान आउटपुट करते हुए, हम पहले सिग्मॉइड फ़ंक्शन को लागू करेंगे:
>| बटन पर क्लिक करके, हर नोड का हिसाब लगाने की कोशिश करें (प्ले बटन की दाईं ओर). किए गए गणितीय संक्रियाएं देखें का इस्तेमाल, ग्राफ़ के नीचे मौजूद कैलकुलेशन पैनल में हर नोड की वैल्यू को कैलकुलेट करने के लिए किया जाता है. ध्यान दें कि हर नोड का आउटपुट अब लीनियर का सिग्मॉइड ट्रांसफ़ॉर्म है पिछली लेयर में नोड का कॉम्बिनेशन होता है और आउटपुट की वैल्यू संख्या जो 0 और 1 के बीच बराबर होती है.
यहाँ, सिगमॉइड ऐक्टिवेशन फ़ंक्शन न्यूरल नेटवर्क के लिए, न्यूरॉन के आउटपुट वैल्यू का नॉनलीनियर ट्रांसफ़ॉर्म अगले कॉलम की गणना के लिए, मान को इनपुट के रूप में पास किए जाने से पहले यह न्यूरल नेटवर्क की एक लेयर है.
अब हमने ऐक्टिवेशन फ़ंक्शन जोड़ दिया है, इसलिए लेयर जोड़ने का असर ज़्यादा होता है. नॉन-लीनियरिटी पर नॉनलीनियर को स्टैक करने से, मॉडल को बहुत मुश्किल बना दिया जाता है इनपुट और अनुमानित आउटपुट के बीच का संबंध है. संक्षेप में, हर लेयर रॉ की तुलना में ज़्यादा जटिल, हाई-लेवल फ़ंक्शन को असरदार तरीके से सीख रहा है इनपुट. अगर आपको यह जानना है कि यह कैसे काम करता है, क्रिस ओला की बेहतरीन ब्लॉग पोस्ट देखें.
ऐक्टिवेशन फ़ंक्शन
आम तौर पर, ऐक्टिवेशन फ़ंक्शन के तौर पर इस्तेमाल किए जाने वाले तीन गणितीय फ़ंक्शन हैं sigmoid, tanh, और ReLU.
सिगमॉइड फ़ंक्शन (ऊपर चर्चा की गई है) इनपुट पर नीचे दिया गया रूपांतरण करता है $x$, जो 0 और 1 के बीच का आउटपुट वैल्यू होती है:
\[F(x)=\frac{1} {1+e^{-x}}\]
यहां इस फ़ंक्शन का प्लॉट दिया गया है:
![चित्र 4. सिगमॉइड फ़ंक्शन का प्लॉट: एस के आकार का कर्व जो
जब x नेगेटिव की ओर होता है, तो x-ऐक्सिस पर असामान्य रूप से पहुंचता है
अनंत और 1 होने पर x अनंत की ओर पहुंचता है.](https://developers.google.cn/static/machine-learning/crash-course/neural-networks/images/sigmoid.png?authuser=8&hl=hi)
tanh ("हाइपरबॉलिक टैंजेंट" का छोटा नाम) फ़ंक्शन, इनपुट $x$ को बदलकर –1 और 1 के बीच का आउटपुट मान डालें:
\[F(x)=tanh(x)\]
यहां इस फ़ंक्शन का प्लॉट दिया गया है:
![चित्र 5. tanh फ़ंक्शन का प्लॉट: थोड़ा सा
सिगमॉइड फ़ंक्शन की तुलना में स्टीपर एस के आकार का कर्व, जो विषम रूप से
अप्रोच –1 को x के तौर पर नेगेटिव इनफ़िनिटी तक पहुंचने के लिए और 1 को x के अप्रोच के लिए इस्तेमाल किया जाता है
अनंत.](https://developers.google.cn/static/machine-learning/crash-course/neural-networks/images/tanh.png?authuser=8&hl=hi)
सुधारित लीनियर यूनिट ऐक्टिवेशन फ़ंक्शन (या ReLU, (शॉर्ट वीडियो) से आउटपुट में बदलाव होता है. इसके लिए, इस एल्गोरिदम का इस्तेमाल किया जाता है:
- अगर इनपुट वैल्यू $x$ 0 से कम है, तो 0 दें.
- अगर इनपुट वैल्यू $x$ 0 से ज़्यादा या उसके बराबर है, तो इनपुट वैल्यू दें.
ReLU को max() फ़ंक्शन का इस्तेमाल करके, गणितीय तरीके से दिखाया जा सकता है:
यहां इस फ़ंक्शन का प्लॉट दिया गया है:
![छठी इमेज. ReLU फ़ंक्शन का प्लॉट: एक हॉरिज़ॉन्टल लाइन
ऋणात्मक अनंतता से 0 तक x-अक्ष के साथ, जो एक विकर्ण रेखा बन जाता है
स्लोप 1 (y=x) के साथ 0 से अनंत तक ऊपर और दाईं ओर जाना.](https://developers.google.cn/static/machine-learning/crash-course/neural-networks/images/relu.png?authuser=8&hl=hi)
आम तौर पर, ReLU, ऐक्टिवेशन फ़ंक्शन के तौर पर बिना किसी रुकावट के काम करने के मुकाबले थोड़ा बेहतर काम करता है सिगमॉइड या टैन जैसी कार्रवाइयाँ कर सकती हैं, क्योंकि इस पर खत्म हो रहे ग्रेडिएंट की समस्या न्यूरल नेटवर्क ट्रेनिंग के दौरान. ReLU भी काफ़ी आसान है इस्तेमाल किया जा सकता है.
अन्य ऐक्टिवेशन फ़ंक्शन
व्यावहारिक तौर पर, गणित से जुड़ा कोई भी फ़ंक्शन, ऐक्टिवेशन फ़ंक्शन के तौर पर काम कर सकता है. मान लीजिए कि \(\sigma\) हमारे ऐक्टिवेशन फ़ंक्शन को दिखाता है. नेटवर्क में किसी नोड का मान इसके ज़रिए दिया जाता है: फ़ॉर्मूला:
Keras कई लोगों की मदद करता है ऐक्टिवेशन फ़ंक्शन. हालांकि, हमारा सुझाव है कि आप ReLU से शुरू करें.
खास जानकारी
नीचे दिए गए वीडियो में बताया गया है कि आपने अब तक क्या-क्या सीखा है न्यूरल नेटवर्क बनाने के तरीके के बारे में ज़्यादा जानें:
अब हमारे मॉडल में वे सभी मानक घटक हैं, जो लोग आम तौर पर इसका मतलब है कि वे न्यूरल नेटवर्क से जुड़े हैं:
- नोड का एक सेट, जो न्यूरॉन के जैसा होता है और जो परतों में व्यवस्थित होता है.
- हर न्यूरल नेटवर्क के बीच के कनेक्शन को दिखाने वाले वेट का सेट लेयर चुनें और उसके नीचे की लेयर चुनें. इसके नीचे की परत एक अन्य न्यूरल नेटवर्क लेयर या किसी अन्य तरह की लेयर.
- पक्षपात का एक सेट, हर नोड के लिए एक.
- एक ऐक्टिवेशन फ़ंक्शन, जो किसी लेयर में हर नोड के आउटपुट को बदलता है. अलग-अलग लेयर में, ऐक्टिवेशन फ़ंक्शन अलग-अलग हो सकते हैं.
चेतावनी: यह ज़रूरी नहीं है कि न्यूरल नेटवर्क हमेशा इससे बेहतर हों सुविधा क्रॉस शामिल हैं, लेकिन न्यूरल नेटवर्क एक ऐसा लचीला विकल्प ऑफ़र करते हैं जो काम करता है का पता लगाते हैं.