ইলাস্টিক নেট রেগুলারাইজেশন

পরিসংখ্যান এবং বিশেষ করে লিনিয়ার (linear) বা লজিস্টিক রিগ্রেশন মডেল ফিটিংয়ের ক্ষেত্রে, ইলাস্টিক নেট (elastic net) হলো একটি রেগুলারাইজড রিগ্রেশন পদ্ধতি যা ল্যাসো (lasso) এবং রিজ (ridge) পদ্ধতির L1 ও L2 পেনাল্টিগুলোকে রৈখিকভাবে বা লিনিয়ারলি সংযুক্ত করে। তা সত্ত্বেও, পুনর্গঠনের (reconstruction) ক্ষেত্রে ইলাস্টিক নেট রেগুলারাইজেশন সাধারণত উভয় পদ্ধতির তুলনায় অধিক নির্ভুল। 

বৈশিষ্ট্যসমূহ
ইলাস্টিক নেট পদ্ধতিটি ল্যাসো (লিস্ট অ্যাবসোলিউট শ্রিঙ্কোজ অ্যান্ড সিলেকশন অপারেটর) পদ্ধতির সীমাবদ্ধতাগুলো কাটিয়ে ওঠে, যা নিম্নোক্ত সমীকরণের ওপর ভিত্তি করে একটি পেনাল্টি ফাংশন ব্যবহার করে:

এই পেনাল্টি ফাংশন ব্যবহারের বেশ কিছু সীমাবদ্ধতা রয়েছে।  

