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

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

8
ทำไมนิวตันถึงไม่ใช้วิธีการอย่างกว้างขวางในการเรียนรู้ของเครื่อง?
นี่คือสิ่งที่ทำให้ฉันหยุดอยู่พักหนึ่งและฉันไม่พบคำตอบที่น่าพอใจทางออนไลน์ดังนั้นที่นี่จะไป: หลังจากตรวจสอบชุดของการบรรยายเกี่ยวกับการเพิ่มประสิทธิภาพของนูนวิธีการของนิวตันดูเหมือนจะเป็นอัลกอริธึมที่เหนือกว่าการไล่ระดับสีเพื่อค้นหาทางออกที่ดีที่สุดทั่วโลกเพราะวิธีการของนิวตันสามารถรับประกันการแก้ปัญหาได้ ไกลน้อยกว่าขั้นตอน ทำไมอัลกอริธึมการเพิ่มประสิทธิภาพอันดับสองเช่นวิธีของนิวตันไม่ได้ใช้กันอย่างแพร่หลายเช่นเดียวกับการไล่ระดับสีแบบสุ่มในปัญหาการเรียนรู้ของเครื่อง?

3
การไล่ระดับสีแบบแบทช์กับการไล่ระดับสีแบบสุ่ม
สมมติว่าเรามีชุดการฝึกอบรมสำหรับม. นอกจากนี้สมมติว่าเราใช้อัลกอริทึมการเรียนรู้แบบมีผู้สอนในชุดฝึกอบรม สมมติฐานจะแสดงเป็นn} เราต้องการที่จะหาพารามิเตอร์ที่ลด "ระยะทาง" ระหว่างและ{(i)}) ให้(x(i),y(i))(x(i),y(i))(x_{(i)}, y_{(i)})i=1,…,mi=1,…,mi = 1, \dots, mhθ(x(i))=θ0+θ1x(i)1+⋯+θnx(i)nhθ(x(i))=θ0+θ1x(i)1+⋯+θnx(i)nh_{\theta}(x_{(i)}) = \theta_0+\theta_{1}x_{(i)1} + \cdots +\theta_{n}x_{(i)n}θθ\mathbf{\theta}y(i)y(i)y_{(i)}hθ(x(i))hθ(x(i))h_{\theta}(x_{(i)})J(θ)=12∑i=1m(y(i)−hθ(x(i))2J(θ)=12∑i=1m(y(i)−hθ(x(i))2J(\theta) = \frac{1}{2} \sum_{i=1}^{m} (y_{(i)}-h_{\theta}(x_{(i)})^{2} จากนั้นเราก็ต้องการที่จะหาที่ช่วยลดtheta) ในการไล่ระดับสีเราทำการเตรียมพารามิเตอร์แต่ละตัวและทำการอัพเดทต่อไปนี้:θθ\thetaJ(θ)J(θ)J(\theta)θj:=θj−α∂∂θjJ(θ)θj:=θj−α∂∂θjJ(θ)\theta_j := \theta_j-\alpha \frac{\partial}{\partial \theta_{j}} J(\theta) อะไรคือความแตกต่างที่สำคัญระหว่างการไล่ระดับสีแบบแบทช์และการไล่ระดับสีแบบสุ่มแบบสุ่ม ทั้งคู่ใช้กฎการอัพเดทข้างต้น แต่สิ่งหนึ่งดีกว่าอันอื่นหรือไม่

6
เหตุใดจึงใช้การไล่ระดับสีแบบลาดชันสำหรับการถดถอยเชิงเส้นเมื่อมีวิธีการแก้ปัญหาคณิตศาสตร์แบบปิด
ฉันกำลังเรียนหลักสูตร Machine Learning ออนไลน์และเรียนรู้เกี่ยวกับ Gradient Descent สำหรับการคำนวณค่าที่ดีที่สุดในสมมติฐาน h(x) = B0 + B1X ทำไมเราต้องใช้ Gradient Descent หากเราสามารถหาค่าได้ง่ายด้วยสูตรด้านล่าง นี่ดูตรงไปตรงมาและง่ายเกินไป แต่ GD ต้องการการวนซ้ำหลายครั้งเพื่อรับค่า B1 = Correlation * (Std. Dev. of y/ Std. Dev. of x) B0 = Mean(Y) – B1 * Mean(X) หมายเหตุ:ถ่ายในhttps://www.dezyre.com/data-science-in-r-programming-tutorial/linear-regression-tutorial ฉันตรวจสอบคำถามด้านล่างและสำหรับฉันมันก็ไม่ชัดเจนที่จะเข้าใจ ทำไมต้องใช้การไล่ระดับสี เหตุใดการเพิ่มประสิทธิภาพจึงถูกแก้ไขด้วยการไล่ระดับสีแทนที่จะใช้โซลูชันการวิเคราะห์ คำตอบข้างต้นเปรียบเทียบ GD กับการใช้อนุพันธ์

2
การแก้หาพารามิเตอร์การถดถอยในรูปแบบปิดเทียบกับการไล่ระดับสี
ในหลักสูตรการเรียนรู้ของเครื่องแอนดรูว์เขาแนะนำการถดถอยเชิงเส้นและการถดถอยโลจิสติกส์และแสดงวิธีการปรับพารามิเตอร์โมเดลโดยใช้การไล่ระดับสีแบบลาดและวิธีของนิวตัน ฉันรู้ว่าการไล่ระดับสีจะมีประโยชน์ในบางแอปพลิเคชันของการเรียนรู้ของเครื่อง (เช่น backpropogation) แต่ในกรณีทั่วไปมากขึ้นมีเหตุผลใด ๆ ที่คุณจะไม่แก้สำหรับพารามิเตอร์ในรูปแบบปิด - เช่นโดยการหาอนุพันธ์ของ ฟังก์ชั่นค่าใช้จ่ายและการแก้ไขผ่านทางแคลคูลัส? อะไรคือข้อดีของการใช้อัลกอริทึมแบบวนซ้ำเช่นการไล่ระดับสีแบบลาดชันเหนือโซลูชันแบบปิดโดยทั่วไปเมื่อมีให้ใช้งาน?

3
เหตุใดนักวิจัยเครือข่ายประสาทจึงสนใจเกี่ยวกับยุค
ยุคในโคตรลาดไล่ระดับถูกกำหนดเป็นผ่านเดียวผ่านข้อมูล สำหรับมินิบัสของ SGD แต่ละอันจะมีการสุ่มตัวอย่างkkkการคำนวณการไล่ระดับสีและพารามิเตอร์จะได้รับการอัพเดต ในการตั้งค่ายุคตัวอย่างจะถูกวาดโดยไม่ต้องเปลี่ยน แต่ดูเหมือนว่าไม่จำเป็น ทำไมไม่ดึงมินิบัสของ SGD แต่ละอันมาเป็นสุ่มจากข้อมูลทั้งหมดในแต่ละรอบ จากยุคจำนวนมากความเบี่ยงเบนเล็ก ๆ ที่กลุ่มตัวอย่างเห็นมากหรือน้อยมักจะดูเหมือนไม่สำคัญkkk

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

5
เครื่องมือเพิ่มประสิทธิภาพของอดัมพร้อมการสลายตัวแบบทวีคูณ
ในรหัส Tensorflow ส่วนใหญ่ฉันเห็น Adam Optimizer ใช้กับอัตราการเรียนรู้คงที่1e-4(เช่น 0.0001) รหัสมักจะมีลักษณะดังต่อไปนี้: ...build the model... # Add the optimizer train_op = tf.train.AdamOptimizer(1e-4).minimize(cross_entropy) # Add the ops to initialize variables. These will include # the optimizer slots added by AdamOptimizer(). init_op = tf.initialize_all_variables() # launch the graph in a session sess = tf.Session() # Actually …

1
ขนาดของแบทช์ควรมีขนาดเท่าใดสำหรับการไล่ระดับสีแบบสุ่ม
ฉันเข้าใจว่าอาจใช้การไล่ระดับสีแบบสโตแคสติกเพื่อเพิ่มประสิทธิภาพโครงข่ายประสาทเทียมโดยใช้การทำ backpropagation โดยการอัพเดทแต่ละการวนซ้ำด้วยตัวอย่างชุดข้อมูลการฝึกอบรมที่แตกต่างกัน ขนาดของแบทช์ควรใหญ่แค่ไหน?

4
อะไรคือความแตกต่างระหว่างการไล่ระดับสีแบบโมเมนตัมที่มีโมเมนตัมและการไล่ระดับสีแบบเร่งรัดของ Nesterov
ดังนั้นการไล่ระดับสีตามโมเมนตัมจึงทำงานดังนี้: v=self.momentum∗m−lr∗gv=self.momentum∗m−lr∗gv=self.momentum*m-lr*g โดยที่คือการปรับปรุงน้ำหนักก่อนหน้านี้และคือการไล่ระดับสีในปัจจุบันที่เกี่ยวกับพารามิเตอร์ ,คืออัตราการเรียนรู้และเป็นค่าคงที่กรัมพีลิตรR s อีลิตรฉ มo มอีn T U เมตรmmmgggppplrlrlrself.momentumself.momentumself.momentum pnew=p+v=p+self.momentum∗m−lr∗gpnew=p+v=p+self.momentum∗m−lr∗gp_{new} = p + v = p + self.momentum * m - lr * g และโคตรลาดชันของ Nesterov ที่เร่งได้ดังนี้ pnew=p+self.momentum∗v−lr∗gpnew=p+self.momentum∗v−lr∗gp_{new} = p + self.momentum * v - lr * g ซึ่งเทียบเท่ากับ: pnew=p+self.momentum∗(self.momentum∗m−lr∗g)−lr∗gpnew=p+self.momentum∗(self.momentum∗m−lr∗g)−lr∗gp_{new} = p + self.momentum * (self.momentum * m …

1
ความแตกต่างระหว่าง GradientDescentOptimizer และ AdamOptimizer (TensorFlow)?
ผมเคยเขียนง่ายMLPในTensorFlowซึ่งจะสร้างแบบจำลองXOR ประตู ดังนั้นสำหรับ: input_data = [[0., 0.], [0., 1.], [1., 0.], [1., 1.]] มันควรผลิตดังต่อไปนี้: output_data = [[0.], [1.], [1.], [0.]] เครือข่ายมีเลเยอร์อินพุตเลเยอร์ที่ซ่อนอยู่และเลเยอร์เอาท์พุทที่มีเซลล์ประสาท 2, 5 และ 1 เซลล์ ขณะนี้ฉันมีเอนโทรปีของการข้ามต่อไปนี้: cross_entropy = -(n_output * tf.log(output) + (1 - n_output) * tf.log(1 - output)) ฉันได้ลองทางเลือกที่ง่ายกว่านี้แล้ว: cross_entropy = tf.square(n_output - output) ควบคู่ไปกับความพยายามอื่น ๆ อย่างไรก็ตามไม่ว่าสิ่งที่การตั้งค่าของฉันคือข้อผิดพลาดที่มีการGradientDescentOptimizerลดลงมากAdamOptimizerช้ากว่า ในความเป็นtf.train.AdamOptimizer(0.01)จริงให้ผลลัพธ์ที่ดีจริงๆหลังจากขั้นตอนการเรียนรู้ …

1
วิธีการอาดัมของโคตรลาดลงแบบสุ่มทำงานอย่างไร
ฉันคุ้นเคยกับอัลกอริธึมการไล่ระดับสีพื้นฐานสำหรับการฝึกอบรมโครงข่ายประสาท ฉันได้อ่านกระดาษเสนออดัม: ADAM: เป็นวิธีการในการเพิ่มประสิทธิภาพ ในขณะที่ฉันมีความเข้าใจอย่างแน่นอน(อย่างน้อย) กระดาษดูเหมือนจะอยู่ในระดับสูงเกินไปสำหรับฉันโดยรวม ตัวอย่างเช่นฟังก์ชั่นต้นทุนมักจะเป็นผลรวมของฟังก์ชั่นที่แตกต่างกันจำนวนมากดังนั้นจึงต้องทำการคำนวณจำนวนมากเพื่อปรับค่าให้เหมาะสม การไล่ระดับสีแบบสุ่มสุ่ม - เท่าที่ฉันเข้าใจหัวข้อ - คำนวณการเพิ่มประสิทธิภาพสำหรับเซตย่อยของฟังก์ชันเหล่านี้เท่านั้น สำหรับผมแล้วมันก็ไม่มีความชัดเจนว่าอดัมไม่นี้และทำไมผลในลดลงข้อผิดพลาดการฝึกอบรมสำหรับทั้งของJ ( θ )J( θ )J(θ)J(\theta)J(θ)J(θ)J(\theta) ฉันคิดว่าอดัมอัปเดตการไล่ระดับสีโดยคำนึงถึงการไล่ระดับสีก่อนหน้า พวกเขาเรียกมันว่าการใช้โมเมนตัม โมเมนตัมนี้คืออะไร? ตามอัลกอริทึมในหน้าสองในกระดาษมันเป็นค่าเฉลี่ยเคลื่อนที่บางอย่างเช่นค่าประมาณของช่วงเวลาที่หนึ่งและสองของการไล่ระดับสี "ปกติ" หรือไม่? ในทางปฏิบัติฉันจะสงสัยว่าอดัมสามารถใช้ขนาดขั้นตอนที่มีประสิทธิภาพมากขึ้นในการลดการไล่ระดับสีดังนั้นข้อผิดพลาดในการฝึกอบรมเมื่อใช้ร่วมกับการประมาณแบบสุ่ม ดังนั้นเวกเตอร์การอัพเดทที่ได้ผลลัพธ์ควร "กระโดด" รอบ ๆ ในมิติเชิงพื้นที่มากกว่าที่จะอธิบายถึงเส้นโค้งบางอย่างเช่นอัลกอริธึมการไล่ระดับสีปกติ บางคนสามารถแยกแยะว่าอดัมทำงานอย่างไร? โดยเฉพาะอย่างยิ่งวิธีการที่มันมาบรรจบกันโดยเฉพาะว่าทำไมวิธีการของอดัมทำงานและสิ่งที่เป็นประโยชน์คืออะไร?

1
โครงข่ายประสาทเทียม: โมเมนตัมการเปลี่ยนแปลงน้ำหนักและการลดน้ำหนัก
โมเมนตัมใช้เพื่อลดความผันผวนของการเปลี่ยนแปลงน้ำหนักในการวนซ้ำตามลำดับ:αα\alpha ที่E(W)เป็นฟังก์ชั่นข้อผิดพลาดW- เวกเตอร์ของน้ำหนักที่η- การเรียนรู้อัตราΔ โอห์มผม( t + 1 ) = - η∂E∂Wผม+ อัลฟ่าΔ โอห์มผม( T ) ,Δωi(t+1)=−η∂E∂wi+αΔωi(t),\Delta\omega_i(t+1) = - \eta\frac{\partial E}{\partial w_i} + \alpha \Delta \omega_i(t),E( w )E(w)E({\bf w})Ww{\bf w}ηη\eta การลดน้ำหนักลงโทษการเปลี่ยนแปลงน้ำหนัก:λλ\lambda Δωi(t+1)=−η∂E∂wi−ληωiΔωi(t+1)=−η∂E∂wi−ληωi\Delta\omega_i(t+1) =- \eta\frac{\partial E}{\partial w_i} - \lambda\eta\omega_i คำถามคือถ้ามันเหมาะสมที่จะรวมทั้งเทคนิคในระหว่างการเผยแพร่กลับและสิ่งที่มันจะมีผล? Δωi(t+1)=−η∂E∂wi+αΔωi(t)−ληωiΔωi(t+1)=−η∂E∂wi+αΔωi(t)−ληωi\Delta\omega_i(t+1) = - \eta\frac{\partial E}{\partial w_i} + \alpha \Delta \omega_i(t) - …

4
ฟังก์ชันการเปิดใช้งาน rectilinear ช่วยแก้ปัญหาการไล่ระดับสีที่หายไปในเครือข่ายประสาทได้อย่างไร
ฉันพบหน่วยการเชิงเส้นที่ถูกต้อง (ReLU) ยกย่องในหลาย ๆ ที่เพื่อแก้ปัญหาการไล่ระดับสีที่หายไปสำหรับเครือข่ายประสาท นั่นคือหนึ่งใช้สูงสุด (0, x) เป็นฟังก์ชั่นการเปิดใช้งาน เมื่อการเปิดใช้งานเป็นบวกจะเห็นได้ชัดว่านี่เป็นสิ่งที่ดีกว่าพูดว่าฟังก์ชั่นการเปิดใช้งาน sigmoid เนื่องจากการสืบทอดมาเป็น 1 เสมอแทนที่จะเป็นค่าเล็ก ๆ โดยพลการสำหรับ x ขนาดใหญ่ ในทางกลับกันการได้มานั้นคือ 0 เมื่อ x น้อยกว่า 0 ในกรณีที่แย่ที่สุดเมื่อหน่วยไม่เคยถูกเปิดใช้งานน้ำหนักของหน่วยนี้จะไม่เปลี่ยนแปลงอีกต่อไปและหน่วยจะไม่มีประโยชน์ตลอดไป - ซึ่งดูเหมือนว่า เลวร้ายยิ่งกว่าการไล่ระดับสีขนาดเล็กที่หายไปมาก อัลกอริทึมการเรียนรู้จะจัดการกับปัญหานั้นอย่างไรเมื่อพวกเขาใช้ ReLU

2
ใครเป็นผู้คิดค้นการไล่ระดับสีแบบสุ่มสุ่ม?
ฉันพยายามที่จะเข้าใจประวัติศาสตร์ของการไล่โทนสีเชื้อสายและStochastic การไล่ระดับสีโคตร เชื้อสายไล่โทนสีถูกคิดค้นในCauchyใน 1,847 Méthode Generale pour la ความละเอียด des systèmes d'สมsimultanées ได้ pp. 536-538 สำหรับข้อมูลเพิ่มเติมเกี่ยวกับเรื่องนี้ดูที่นี่ ตั้งแต่นั้นมาวิธีการลาดลงของการไล่ระดับสีก็ยังคงพัฒนาอยู่และฉันไม่คุ้นเคยกับประวัติของพวกเขา โดยเฉพาะอย่างยิ่งฉันสนใจในการประดิษฐ์เชื้อสายการไล่ระดับสีสุ่ม การอ้างอิงที่สามารถใช้ในงานวิชาการได้มากกว่าที่ได้รับการต้อนรับ

2
เราจำเป็นต้องมีการไล่ระดับสีเพื่อหาค่าสัมประสิทธิ์ของตัวแบบการถดถอยเชิงเส้นหรือไม่?
ผมพยายามที่จะเรียนรู้การเรียนรู้เครื่องใช้วัสดุ Coursera ในการบรรยายครั้งนี้แอนดรูว์อึ้งใช้อัลกอริธึมการไล่ระดับสีเพื่อค้นหาค่าสัมประสิทธิ์ของตัวแบบการถดถอยเชิงเส้นที่จะลดฟังก์ชั่นข้อผิดพลาด (ฟังก์ชันต้นทุน) สำหรับการถดถอยเชิงเส้นเราจำเป็นต้องมีการไล่ระดับสี ดูเหมือนว่าฉันสามารถวิเคราะห์ความแตกต่างของฟังก์ชั่นข้อผิดพลาดและตั้งค่าเป็นศูนย์เพื่อแก้ค่าสัมประสิทธิ์; นั่นถูกต้องใช่ไหม?

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