रणनीति एजेंट ट्रेनिंग जॉब में टेस्ट की एक भी पंक्ति डाले बिना टेस्ट सेट को दूषित कर सकता है। अगर एजेंट टेस्ट स्कोर देखता है, कोई पैरामीटर बदलता है और दोबारा चलाता है, तो वह स्कोर रणनीति को पहले ही प्रभावित कर चुका है। कोड उस अवधि को “आउट ऑफ सैंपल” कह सकता है। लेकिन रिसर्च प्रक्रिया ने उसे खोज का हिस्सा बना दिया है।
मैंने यह अक्सर सुविधा के चलते होते देखा है: एजेंट एक बैच चलाता है, सारांश तालिका पढ़ता है और फिर छोटे सुधार का सुझाव देता है। किसी ने उससे होल्डआउट पर फिट करने को नहीं कहा था। फिर भी फीडबैक लूप ने वही काम कर दिया।
गलती 1: एजेंट को हर रन के बाद झांकने देना
इसका बिगड़ा हुआ नतीजा आम तौर पर टेस्ट Sharpe में साफ-सुथरी छोटी-छोटी बढ़तों के रूप में दिखता है। एजेंट 30 रूप आज़माता है, उनमें से सबसे अच्छा चुनता है, फिर उसके आसपास 30 और रूप आज़माता है। हर बदलाव अलग से उचित लगता है। लेकिन सब मिलकर टेस्ट अवधि को ऑप्टिमाइज़ेशन का लक्ष्य बना देते हैं।
एक साधारण उदाहरण देखें। मान लीजिए रणनीति में कोई वास्तविक बढ़त नहीं है और आप होल्डआउट पर 100 स्वतंत्र रूपों का परीक्षण करते हैं। अगर आप सबसे ऊंचा Sharpe चुनते हैं, तो संयोग से आकर्षक नतीजा मिलना काफी संभव है। ज़्यादातर रणनीति खोजों में ये रूप पूरी तरह स्वतंत्र नहीं होंगे, लेकिन इससे प्रक्रिया सही नहीं हो जाती: बार-बार मिलने वाला फीडबैक अब भी उन सेटिंग्स को पुरस्कृत करता है जो संयोग से होल्डआउट की खासियतों पर फिट बैठती हैं।
होल्डआउट को नतीजों की पहुंच से अलग रखें। एजेंट ट्रेनिंग और वैलिडेशन अवधियों के आधार पर रणनीति विकसित कर सकता है; वह होल्डआउट के मेट्रिक्स या चार्ट नहीं देख सकता। अंतिम मूल्यांकन अलग जॉब में रखें, रिसर्च के फैसले तय हो जाने के बाद उसे 1 बार चलाएं, और नतीजे के साथ रणनीति का वर्ज़न और डेटा स्नैपशॉट दर्ज करें।
गलती 2: हर बाद की अवधि को “नई” कहना
सिर्फ इसलिए कोई तारीख सीमा नई नहीं हो जाती कि वह ट्रेनिंग विंडो के बाद आती है। अगर एजेंट ने उस अवधि का स्कोर देखा है, या किसी व्यक्ति ने उसका ड्रॉडाउन देखकर कोई दूसरा फ़ीचर चुना है, तो वह अवधि फीडबैक लूप का हिस्सा बन चुकी है।
| अवधि | अनुमत उपयोग | इसकी स्थिति क्या बदलती है |
|---|---|---|
| ट्रेनिंग | नियम और पैरामीटर फिट करना | कुछ नहीं; इसे खोजने के लिए ही रखा गया है |
| वैलिडेशन | उम्मीदवारों की तुलना करना और रिसर्च के फैसले लेना | बार-बार इस्तेमाल से ओवरफिटिंग का जोखिम बढ़ता है |
| अंतिम होल्डआउट | तय किए गए उम्मीदवार का 1 मूल्यांकन | नतीजा पढ़कर उम्मीदवार में बदलाव करना |
| भविष्य की पेपर अवधि | समय के साथ कार्यान्वयन के व्यवहार का निरीक्षण करना | नतीजों का उपयोग करके ट्यून करने से नया रिसर्च चक्र शुरू होता है |
रोलिंग वॉक-फॉरवर्ड मूल्यांकन से यह अनुमान लगाने में मदद मिल सकती है कि समय के साथ एक तय रिसर्च प्रक्रिया कैसा प्रदर्शन करती है। इससे हर फोल्ड को असीमित बार देखने की छूट नहीं मिलती। अगर एजेंट फोल्ड के नतीजे देखकर अपनी खोज के तरीके बदलता है, तो वे फोल्ड भी फीडबैक का हिस्सा हैं। जिस फैसले के लिए आप वास्तव में मूल्यांकन करना चाहते हैं, उसके लिए एक अंतिम अछूती अवधि सुरक्षित रखें।
गलती 3: सवाल बदलते हुए कोड को स्थिर रखना
कभी-कभी रणनीति का कोड वही रहता है, लेकिन नतीजा देखने के बाद शोधकर्ता मूल्यांकन बदल देता है: बेंचमार्क बदलना, खराब महीने को बाहर करना, अलग यूनिवर्स की रिपोर्ट देना या सबसे अच्छे दिखने वाले मेट्रिक पर ध्यान देना। भले ही कोई पैरामीटर न बदला हो, टेस्ट सेट ने कहानी की दिशा तय की है।
इसका बिगड़ा हुआ नतीजा एक सजी-संवरी रिपोर्ट में दिखता है, जिसमें एक साफ-सुथरी मुख्य बात तो होती है, लेकिन आज़माए गए दूसरे नज़रियों का कोई रिकॉर्ड नहीं होता। इक्विटी रणनीति व्यापक बाजार सूचकांक के मुकाबले कमजोर, लेकिन नकदी के मुकाबले मजबूत दिख सकती है; कई एक्सचेंज देखने के बाद क्रिप्टो रणनीति किसी 1 एक्सचेंज पर शानदार दिख सकती है। ये तुलनाएं उपयोगी हो सकती हैं, लेकिन होल्डआउट देखने के बाद उनमें से चुनना चयन का एक और चरण है।
रिसर्च लॉग रखें। हर रन के लिए परिकल्पना, कोड वर्ज़न, डेटा स्नैपशॉट, पैरामीटर खोज, मूल्यांकन विंडो, मांगे गए मेट्रिक्स और यह दर्ज करें कि एजेंट या शोधकर्ता ने नतीजा देखा था या नहीं। संक्षिप्त लॉग, “आउट ऑफ सैंपल” जैसे सुनने में बेहतरीन लेबल से ज्यादा उपयोगी है।
फिर मूल्यांकन से पहले अंतिम सवाल साफ तौर पर तय करें: कौन-सा उम्मीदवार, कौन-सा बाजार यूनिवर्स, कौन-सा बेंचमार्क, कौन-सी लागतें और कौन-से मेट्रिक्स? अगर नतीजा आने के बाद जवाब बदलता है, तो अगली बार को रिसर्च मानें और अगली अंतिम जांच के लिए नया डेटा सुरक्षित रखें।
दूषित होल्डआउट से मैं अब भी क्या सीख सकता हूं?
यह बेकार नहीं है। इससे पता चल सकता है कि उस अवधि में रणनीति का प्रदर्शन कैसा रहा और विफलता की वजह समझने में मदद मिल सकती है। बस इसके स्कोर को स्वतंत्र पुष्टि के तौर पर पेश करना बंद करें। इसे विकास के सबूत की तरह इस्तेमाल करें, अगला उम्मीदवार तय करें और उसी लेखांकन तथा निष्पादन मान्यताओं के साथ उस उम्मीदवार का मूल्यांकन सचमुच भविष्य की पेपर अवधि पर करें।
एजेंट-आधारित वर्कफ़्लो में प्रयोगों की गिनती आसानी से छूट जाती है: किसी को पता चलने से पहले एक प्रॉम्प्ट से दर्जनों रन बन सकते हैं। इसका बचाव प्रक्रिया में है। एजेंट क्या देख सकता है, इसे सीमित रखें, हर प्रयोग दर्ज करें और ऐसा एक मूल्यांकन सुरक्षित रखें जिसके नतीजे से जांचे जा रहे उम्मीदवार की दिशा तय न हो सके।
← सभी पोस्ट


