न्यूरल नेटवर्क: स्ट्रक्चर

अगर आप सुविधा क्रॉस यूनिट से याद करते हैं, तो नीचे दी गई श्रेणियों की समस्या गैर-लीनियर है:

कार्टेशियन प्लॉट. पारंपरिक x अक्ष पर 'x1' लेबल लगा है. पारंपरिक y अक्ष को लेबल किया गया है;#39;x2'. उत्तर-पश्चिम और दक्षिण-पूर्व की ओर धुएँ के आकार वाले नीले बिंदु हैं. पीले-बिंदु वाले दक्षिण-पश्चिम और उत्तर-पूर्व के हिस्से में नीले बिंदु हैं.

पहला डायग्राम. नॉन-लीनियर क्लासिफ़िकेशन की समस्या.

"Nonlinear" का मतलब है कि आप फ़ॉर्म के मॉडल वाले लेबल का सटीक रूप से अनुमान नहीं कर सकते \(b + w_1x_1 + w_2x_2\) दूसरे शब्दों में, &"डिसिज़न प्लैटफ़ॉर्म" एक लाइन नहीं है. पहले, हमने फ़ीचर क्रॉस को देखा था, ताकि गैर-लीनियर समस्याओं को हल करने का एक तरीका अपनाया जा सके.

अब इस डेटा सेट पर विचार करें:

डेटा सेट में कई नारंगी और कई नीले बिंदु हैं. एक जैसा पैटर्न तय करना मुश्किल है. हालांकि, नारंगी रंग के बिंदु साफ़ तौर पर घुमावदार नहीं बने और नीले बिंदुओं की वजह से शायद अलग तरह का घुमावदार बन गया.

दूसरा डायग्राम. डेटा को अलग-अलग कैटगरी में बांटने वाली एक मुश्किल समस्या.

इमेज 2 में दिखाए गए डेटा सेट को लीनियर मॉडल की मदद से हल नहीं किया जा सकता.

यह देखने के लिए कि न्यूरल नेटवर्क, लीनियर मॉडल से जुड़ी समस्याओं में कैसे मदद कर सकते हैं, चलिए, लीनियर मॉडल को ग्राफ़ के तौर पर दिखाकर शुरू करते हैं:

तीर के निशान से हरे रंग के गोले के बीच, पंक्ति में तीन नीले गोले

तीसरा डायग्राम. ग्राफ़ के तौर पर लीनियर मॉडल.

हर नीला सर्कल, इनपुट की सुविधा को दिखाता है और हरा सर्कल, इनपुट के वेटेड योग को दिखाता है.

हम इस मॉडल को कैसे बदल सकते हैं, ताकि वह लीनियर समस्याओं को ठीक कर सके?

छिपी हुई लेयर

नीचे दिए गए ग्राफ़ से दिखाए गए मॉडल में, हमने इंटरमीडिएट वैल्यू के साथ एक &कोट;छिपाई गई लेयर" जोड़ी है. छिपी हुई लेयर में मौजूद हर पीला नोड, नीले इनपुट नोड की वैल्यू का कुल योग होता है. आउटपुट, पीले नोड के वेटेड योग होता है.

लेबल की गई पंक्ति में तीन नीले गोले

चौथी इमेज. दो लेयर वाले मॉडल का ग्राफ़.

क्या यह मॉडल लीनियर है? हां—इसका इनपुट इनपुट के लीनियर कॉम्बिनेशन का इस्तेमाल किया जाता है.

नीचे दिए गए ग्राफ़ से दिखाए गए मॉडल में, हमने वज़न वाले योगों की एक दूसरी छिपी हुई लेयर जोड़ी है.

लेबल की गई पंक्ति में तीन नीले गोले

पांचवां डायग्राम. तीन लेयर वाले मॉडल का ग्राफ़.

क्या यह मॉडल अब भी लीनियर है? हां, ऐसा होता है. जब आप आउटपुट को इनपुट के फ़ंक्शन के रूप में बताते हैं, तो आपको इनपुट का सिर्फ़ एक और योग मिलता है. यह जोड़ इमेज में नॉन-लीनियर समस्या को असरदार तरीके से मॉडल नहीं कर सका.

ऐक्टिवेशन फ़ंक्शन

नॉनलाइनर समस्या का मॉडल बनाने के लिए, हम सीधे तौर पर एक लीनियर डेटा दे सकते हैं. हम, छिपे हुए लेयर के हर नोड को एक नॉन-लीनियर फ़ंक्शन से पाइप कर सकते हैं.

नीचे दिए गए ग्राफ़ से दिखाए गए मॉडल में, छिपी हुई लेयर 1 के हर नोड की वैल्यू को अगली लेयर के वेटेड योग में पास होने से पहले, किसी नॉनलीनियर फ़ंक्शन में बदला जाता है. इस नॉन-लीनियर फ़ंक्शन को ऐक्टिवेशन फ़ंक्शन कहा जाता है.

