ที่เล็กที่สุดคืออะไร


14

กำหนดประมาณการ lassoที่i ^ {th}แถวx_i \ in \ mathbb {R} ^ pของเมทริกซ์การออกแบบX \ in \ mathbb {R} ^ {n \ times p}เป็นเวกเตอร์ ของ covariates สำหรับการอธิบายการตอบสนองแบบสุ่มy_i (สำหรับi = 1, \ dot n )

β^λ=arg⁡minβ∈Rp12n‖y−Xβ‖22+λ‖β‖1,
ithxi∈RpX∈Rn×pyii=1,…n

เรารู้ว่าสำหรับλ≥1n‖XTy‖∞ประมาณการเชือกβ^λ=00 (ดูตัวอย่างเช่นเชือกและริดจ์ปรับพารามิเตอร์ขอบเขต .) ในสัญกรณ์อื่น ๆ นี้จะแสดงว่าλmax=1n‖XTy‖∞Y ขอให้สังเกตว่าλmax=supβ^λ≠0λ.เราสามารถมองเห็นสิ่งนี้ด้วยภาพต่อไปนี้ซึ่งแสดงเส้นทางการแก้ไขแบบ lasso:

เส้นทางของ lasso solution

ขอให้สังเกตว่าในไกลด้านขวามือของพล็อตทั้งหมดของสัมประสิทธิ์เป็นศูนย์ สิ่งนี้เกิดขึ้นที่จุดλmaxอธิบายไว้ข้างต้น

จากพล็อตนี้เรายังสังเกตเห็นว่าบนไกลด้านซ้ายทั้งหมดของค่าสัมประสิทธิ์ที่มีภัณฑ์: สิ่งที่เป็นคุณค่าของที่ส่วนประกอบใด ๆเป็นครั้งแรกเป็นศูนย์? นั่นคือเท่ากับฟังก์ชันของและ ? ฉันสนใจโซลูชันแบบปิด โดยเฉพาะอย่างยิ่งฉันไม่สนใจวิธีการแก้ปัญหาอัลกอริทึมเช่นเช่นแนะนำว่า LARS สามารถค้นหาปมผ่านการคำนวณบีตา λλβ^λ

λmin=min∃js.t.β^j=0λ
YXy

แม้จะมีความสนใจของฉันดูเหมือนว่าอาจไม่สามารถใช้ได้ในรูปแบบปิดเนื่องจากมิฉะนั้นแพ็คเกจการคำนวณแบบบ่วงบาศน่าจะใช้ประโยชน์จากมันเมื่อพิจารณาความลึกของพารามิเตอร์การปรับในระหว่างการตรวจสอบความถูกต้องไขว้ ด้วยเหตุนี้ฉันจึงสนใจในสิ่งใดก็ตามที่สามารถแสดงได้ในเชิงทฤษฎีเกี่ยวกับและ (ยัง) สนใจเป็นพิเศษในรูปแบบปิด λ m ฉันnλminλmin


นี่คือที่ระบุและพิสูจน์ในกระดาษglmnet
— Matthew Drury

@MatthewDrury ขอบคุณที่แชร์สิ่งนี้! อย่างไรก็ตามบทความนี้ดูเหมือนจะไม่แบ่งปันสิ่งที่คุณดูเหมือนจะแนะนำให้ทำ โดยเฉพาะอย่างยิ่งที่แจ้งให้ทราบล่วงหน้าของฉันเป็นของพวกเขา\λ นาทีλmaxλmin
— user795305

คุณแน่ใจหรือว่าเราต้องการแท็ก [tuning-parameter]
— อะมีบาพูดว่า Reinstate Monica

