एडम पेपर कहता है, "... कई वस्तुनिष्ठ कार्य डेटा के विभिन्न उपसमूहों पर मूल्यांकन किए गए उप-योगों के योग से बने होते हैं; इस मामले में अनुकूलन अलग-अलग चरणों को अलग-अलग उपखंडों को मिलाकर कुशल बनाया जा सकता है ..." यहां, वे हैं इसका मतलब है कि उद्देश्य फ़ंक्शन प्रशिक्षण के उदाहरणों में त्रुटियों का योग है, और प्रशिक्षण व्यक्तिगत उदाहरणों या मिनीबैच पर किया जा सकता है। यह स्टोचस्टिक ग्रेडिएंट डिसेंट (SGD) के समान है, जो कि बैच प्रशिक्षण की तुलना में बड़े पैमाने पर समस्याओं के लिए अधिक कुशल है क्योंकि पैरामीटर अपडेट अधिक बार होते हैं।
जैसा कि एडम क्यों काम करता है, इसके लिए यह कुछ ट्रिक्स का उपयोग करता है।
इन चालों में से एक गति है, जो तेजी से अभिसरण दे सकती है। एक वस्तुनिष्ठ फ़ंक्शन की कल्पना करें जो एक लंबे, संकीर्ण कैनियन के आकार का है जो धीरे-धीरे एक न्यूनतम की ओर ढलान करता है। हम क्रमिक वंश का उपयोग करके इस फ़ंक्शन को कम करना चाहते हैं। अगर हम घाटी की दीवार पर कुछ बिंदु से शुरू करते हैं, तो नकारात्मक प्रवणता, सबसे अधिक मूल की दिशा में इंगित करेगी, जो कि ज्यादातर घाटी तल की ओर है। इसका कारण यह है कि घाटी की दीवारें न्यूनतम की ओर घाटी के क्रमिक ढलान की तुलना में बहुत अधिक सख्त होती हैं। यदि सीखने की दर (यानी स्टेप साइज) छोटी है, तो हम कैनियन फ्लोर तक उतर सकते हैं, फिर न्यूनतम की ओर चलें। लेकिन, प्रगति धीमी होगी। हम सीखने की दर को बढ़ा सकते हैं, लेकिन इससे कदमों की दिशा नहीं बदलेगी। इस मामले में, हम घाटी के फर्श का निरीक्षण करेंगे और विपरीत दीवार पर समाप्त होंगे। हम इस पैटर्न को फिर से दोहराएंगे, दीवार की दीवार से न्यूनतम तक धीमी गति से प्रगति करते हुए। मोमेंटम इस स्थिति में मदद कर सकता है।
मोमेंटम का अर्थ है कि पिछले अद्यतन का कुछ अंश वर्तमान अद्यतन में जोड़ा गया है, ताकि किसी विशेष दिशा के परिसर में दोहराया अपडेट; हम गति का निर्माण करते हैं, उस दिशा में तेजी से और तेजी से आगे बढ़ते हैं। घाटी के मामले में, हम न्यूनतम की दिशा में गति का निर्माण करेंगे, क्योंकि सभी अद्यतन उस दिशा में एक घटक है। इसके विपरीत, घाटी की दीवारों के पीछे और पीछे की ओर लगातार उल्टी दिशा शामिल है, इसलिए गति उन दिशाओं में दोलनों को नम करने में मदद करेगी।
एक और तरकीब जो एडम उपयोग करता है वह है प्रत्येक पैरामीटर के लिए अलग से सीखने की दर का चयन करना। जो पैरामीटर आमतौर पर छोटे या कम लगातार अपडेट प्राप्त करते हैं उन्हें एडम के साथ बड़े अपडेट मिलते हैं (रिवर्स भी सच है)। यह उन मामलों में सीखने की गति है जहां उपयुक्त सीखने की दर मापदंडों के अनुसार भिन्न होती है। उदाहरण के लिए, गहरे नेटवर्क में, ग्रेडर शुरुआती परतों में छोटे हो सकते हैं, और इससे संबंधित मापदंडों के लिए सीखने की दर बढ़ाने के लिए समझ में आता है। इस दृष्टिकोण का एक और लाभ यह है कि, क्योंकि सीखने की दर स्वचालित रूप से समायोजित हो जाती है, इसलिए मैनुअल ट्यूनिंग कम महत्वपूर्ण हो जाती है। स्टैण्डर्ड SGD को सीखने की दर से सावधान ट्यूनिंग (और संभवतः ऑनलाइन समायोजन) की आवश्यकता होती है, लेकिन एडम और संबंधित तरीकों के साथ यह कम सच है। हाइपरपरमेटर्स का चयन करना अभी भी आवश्यक है,
संबंधित तरीके :
मोमेंटम का उपयोग अक्सर मानक SGD के साथ किया जाता है। एक बेहतर संस्करण को Nesterov गति या Nesterov त्वरित ढाल कहा जाता है। अन्य विधियां जो प्रत्येक पैरामीटर के लिए स्वचालित रूप से ट्यून किए गए सीखने की दरों का उपयोग करती हैं, उनमें शामिल हैं: अडाग्रैड, आरएमएसप्रॉप और एडलाड्टा। RMSprop और Adadelta ने Adagrad के साथ एक समस्या को हल किया जिससे सीखने को रोका जा सकता था। एडम गति के साथ RMSprop के समान है। नादम एडम को शास्त्रीय गति के बजाय नेस्टरोव गति का उपयोग करने के लिए संशोधित करता है।
संदर्भ :
किंग्मा और बा (2014) । एडम: स्टोकेस्टिक अनुकूलन के लिए एक विधि।
गुडफेलो एट अल। (२०१६) है । गहन शिक्षा, अध्याय 8।
स्लाइड ज्योफ हिंटन के पाठ्यक्रम से
दोज़ात (2016) । एडम में नेस्टरोव मोमेंटम को शामिल करना।