पिछली इमेज की तरह ही, इसमें दो छिपी हुई लेयर के बीच में गुलाबी गोले की एक पंक्ति को जोड़ा गया है जिन पर #39;गैर-लीनियर ट्रांसफ़ॉर्मेशन लेयर' का लेबल लगा है.

छठा डायग्राम. ऐक्टिवेशन फ़ंक्शन के साथ तीन लेयर वाला मॉडल.

अब हमने #39;ऐक्टिवेशन फ़ंक्शन जोड़ दिया है, जबकि लेयर जोड़ने का असर ज़्यादा होता है. नॉनलाइनरिटी पर नॉनलाइनरिटी को स्टैक करने से, हमें इनपुट और अनुमानित आउटपुट के बीच बहुत मुश्किल संबंधों को मॉडल करने में मदद मिलती है. कम शब्दों में कहें, तो हर लेयर में रॉ इनपुट की तुलना में, ज़्यादा मुश्किल और बेहतर लेवल वाला फ़ंक्शन सीखा जा रहा है. अगर आप इस बारे में ज़्यादा जानकारी पाना चाहते हैं कि यह कैसे काम करता है, तो क्रिस ओलाह की बेहतरीन ब्लॉग पोस्ट देखें.

सामान्य ऐक्टिवेशन फ़ंक्शन

नीचे दिए गए sigmoid ऐक्टिवेशन फ़ंक्शन, महत्व वाले योग को 0 और 1 के बीच के मान में बदलते हैं.

$$F(x)=\frac{1} {1+e^{-x}}$$

यहां एक प्लॉट है:

सिगमॉइड फ़ंक्शन

सातवां डायग्राम. Sigmoid ऐक्टिवेशन फ़ंक्शन.

यहां दिए गए रेक्टेड लीनियर यूनिट ऐक्टिवेशन फ़ंक्शन (या शॉर्ट वीडियो के लिए RELU), अक्सर सिगमॉइड जैसे आसान फ़ंक्शन से थोड़ा बेहतर काम करते हैं. साथ ही, इन्हें आसानी से कैलकुलेट भी किया जा सकता है.

$$F(x)=max(0,x)$$

ReLU की बेहतरता, अनुभव पर आधारित खोजों पर आधारित होती है. ऐसा ReLU की वजह से हो सकता है, जो रिस्पॉन्सिव होने से काफ़ी उपयोगी होता है. सिगमॉइड और #39 फ़ंक्शन की संवेदनशीलता, दोनों तरफ़ तेज़ी से बदलती है.

आरएलयू ऐक्टिवेशन फ़ंक्शन

आठवां डायग्राम. ReLU ऐक्टिवेशन फ़ंक्शन.

असल में, कोई भी गणित का फ़ंक्शन, ऐक्टिवेशन फ़ंक्शन के तौर पर काम कर सकता है. मान लीजिए कि \(\sigma\) हमारे ऐक्टिवेशन फ़ंक्शन (Relu, Sigmoid या किसी और चीज़) को दिखाता है. इसलिए, नेटवर्क में किसी नोड का मान इस फ़ॉर्मूला से बनाया जाता है:

$$\sigma(\boldsymbol w \cdot \boldsymbol x+b)$$

TensorFlow कई ऐक्टिवेशन फ़ंक्शन के लिए, सहायता करता है. आप इस तरह के ऐक्टिवेशन फ़ंक्शन, TensorFlow'sperpers of ner's in theआपकी न्यूरल नेटवर्क ऑपरेशंस में देख सकते हैं. हालांकि, हम अब भी ReLU से शुरुआत करने का सुझाव देते हैं.

खास जानकारी

अब हमारे मॉडल में वे सभी मानक कॉम्पोनेंट दिए गए हैं जिनका आम तौर पर लोगों से मतलब होता है जब वे न्यूरल नेटवर्क"कहते हैं:

  • नोड का एक सेट, जो न्यूरॉन के समान है, जो लेयर में व्यवस्थित होते हैं.
  • हर न्यूरल नेटवर्क लेयर और उसके नीचे की लेयर के बीच के कनेक्शन को दिखाने वाले वेट का सेट. नीचे की लेयर एक अन्य न्यूरल नेटवर्क लेयर या किसी अन्य तरह की लेयर हो सकती है.
  • झुकाव का एक सेट, जो हर नोड के लिए एक होता है.
  • एक ऐक्टिवेशन फ़ंक्शन, जो किसी लेयर में हर नोड के आउटपुट को बदलता है. अलग-अलग लेयर में, चालू करने के अलग-अलग फ़ंक्शन हो सकते हैं.

चेतावनी: ज़रूरी नहीं है कि न्यूरल नेटवर्क हर बार क्रॉस होने वाले फ़ीचर से बेहतर हों. हालांकि, न्यूरल नेटवर्क आसानी से काम करने वाला विकल्प देते हैं, जो कई मामलों में अच्छा काम करता है.