1
คุณถูกต้องไม่มีรูปแบบปิดสำหรับโซลูชัน lasso โดยทั่วไปแล้วไม่มีอยู่ (ดูstats.stackexchange.com/questions/174003/… ) อย่างไรก็ตามอย่างน้อย lars จะบอกคุณว่าเกิดอะไรขึ้นและภายใต้เงื่อนไขที่แน่นอน / ในเวลาที่คุณสามารถเพิ่ม / ลบตัวแปรได้ ฉันคิดว่านี่เป็นสิ่งที่ดีที่สุดที่คุณจะได้รับ
— chRrr

1
@chRrr ผมไม่แน่ใจว่าเป็นธรรมอย่างสมบูรณ์จะพูดว่า: เรารู้ว่าสำหรับ\ นั่นคือในกรณีที่รุนแรงของการแก้ปัญหาเป็น 0 เรามีรูปแบบปิด ฉันถามว่าคล้ายกันเป็นจริงในกรณีสุดขีดของการประมาณเชือกแบบคร่าวๆว่าหนาแน่นหรือไม่ อันที่จริงฉันไม่สนใจแม้แต่รายการแน่ชัดว่าเป็นศูนย์หรือไม่ λ≥1β^λ=0บีตา λλ≥1n‖Xty‖∞β^λ
— user795305

คำตอบ:


15

การประมาณการแบบบ่วงบาศที่อธิบายไว้ในคำถามคือตัวคูณแบบลากรองจ์ของปัญหาการปรับให้เหมาะสมต่อไปนี้:

minimize f(β) subject to g(β)≤t

f(β)=12n||y−Xβ||22g(β)=||β||1

optimizazion นี้มีการนำเสนอทางเรขาคณิตในการค้นหาจุดสัมผัสระหว่างทรงกลมหลายมิติและโพลิปท็อป (ทอดด้วยเวกเตอร์ของ X) พื้นผิวของ polytope หมายเบต้า) สแควร์ของรัศมีของทรงกลมแสดงถึงฟังก์ชั่นและถูกย่อให้เล็กสุดเมื่อสัมผัสกับพื้นผิว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]
ϵ 2 1 + ϵ 2 2 + ϵ 2 3 และเราลดกับข้อ จำกัดϵ12+ϵ22+ϵ32abs(β1)+abs(β2)+abs(β3)≤t

ภาพแสดง:

  • พื้นผิวสีแดงแสดงให้เห็นถึงข้อ จำกัด ซึ่งเป็นโพลีท็อปซึ่งขยายโดย X
  • และพื้นผิวสีเขียวแสดงให้เห็นถึงพื้นผิวที่เรียบง่ายเป็นทรงกลม
  • สีฟ้าแสดงเส้นเส้นทางเชือก, การแก้ปัญหาที่เราพบขณะที่เราเปลี่ยนหรือ\tλ
  • สีเขียวเวกเตอร์แสดงให้เห็นว่าการแก้ปัญหา OLS (ซึ่งได้รับเลือกเป็นหรือx_3y^β1=β2=β3=1 Y =x1+x2+x3y^=x1+x2+x3
  • สามเวกเตอร์สีดำเป็น ,และ-0.48)x1=(0.8,0.6,0)x2=(0,0.6,0.8)x3=(0.6,0.64,−0.48)

เราแสดงภาพสามภาพ:

  1. ในภาพแรกเพียงจุด polytope ที่สัมผัสทรงกลม ภาพนี้แสดงให้เห็นได้อย่างดีว่าเหตุใดโซลูชัน lasso จึงไม่ใช่เพียงแค่โซลูชัน OLS หลายตัว ทิศทางของการแก้ปัญหา OLS เพิ่มมากขึ้นเพื่อรวม\ ในกรณีนี้มีเพียงเดียวไม่ใช่ศูนย์|β|1βi
  2. ในภาพที่สองสันเขาของ polytope สัมผัสกับทรงกลม (ในมิติที่สูงกว่าเราจะได้มิติแอนะล็อกที่สูงขึ้น) ในกรณีนี้มีหลายไม่ใช่ศูนย์βi
  3. ในภาพที่สามแง่ TOF polytope จะสัมผัสทรงกลม ในกรณีนี้ทั้งหมดβiเป็นภัณฑ์

