คำถามติดแท็ก gradient-descent

การไล่ระดับสีเป็นขั้นตอนวิธีการเพิ่มประสิทธิภาพแบบวนซ้ำลำดับที่หนึ่ง ในการหาค่าต่ำสุดของฟังก์ชั่นในท้องถิ่นโดยใช้การไล่ระดับสีแบบไล่ระดับจะใช้ขั้นตอนแบบสัดส่วนกับการลบของการไล่ระดับสี (หรือการไล่ระดับสีโดยประมาณ) ของฟังก์ชันที่จุดปัจจุบัน สำหรับการไล่ระดับสีแบบสุ่มสุ่มนอกจากนี้ยังมีแท็ก [sgd]

2
การไล่ระดับสีไม่พบวิธีแก้ปัญหาสำหรับกำลังสองน้อยที่สุดธรรมดาบนชุดข้อมูลนี้?
ฉันได้ศึกษาการถดถอยเชิงเส้นและลองใช้ชุดด้านล่าง {(x, y)} ซึ่ง x ระบุพื้นที่ของบ้านเป็นตารางฟุตและ y ระบุราคาเป็นดอลลาร์ นี่คือตัวอย่างแรกในแอนดรูอึ้งหมายเหตุ 2104.400 1600.330 2400.369 1416.232 3000.540 ฉันพัฒนารหัสตัวอย่าง แต่เมื่อฉันเรียกใช้ราคาจะเพิ่มขึ้นในแต่ละขั้นตอนในขณะที่ควรลดลงในแต่ละขั้นตอน รหัสและผลลัพธ์ที่ได้รับด้านล่าง biasคือ W 0 X 0โดยที่ X 0 = 1 featureWeightsคืออาร์เรย์ของ [X 1 , X 2 , ... , X N ] ฉันยังพยายามวิธีการแก้ปัญหาหลามออนไลน์อยู่ที่นี่และอธิบายที่นี่ แต่ตัวอย่างนี้ยังให้ผลลัพธ์เดียวกัน ช่องว่างในการทำความเข้าใจแนวคิดอยู่ที่ไหน รหัส: package com.practice.cnn; import java.util.Arrays; public class LinearRegressionExample { …

2
เชื้อสายการไล่ระดับสีของ minibatch จะปรับปรุงน้ำหนักสำหรับตัวอย่างในชุดได้อย่างไร
หากเราประมวลผลตัวอย่าง 10 ตัวอย่างในแบตช์ฉันเข้าใจว่าเราสามารถสรุปการสูญเสียสำหรับแต่ละตัวอย่าง แต่การ backpropagation ทำงานอย่างไรในการอัปเดตน้ำหนักสำหรับแต่ละตัวอย่าง ตัวอย่างเช่น: ตัวอย่างที่ 1 -> การสูญเสีย = 2 ตัวอย่างที่ 2 -> การสูญเสีย = -2 ซึ่งส่งผลให้สูญเสียเฉลี่ย 0 (E = 0) ดังนั้นสิ่งนี้จะปรับปรุงน้ำหนักและบรรจบกันได้อย่างไร มันเป็นเพียงการสุ่มของชุดที่เรา "หวังว่า" มาบรรจบกันไม่ช้าก็เร็ว? สิ่งนี้ไม่เพียงคำนวณการไล่ระดับสีสำหรับตุ้มน้ำหนักชุดแรกสำหรับตัวอย่างสุดท้ายที่ประมวลผลด้วยหรือไม่

1
ไล่ระดับสีสำหรับฟังก์ชั่นการสูญเสียโลจิสติก
ฉันจะถามคำถามที่เกี่ยวข้องกับคนนี้ ฉันพบตัวอย่างของการเขียนฟังก์ชันการสูญเสียที่กำหนดเองสำหรับ xgboost ที่นี่ : loglossobj <- function(preds, dtrain) { # dtrain is the internal format of the training data # We extract the labels from the training data labels <- getinfo(dtrain, "label") # We compute the 1st and 2nd gradient, as grad and hess preds <- 1/(1 + exp(-preds)) …

2
เครือข่ายที่เหลือเกี่ยวข้องกับการไล่ระดับสีอย่างรวดเร็วหรือไม่?
เมื่อเร็ว ๆ นี้เราเห็นการเกิดขึ้นของ Residual Neural Net นั้นแต่ละชั้นประกอบด้วยโมดูลการคำนวณและการเชื่อมต่อทางลัดที่เก็บรักษาอินพุตไว้กับเลเยอร์เช่นเอาท์พุทของการจัดแสดงชั้น ith: เครือข่ายอนุญาตให้แยกคุณลักษณะที่เหลือและช่วยให้ความลึกที่ลึกขึ้นในขณะที่มีประสิทธิภาพมากขึ้นสำหรับปัญหาการไล่ระดับสีที่หายไปเพื่อให้ได้ประสิทธิภาพการทำงานที่ทันสมัยy i + 1 = c i + y icicic_iyi+1=ci+yiyi+1=ci+yi y_{i+1} = c_i + y_i การขุดลึกลงไปในการเพิ่มระดับความลาดชันซึ่งเป็นเทคนิคการตระการตาที่ทรงพลังในโลกแห่งการเรียนรู้ของเครื่องซึ่งดูเหมือนว่าจะทำการเพิ่มประสิทธิภาพการไล่ระดับสีบนส่วนที่เหลือของการสูญเสียมันยากที่จะไม่เห็นความคล้ายคลึงกัน ฉันรู้ว่าพวกมันเหมือนกัน แต่ไม่เหมือนกัน - ข้อแตกต่างที่สำคัญอย่างหนึ่งที่ฉันสังเกตเห็นก็คือการเพิ่มความลาดชันนั้นจะทำการปรับให้เหมาะสมที่สุดกับคำศัพท์เสริมในขณะที่ส่วนที่เหลืออยู่จะทำให้เครือข่ายทั้งหมดดีที่สุด ผมไม่ได้เห็นเขา et al, ทราบว่านี่เป็นส่วนหนึ่งของแรงจูงใจของพวกเขาในของพวกเขากระดาษเดิม ดังนั้นฉันจึงสงสัยว่าความเข้าใจของคุณในหัวข้อนี้คืออะไรและขอให้คุณแบ่งปันแหล่งข้อมูลที่น่าสนใจที่คุณมี ขอบคุณ.

1
R / mgcv: เพราะเหตุใดผลิตภัณฑ์ te () และ ti () เทนเซอร์จึงให้พื้นผิวที่แตกต่างกัน
mgcvแพคเกจสำหรับการRมีสองฟังก์ชั่นสำหรับการปฏิสัมพันธ์กระชับเมตริกซ์ผลิตภัณฑ์: และte() ti()ฉันเข้าใจการแบ่งขั้นพื้นฐานของการใช้แรงงานระหว่างคนทั้งสอง (ปรับให้เหมาะสมกับการทำงานแบบไม่เป็นเชิงเส้นเปรียบเทียบกับการย่อยสลายการโต้ตอบนี้เป็นผลกระทบหลักและการโต้ตอบ) สิ่งที่ฉันไม่เข้าใจคือสาเหตุte(x1, x2)และti(x1) + ti(x2) + ti(x1, x2)อาจให้ผลลัพธ์ที่แตกต่าง (เล็กน้อย) MWE (ดัดแปลงมาจาก?ti): require(mgcv) test1 <- function(x,z,sx=0.3,sz=0.4) { x <- x*20 (pi**sx*sz)*(1.2*exp(-(x-0.2)^2/sx^2-(z-0.3)^2/sz^2)+ 0.8*exp(-(x-0.7)^2/sx^2-(z-0.8)^2/sz^2)) } n <- 500 x <- runif(n)/20;z <- runif(n); xs <- seq(0,1,length=30)/20;zs <- seq(0,1,length=30) pr <- data.frame(x=rep(xs,30),z=rep(zs,rep(30,30))) truth <- matrix(test1(pr$x,pr$z),30,30) f <- test1(x,z) y <- f …
11 r  gam  mgcv  conditional-probability  mixed-model  references  bayesian  estimation  conditional-probability  machine-learning  optimization  gradient-descent  r  hypothesis-testing  wilcoxon-mann-whitney  time-series  bayesian  inference  change-point  time-series  anova  repeated-measures  statistical-significance  bayesian  contingency-tables  regression  prediction  quantiles  classification  auc  k-means  scikit-learn  regression  spatial  circular-statistics  t-test  effect-size  cohens-d  r  cross-validation  feature-selection  caret  machine-learning  modeling  python  optimization  frequentist  correlation  sample-size  normalization  group-differences  heteroscedasticity  independence  generalized-least-squares  lme4-nlme  references  mcmc  metropolis-hastings  optimization  r  logistic  feature-selection  separation  clustering  k-means  normal-distribution  gaussian-mixture  kullback-leibler  java  spark-mllib  data-visualization  categorical-data  barplot  hypothesis-testing  statistical-significance  chi-squared  type-i-and-ii-errors  pca  scikit-learn  conditional-expectation  statistical-significance  meta-analysis  intuition  r  time-series  multivariate-analysis  garch  machine-learning  classification  data-mining  missing-data  cart  regression  cross-validation  matrix-decomposition  categorical-data  repeated-measures  chi-squared  assumptions  contingency-tables  prediction  binary-data  trend  test-for-trend  matrix-inverse  anova  categorical-data  regression-coefficients  standard-error  r  distributions  exponential  interarrival-time  copula  log-likelihood  time-series  forecasting  prediction-interval  mean  standard-error  meta-analysis  meta-regression  network-meta-analysis  systematic-review  normal-distribution  multiple-regression  generalized-linear-model  poisson-distribution  poisson-regression  r  sas  cohens-kappa 

2
วิธีการฝึกอบรม SVM ผ่านการ backpropagation?
ฉันสงสัยว่าเป็นไปได้ไหมที่จะฝึก SVM (พูดเป็นเส้นตรงเพื่อทำให้เป็นเรื่องง่าย) โดยใช้การขยายภาพย้อนหลัง? ปัจจุบันฉันอยู่ในอุปสรรคเพราะฉันสามารถคิดได้เฉพาะการเขียนผลลัพธ์ของตัวจําแนกเป็น f(x;θ,b)=sgn(θ⋅x−(b+1))=sgn(g(x;θ,b))f(x;θ,b)=sgn(θ⋅x−(b+1))=sgn(g(x;θ,b)) f(\mathbf{x};\theta,b) = \text{sgn}(\theta\cdot\mathbf{x} - (b+1)) = \text{sgn}(g(\mathbf{x};\theta,b)) ดังนั้นเมื่อเราลองและคำนวณ "ย้อนกลับผ่าน" (ข้อผิดพลาดที่แพร่กระจาย) เราจะได้รับ เนื่องจากอนุพันธ์ของsgn(x)คือ dsgn(x)∂E∂x=∂E∂f(x;θ,b)∂f(x;θ,b)x=∂E∂f(x;θ,b)∂sgn(g(x;θ,b))∂g(x;θ,b)∂g(x;θ,b)∂x=δdsgn(z)dzθ=δ⋅0⋅θ=0∂E∂x=∂E∂f(x;θ,b)∂f(x;θ,b)x=∂E∂f(x;θ,b)∂sgn(g(x;θ,b))∂g(x;θ,b)∂g(x;θ,b)∂x=δdsgn(z)dzθ=δ⋅0⋅θ=0 \begin{align} \frac{\partial E}{\partial \mathbf{x}} &= \frac{\partial E}{\partial f(\mathbf{x};\theta,b)} \frac{\partial f(\mathbf{x};\theta,b)}{\mathbf{x}} \\ &= \frac{\partial E}{\partial f(\mathbf{x};\theta,b)} \frac{\partial \text{sgn}(g(\mathbf{x};\theta,b))}{\partial g(\mathbf{x};\theta,b)} \frac{\partial g(\mathbf{x};\theta,b)}{\partial \mathbf{x}} \\ &= \delta \, \frac{d \text{sgn}(z)}{dz} \, \theta \\ &= …

4
เมื่อใดจึงควรใช้ Gradient descent vs Monte Carlo เป็นเทคนิคการหาค่าเหมาะที่สุดเชิงตัวเลข
เมื่อชุดของสมการไม่สามารถแก้ไขได้เชิงวิเคราะห์เราสามารถใช้อัลกอริธึมการไล่ระดับสี แต่ดูเหมือนว่ายังมีวิธีการจำลองมอนติคาร์โลที่สามารถใช้ในการแก้ปัญหาที่ไม่มีวิธีการวิเคราะห์ จะบอกได้อย่างไรว่าจะใช้การไล่ระดับสีแบบไล่ระดับและเมื่อใดที่จะใช้ Monte Carlo หรือฉันแค่สับสนคำว่า 'การจำลอง' กับ 'การเพิ่มประสิทธิภาพ' แบบธรรมดา ขอบคุณมาก!

1
แบบจำลองของ P (Y | X) สามารถฝึกผ่านการไล่ระดับสีแบบสุ่มจากตัวอย่างที่ไม่ใช่ iid ของ P (X) และตัวอย่าง iid ของ P (Y | X) ได้หรือไม่?
เมื่อการฝึกอบรมแบบจำลองพารามิเตอร์ (เช่นเพื่อเพิ่มโอกาส) ผ่านการไล่ระดับสีแบบสุ่มในชุดข้อมูลบางอย่างก็มักจะสันนิษฐานว่าตัวอย่างการฝึกอบรมจะถูกดึงออกมาจากการกระจายข้อมูลการฝึกอบรม ดังนั้นหากเป้าหมายคือการสร้างแบบจำลองการแจกแจงร่วมดังนั้นตัวอย่างการฝึกอบรมแต่ละตัวอย่างควรถูกดึงออกมาจากการกระจายนั้น( x i , y i )P( X, วาย)P(X,Y)P(X,Y)( xผม, yผม)(xi,yi)(x_i,y_i) หากเป้าหมายคือการจำลองแบบการแจกแจงแบบมีเงื่อนไขดังนั้นความต้องการของ iid จะเปลี่ยนไปอย่างไรถ้าหากทั้งหมดP( Y| X)P(Y|X)P(Y|X) เราจะต้องดึงตัวอย่างแต่ละตัวอย่าง iid จากการกระจายข้อต่อหรือไม่?( xผม, yผม)(xi,yi)(x_i,y_i) เราควรจะวาด IID จากแล้ววาด IID จาก ? P ( X ) y i P ( Y | X )xผมxix_iP( X)P(X)P(X)Yผมyiy_iP( Y| X)P(Y|X)P(Y|X) เราสามารถวาดไม่ IID จาก (เช่นความสัมพันธ์ในช่วงเวลา) แล้ววาด …

4
การเพิ่มประสิทธิภาพโคตรลาด
ฉันกำลังพยายามทำความเข้าใจกับการหาค่าเหมาะที่สุดสำหรับการไล่ระดับสีแบบลาดชันในขั้นตอนวิธี ML (การเรียนรู้ของเครื่อง) ผมเข้าใจว่ามีค่าใช้จ่ายในฟังก์ชั่นที่มีจุดมุ่งหมายเพื่อลดข้อผิดพลาดyy ในสถานการณ์ที่น้ำหนักได้รับการปรับให้เหมาะสมเพื่อให้เกิดข้อผิดพลาดขั้นต่ำและมีการใช้อนุพันธ์บางส่วนมันเปลี่ยนทั้งและในแต่ละขั้นตอนหรือเป็นการรวมกัน (เช่นในการทำซ้ำสองสามเท่านั้นเท่านั้นและ เมื่อไม่ได้ลดความผิดพลาดอีกต่อไปอนุพันธ์เริ่มต้นด้วย )? แอปพลิเคชันอาจเป็นแบบจำลองการถดถอยเชิงเส้นแบบจำลองการถดถอยแบบโลจิสติกหรือการเพิ่มอัลกอริทึมY^- yY^-Y\hat y-yW1,W2W1,W2w_1, w_2W1W1w_1W2W2w_2W1W1w_1W1W1w_1W2W2w_2

2
ทำไมขั้นตอนของฉันถึงเล็กลงเมื่อใช้ขนาดขั้นตอนคงที่ในการไล่ระดับสีแบบลาดชัน
สมมติว่าเรากำลังทำตัวอย่างของเล่นในการไล่ระดับสีที่ดีลดฟังก์ชันกำลังสองโดยใช้ขั้นตอนขนาดคงที่\( )xTAxxTAxx^TAxα=0.03α=0.03\alpha=0.03A=[10,2;2,3]A=[10,2;2,3]A=[10, 2; 2, 3] ถ้าเราพล็อตการติดตามของในการวนซ้ำแต่ละครั้งเราจะได้ตัวเลขดังต่อไปนี้ ทำไมคะแนนจึงมีความหนาแน่นสูงเมื่อเราใช้ขนาดขั้นตอนคงที่ โดยสังหรณ์ใจมันไม่ได้ดูเหมือนขนาดขั้นตอนคงที่ แต่ขนาดขั้นตอนลดลงxxx PS: รหัส R รวมถึงพล็อต A=rbind(c(10,2),c(2,3)) f <-function(x){ v=t(x) %*% A %*% x as.numeric(v) } gr <-function(x){ v = 2* A %*% x as.numeric(v) } x1=seq(-2,2,0.02) x2=seq(-2,2,0.02) df=expand.grid(x1=x1,x2=x2) contour(x1,x2,matrix(apply(df, 1, f),ncol=sqrt(nrow(df))), labcex = 1.5, levels=c(1,3,5,10,20,40)) grid() opt_v=0 alpha=3e-2 x_trace=c(-2,-2) x=c(-2,-2) while(abs(f(x)-opt_v)>1e-6){ x=x-alpha*gr(x) …

1
ทำไมสืบเชื้อสายการไล่ระดับสีใกล้เคียงแทนวิธีการ subgradient ธรรมดาสำหรับ Lasso?
ฉันคิดที่จะแก้ Lasso ผ่านวิธีการ subgradient วานิลลา แต่ฉันได้อ่านคนที่แนะนำให้ใช้การไล่ระดับสีแบบ Proximal บางคนสามารถเน้นว่าทำไม GD GD ใกล้เคียงแทนที่จะใช้วิธีการ subgradient วานิลลาสำหรับ Lasso?

1
การเพิ่มระดับความลาดชันเป็นเหมือนการไล่ระดับสี
ฉันกำลังอ่านรายการ Wikipedia ที่เป็นประโยชน์เกี่ยวกับการเพิ่มการไล่ระดับสี ( https://en.wikipedia.org/wiki/Gradient_boosting ) และพยายามเข้าใจว่า / ทำไมเราสามารถประมาณส่วนที่เหลือโดยขั้นบันไดที่ลาดชัน (หรือที่เรียกว่าการไล่ระดับสีเทียม) ) ทุกคนสามารถให้สัญชาตญาณการเชื่อมโยงที่ลาดชัน / คล้ายกับของที่เหลือได้อย่างไร ช่วยชื่นชมมาก!

2
กำหนดอัตราการเรียนรู้ที่เหมาะสมที่สุดสำหรับการไล่ระดับสีในการถดถอยเชิงเส้น
เราจะกำหนดอัตราการเรียนรู้ที่เหมาะสมที่สุดสำหรับการไล่ระดับสีได้อย่างไร ฉันคิดว่าฉันสามารถปรับได้โดยอัตโนมัติหากฟังก์ชันต้นทุนส่งคืนค่าที่มากกว่าในการคำนวณซ้ำก่อนหน้านี้ (อัลกอริทึมจะไม่มาบรรจบกัน) แต่ฉันไม่แน่ใจว่าควรใช้มูลค่าใหม่แบบไหน
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.