স্ট্র্যাটেজি টিউন করার সৎ উপায় হিসেবে ওয়াক-ফরোয়ার্ড অপ্টিমাইজেশনের সুনাম আছে, এবং সে সুনাম তার প্রাপ্য—সব ডেটায় অপ্টিমাইজ করে ফল দেখে মুগ্ধ হওয়ার তুলনায়। তবে এই পদ্ধতিতেও কিছু নীরব ব্যর্থতার ধরন আছে, আর প্রতিটিই একই ফল তৈরি করে: “রোবাস্ট” লেখা ভ্যালিডেশন রিপোর্টের সঙ্গে এমন একটি স্ট্র্যাটেজি, যা আসলে রোবাস্ট নয়। নিচে সেই 3টি ধরন দিলাম, কী বিপর্যয় রেখে যায় তার ভিত্তিতে সাজিয়ে।
ব্যর্থতার ধরন 1: উইন্ডোতে ডেটা লিক হয়
ভুল পদ্ধতি: জানুয়ারি-জুনে টিউন করে জুলাইয়ে ভ্যালিডেট করা, তারপর জুলাইয়ের যেকোনো তথ্যকে দ্বিতীয় ধাপে প্রভাব ফেলতে দেওয়া—আউট-অফ-স্যাম্পল ফল দেখার পর আবার চালানো, প্যারামিটার গ্রিডে “সামান্য পরিবর্তন”, কিংবা পুরো সিরিজ ধরে ফিচার নরমালাইজ করা। প্রতিটিই আলাদাভাবে নিরীহ মনে হয়। কিন্তু একসঙ্গে এগুলো আউট-অফ-স্যাম্পল উইন্ডোকে বিলম্বসহ ইন-স্যাম্পল ডেটায় পরিণত করে।
বিপর্যয়: আউট-অফ-স্যাম্পল Sharpe, যা রহস্যজনকভাবে ইন-স্যাম্পল Sharpe-এর সঙ্গে তাল মেলায়। আসল আউট-অফ-স্যাম্পল ফল অস্থির ও হতাশাজনক হয়; IS/OOS-এর সম্পর্ক সন্দেহজনকভাবে মসৃণ হলে বোঝা যায় তথ্য উল্টো দিকে প্রবাহিত হচ্ছে। আমরা এই অনুপাত স্পষ্টভাবে দেখি—ইন-স্যাম্পল Sharpe আউট-অফ-স্যাম্পলের 3x-এর বেশি হলে রানটি চিহ্নিত হয়, আর আউট-অফ-স্যাম্পল শূন্য বা তার কম হলে ইন-স্যাম্পল যতই সুন্দর দেখাক, রানটি বাতিল হয়।
ব্যর্থতার ধরন 2: উইন্ডো ধরে মেট্রিক বেছে নেওয়া
3টি ওয়াক-ফরোয়ার্ড উইন্ডো চালিয়ে 3টি অস্থির ফল পেলেন, তারপর সারসংক্ষেপ করলেন: গড় Sharpe? মিডিয়ান? “রেজিম পরিবর্তন”-এর কারণে সবচেয়ে খারাপ উইন্ডোটি বাদ দেবেন? প্রতিটি পছন্দই আরেকটি স্বাধীনতার মাত্রা, আর দৃঢ়প্রতিজ্ঞ অপ্টিমাইজার—মানুষ বা Bayesian—এমন সারসংক্ষেপ খুঁজে নেবে, যাতে এই স্ট্র্যাটেজিকে সবচেয়ে ভালো দেখায়। প্রতি উইন্ডোতে Optuna-র 75টি ট্রায়াল মানে নয়েজের সঙ্গে মানিয়ে নেওয়ার 75টি সুযোগ, আর আপনি যতগুলো সারসংক্ষেপ বিবেচনা করতে রাজি, সেই সংখ্যায় গুণ হবে।
বিপর্যয়: এমন একটি স্ট্র্যাটেজি, যা ভ্যালিডেশন পাস করে, তারপর লাইভে সবচেয়ে খারাপ উইন্ডোর ফল দেয়—কারণ একমাত্র ওই উইন্ডোটিই সৎ ছিল। আমাদের নিয়ম: রান শুরুর আগেই কনফিগে অ্যাগ্রিগেশন পদ্ধতি স্থির থাকে, ট্রায়ালের বাজেটও স্থির থাকে, আর বিশ্লেষক বিচ্যুতিসহ প্রতিটি উইন্ডোর ফল দেখেন। পাস করতে বন্ধুত্বপূর্ণ সারসংক্ষেপের ওপর নির্ভর করতে হলে, স্ট্র্যাটেজিটি পাস করেনি।
ব্যর্থতার ধরন 3: হোল্ডআউট আর হোল্ডআউট থাকেনি
হোল্ডআউট ঠিক একবারই কাজে লাগে। এর বিপরীতে দ্বিতীয়বার কোনো স্ট্র্যাটেজি মূল্যায়ন করলে—প্যারামিটারে সামান্য পরিবর্তনের পর, সিগন্যাল টুইক করার পর, বা “একবার শুধু দেখে নিই” বলে—সেটি আর হোল্ডআউট থাকে না; ধীরে ধীরে ভ্যালিডেশন সেটে পরিণত হয়। 15টি দিন না ছোঁয়ার প্রতিশ্রুতি রক্ষা করা সহজ মনে হয়, যতক্ষণ না বারবার পরিবর্তনের চাপ আসে এবং পুনরায় পরীক্ষা করাকে নিরীহ মনে হয়।
বিপর্যয়টি সূক্ষ্ম: একই স্ট্র্যাটেজির পরপর পরিবর্তনগুলোর সঙ্গে হোল্ডআউটের ফলও উন্নত হতে থাকে। নতুন আউট-অফ-স্যাম্পল ডেটার তৃতীয় পরিবর্তনকে প্রথমটির চেয়ে বেশি পুরস্কৃত করার কোনো কারণ নেই; তা হলে বুঝতে হবে হোল্ডআউট থেকে সুবিধা আদায় করা হয়েছে। আমরা একবারের মূল্যায়ন প্রক্রিয়াগতভাবে নিশ্চিত করি: প্রতি পাইপলাইন রানে হোল্ডআউট একবারই মূল্যায়ন হয়, ফল রেকর্ডে লেখা হয়, আর স্ট্র্যাটেজিটির আরেকবার চেষ্টা দরকার হলে সেটিকে পুরো যাচাই প্রক্রিয়ায় ফিরতে হয়—নতুন উইন্ডোসহ। এটিকে ওয়াক-ফরোয়ার্ড আউট-অফ-স্যাম্পল Sharpe-এর অন্তত 70% ধরে রাখতে হবে, আর পাশা দ্বিতীয়বার গড়ানোর সুযোগ নেই।
তিনটি পরীক্ষাতেই যে লক্ষণটি টিকে থাকে
এসবের আগে আমরা একটি সাধারণ সংবেদনশীলতা পরীক্ষা চালাই: প্রতিটি প্যারামিটার ±20% পরিবর্তন করে মেট্রিকগুলো দেখি। সত্যিকারের এজ ধীরে ধীরে ক্ষয় হয়; কাকতালীয় ফল এক ঝটকায় ধসে পড়ে। পাইপলাইনের সবচেয়ে সস্তা পরীক্ষাটি এমন স্ট্র্যাটেজিও বাতিল করে দেয়, যা ওপরের সব পরীক্ষায় অনায়াসে পাস করত—কারণ প্যারামিটারের খাড়া পতনই ওভারফিটিংয়ের চেহারা, এর আগে সেটিকে ভ্যালিডেশন প্রক্রিয়ায় লুকানোর সুযোগ দেওয়া হয়।
এসবের কোনোটিই অপ্টিমাইজেশনকে নিরাপদ করে না। এগুলো ব্যর্থতার ধরনগুলোকে স্পষ্ট করে তোলে—ভ্যালিডেশন প্রক্রিয়ার কাছে সৎভাবে এর বেশি কিছু চাওয়া যায় না।
← সব পোস্ট


