भले ही आपके फ़ंक्शन के हर आंशिक अवकलज का मान शून्य हो, यह गारंटी नहीं कि आप किसी न्यूनतम के पास हैं।
ऑप्टिमाइज़ेशन किसी फ़ंक्शन के सबसे छोटे या सबसे बड़े मान की तलाश है, और आप जो भी विधि अपनाते हैं, वह ऐसे बिंदु को ढूंढ़ती है जहाँ ग्रेडिएंट सपाट हो। लेकिन सपाट ग्रेडिएंट का मतलब यह नहीं कि आपने सबसे अच्छा उत्तर पा लिया है। कभी-कभी इसका अर्थ होता है कि फ़ंक्शन उसी बिंदु पर एक दिशा में ऊपर और दूसरी दिशा में नीचे जाता है।
ऐसे बिंदु को सैडल पॉइंट कहते हैं—यह एक ओर नीचे, दूसरी ओर ऊपर जाता है, और चारों ओर समतल लगता है। सैडल पॉइंट पहचानना ज़रूरी है क्योंकि आपका एल्गोरिद्म वहाँ अटक सकता है और सपाट ग्रेडिएंट को वास्तविक न्यूनतम समझ सकता है।
इस लेख में, मैं आपको गणितीय रूप से सैडल पॉइंट कैसे पहचानें, और यह क्यों ऑप्टिमाइज़ेशन एल्गोरिद्म को अक्सर उलझा देता है, समझाऊँगा।
सैडल पॉइंट क्या है?
सैडल पॉइंट पर ग्रेडिएंट शून्य होता है, ठीक वैसे ही जैसे न्यूनतम या अधिकतम पर। पर सैडल पॉइंट न तो न्यूनतम होता है, न अधिकतम।
फ़ंक्शन उसी बिंदु पर कुछ दिशाओं में ऊपर की ओर और कुछ दिशाओं में नीचे की ओर मुड़ता है। एक अक्ष के साथ बढ़ें तो मान बढ़ेगा, दूसरी अक्ष के साथ बढ़ें तो मान घटेगा। नाम की वजह भी यह है—यह घोड़े की काठी (saddle) के आकार जैसा है, जो आगे-पीछे की ओर ऊपर और किनारों की ओर नीचे मुड़ती है।
यहाँ एक साधारण द्विचर फ़ंक्शन है जिससे मैं यह दिखाऊँगा:

द्विचर फ़ंक्शन
उद्गम (0, 0) पर दोनों आंशिक अवकलज शून्य हैं, इसलिए यह एक क्रिटिकल पॉइंट (या स्थिर बिंदु) है। x-अक्ष के साथ बढ़ें तो f x^2 पद के कारण बढ़ता है। y-अक्ष के साथ बढ़ें तो f -y^2 पद के कारण घटता है।
यदि आप इस फ़ंक्शन को 3D में प्लॉट करें, तो पृष्ठ सतह एक दिशा में ऊपर और दूसरी में नीचे मुड़ती है—ठीक वही आकार जिसके नाम पर सैडल पॉइंट रखा गया है।

f(x, y) = x^2 - y^2 का 3D सरफेस प्लॉट
उसी फ़ंक्शन का कॉनटूर प्लॉट ऊपर से यही कहानी बताता है। उद्गम के आसपास की कॉनटूर रेखाएँ हाइपरबोला जैसी दिखती हैं, न कि वे बंद लूप जो न्यूनतम या अधिकतम के आसपास दिखते हैं।

f(x, y) = x^2 - y^2 का कॉनटूर प्लॉट
सटीक परिभाषा क्षेत्र के अनुसार थोड़ी बदलती है। बहुवेरियेबल कैलकुलस में, सैडल पॉइंट वह क्रिटिकल पॉइंट है जो न स्थानीय न्यूनतम होता है न अधिकतम। ऑप्टिमाइज़ेशन और गेम थ्योरी में, यह शब्द अलग अर्थ में भी आता है, जो वक्रता की जगह मिनीमैक्स समस्याओं से जुड़ा है। इस भेद पर आगे बात करेंगे।
सैडल पॉइंट बनाम न्यूनतम और अधिकतम
गणितीय रूप से सैडल पॉइंट पहचानने से पहले, यह देखना उपयोगी है कि वे अन्य दो प्रकार के क्रिटिकल पॉइंट से कैसे तुलना करते हैं।
स्थानीय न्यूनतम
स्थानीय न्यूनतम पर फ़ंक्शन हर नज़दीकी दिशा में बढ़ता है। एक कटोरा कल्पना करें—तल से किसी भी दिशा में हटेंगे तो ऊपर जाएँगे। फ़ंक्शन f(x, y) = x2 + y2 ऐसा ही व्यवहार करता है।
स्थानीय अधिकतम
स्थानीय अधिकतम पर फ़ंक्शन हर नज़दीकी दिशा में घटता है। यह न्यूनतम की परछाईं जैसा है—कटोरे की जगह गुंबद। फ़ंक्शन f(x, y) = -x2 - y2 उद्गम से दूर हर दिशा में घटता है।
सैडल पॉइंट
सैडल पॉइंट पर फ़ंक्शन कुछ दिशाओं में बढ़ता है और कुछ में घटता है। यही कारण है कि f(x, y) = x2 - y2, पिछले खंड का उदाहरण, न्यूनतम या अधिकतम नहीं बल्कि सैडल पॉइंट है: यह x-अक्ष पर ऊपर और y-अक्ष पर नीचे जाता है, उसी बिंदु पर।
यहाँ तीनों की साथ-साथ तुलना है:

स्थानीय न्यूनतम, स्थानीय अधिकतम और सैडल पॉइंट के 3D सरफेस प्लॉट (साइड-बाय-साइड)
सैडल पॉइंट कैसे ढूँढ़ें
सैडल पॉइंट ढूँढ़ना मूलतः अवकलज लेने, जहाँ वे शून्य हों वह बिंदु खोजने, और फिर उस बिंदु के आसपास फ़ंक्शन की वक्रता देखने पर आधारित है।
मैं वही फ़ंक्शन फिर से लूँगा:

संदर्भ फ़ंक्शन
प्रक्रिया चरण-दर-चरण इस प्रकार है।
1. पहले आंशिक अवकलज निकालें
f का x के सापेक्ष अवकलज लें, y को नियत मानकर, फिर y के लिए भी यही करें:

पहले आंशिक अवकलज निकालना
2. उन्हें शून्य के बराबर रखें
उस बिंदु के लिए हल करें जहाँ दोनों आंशिक अवकलज एक साथ शून्य हों:

अवकलजों को शून्य रखना
इससे x = 0 और y = 0 मिलता है, अतः (0, 0) एक क्रिटिकल पॉइंट है। पहले अवकलज यह नहीं बताते कि यह किस प्रकार का है।
3. दूसरे अवकलज निकालें
आपको तीन चाहिए: f_x का x के सापेक्ष अवकलज, f_y का y के सापेक्ष अवकलज, और मिश्रित अवकलज:

दूसरे अवकलज
4. वक्रता से क्रिटिकल पॉइंट का वर्गीकरण करें
f_xx = 2 धनात्मक है, इसलिए f x-अक्ष के साथ ऊपर की ओर मुड़ता है। f_yy = -2 ऋणात्मक है, इसलिए f y-अक्ष के साथ नीचे की ओर मुड़ता है। एक दिशा ऊपर, दूसरी दिशा नीचे—यही सैडल पॉइंट है।
यह चार-चरणीय प्रक्रिया किसी भी द्वितीय-अवकलनीय (twice-differentiable) फ़ंक्शन के लिए काम करती है।
अगले दो खंडों में, मैं चरण 4 को उन औज़ारों से औपचारिक बनाऊँगा जो दो से अधिक चर पर भी काम करते हैं: हे-सियन मैट्रिक्स और सेकंड डेरिवेटिव टेस्ट।
हे-सियन मैट्रिक्स सैडल पॉइंट कैसे पहचानता है
हे-सियन मैट्रिक्स पिछले खंड के सभी दूसरे अवकलजों को एक वस्तु में समाहित करता है, और यही औज़ार बताता है कि कोई क्रिटिकल पॉइंट न्यूनतम है, अधिकतम है, या सैडल।
द्विचर फ़ंक्शन के लिए, हे-सियन इस तरह दिखता है:

द्विचर फ़ंक्शन के लिए हे-सियन
प्रत्येक प्रविष्टि वक्रता बताती है: f_xx और f_yy क्रमशः x और y अक्षों के साथ वक्रता का वर्णन करते हैं, और f_xy बताता है कि वे दोनों दिशाएँ कैसे परस्पर प्रभाव डालती हैं। यदि आप पिछले खंड के दूसरे अवकलज इसमें डालें, तो हमारे उदाहरण का हे-सियन इस तरह होगा:

संदर्भ फ़ंक्शन के लिए हे-सियन
सिर्फ मैट्रिक्स अपने-आप में बहुत कुछ नहीं बताता। महत्वपूर्ण हैं इसके ईगेनवैल्यू—वे संख्याएँ जो बताती हैं कि फ़ंक्शन विशेष दिशाओं (ईगेनवेक्टर) के साथ कैसे मुड़ता है।
- धनात्मक ईगेनवैल्यू का मतलब उस ईगेनवेक्टर की दिशा में फ़ंक्शन ऊपर की ओर मुड़ता है
- ऋणात्मक ईगेनवैल्यू का मतलब उस दिशा में फ़ंक्शन नीचे की ओर मुड़ता है
- धनात्मक और ऋणात्मक ईगेनवैल्यू का मिश्रण बताता है कि फ़ंक्शन कुछ दिशाओं में ऊपर और कुछ में नीचे मुड़ता है (यानी सैडल पॉइंट)
हमारे उदाहरण का हे-सियन डायगोनल है, इसलिए ईगेनवैल्यू सीधे डायगोनल पर हैं: 2 और -2। इनके ईगेनवेक्टर x-अक्ष और y-अक्ष के साथ हैं, ठीक वैसी ही वक्रता जो आपने पिछले खंड में हाथ से पाई थी। x के साथ f ऊपर की ओर मुड़ता है क्योंकि वहाँ ईगेनवैल्यू धनात्मक है, और y के साथ नीचे की ओर क्योंकि वहाँ ईगेनवैल्यू ऋणात्मक है।
अधिकांश फ़ंक्शनों के हे-सियन डायगोनल नहीं होंगे, इसलिए ईगेनवेक्टर x और y अक्षों के साथ सीधे नहीं बैठेंगे, और आपको उन्हें मैट्रिक्स से पढ़ने की जगह हल करना होगा। लेकिन एक धनात्मक और एक ऋणात्मक ईगेनवैल्यू का अर्थ है कि आप सैडल पॉइंट पर खड़े हैं।
सैडल पॉइंट के लिए सेकंड डेरिवेटिव टेस्ट
आपको हर बार हाथ से ईगेनवैल्यू नहीं निकालने पड़ते। द्विचर फ़ंक्शनों के लिए एक शॉर्टकट है—सेकंड डेरिवेटिव टेस्ट—जो हे-सियन के डिटरमिनेंट पर आधारित है।
उन्हीं दूसरे अवकलजों का उपयोग करते हुए डिटरमिनेंट इस प्रकार है:

डिटरमिनेंट
D हे-सियन का डिटरमिनेंट है, और इसका चिन्ह—f_xx के चिन्ह के साथ मिलकर—क्रिटिकल पॉइंट का वर्गीकरण करता है:
हमारे उदाहरण में, f_xx = 2, f_yy = -2, और f_xy = 0:

संदर्भ फ़ंक्शन के लिए सेकंड डेरिवेटिव टेस्ट
D ऋणात्मक है, इसलिए यह परीक्षण पुष्टि करता है कि (0, 0) एक सैडल पॉइंट है।
यह परीक्षण पिछले खंड के ईगेनवैल्यू नियम का ही रूपांतर है, जिसे आप ईगेनवेक्टर सुलझाए बिना निकाल सकते हैं। D दोनों ईगेनवैल्यू का गुणनफल है, और f_xx + f_yy उनका योग। जब D ऋणात्मक होता है, तो ईगेनवैल्यू के चिन्ह विपरीत होते हैं—यही सैडल पॉइंट है। जब D शून्य हो, तो कम-से-कम एक ईगेनवैल्यू शून्य होता है, अतः उस दिशा में वक्रता सपाट है, और न यह परीक्षण, न अकेले ईगेनवैल्यू आपको पूरी कहानी बताते हैं।
ऑप्टिमाइज़ेशन में सैडल पॉइंट
अब तक की बात एक दिए गए फ़ंक्शन में सैडल पॉइंट पहचानने की थी। पर ऑप्टिमाइज़ेशन में आप पहले से सर्वश्रेष्ठ बिंदु नहीं जानते—ग्रेडिएंट-आधारित विधियाँ शून्य ग्रेडिएंट को रुकने का संकेत मानती हैं।
यही वह जगह है जहाँ सैडल पॉइंट परेशानी खड़ी करते हैं।
ग्रेडिएंट-आधारित ऑप्टिमाइज़र उस दिशा में चलता है जो उद्देश्य फ़ंक्शन को सबसे तेज़ घटाती है, और तब तक चलता रहता है जब तक ग्रेडिएंट शून्य के क़रीब न हो जाए। पर लगभग-शून्य ग्रेडिएंट एल्गोरिद्म को यह नहीं बताता कि उसने न्यूनतम पाया है या सैडल पॉइंट।
धनात्मक वक्रता वाली दिशाएँ फ़ंक्शन को ऊपर धकेलती हैं, और एल्गोरिद्म सीख चुका होता है कि उधर कदम रखने से चीज़ें खराब होती हैं। ऋणात्मक वक्रता वाली दिशाएँ अब भी मौजूद हैं—वहीं से बाहर निकलना है—पर केवल ग्रेडिएंट पर भरोसा करने वाला एल्गोरिद्म उन्हें चूक सकता है, क्योंकि सैडल पॉइंट पर उन्हीं दिशाओं में ग्रेडिएंट भी शून्य के क़रीब होता है।
यहीं पर ऑप्टिमाइज़ेशन भी धीमा पड़ता है।
जैसे-जैसे आप किसी भी स्थिर बिंदु के पास आते हैं, ग्रेडिएंट का परिमाण घटता है, तो ऐसा एल्गोरिद्म जो अपने कदमों का आकार ग्रेडिएंट के अनुपात में रखता है, सैडल के पास छोटे-छोटे कदम लेता है—चाहे वह उस न्यूनतम के पास हो या नहीं जिसे वह वास्तव में ढूँढ़ रहा है।
स्थिर बिंदु पाना ऑप्टिमाइज़ेशन पूरा होने के बराबर नहीं है। आपको अब भी यह जानने का तरीका चाहिए कि लगभग-शून्य ग्रेडिएंट सैडल पॉइंट का है या न्यूनतम का—और एक बार पता चल जाए तो वह दिशा भी चाहिए जिसमें उद्देश्य और बेहतर होता रहे।
मशीन लर्निंग में सैडल पॉइंट
न्यूरल नेटवर्क का लॉस फ़ंक्शन नेटवर्क के हर वेट और बायस का फ़ंक्शन होता है—कभी-कभी लाखों या अरबों आयामों में। यह द्विचर खिलौना-उदाहरण से बहुत दूर है।
उच्च-आयामी गैर-अवतल ऑप्टिमाइज़ेशन के एक विश्लेषण में Dauphin और सहलेखकों का तर्क है कि जैसे-जैसे आयाम बढ़ते हैं, क्रिटिकल पॉइंट का सैडल पॉइंट होना स्थानीय न्यूनतम या अधिकतम की तुलना में कहीं अधिक संभव हो जाता है। हर आयाम एक और दिशा जोड़ता है जिसमें वक्रता किसी भी ओर जा सकती है—और केवल एक ऋणात्मक वक्रता दिशा ही किसी क्रिटिकल पॉइंट को न्यूनतम की बजाय सैडल बना देती है।
ट्रेनिंग के दौरान यह इसलिए मायने रखता है क्योंकि ग्रेडिएंट डिसेंट केवल उसी ग्रेडिएंट को देखता है जिस पर वह खड़ा है।
सैडल पॉइंट के पास, हर दिशा में ग्रेडिएंट छोटा हो जाता है—वही संकेत जो वास्तविक न्यूनतम के पास पहुँचते समय दिखता है। ट्रेनिंग धीमी पड़ सकती है या ऐसे क्षेत्र में अटक सकती है जो बिल्कुल इष्टतम नहीं, और केवल लॉस कर्व से यह बताना मुश्किल है कि आप न्यूनतम के पास हैं या सैडल पर अटके हैं।
इसीलिए न्यूरल नेटवर्क ट्रेनिंग पर चर्चा में सैडल पॉइंट अक्सर स्थानीय न्यूनतम के साथ सामने आते हैं। पर वे अकेली रुकावट नहीं हैं—वैनिशिंग ग्रेडिएंट, ख़राब कंडीशनिंग वाली वक्रता, और खोज-स्थान का पैमाना भी उच्च-आयामी ऑप्टिमाइज़ेशन को कठिन बनाते हैं।
ऑप्टिमाइज़ेशन एल्गोरिद्म सैडल पॉइंट से कैसे निपटते हैं
इसका मतलब यह नहीं कि सैडल पॉइंट के पास ग्रेडिएंट-आधारित ट्रेनिंग विफल है। कुछ तकनीकें हैं जो अलग-अलग कोण से आपकी मदद करती हैं।
स्टोकेस्टिक ग्रेडिएंट डिसेंट
स्टोकेस्टिक ग्रेडिएंट डिसेंट पूरे डेटासेट की बजाय ट्रेनिंग डेटा के एक यादृच्छिक उपसमुच्चय से ग्रेडिएंट गिनता है—और यह उपसमुच्चय हर कदम पर बदलता है।
इससे आने वाला शोर मतलब अनुमानित ग्रेडिएंट शायद ही कभी बिल्कुल शून्य होता है—भले ही सच्चा ग्रेडिएंट शून्य के पास हो। यह शोर ऑप्टिमाइज़र को सैडल पॉइंट से धकेलकर ऋणात्मक वक्रता की दिशा में ले जाने के लिए पर्याप्त हो सकता है, बजाए इसके कि वह ठीक वहीं ठहर जाए जहाँ ग्रेडिएंट लुप्त होता है।
मोमेंटम
मोमेंटम पिछले ग्रेडिएंट्स का चालू औसत रखता है और अगला कदम तय करने में केवल वर्तमान की बजाय उसी का उपयोग करता है।
सैडल पॉइंट के आसपास यह इसलिए मायने रखता है क्योंकि ऑप्टिमाइज़र वहाँ पहुँचते समय पहले से ही किसी दिशा में गतिमान होता है—वहाँ तक आने वाले ग्रेडिएंट्स से प्रेरित। यह संचित गति उसे सैडल के सपाट क्षेत्र से निकालकर आगे ले जा सकती है, बजाय इसके कि स्थानीय ग्रेडिएंट शून्य के पास आते ही वह धीमा पड़ जाए।
द्वितीय-कोटि (सेकंड-ऑर्डर) विधियाँ
सेकंड-ऑर्डर विधियाँ वक्रता की जानकारी को सीधे उपयोग करती हैं।
हे-सियन या उसके सन्निकटन के साथ काम करके, ये विधियाँ क्रिटिकल पॉइंट पर धनात्मक वक्रता और ऋणात्मक वक्रता वाली दिशाओं में अंतर कर सकती हैं। सैडल पॉइंट इसी भेद पर निर्भर है, इसलिए सेकंड-ऑर्डर विधि अवरोही दिशा पहचानकर उसमें कदम रख सकती है, बजाय इसके कि हर लगभग-शून्य ग्रेडिएंट को एक जैसा माने।
संबंधित अवधारणाओं से सैडल पॉइंट का अंतर
कुछ शब्द अक्सर सैडल पॉइंट के साथ गड़बड़ा जाते हैं, इसलिए उन पर संक्षेप में बात करते हैं।
सैडल पॉइंट बनाम स्थानीय न्यूनतम
स्थानीय न्यूनतम के पास हर दिशा में फ़ंक्शन ऊपर की ओर मुड़ता है—यानी चारों ओर समान रूप से धनात्मक वक्रता। सैडल पॉइंट केवल कुछ दिशाओं में ऊपर और कुछ में नीचे मुड़ता है। जैसे ही एक भी दिशा में ऋणात्मक वक्रता मिल जाए, आप न्यूनतम नहीं देख रहे।
सैडल पॉइंट बनाम स्थानीय अधिकतम
स्थानीय अधिकतम के लिए तर्क उलटा है—नज़दीक हर दिशा में वक्रता ऋणात्मक रहती है। सैडल पॉइंट में ऋणात्मक के साथ कम-से-कम एक धनात्मक वक्रता दिशा भी जुड़ जाती है।
सैडल पॉइंट बनाम इंफ्लेक्शन पॉइंट
इंफ्लेक्शन पॉइंट एक-आयामी धारणा है। यह वहीं होता है जहाँ एक चर के साथ वक्रता अवतल-ऊपर से अवतल-नीचे (या उलटा) में बदलती है।
सैडल पॉइंट के लिए कम-से-कम दो चर चाहिए, क्योंकि इसकी अवधारणा एक ही बिंदु पर अलग-अलग दिशाओं की वक्रता की तुलना पर निर्भर है। एक चर का फ़ंक्शन इंफ्लेक्शन पॉइंट रख सकता है, पर सैडल पॉइंट नहीं—क्योंकि दूसरी, विपरीत दिशा है ही नहीं।
सैडल पॉइंट बनाम स्थिर (स्टेशनरी) पॉइंट
हर सैडल पॉइंट एक स्थिर बिंदु है, क्योंकि वहाँ ग्रेडिएंट शून्य होता है। पर उलटा सच नहीं—स्थिर बिंदु कोई भी ऐसा बिंदु है जहाँ ग्रेडिएंट शून्य हो; वह स्थानीय न्यूनतम, स्थानीय अधिकतम, या सैडल पॉइंट हो सकता है। यह जानने के लिए कि कौन-सा है, आपको हे-सियन या सेकंड डेरिवेटिव टेस्ट से वक्रता की जानकारी चाहिए।
यहाँ उनका एक अधिक दृश्यात्मक सारांश है:
| | वक्रता पैटर्न | सैडल पॉइंट से संबंध |
|---|
| स्थानीय न्यूनतम | हर दिशा में धनात्मक | कभी सैडल पॉइंट नहीं |
| स्थानीय अधिकतम | हर दिशा में ऋणात्मक | कभी सैडल पॉइंट नहीं |
| इंफ्लेक्शन पॉइंट | एक चर के साथ अवतलता परिवर्तन | अलग अवधारणा, केवल एक चर चाहिए |
| स्थिर (स्टेशनरी) पॉइंट | ग्रेडिएंट शून्य | सैडल पॉइंट, स्थिर बिंदु का एक प्रकार है |
अन्य अवधारणाओं से सैडल पॉइंट की तुलना
मिनीमैक्स ऑप्टिमाइज़ेशन में सैडल पॉइंट
अब तक हमने "सैडल पॉइंट" शब्द का प्रयोग क्रिटिकल पॉइंट की वक्रता के लिए किया। इसका एक दूसरा, पुराना अर्थ गेम थ्योरी से आता है, और यह आधुनिक मशीन लर्निंग में भी दिखता है।
मिनीमैक्स ऑप्टिमाइज़ेशन में, एक खिलाड़ी किसी फ़ंक्शन को न्यूनतम करता है और दूसरा अधिकतम, और सैडल पॉइंट उन मानों की जोड़ी है जहाँ कोई भी खिलाड़ी केवल अपनी चाल बदलकर अपने परिणाम में सुधार नहीं कर सकता।
गेम थ्योरी में इसका उपयोग प्रतिस्पर्धी खेलों में संतुलन रणनीतियाँ बताने के लिए होता है। प्रतिकूल (एडवर्सेरियल) ऑप्टिमाइज़ेशन वही ढाँचा उन समस्याओं के लिए अपनाता है जहाँ एक प्रक्रिया बदतर-से-बदतर स्थिति ढूँढ़ती है जिसका दूसरी प्रक्रिया को सामना करना है।
जनरेटिव एडवर्सेरियल नेटवर्क (GANs) इसका सर्वश्रेष्ठ मशीन लर्निंग उदाहरण हैं। जेनरेटर विश्वसनीय नकली डेटा बनाकर अपना लॉस न्यूनतम करता है, जबकि डिस्क्रिमिनेटर असली और नकली को अलग पहचानने की क्षमता अधिकतम करता है। GAN का प्रशिक्षण इसी मिनीमैक्स अर्थ में सैडल पॉइंट खोजने जैसा है—या वह संतुलन जहाँ जेनरेटर और डिस्क्रिमिनेटर, एक-दूसरे के प्रति अपनी सर्वश्रेष्ठ प्रतिक्रिया पा चुके हों।
यह मिनीमैक्स सैडल पॉइंट इस लेख में पहले वाले क्रिटिकल-पॉइंट सैडल पॉइंट से संबंधित है, पर दोनों परस्पर विनिमेय नहीं हैं।
क्रिटिकल-पॉइंट वाला संस्करण एक ही फ़ंक्शन के एक बिंदु पर वक्रता का वर्णन करता है। मिनीमैक्स संस्करण दो प्रतिस्पर्धी उद्देश्यों के बीच संतुलन बताता है। दोनों में "ऊपर" और "नीचे" व्यवहार का मिश्रण आता है, इसलिए एक ही शब्द इस्तेमाल होता है, पर यदि आप दो-खिलाड़ी खेल पर हे-सियन-आधारित परीक्षण लागू करने की कोशिश करेंगे तो यह गड्डमड्ड हो जाएगा।
सैडल पॉइंट पर काम करते समय आम गलतियाँ
सैडल पॉइंट से जुड़ी अधिकतर उलझन कुछ बार-बार होने वाली गलतियों से आती है। ये बातें ध्यान रखें।
शून्य ग्रेडिएंट को न्यूनतम मान लेना
शून्य ग्रेडिएंट केवल यह बताता है कि आपने एक क्रिटिकल पॉइंट पाया है—यह नहीं कि वह किस प्रकार का है। वक्रता जाँचें, क्योंकि सैडल पॉइंट पर भी ग्रेडिएंट शून्य होता है।
केवल पहले अवकलजों से वर्गीकरण करना
पहले अवकलज क्रिटिकल पॉइंट ढूँढ़ते हैं, पर उन्हें वर्गीकृत नहीं कर सकते। न्यूनतम, अधिकतम और सैडल में फर्क बताने के लिए आपको दूसरे अवकलज चाहिए—हे-सियन या सेकंड डेरिवेटिव टेस्ट के माध्यम से।
वक्रता की अलग-अलग दिशाओं को नज़रअंदाज़ करना
कोई फ़ंक्शन x-अक्ष के साथ ऊपर की ओर मुड़ सकता है और फिर भी समग्र रूप से सैडल पॉइंट हो सकता है, यदि कोई दूसरी दिशा नीचे की ओर मुड़ती हो। हर दिशा जाँचें—या हे-सियन के ईगेनवैल्यू देखें, जो सभी दिशाओं को एक साथ कवर करते हैं।
सैडल पॉइंट को इंफ्लेक्शन पॉइंट समझ लेना
इंफ्लेक्शन पॉइंट एक-चर में वक्रता परिवर्तन का वर्णन करता है। सैडल पॉइंट एक ही बिंदु पर बहु-चर में मिश्रित वक्रता का। विचार में समानता है, पर ये अलग प्रकार के फ़ंक्शनों पर लागू होते हैं और इनका गणित परस्पर-विनिमेय नहीं है।
"सैडल पॉइंट" के सभी उपयोगों को समान मान लेना
क्रिटिकल-पॉइंट सैडल पॉइंट और मिनीमैक्स सैडल पॉइंट नाम साझा करते हैं, पर परिभाषा नहीं। हे-सियन-आधारित परीक्षण या ईगेनवैल्यू तर्क लगाने से पहले देखें कि कौन-सा अर्थ संदर्भ में है—गेम थ्योरी और एडवर्सेरियल ऑप्टिमाइज़ेशन में मिनीमैक्स वाला अर्थ होता है, और वह किसी एकल फ़ंक्शन की वक्रता-जाँच में नहीं सिमटता।
निष्कर्ष
सैडल पॉइंट एक ही निर्देशांकों पर कुछ दिशाओं में ऊपर और कुछ में नीचे मुड़ता है—इसीलिए वह न न्यूनतम है न अधिकतम, भले ही वहाँ ग्रेडिएंट शून्य हो, जैसे उन दोनों पर होता है।
ग्रेडिएंट क्रिटिकल पॉइंट ढूँढ़ते हैं। हे-सियन के ईगेनवैल्यू या सेकंड डेरिवेटिव टेस्ट बताते हैं कि वह कौन-सा प्रकार है। उच्च आयामों में यह भेद बहुत महत्वपूर्ण हो जाता है क्योंकि सैडल पॉइंट स्थानीय न्यूनतमों से अधिक होते हैं—और SGD तथा मोमेंटम जैसे ट्रेनिंग एल्गोरिद्म आंशिक रूप से इन्हें पार करने के लिए ही मौजूद हैं।
आख़िर में, यह अलग रखना ज़रूरी है कि गेम थ्योरी और GANs वाला मिनीमैक्स सैडल पॉइंट नाम तो साझा करता है, पर गणित नहीं—इसलिए स्पष्ट रखें कि आप किसकी बात कर रहे हैं।
यदि सैडल पॉइंट का विचार आपको रोचक लगता है, तो हमारा डीप लर्निंग ट्रैक (Python) आपको पसंद आएगा। सिद्धांत के साथ, आप PyTorch का उपयोग करके अलग-अलग प्रकार की समस्याओं के लिए न्यूरल नेटवर्क बनाएँगे।
भले ही आपके फ़ंक्शन के हर आंशिक अवकलज का मान शून्य हो, यह गारंटी नहीं कि आप किसी न्यूनतम के पास हैं।
ऑप्टिमाइज़ेशन किसी फ़ंक्शन के सबसे छोटे या सबसे बड़े मान की तलाश है, और आप जो भी विधि अपनाते हैं, वह ऐसे बिंदु को ढूंढ़ती है जहाँ ग्रेडिएंट सपाट हो। लेकिन सपाट ग्रेडिएंट का मतलब यह नहीं कि आपने सबसे अच्छा उत्तर पा लिया है। कभी-कभी इसका अर्थ होता है कि फ़ंक्शन उसी बिंदु पर एक दिशा में ऊपर और दूसरी दिशा में नीचे जाता है।
ऐसे बिंदु को सैडल पॉइंट कहते हैं—यह एक ओर नीचे, दूसरी ओर ऊपर जाता है, और चारों ओर समतल लगता है। सैडल पॉइंट पहचानना ज़रूरी है क्योंकि आपका एल्गोरिद्म वहाँ अटक सकता है और सपाट ग्रेडिएंट को वास्तविक न्यूनतम समझ सकता है।
इस लेख में, मैं आपको गणितीय रूप से सैडल पॉइंट कैसे पहचानें, और यह क्यों ऑप्टिमाइज़ेशन एल्गोरिद्म को अक्सर उलझा देता है, समझाऊँगा।
सैडल पॉइंट क्या है?
सैडल पॉइंट पर ग्रेडिएंट शून्य होता है, ठीक वैसे ही जैसे न्यूनतम या अधिकतम पर। पर सैडल पॉइंट न तो न्यूनतम होता है, न अधिकतम।
फ़ंक्शन उसी बिंदु पर कुछ दिशाओं में ऊपर की ओर और कुछ दिशाओं में नीचे की ओर मुड़ता है। एक अक्ष के साथ बढ़ें तो मान बढ़ेगा, दूसरी अक्ष के साथ बढ़ें तो मान घटेगा। नाम की वजह भी यह है—यह घोड़े की काठी (saddle) के आकार जैसा है, जो आगे-पीछे की ओर ऊपर और किनारों की ओर नीचे मुड़ती है।
यहाँ एक साधारण द्विचर फ़ंक्शन है जिससे मैं यह दिखाऊँगा:
द्विचर फ़ंक्शन
उद्गम
(0, 0)पर दोनों आंशिक अवकलज शून्य हैं, इसलिए यह एक क्रिटिकल पॉइंट (या स्थिर बिंदु) है। x-अक्ष के साथ बढ़ें तोfx^2पद के कारण बढ़ता है। y-अक्ष के साथ बढ़ें तोf-y^2पद के कारण घटता है।यदि आप इस फ़ंक्शन को 3D में प्लॉट करें, तो पृष्ठ सतह एक दिशा में ऊपर और दूसरी में नीचे मुड़ती है—ठीक वही आकार जिसके नाम पर सैडल पॉइंट रखा गया है।
f(x, y) = x^2 - y^2 का 3D सरफेस प्लॉट
उसी फ़ंक्शन का कॉनटूर प्लॉट ऊपर से यही कहानी बताता है। उद्गम के आसपास की कॉनटूर रेखाएँ हाइपरबोला जैसी दिखती हैं, न कि वे बंद लूप जो न्यूनतम या अधिकतम के आसपास दिखते हैं।
f(x, y) = x^2 - y^2 का कॉनटूर प्लॉट
सटीक परिभाषा क्षेत्र के अनुसार थोड़ी बदलती है। बहुवेरियेबल कैलकुलस में, सैडल पॉइंट वह क्रिटिकल पॉइंट है जो न स्थानीय न्यूनतम होता है न अधिकतम। ऑप्टिमाइज़ेशन और गेम थ्योरी में, यह शब्द अलग अर्थ में भी आता है, जो वक्रता की जगह मिनीमैक्स समस्याओं से जुड़ा है। इस भेद पर आगे बात करेंगे।
सैडल पॉइंट बनाम न्यूनतम और अधिकतम
गणितीय रूप से सैडल पॉइंट पहचानने से पहले, यह देखना उपयोगी है कि वे अन्य दो प्रकार के क्रिटिकल पॉइंट से कैसे तुलना करते हैं।
स्थानीय न्यूनतम
स्थानीय न्यूनतम पर फ़ंक्शन हर नज़दीकी दिशा में बढ़ता है। एक कटोरा कल्पना करें—तल से किसी भी दिशा में हटेंगे तो ऊपर जाएँगे। फ़ंक्शन
f(x, y) = x2 + y2ऐसा ही व्यवहार करता है।स्थानीय अधिकतम
स्थानीय अधिकतम पर फ़ंक्शन हर नज़दीकी दिशा में घटता है। यह न्यूनतम की परछाईं जैसा है—कटोरे की जगह गुंबद। फ़ंक्शन
f(x, y) = -x2 - y2उद्गम से दूर हर दिशा में घटता है।सैडल पॉइंट
सैडल पॉइंट पर फ़ंक्शन कुछ दिशाओं में बढ़ता है और कुछ में घटता है। यही कारण है कि
f(x, y) = x2 - y2, पिछले खंड का उदाहरण, न्यूनतम या अधिकतम नहीं बल्कि सैडल पॉइंट है: यह x-अक्ष पर ऊपर और y-अक्ष पर नीचे जाता है, उसी बिंदु पर।यहाँ तीनों की साथ-साथ तुलना है:
स्थानीय न्यूनतम, स्थानीय अधिकतम और सैडल पॉइंट के 3D सरफेस प्लॉट (साइड-बाय-साइड)
सैडल पॉइंट कैसे ढूँढ़ें
सैडल पॉइंट ढूँढ़ना मूलतः अवकलज लेने, जहाँ वे शून्य हों वह बिंदु खोजने, और फिर उस बिंदु के आसपास फ़ंक्शन की वक्रता देखने पर आधारित है।
मैं वही फ़ंक्शन फिर से लूँगा:
संदर्भ फ़ंक्शन
प्रक्रिया चरण-दर-चरण इस प्रकार है।
1. पहले आंशिक अवकलज निकालें
fकाxके सापेक्ष अवकलज लें,yको नियत मानकर, फिरyके लिए भी यही करें:पहले आंशिक अवकलज निकालना
2. उन्हें शून्य के बराबर रखें
उस बिंदु के लिए हल करें जहाँ दोनों आंशिक अवकलज एक साथ शून्य हों:
अवकलजों को शून्य रखना
इससे
x = 0औरy = 0मिलता है, अतः(0, 0)एक क्रिटिकल पॉइंट है। पहले अवकलज यह नहीं बताते कि यह किस प्रकार का है।3. दूसरे अवकलज निकालें
आपको तीन चाहिए:
f_xकाxके सापेक्ष अवकलज,f_yकाyके सापेक्ष अवकलज, और मिश्रित अवकलज:दूसरे अवकलज
4. वक्रता से क्रिटिकल पॉइंट का वर्गीकरण करें
f_xx = 2धनात्मक है, इसलिएfx-अक्ष के साथ ऊपर की ओर मुड़ता है।f_yy = -2ऋणात्मक है, इसलिएfy-अक्ष के साथ नीचे की ओर मुड़ता है। एक दिशा ऊपर, दूसरी दिशा नीचे—यही सैडल पॉइंट है।यह चार-चरणीय प्रक्रिया किसी भी द्वितीय-अवकलनीय (twice-differentiable) फ़ंक्शन के लिए काम करती है।
अगले दो खंडों में, मैं चरण 4 को उन औज़ारों से औपचारिक बनाऊँगा जो दो से अधिक चर पर भी काम करते हैं: हे-सियन मैट्रिक्स और सेकंड डेरिवेटिव टेस्ट।
हे-सियन मैट्रिक्स सैडल पॉइंट कैसे पहचानता है
हे-सियन मैट्रिक्स पिछले खंड के सभी दूसरे अवकलजों को एक वस्तु में समाहित करता है, और यही औज़ार बताता है कि कोई क्रिटिकल पॉइंट न्यूनतम है, अधिकतम है, या सैडल।
द्विचर फ़ंक्शन के लिए, हे-सियन इस तरह दिखता है:
द्विचर फ़ंक्शन के लिए हे-सियन
प्रत्येक प्रविष्टि वक्रता बताती है:
f_xxऔरf_yyक्रमशःxऔरyअक्षों के साथ वक्रता का वर्णन करते हैं, औरf_xyबताता है कि वे दोनों दिशाएँ कैसे परस्पर प्रभाव डालती हैं। यदि आप पिछले खंड के दूसरे अवकलज इसमें डालें, तो हमारे उदाहरण का हे-सियन इस तरह होगा:संदर्भ फ़ंक्शन के लिए हे-सियन
सिर्फ मैट्रिक्स अपने-आप में बहुत कुछ नहीं बताता। महत्वपूर्ण हैं इसके ईगेनवैल्यू—वे संख्याएँ जो बताती हैं कि फ़ंक्शन विशेष दिशाओं (ईगेनवेक्टर) के साथ कैसे मुड़ता है।
हमारे उदाहरण का हे-सियन डायगोनल है, इसलिए ईगेनवैल्यू सीधे डायगोनल पर हैं:
2और-2। इनके ईगेनवेक्टर x-अक्ष और y-अक्ष के साथ हैं, ठीक वैसी ही वक्रता जो आपने पिछले खंड में हाथ से पाई थी।xके साथfऊपर की ओर मुड़ता है क्योंकि वहाँ ईगेनवैल्यू धनात्मक है, औरyके साथ नीचे की ओर क्योंकि वहाँ ईगेनवैल्यू ऋणात्मक है।अधिकांश फ़ंक्शनों के हे-सियन डायगोनल नहीं होंगे, इसलिए ईगेनवेक्टर
xऔरyअक्षों के साथ सीधे नहीं बैठेंगे, और आपको उन्हें मैट्रिक्स से पढ़ने की जगह हल करना होगा। लेकिन एक धनात्मक और एक ऋणात्मक ईगेनवैल्यू का अर्थ है कि आप सैडल पॉइंट पर खड़े हैं।सैडल पॉइंट के लिए सेकंड डेरिवेटिव टेस्ट
आपको हर बार हाथ से ईगेनवैल्यू नहीं निकालने पड़ते। द्विचर फ़ंक्शनों के लिए एक शॉर्टकट है—सेकंड डेरिवेटिव टेस्ट—जो हे-सियन के डिटरमिनेंट पर आधारित है।
उन्हीं दूसरे अवकलजों का उपयोग करते हुए डिटरमिनेंट इस प्रकार है:
डिटरमिनेंट
Dहे-सियन का डिटरमिनेंट है, और इसका चिन्ह—f_xxके चिन्ह के साथ मिलकर—क्रिटिकल पॉइंट का वर्गीकरण करता है:D > 0औरf_xx > 0: स्थानीय न्यूनतमD > 0औरf_xx < 0: स्थानीय अधिकतमD < 0: सैडल पॉइंटD = 0: निष्कर्षहीनहमारे उदाहरण में,
f_xx = 2,f_yy = -2, औरf_xy = 0:संदर्भ फ़ंक्शन के लिए सेकंड डेरिवेटिव टेस्ट
Dऋणात्मक है, इसलिए यह परीक्षण पुष्टि करता है कि(0, 0)एक सैडल पॉइंट है।यह परीक्षण पिछले खंड के ईगेनवैल्यू नियम का ही रूपांतर है, जिसे आप ईगेनवेक्टर सुलझाए बिना निकाल सकते हैं।
Dदोनों ईगेनवैल्यू का गुणनफल है, औरf_xx + f_yyउनका योग। जबDऋणात्मक होता है, तो ईगेनवैल्यू के चिन्ह विपरीत होते हैं—यही सैडल पॉइंट है। जबDशून्य हो, तो कम-से-कम एक ईगेनवैल्यू शून्य होता है, अतः उस दिशा में वक्रता सपाट है, और न यह परीक्षण, न अकेले ईगेनवैल्यू आपको पूरी कहानी बताते हैं।ऑप्टिमाइज़ेशन में सैडल पॉइंट
अब तक की बात एक दिए गए फ़ंक्शन में सैडल पॉइंट पहचानने की थी। पर ऑप्टिमाइज़ेशन में आप पहले से सर्वश्रेष्ठ बिंदु नहीं जानते—ग्रेडिएंट-आधारित विधियाँ शून्य ग्रेडिएंट को रुकने का संकेत मानती हैं।
यही वह जगह है जहाँ सैडल पॉइंट परेशानी खड़ी करते हैं।
ग्रेडिएंट-आधारित ऑप्टिमाइज़र उस दिशा में चलता है जो उद्देश्य फ़ंक्शन को सबसे तेज़ घटाती है, और तब तक चलता रहता है जब तक ग्रेडिएंट शून्य के क़रीब न हो जाए। पर लगभग-शून्य ग्रेडिएंट एल्गोरिद्म को यह नहीं बताता कि उसने न्यूनतम पाया है या सैडल पॉइंट।
धनात्मक वक्रता वाली दिशाएँ फ़ंक्शन को ऊपर धकेलती हैं, और एल्गोरिद्म सीख चुका होता है कि उधर कदम रखने से चीज़ें खराब होती हैं। ऋणात्मक वक्रता वाली दिशाएँ अब भी मौजूद हैं—वहीं से बाहर निकलना है—पर केवल ग्रेडिएंट पर भरोसा करने वाला एल्गोरिद्म उन्हें चूक सकता है, क्योंकि सैडल पॉइंट पर उन्हीं दिशाओं में ग्रेडिएंट भी शून्य के क़रीब होता है।
यहीं पर ऑप्टिमाइज़ेशन भी धीमा पड़ता है।
जैसे-जैसे आप किसी भी स्थिर बिंदु के पास आते हैं, ग्रेडिएंट का परिमाण घटता है, तो ऐसा एल्गोरिद्म जो अपने कदमों का आकार ग्रेडिएंट के अनुपात में रखता है, सैडल के पास छोटे-छोटे कदम लेता है—चाहे वह उस न्यूनतम के पास हो या नहीं जिसे वह वास्तव में ढूँढ़ रहा है।
स्थिर बिंदु पाना ऑप्टिमाइज़ेशन पूरा होने के बराबर नहीं है। आपको अब भी यह जानने का तरीका चाहिए कि लगभग-शून्य ग्रेडिएंट सैडल पॉइंट का है या न्यूनतम का—और एक बार पता चल जाए तो वह दिशा भी चाहिए जिसमें उद्देश्य और बेहतर होता रहे।
मशीन लर्निंग में सैडल पॉइंट
न्यूरल नेटवर्क का लॉस फ़ंक्शन नेटवर्क के हर वेट और बायस का फ़ंक्शन होता है—कभी-कभी लाखों या अरबों आयामों में। यह द्विचर खिलौना-उदाहरण से बहुत दूर है।
उच्च-आयामी गैर-अवतल ऑप्टिमाइज़ेशन के एक विश्लेषण में Dauphin और सहलेखकों का तर्क है कि जैसे-जैसे आयाम बढ़ते हैं, क्रिटिकल पॉइंट का सैडल पॉइंट होना स्थानीय न्यूनतम या अधिकतम की तुलना में कहीं अधिक संभव हो जाता है। हर आयाम एक और दिशा जोड़ता है जिसमें वक्रता किसी भी ओर जा सकती है—और केवल एक ऋणात्मक वक्रता दिशा ही किसी क्रिटिकल पॉइंट को न्यूनतम की बजाय सैडल बना देती है।
ट्रेनिंग के दौरान यह इसलिए मायने रखता है क्योंकि ग्रेडिएंट डिसेंट केवल उसी ग्रेडिएंट को देखता है जिस पर वह खड़ा है।
सैडल पॉइंट के पास, हर दिशा में ग्रेडिएंट छोटा हो जाता है—वही संकेत जो वास्तविक न्यूनतम के पास पहुँचते समय दिखता है। ट्रेनिंग धीमी पड़ सकती है या ऐसे क्षेत्र में अटक सकती है जो बिल्कुल इष्टतम नहीं, और केवल लॉस कर्व से यह बताना मुश्किल है कि आप न्यूनतम के पास हैं या सैडल पर अटके हैं।
इसीलिए न्यूरल नेटवर्क ट्रेनिंग पर चर्चा में सैडल पॉइंट अक्सर स्थानीय न्यूनतम के साथ सामने आते हैं। पर वे अकेली रुकावट नहीं हैं—वैनिशिंग ग्रेडिएंट, ख़राब कंडीशनिंग वाली वक्रता, और खोज-स्थान का पैमाना भी उच्च-आयामी ऑप्टिमाइज़ेशन को कठिन बनाते हैं।
ऑप्टिमाइज़ेशन एल्गोरिद्म सैडल पॉइंट से कैसे निपटते हैं
इसका मतलब यह नहीं कि सैडल पॉइंट के पास ग्रेडिएंट-आधारित ट्रेनिंग विफल है। कुछ तकनीकें हैं जो अलग-अलग कोण से आपकी मदद करती हैं।
स्टोकेस्टिक ग्रेडिएंट डिसेंट
स्टोकेस्टिक ग्रेडिएंट डिसेंट पूरे डेटासेट की बजाय ट्रेनिंग डेटा के एक यादृच्छिक उपसमुच्चय से ग्रेडिएंट गिनता है—और यह उपसमुच्चय हर कदम पर बदलता है।
इससे आने वाला शोर मतलब अनुमानित ग्रेडिएंट शायद ही कभी बिल्कुल शून्य होता है—भले ही सच्चा ग्रेडिएंट शून्य के पास हो। यह शोर ऑप्टिमाइज़र को सैडल पॉइंट से धकेलकर ऋणात्मक वक्रता की दिशा में ले जाने के लिए पर्याप्त हो सकता है, बजाए इसके कि वह ठीक वहीं ठहर जाए जहाँ ग्रेडिएंट लुप्त होता है।
मोमेंटम
मोमेंटम पिछले ग्रेडिएंट्स का चालू औसत रखता है और अगला कदम तय करने में केवल वर्तमान की बजाय उसी का उपयोग करता है।
सैडल पॉइंट के आसपास यह इसलिए मायने रखता है क्योंकि ऑप्टिमाइज़र वहाँ पहुँचते समय पहले से ही किसी दिशा में गतिमान होता है—वहाँ तक आने वाले ग्रेडिएंट्स से प्रेरित। यह संचित गति उसे सैडल के सपाट क्षेत्र से निकालकर आगे ले जा सकती है, बजाय इसके कि स्थानीय ग्रेडिएंट शून्य के पास आते ही वह धीमा पड़ जाए।
द्वितीय-कोटि (सेकंड-ऑर्डर) विधियाँ
सेकंड-ऑर्डर विधियाँ वक्रता की जानकारी को सीधे उपयोग करती हैं।
हे-सियन या उसके सन्निकटन के साथ काम करके, ये विधियाँ क्रिटिकल पॉइंट पर धनात्मक वक्रता और ऋणात्मक वक्रता वाली दिशाओं में अंतर कर सकती हैं। सैडल पॉइंट इसी भेद पर निर्भर है, इसलिए सेकंड-ऑर्डर विधि अवरोही दिशा पहचानकर उसमें कदम रख सकती है, बजाय इसके कि हर लगभग-शून्य ग्रेडिएंट को एक जैसा माने।
संबंधित अवधारणाओं से सैडल पॉइंट का अंतर
कुछ शब्द अक्सर सैडल पॉइंट के साथ गड़बड़ा जाते हैं, इसलिए उन पर संक्षेप में बात करते हैं।
सैडल पॉइंट बनाम स्थानीय न्यूनतम
स्थानीय न्यूनतम के पास हर दिशा में फ़ंक्शन ऊपर की ओर मुड़ता है—यानी चारों ओर समान रूप से धनात्मक वक्रता। सैडल पॉइंट केवल कुछ दिशाओं में ऊपर और कुछ में नीचे मुड़ता है। जैसे ही एक भी दिशा में ऋणात्मक वक्रता मिल जाए, आप न्यूनतम नहीं देख रहे।
सैडल पॉइंट बनाम स्थानीय अधिकतम
स्थानीय अधिकतम के लिए तर्क उलटा है—नज़दीक हर दिशा में वक्रता ऋणात्मक रहती है। सैडल पॉइंट में ऋणात्मक के साथ कम-से-कम एक धनात्मक वक्रता दिशा भी जुड़ जाती है।
सैडल पॉइंट बनाम इंफ्लेक्शन पॉइंट
इंफ्लेक्शन पॉइंट एक-आयामी धारणा है। यह वहीं होता है जहाँ एक चर के साथ वक्रता अवतल-ऊपर से अवतल-नीचे (या उलटा) में बदलती है।
सैडल पॉइंट के लिए कम-से-कम दो चर चाहिए, क्योंकि इसकी अवधारणा एक ही बिंदु पर अलग-अलग दिशाओं की वक्रता की तुलना पर निर्भर है। एक चर का फ़ंक्शन इंफ्लेक्शन पॉइंट रख सकता है, पर सैडल पॉइंट नहीं—क्योंकि दूसरी, विपरीत दिशा है ही नहीं।
सैडल पॉइंट बनाम स्थिर (स्टेशनरी) पॉइंट
हर सैडल पॉइंट एक स्थिर बिंदु है, क्योंकि वहाँ ग्रेडिएंट शून्य होता है। पर उलटा सच नहीं—स्थिर बिंदु कोई भी ऐसा बिंदु है जहाँ ग्रेडिएंट शून्य हो; वह स्थानीय न्यूनतम, स्थानीय अधिकतम, या सैडल पॉइंट हो सकता है। यह जानने के लिए कि कौन-सा है, आपको हे-सियन या सेकंड डेरिवेटिव टेस्ट से वक्रता की जानकारी चाहिए।
यहाँ उनका एक अधिक दृश्यात्मक सारांश है:
अन्य अवधारणाओं से सैडल पॉइंट की तुलना
मिनीमैक्स ऑप्टिमाइज़ेशन में सैडल पॉइंट
अब तक हमने "सैडल पॉइंट" शब्द का प्रयोग क्रिटिकल पॉइंट की वक्रता के लिए किया। इसका एक दूसरा, पुराना अर्थ गेम थ्योरी से आता है, और यह आधुनिक मशीन लर्निंग में भी दिखता है।
मिनीमैक्स ऑप्टिमाइज़ेशन में, एक खिलाड़ी किसी फ़ंक्शन को न्यूनतम करता है और दूसरा अधिकतम, और सैडल पॉइंट उन मानों की जोड़ी है जहाँ कोई भी खिलाड़ी केवल अपनी चाल बदलकर अपने परिणाम में सुधार नहीं कर सकता।
गेम थ्योरी में इसका उपयोग प्रतिस्पर्धी खेलों में संतुलन रणनीतियाँ बताने के लिए होता है। प्रतिकूल (एडवर्सेरियल) ऑप्टिमाइज़ेशन वही ढाँचा उन समस्याओं के लिए अपनाता है जहाँ एक प्रक्रिया बदतर-से-बदतर स्थिति ढूँढ़ती है जिसका दूसरी प्रक्रिया को सामना करना है।
जनरेटिव एडवर्सेरियल नेटवर्क (GANs) इसका सर्वश्रेष्ठ मशीन लर्निंग उदाहरण हैं। जेनरेटर विश्वसनीय नकली डेटा बनाकर अपना लॉस न्यूनतम करता है, जबकि डिस्क्रिमिनेटर असली और नकली को अलग पहचानने की क्षमता अधिकतम करता है। GAN का प्रशिक्षण इसी मिनीमैक्स अर्थ में सैडल पॉइंट खोजने जैसा है—या वह संतुलन जहाँ जेनरेटर और डिस्क्रिमिनेटर, एक-दूसरे के प्रति अपनी सर्वश्रेष्ठ प्रतिक्रिया पा चुके हों।
यह मिनीमैक्स सैडल पॉइंट इस लेख में पहले वाले क्रिटिकल-पॉइंट सैडल पॉइंट से संबंधित है, पर दोनों परस्पर विनिमेय नहीं हैं।
क्रिटिकल-पॉइंट वाला संस्करण एक ही फ़ंक्शन के एक बिंदु पर वक्रता का वर्णन करता है। मिनीमैक्स संस्करण दो प्रतिस्पर्धी उद्देश्यों के बीच संतुलन बताता है। दोनों में "ऊपर" और "नीचे" व्यवहार का मिश्रण आता है, इसलिए एक ही शब्द इस्तेमाल होता है, पर यदि आप दो-खिलाड़ी खेल पर हे-सियन-आधारित परीक्षण लागू करने की कोशिश करेंगे तो यह गड्डमड्ड हो जाएगा।
सैडल पॉइंट पर काम करते समय आम गलतियाँ
सैडल पॉइंट से जुड़ी अधिकतर उलझन कुछ बार-बार होने वाली गलतियों से आती है। ये बातें ध्यान रखें।
शून्य ग्रेडिएंट को न्यूनतम मान लेना
शून्य ग्रेडिएंट केवल यह बताता है कि आपने एक क्रिटिकल पॉइंट पाया है—यह नहीं कि वह किस प्रकार का है। वक्रता जाँचें, क्योंकि सैडल पॉइंट पर भी ग्रेडिएंट शून्य होता है।
केवल पहले अवकलजों से वर्गीकरण करना
पहले अवकलज क्रिटिकल पॉइंट ढूँढ़ते हैं, पर उन्हें वर्गीकृत नहीं कर सकते। न्यूनतम, अधिकतम और सैडल में फर्क बताने के लिए आपको दूसरे अवकलज चाहिए—हे-सियन या सेकंड डेरिवेटिव टेस्ट के माध्यम से।
वक्रता की अलग-अलग दिशाओं को नज़रअंदाज़ करना
कोई फ़ंक्शन x-अक्ष के साथ ऊपर की ओर मुड़ सकता है और फिर भी समग्र रूप से सैडल पॉइंट हो सकता है, यदि कोई दूसरी दिशा नीचे की ओर मुड़ती हो। हर दिशा जाँचें—या हे-सियन के ईगेनवैल्यू देखें, जो सभी दिशाओं को एक साथ कवर करते हैं।
सैडल पॉइंट को इंफ्लेक्शन पॉइंट समझ लेना
इंफ्लेक्शन पॉइंट एक-चर में वक्रता परिवर्तन का वर्णन करता है। सैडल पॉइंट एक ही बिंदु पर बहु-चर में मिश्रित वक्रता का। विचार में समानता है, पर ये अलग प्रकार के फ़ंक्शनों पर लागू होते हैं और इनका गणित परस्पर-विनिमेय नहीं है।
"सैडल पॉइंट" के सभी उपयोगों को समान मान लेना
क्रिटिकल-पॉइंट सैडल पॉइंट और मिनीमैक्स सैडल पॉइंट नाम साझा करते हैं, पर परिभाषा नहीं। हे-सियन-आधारित परीक्षण या ईगेनवैल्यू तर्क लगाने से पहले देखें कि कौन-सा अर्थ संदर्भ में है—गेम थ्योरी और एडवर्सेरियल ऑप्टिमाइज़ेशन में मिनीमैक्स वाला अर्थ होता है, और वह किसी एकल फ़ंक्शन की वक्रता-जाँच में नहीं सिमटता।
निष्कर्ष
सैडल पॉइंट एक ही निर्देशांकों पर कुछ दिशाओं में ऊपर और कुछ में नीचे मुड़ता है—इसीलिए वह न न्यूनतम है न अधिकतम, भले ही वहाँ ग्रेडिएंट शून्य हो, जैसे उन दोनों पर होता है।
ग्रेडिएंट क्रिटिकल पॉइंट ढूँढ़ते हैं। हे-सियन के ईगेनवैल्यू या सेकंड डेरिवेटिव टेस्ट बताते हैं कि वह कौन-सा प्रकार है। उच्च आयामों में यह भेद बहुत महत्वपूर्ण हो जाता है क्योंकि सैडल पॉइंट स्थानीय न्यूनतमों से अधिक होते हैं—और SGD तथा मोमेंटम जैसे ट्रेनिंग एल्गोरिद्म आंशिक रूप से इन्हें पार करने के लिए ही मौजूद हैं।
आख़िर में, यह अलग रखना ज़रूरी है कि गेम थ्योरी और GANs वाला मिनीमैक्स सैडल पॉइंट नाम तो साझा करता है, पर गणित नहीं—इसलिए स्पष्ट रखें कि आप किसकी बात कर रहे हैं।
यदि सैडल पॉइंट का विचार आपको रोचक लगता है, तो हमारा डीप लर्निंग ट्रैक (Python) आपको पसंद आएगा। सिद्धांत के साथ, आप PyTorch का उपयोग करके अलग-अलग प्रकार की समस्याओं के लिए न्यूरल नेटवर्क बनाएँगे।