উদাহরণস্বরূপ, বড় p, ছোট n এর ক্ষেত্রে (যেখানে ডেটাসেটে উদাহরণের তুলনায় ভেরিয়েবলের সংখ্যা অনেক বেশি), ল্যাসো সম্পৃক্ত বা স্যাচুরেটেড হওয়ার আগে সর্বোচ্চ n সংখ্যক ভেরিয়েবল নির্বাচন করে। এছাড়াও, যদি উচ্চ সহসম্পর্কযুক্ত ভেরিয়েবলের একটি গ্রুপ থাকে, তবে ল্যাসো সাধারণত সেই গ্রুপ থেকে একটি ভেরিয়েবল নির্বাচন করে এবং বাকিগুলোকে উপেক্ষা করে। এই সীমাবদ্ধতাগুলো দূর করার জন্য, ইলাস্টিক নেট পেনাল্টিতে একটি দ্বিঘাত অংশ () যোগ করে, যা আলাদাভাবে ব্যবহার করলে সেটি মূলত রিজ রিগ্রেশন (যা টিখোনভ রেগুলারাইজেশন পদ্ধতি হিসেবে পরিচিত হিসেবে গণ্য হয়।



দ্বিঘাত পেনাল্টি টার্মটি (quadratic penalty term) লস ফাংশনটিকে 'স্ট্রংলি কনভেক্স' (strongly convex) করে তোলে, এবং ফলস্বরূপ এর একটি অনন্য ন্যূনতম মান (unique minimum) থাকে। ইলাস্টিক নেট পদ্ধতির মধ্যে ল্যাসো (LASSO) এবং রিজ রিগ্রেশন উভয়ই অন্তর্ভুক্ত: অন্য কথায়, এদের প্রতিটিই ইলাস্টিক নেটের একটি বিশেষ ক্ষেত্র যেখানে  or । অপরদিকে, ইলাস্টিক নেট পদ্ধতির 'নেইভ' (naive) সংস্করণটি একটি দ্বি-স্তরীয় প্রক্রিয়ায় এস্টিমেটর খুঁজে বের করে: প্রথমে প্রতিটি নির্দিষ্ট 
-এর জন্য এটি  রিজ রিগ্রেশন সহগ (coefficients) বের করে, এবং তারপরে ল্যাসো টাইপ শ্রিঙ্কেজ (shrinkage) সম্পাদন করে। এই ধরণের প্রাক্কলনে দ্বিগুণ পরিমাণ শ্রিঙ্কেজ ঘটে, যার ফলে পক্ষপাত বৃদ্ধি পায় এবং প্রেডিকশন বা পূর্বাভাস দুর্বল হয়। প্রেডিকশন পারফরম্যান্স উন্নত করার জন্য, কখনও কখনও ইলাস্টিক নেটের নেইভ সংস্করণের সহগগুলোকে . দ্বারা গুণ করে পুনরায় স্কেল করা হয়।

যেসব ক্ষেত্রে ইলাস্টিক নেট পদ্ধতি প্রয়োগ করা হয়েছে তার কয়েকটি উদাহরণ হলো:
 সাপোর্ট ভেক্টর মেশিন 
 মেট্রিক লার্নিংয 
 পোর্টফোলিও অপ্টিমাইজেশন 
 ক্যান্সার প্রগনোসিস বা পূর্বাভাস (Cancer prognosis) 

 সাপোর্ট ভেক্টর মেশিনে হ্রাস 
২০১৪ সালে এটি প্রমাণিত হয়েছে যে ইলাস্টিক নেটকে রৈখিক বা লিনিয়ার সাপোর্ট ভেক্টর মেশিন-এ রূপান্তর করা সম্ভব। 

ল্যাসো (LASSO)-এর ক্ষেত্রেও একই ধরণের রূপান্তর বা রিডাকশন ইতিপূর্বে ২০১৪ সালেই প্রমাণিত হয়েছিল।. 

লেখকরা দেখিয়েছেন যে, ইলাস্টিক নেটের প্রতিটি উদাহরণের জন্য এমন একটি কৃত্রিম বাইনারি ক্লাসিফিকেশন সমস্যা তৈরি করা সম্ভব, যাতে একটি রৈখিক বা লিনিয়ার সাপোর্ট ভেক্টর মেশিনের (এসভিএম) হাইপার-প্লেন সমাধানটি (রিস্কেল বা পুনরায় স্কেল করার পর) ইলাস্টিক নেটের সমাধান  -এর অভিন্ন হয়। এই রূপান্তর বা রিডাকশনের ফলে ইলাস্টিক নেটের সমস্যার সমাধানে অত্যন্ত উন্নত ও অপ্টিমাইজড এসভিএম সলভারগুলো (solvers) সরাসরি ব্যবহার করা সম্ভব হয়। এটি জিপিউ (গ্রাফিক্স প্রোসেসিং ইউনিট) এক্সিলারেশন ব্যবহারের সুযোগও তৈরি করে দেয়, যা বড় মাপের এসভিএম সলভারগুলোতে প্রায়শই ব্যবহৃত হয়ে থাকে। 

২০১৪ সালে ল্যাসো (LASSO)-এর জন্যও একই ধরণের একটি রূপান্তর প্রমাণিত হয়েছিল।
এই রূপান্তরটি মূলত মূল তথ্য বা অরিজিনাল ডেটা এবং রেগুলারাইজেশন ধ্রুবকগুলোর একটি সাধারণ রূপান্তর মাত্র।



নতুন কৃত্রিম ডেটা ইনস্ট্যান্স এবং একটি রেগুলারাইজেশন ধ্রুবকে রূপান্তর করা হয়, যা একটি বাইনারি ক্লাসিফিকেশন সমস্যা এবং এসভিএম রেগুলারাইজেশন ধ্রুবককে নির্দিষ্ট করে।



এখানে,  বাইনারি লেবেল  নিয়ে গঠিত। যখন   হয়, তখন সাধারণত লিনিয়ার এসভিএমকে 'প্রাইমাল' (primal) পদ্ধতিতে সমাধান করা দ্রুততর হয়, অন্যথায় 'ডুয়াল' ফর্মুলেশন বেশি দ্রুত কাজ করে। কিছু লেখক এই রূপান্তরটিকে 'সাপোর্ট ভেক্টর ইলাস্টিক নেট' (এসভিইএন) হিসেবে অভিহিত করেছেন এবং নিচের ম্যাটল্যাব ছদ্ম-কোডটি (pseudo-code) প্রদান করেছেন:

function β=SVEN(X, y, t, λ2);
    [n,p] = size(X); 
    X2 = [bsxfun(@minus, X, y./t); bsxfun(@plus, X, y./t)]’;
    Y2 = [ones(p,1);-ones(p,1)];
    if 2p > n then 
        w = SVMPrimal(X2, Y2, C = 1/(2*λ2));
        α = C * max(1-Y2.*(X2*w), 0); 
    else
        α = SVMDual(X2, Y2, C = 1/(2*λ2)); 
    end if
    β = t * (α(1:p) - α(p+1:2p)) / sum(α);

 সফটওয়্যার 

 "Glmnet: ল্যাসো এবং ইলাস্টিক-নেট রেগুলারাইজড জেনারালাইজড লিনিয়ার মডেলস" হলো একটি সফটওয়্যার যা আর (R) সোর্স প্যাকেজ এবং একটি ম্যাটল্যাব (MATLAB) টুলবক্স হিসেবে বাস্তবায়ন করা হয়েছে। এটি সাইক্লিকাল কোঅর্ডিনেট ডিসেন্ট ব্যবহার করে এবং রেগুলারাইজেশন পাথের মাধ্যমে গণনাকৃত ℓ1 (ল্যাসো), ℓ2 (রিজ রিগ্রেশন) এবং উভয় পেনাল্টির মিশ্রণ (ইলাস্টিক নেট) সহ জেনারালাইজড লিনিয়ার মডেল প্রাক্কলনের দ্রুত অ্যালগরিদম সরবরাহ করে।
 জেএমপি প্রো ১১ (JMP Pro 11)-এ 'ফিট মডেল'-এর সাথে জেনারালাইজড রিগ্রেশন ব্যবহার করে ইলাস্টিক নেট রেগুলারাইজেশন অন্তর্ভুক্ত করা হয়েছে।
 "পেনসিম (pensim): সিমুলেশন অফ হাই-ডাইমেনশনাল ডেটা অ্যান্ড প্যারালালাইজড রিপিটেড পেনালজড রিগ্রেশন" ℓ প্যারামিটারগুলোর একটি বিকল্প এবং সমান্তরাল  দ্বিমাত্রিক (2D) টিউনিং পদ্ধতি বাস্তবায়ন করে; যে পদ্ধতিটি উন্নত প্রেডিকশন ও নির্ভুলতা প্রদান করে বলে দাবি করা হয়।

 সাইকিট-লার্ন (scikit-learn)-এ ইলাস্টিক নেট রেগুলারাইজেশন সহ লিনিয়ার রিগ্রেশন এবং লজিস্টিক রিগ্রেশন অন্তর্ভুক্ত রয়েছে।
 এসভিইএন, যা সাপোর্ট ভেক্টর ইলাস্টিক নেটের একটি ম্যাটল্যাব (Matlab) বাস্তবায়ন। এই সলভারটি ইলাস্টিক নেট সমস্যাকে একটি এসভিএম বাইনারি ক্লাসিফিকেশন সমস্যায় রূপান্তরিত করে এবং সমাধান খোঁজার জন্য ম্যাটল্যাব এসভিএম সলভার ব্যবহার করে। যেহেতু এসভিএম সহজেই প্যারালাইজ করা (parallelizable) যায়, তাই আধুনিক হার্ডওয়্যারে এই কোডটি Glmnet-এর চেয়ে দ্রুততর হতে পারে। 
 SpaSM, একটি ম্যাটল্যাব ভিত্তিক বাস্তবায়ন, যা স্পার্স রিগ্রেশন (sparse regression), ক্লাসিফিকেশন এবং প্রিন্সিপাল কম্পোনেন্ট অ্যানালাইসিস (পিসিএ) করতে সক্ষম; এর মধ্যে ইলাস্টিক নেট রেগুলারাইজড রিগ্রেশনও অন্তর্ভুক্ত।  

 অ্যাপাচি স্পার্ক (Apache Spark) তার MLlib মেশিন লার্নিং লাইব্রেরিতে ইলাস্টিক নেট রিগ্রেশনের সুবিধা প্রদান করে। এই পদ্ধতিটি সাধারণ লিনিয়ার রিগ্রেশন (LinearRegression) ক্লাসের একটি প্যারামিটার হিসেবে ব্যবহার করা যায়।

 এসএএস (সফটওয়্যার)-এর 'Glmselect' প্রসিডিউর (procedure)  and এস‌এএস ভিয়া প্রসিডিউর রেগসিলেক্ট  মডেল নির্বাচনের ক্ষেত্রে ইলাস্টিক নেট রেগুলারাইজেশনের ব্যবহার সমর্থন করে।
 তথ্যসূত্র 

 আরো পড়ো 


 বহিঃসংযোগ 
 Regularization and Variable Selection via the Elastic Net (presentation)

Category:Logistic regression
Category:Regression analysis
Category:Machine learning algorithms