ช่วงของหรือที่เรามีกรณีแรกและที่สามสามารถคำนวณได้ง่าย ๆ เนื่องจากการแทนค่าทางเรขาคณิตอย่างง่ายtλ

กรณีที่ 1: มีเพียงเดียวที่ไม่ใช่ศูนย์βi

ไม่ใช่ศูนย์เป็นเวกเตอร์ที่เกี่ยวข้องมีค่าสัมบูรณ์สูงสุดของความแปรปรวนร่วมกับ (นี่คือจุดของ parrallelotope ซึ่งใกล้เคียงกับโซลูชัน OLS มากที่สุด) เราสามารถคำนวณตัวคูณลากรองจ์ด้านล่างซึ่งเรามีอย่างน้อยไม่ใช่ศูนย์โดยการหาอนุพันธ์ด้วย (เครื่องหมายขึ้นอยู่กับว่าเราเพิ่มในทิศทางลบหรือบวก):βixiY λ เมตรx β ± β ฉันβ ฉันy^λmaxβ±βiβi

∂(12n||y−Xβ||22−λ||β||1)±∂βi=0

ซึ่งนำไปสู่

λmax=(12n∂(||y−Xβ||22±∂βi)(||β||1)±∂βi)=±∂(12n||y−Xβ||22∂βi=±1nxi⋅y

ซึ่งเท่ากับกล่าวถึงในความคิดเห็น||XTy||∞

ที่เราควรสังเกตว่านี่เป็นความจริงสำหรับกรณีพิเศษที่ปลายของโพลีท็อปสัมผัสกับทรงกลม ( ดังนั้นนี่ไม่ใช่วิธีการแก้ปัญหาทั่วไปแม้ว่าการวางนัยทั่วไปจะตรงไปตรงมา)

กรณีที่ 3:ทั้งหมดไม่ใช่ศูนย์βi

ในกรณีนี้โพลีท็อปด้านสัมผัสกับทรงกลม จากนั้นทิศทางของการเปลี่ยนแปลงของเส้นทางบ่วงเป็นเรื่องปกติไปยังพื้นผิวของด้านใดด้านหนึ่ง

polytope มีหลายแง่มุมที่มีผลงานในเชิงบวกและเชิงลบของx_iในกรณีของขั้นตอนสุดท้ายของ lasso เมื่อโซลูชัน lasso ใกล้กับ ols solution ดังนั้นการมีส่วนร่วมของต้องถูกกำหนดโดยเครื่องหมายของโซลูชัน OLS ปกติของด้านสามารถกำหนดได้โดยใช้การไล่ระดับสีของฟังก์ชั่น , ค่าของผลรวมของเบต้าที่จุดซึ่งคือ:xixi||β(r)||1r

n=−∇r(||β(r)||1)=−∇r(sign(β^)⋅(XTX)−1XTr)=−sign(β^)⋅(XTX)−1XT

และการเปลี่ยนแปลงที่เท่าเทียมกันของเบต้าสำหรับทิศทางนี้คือ:

β→last=(XTX)−1Xn=−(XTX)−1XT[sign(β^)⋅(XTX)−1XT]

ซึ่งหลังจากเทคนิคเกี่ยวกับพีชคณิตบางอย่างที่มีการเปลี่ยน transposes ( ) และการกระจายของวงเล็บจะกลายเป็นATBT=[BA]T

β→last=−(XTX)−1sign(β^)

เราทำให้ทิศทางนี้เป็นปกติ:

β→last,normalized=β→last∑β→last⋅sign(β^)

หากต้องการค้นหาด้านล่างซึ่งสัมประสิทธิ์ทั้งหมดไม่ใช่ศูนย์ เราต้องคำนวณย้อนกลับจากโซลูชัน OLS กลับไปยังจุดที่สัมประสิทธิ์อย่างใดอย่างหนึ่งเป็นศูนย์λmin

d=min(β^β→last,normalized)with the condition that β^β→last,normalized>0

และ ณ จุดนี้เราจะประเมินอนุพันธ์ (เหมือนเมื่อก่อนที่เราคำนวณ ) เราใช้สิ่งนั้นสำหรับฟังก์ชันกำลังสองเรามี :λmaxq′(x)=2q(1)x

λmin=dn||Xβ→last,normalized||22

ภาพ

จุดหนึ่งของโพกำลังสัมผัสกับทรงกลมหนึ่งเดียวไม่ใช่ศูนย์:βi

ขั้นตอนแรกของเส้นทางบ่วง

สันเขา (หรือแตกต่างกันในหลายมิติ) ของ polytope สัมผัสกับทรงกลมจำนวนมากไม่ใช่ศูนย์:βi

เส้นทางกลางของ Lasso

ด้านหนึ่งของ polytope สัมผัสกับทรงกลมทั้งหมดนั้นไม่ใช่ศูนย์:βi

ขั้นตอนสุดท้ายของเส้นทางบ่วง

ตัวอย่างรหัส:

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

เขียนโดยStackExchangeStrike


ขอบคุณที่รวมการแก้ไข! จนถึงตอนนี้ที่ฉันอ่านฉันติดอยู่กับส่วน "กรณีที่ 1" ผลลัพธ์สำหรับได้มานั้นผิดเนื่องจากไม่มีค่าสัมบูรณ์หรือค่าสูงสุด เรารู้เพิ่มเติมว่ามีข้อผิดพลาดตั้งแต่ต้นกำเนิดมีข้อผิดพลาดในการลงชื่อสถานที่ที่ถือว่าความแตกต่างนั้นเป็นทางผิด "ทางเลือกโดยพลการ" ของเพื่อแยกแยะด้วยความเคารพและอนุพันธ์ที่ประเมินไม่ถูกต้อง หากต้องการพูดอย่างตรงไปตรงมาไม่มีเครื่องหมาย " " ที่ถูกต้อง λmaxi=
— user795305

ฉันแก้ไขด้วยเครื่องหมายบวกลบ การเปลี่ยนแปลงของเบต้าอาจเป็นไปได้หรือเชิงลบ เกี่ยวกับค่าสูงสุดและ "ตัวเลือกโดยพลการ" ... "ซึ่งเวกเตอร์ที่เกี่ยวข้องมีความแปรปรวนร่วมสูงสุดกับ "xiy^
— Sextus Empiricus

ขอบคุณสำหรับการอัพเดท! อย่างไรก็ตามยังมีปัญหาอยู่ ตัวอย่างเช่นถูกประเมินอย่างไม่ถูกต้อง ∂∂βi‖y−Xβ‖22
— user795305

ถ้าดังนั้นความสัมพันธ์นี้เข้าสู่สมการเพราะ ถ้า s = 0 ดังนั้นการเปลี่ยนแทนเจนต์เป็นคือการเปลี่ยนความยาวของเวกเตอร์β=0∂∂βi||y−Xβ||22
=∂||y−Xβ||2∂βi2||y−Xβ||2
=∂||y−sxi||2∂s2||y−Xβ||2
=2cor(xi,y)||xi||2||y||2
=2xi⋅y
sxiyy−sxi
— Sextus Empiricus

อ่าโอเคมีข้อ จำกัด ในเรื่องของคุณ! (คุณกำลังใช้ทั้งและค่าสัมประสิทธิ์ไม่เป็นศูนย์) ยิ่งไปกว่านั้นความเท่าเทียมกันครั้งที่สองในบรรทัดที่มีนั้นทำให้เข้าใจผิดเนื่องจากสัญญาณอาจเปลี่ยนไปเนื่องจากความแตกต่างของค่าสัมบูรณ์ β=0λmax
— user795305
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.