প্রশ্নটিতে বর্ণিত লাসো অনুমানটি হ'ল ল্যাঞ্জরেঞ্জ গুণকটি নিম্নলিখিত অপটিমাইজেশন সমস্যার সমতুল্য:
minimize f(β) subject to g(β)≤t
f(β)g(β)=12n||y−Xβ||22=||β||1
এই অপটিমাইজিয়নে একটি বহুমাত্রিক গোলক এবং একটি পলিটোপের (এক্স এর ভেক্টর দ্বারা বিস্তৃত) মধ্যে যোগাযোগের বিন্দুটি খুঁজে পাওয়ার একটি জ্যামিতিক উপস্থাপনা রয়েছে । পলিটপের পৃষ্ঠটি g(β) । গোলকের ব্যাসার্ধের বর্গক্ষেত্রটি f(β) ফাংশনটি উপস্থাপন করে এবং উপরিভাগের সাথে যোগাযোগ করলে এটি হ্রাস করা হয়।
নীচের চিত্রগুলি একটি গ্রাফিকাল ব্যাখ্যা সরবরাহ করে। চিত্রগুলি 3 টি দৈর্ঘ্যের ভেক্টরগুলির সাথে নিম্নলিখিত সরল সমস্যাটি ব্যবহার করেছে (সরলতার জন্য অঙ্কন করতে সক্ষম হবার জন্য):
⎡⎣⎢y1y2y3⎤⎦⎥=⎡⎣⎢1.41.840.32⎤⎦⎥=β1⎡⎣⎢0.80.60⎤⎦⎥+β2⎡⎣⎢00.60.8⎤⎦⎥+β3⎡⎣⎢0.60.64−0.48⎤⎦⎥+⎡⎣⎢ϵ1ϵ2ϵ3⎤⎦⎥
এবং আমরা im 2 1 + ϵ 2 2 + min হ্রাস করুন ϵϵ21+ϵ22+ϵ23 বাধ্যতা সঙ্গেabs(β1)+abs(β2)+abs(β3)≤t
চিত্রগুলি দেখায়:
- লাল পৃষ্ঠটি প্রতিবন্ধকতাটি দেখায়, এক্স দ্বারা বিস্তৃত একটি পলিটোপ।
- এবং সবুজ পৃষ্ঠটি ন্যূনতম পৃষ্ঠ, একটি গোলক চিত্রিত করে।
- নীল লাইন শো Lasso পথ, সমাধান যে আমরা পরিবর্তন খুঁজে t বা λ ।
- সবুজ ভেক্টর শো OLS ঔজ্জ্বল্যের প্রেক্ষাপটে সমাধান Y (যা মনোনীত হন β 1 = β 2 = β 3 = 1 বা Y = এক্স 1 + + এক্স 2 + + এক্স 3 ।y^β1=β2=β3=1y^=x1+x2+x3
- তিনটি কালো ভেক্টর হ'ল x1=(0.8,0.6,0) , x2=(0,0.6,0.8) এবং x3=(0.6,0.64,−0.48) ।
আমরা তিনটি চিত্র দেখায়:
- প্রথম চিত্রটিতে পলিটোপের একটি মাত্র বিন্দুটি গোলকের সাথে স্পর্শ করছে । এই চিত্রটি খুব ভালভাবে প্রমাণ করে যে কেন লাসো সলিউশনটি ওএলএস সমাধানের একাধিক নয়। OLS ঔজ্জ্বল্যের প্রেক্ষাপটে সমাধান দিক সমষ্টি শক্তিশালী যোগ |β|1 । এই ক্ষেত্রে শুধুমাত্র একটি একক βi অ-শূন্য।
- দ্বিতীয় চিত্রটিতে পলিটোপের একটি শৃঙ্খলাটি গোলকটিকে স্পর্শ করছে (উচ্চ মাত্রায় আমরা উচ্চতর মাত্রিক এনালগগুলি পাই)। এক্ষেত্রে একাধিক βi অ-শূন্য।
- তৃতীয় চিত্রটিতে বহুভুজটির একটি দিকটি গোলকের সাথে স্পর্শ করছে । এই ক্ষেত্রে সব βi অশূন্য হয় ।
পরিসীমা t বা λ , যার জন্য আমরা প্রথম ও তৃতীয় মামলা রয়েছে সহজেই তাদের সহজ জ্যামিতিক উপস্থাপনা কারণে গণনা করা যেতে পারে।
কেস 1: কেবলমাত্র একক βi শূন্য নয়
নন-জিরো βi এক, যার জন্য সংশ্লিষ্ট ভেক্টর হয় xi সঙ্গে সহভেদাংক সর্বোচ্চ পরম মান আছে y^ parrallelotope যা OLS ঔজ্জ্বল্যের প্রেক্ষাপটে সমাধান নিকটস্থ বিন্দু যায়)। আমরা Lagrange, গুণক নিরূপণ করতে পারেন λmax যার নীচে আমরা অন্তত একটি নন-জিরো আছে β সঙ্গে ব্যুৎপন্ন গ্রহণ করে ±βi (নিদর্শন কিনা আমরা বৃদ্ধি উপর নির্ভর করে βi নেতিবাচক বা ইতিবাচক দিক):
∂(12n||y−Xβ||22−λ||β||1)±∂βi=0
যা বাড়ে
λআমি একটি এক্স= ( 1)2 এন∂( | | y)- এক্সβ| |22± ∂βআমি)( | | β)| |1)± ∂βআমি)= ± ∂( ঘ2 এন| | Y- এক্সβ| |22∂βআমি= ± 1এনএক্সআমি⋅ y
যা সমান | | এক্সটিY| |∞ মন্তব্য উল্লেখ করেছে।
যেখানে আমাদের লক্ষ্য করা উচিত যে এটি কেবলমাত্র সেই বিশেষ ক্ষেত্রে সত্য যেখানে পলিটপের টিপটি গোলকের সাথে স্পর্শ করছে ( তাই এটি সাধারণ সমাধান নয় , যদিও সাধারণীকরণ সোজা হলেও)।
কেস 3: সমস্ত βআমি শূন্য নয়।
এক্ষেত্রে বহুভুজের একটি দিকটি গোলকের সাথে স্পর্শ করছে। তারপরে ল্যাসো পথ পরিবর্তনের দিকটি নির্দিষ্ট দিকের পৃষ্ঠের দিকে স্বাভাবিক ।
Polytope অনেক মতকে, এর ইতিবাচক ও নেতিবাচক অবদানের মাধ্যমে হয়েছে এক্সআমি । শেষ লাসো পদক্ষেপের ক্ষেত্রে, যখন লসো সলিউশন অলস সলিউশনের কাছাকাছি থাকে, তবে এক্সআমি এর অবদানগুলি অবশ্যই ওএলএস সমাধানের চিহ্ন দ্বারা সংজ্ঞায়িত করা উচিত। পল স্বাভাবিক ফাংশন গ্রেডিয়েন্ট গ্রহণ করে সংজ্ঞায়িত করা যায় | | β( আর ) | |1 , সময়ে বিটা এর সমষ্টি মান R , যা:
n = - ∇R( | | β)( আর ) | |1) = - ∇R( সাইন ( β^)⋅(XTX)−1XTr)=−sign(β^)⋅(XTX)−1XT
এবং এই দিকের জন্য বিটার সমতুল্য পরিবর্তনটি হ'ল:
β⃗ last=(XTX)−1Xn=−(XTX)−1XT[sign(β^)⋅(XTX)−1XT]
যা ট্রান্সপোজস ( ATBT=[BA]T ) স্থানান্তরিত এবং বন্ধনী বিতরণের সাথে কিছু বীজগণিত কৌশলগুলির পরে পরিণত হয়
β⃗ last=−(XTX)−1sign(β^)
আমরা এই দিকটি স্বাভাবিক করি:
β⃗ last,normalized=β⃗ last∑β⃗ last⋅sign(β^)
জন্য λমি i এন যার নীচে সব কোফিসিয়েন্টস হয় নন-জিরো। আমাদের কেবলমাত্র ওএলএস সমাধান থেকে সেই বিন্দুতে ফিরে গণনা করতে হবে যেখানে সহগের একটি শূন্য,
ঘ= মি i এন ( β^β⃗ l a s t , n o r m a l i zই ডি)শর্তটি যে β^β⃗ l a s t , n o r m a l i zই ডি> 0
,and at this point we evaluate the derivative (as before when we calculate λআমি একটি এক্স). We use that for a quadratic function we have কুই'( x ) = 2 কিউ( 1 ) এক্স:
λমি i এন= ডিএন| | এক্সβ⃗ l a s t , n o r m a l i zই ডি| |22
Images
βআমি
পলিটোপের একটি রিজ (বা একাধিক মাত্রায় পৃথক) গোলকটিকে স্পর্শ করছে, অনেকগুলি βআমি শূন্য নয়:
বহুভুজের একটি দিকটি গোলকটিকে স্পর্শ করছে, সমস্তটি βআমি শূন্য নয়:
কোড উদাহরণ:
library(lars)
data(diabetes)
y <- diabetes$y - mean(diabetes$y)
x <- diabetes$x
# models
lmc <- coef(lm(y~0+x))
modl <- lars(diabetes$x, diabetes$y, type="lasso")
# matrix equation
d_x <- matrix(rep(x[,1],9),length(x[,1])) %*% diag(sign(lmc[-c(1)]/lmc[1]))
x_c = x[,-1]-d_x
y_c = -x[,1]
# solving equation
cof <- coefficients(lm(y_c~0+x_c))
cof <- c(1-sum(cof*sign(lmc[-c(1)]/lmc[1])),cof)
# alternatively the last direction of change in coefficients is found by:
solve(t(x) %*% x) %*% sign(lmc)
# solution by lars package
cof_m <-(coefficients(modl)[13,]-coefficients(modl)[12,])
# last step
dist <- x %*% (cof/sum(cof*sign(lmc[])))
#dist_m <- x %*% (cof_m/sum(cof_m*sign(lmc[]))) #for comparison
# calculate back to zero
shrinking_set <- which(-lmc[]/cof>0) #only the positive values
step_last <- min((-lmc/cof)[shrinking_set])
d_err_d_beta <- step_last*sum(dist^2)
# compare
modl[4] #all computed lambda
d_err_d_beta # lambda last change
max(t(x) %*% y) # lambda first change
enter code here
দ্রষ্টব্য: শেষ তিনটি লাইন সর্বাধিক গুরুত্বপূর্ণ
> modl[4] # all computed lambda by algorithm
$lambda
[1] 949.435260 889.315991 452.900969 316.074053 130.130851 88.782430 68.965221 19.981255 5.477473 5.089179
[11] 2.182250 1.310435
> d_err_d_beta # lambda last change by calculating only last step
xhdl
1.310435
> max(t(x) %*% y) # lambda first change by max(x^T y)
[1] 949.4353
লিখেছেন স্ট্যাকএক্সচেঞ্জ স্ট্রাইক