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

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

5
เหตุใด k- หมายถึงไม่ให้ขั้นต่ำทั่วโลก
ฉันอ่านว่าอัลกอริทึม k-mean จะแปลงเป็นค่าต่ำสุดในท้องถิ่นเท่านั้นและไม่ใช่ระดับต่ำสุดทั่วโลก ทำไมนี้ ฉันสามารถคิดอย่างมีเหตุผลว่าการกำหนดค่าเริ่มต้นอาจส่งผลกระทบต่อการจัดกลุ่มสุดท้ายและมีความเป็นไปได้ของการจัดกลุ่มย่อยที่เหมาะสม แต่ฉันไม่พบสิ่งใดที่จะพิสูจน์ได้ในเชิงคณิตศาสตร์ นอกจากนี้เหตุใด k-หมายถึงกระบวนการวนซ้ำ เราไม่สามารถแยกความแตกต่างของฟังก์ชั่นวัตถุประสงค์เพียงเล็กน้อยกับเซนทรอยด์, แบ่งมันให้เป็นศูนย์เพื่อค้นหาเซนทรอยด์ที่ลดฟังก์ชั่นนี้ได้หรือไม่? เหตุใดเราต้องใช้การไล่ระดับสีเพื่อเข้าถึงขั้นตอนทีละน้อย?


3
การเรียนรู้แบบออนไลน์และแบบกลุ่มแตกต่างกันอย่างไร
ฉันกำลังอ่านกระดาษอย่างมีประสิทธิภาพออนไลน์และการเรียนรู้แบบแบตช์โดยใช้การแยกไปข้างหน้า - ถอยหลังโดย John Duchi และ Yoram Singer ฉันสับสนมากเกี่ยวกับการใช้คำว่า 'ออนไลน์' และ 'แบทช์' ฉันคิดว่า 'ออนไลน์' หมายถึงเราอัปเดตพารามิเตอร์น้ำหนักหลังจากประมวลผลข้อมูลการฝึกอบรมหนึ่งหน่วย จากนั้นเราใช้พารามิเตอร์น้ำหนักใหม่เพื่อประมวลผลหน่วยถัดไปของข้อมูลการฝึกอบรม อย่างไรก็ตามในกระดาษข้างต้นการใช้งานไม่ชัดเจน

1
โคตรการไล่ระดับสีแบบสุ่มสามารถประหยัดเวลาได้อย่างไรเมื่อเปรียบเทียบกับการไล่ระดับสีแบบมาตรฐาน
Standard Gradient Descent จะคำนวณการไล่ระดับสีสำหรับชุดข้อมูลการฝึกอบรมทั้งหมด for i in range(nb_epochs): params_grad = evaluate_gradient(loss_function, data, params) params = params - learning_rate * params_grad สำหรับจำนวน epoch ที่กำหนดไว้ล่วงหน้าเราจะคำนวณเวกเตอร์ไล่ระดับ weights_grad ของฟังก์ชันการสูญเสียสำหรับชุดข้อมูลทั้งหมด wrt พารามิเตอร์เวกเตอร์พารามิเตอร์ของเรา ความแตกต่างของการไล่ระดับสีแบบสุ่มสุ่มทำการปรับปรุงพารามิเตอร์สำหรับแต่ละตัวอย่างการฝึกอบรม x (i) และเลเบล y (i) for i in range(nb_epochs): np.random.shuffle(data) for example in data: params_grad = evaluate_gradient(loss_function, example, params) params = params …

1
ชี้แจงเกี่ยวกับกฎ Perceptron เทียบกับการไล่สีไล่ระดับและการไล่สีแบบไล่ระดับ Stochastic
ฉันทดลองใช้งาน Perceptron ต่างกันเล็กน้อยและต้องการตรวจสอบให้แน่ใจว่าฉันเข้าใจ "การทำซ้ำ" อย่างถูกต้องหรือไม่ กฎ perceptron ดั้งเดิมของ Rosenblatt เท่าที่ฉันเข้าใจในอัลกอริทึม Perceptron แบบคลาสสิกของ Rosenblatt น้ำหนักถูกปรับปรุงพร้อมกันหลังจากทุกตัวอย่างการฝึกอบรมผ่าน Δw(t+1)=Δw(t)+η(target−actual)xiΔw(t+1)=Δw(t)+η(target−actual)xi\Delta{w}^{(t+1)} = \Delta{w}^{(t)} + \eta(target - actual)x_i ที่etaetaetaคือกฎการเรียนรู้ที่นี่ และเป้าหมายและที่เกิดขึ้นจริงมีทั้งเกณฑ์ (-1 หรือ 1) ฉันใช้มันเป็น 1 ซ้ำ = 1 ผ่านตัวอย่างการฝึกอบรม แต่เวกเตอร์น้ำหนักถูกปรับปรุงหลังจากแต่ละตัวอย่างการฝึกอบรม และฉันคำนวณค่า "จริง" เป็น sign(wwTxx)=sign(w0+w1x1+...+wdxd)sign(wwTxx)=sign(w0+w1x1+...+wdxd) sign ({\pmb{w}^T\pmb{x}}) = sign( w_0 + w_1 x_1 + ... + w_d x_d) …

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

1
CNN หลีกเลี่ยงปัญหาการไล่ระดับสีที่หายไปได้อย่างไร
ฉันอ่านมากเกี่ยวกับเครือข่ายประสาทการสนทนาและสงสัยว่าพวกเขาจะหลีกเลี่ยงปัญหาการไล่ระดับสีที่หายไปได้อย่างไร ฉันรู้ว่าเครือข่ายที่มีความเชื่อลึกนั้นมีกองเข้ารหัสอัตโนมัติระดับเดียวหรือเครือข่ายตื้น ๆ ที่ผ่านการฝึกอบรมล่วงหน้าและสามารถหลีกเลี่ยงปัญหานี้ได้ แต่ฉันไม่รู้ว่ามันจะหลีกเลี่ยงได้อย่างไรใน CNNs ตามที่Wikipedia : แม้จะมีปัญหาการไล่ระดับสีที่หายไป แต่พลังการประมวลผลที่เหนือกว่าของ GPU ทำให้การเผยแพร่กลับเป็นไปได้อย่างง่ายดายสำหรับเครือข่ายประสาทที่มีการป้อนลึกแบบหลายชั้น ฉันไม่เข้าใจว่าทำไมการประมวลผล GPU จะลบปัญหานี้หรือไม่

1
ทำไมเราไม่ใช้อัตราการเรียนรู้ที่ไม่คงที่เพื่อไล่ระดับสีที่เหมาะสมสำหรับสิ่งอื่น ๆ จากนั้นจึงใช้โครงข่ายประสาทเทียม
วรรณกรรมการเรียนรู้ลึกนั้นเต็มไปด้วยเทคนิคที่ชาญฉลาดโดยใช้อัตราการเรียนรู้ที่ไม่คงที่ในการไล่ระดับสี สิ่งต่าง ๆ เช่นการสลายตัวแบบเอ็กซ์โพเนนเชียล, RMSprop, Adagrad ฯลฯ นั้นง่ายต่อการติดตั้งและมีอยู่ในชุดการเรียนรู้ลึก ๆ มีเหตุผลสำหรับสิ่งนี้หรือไม่? ถ้าเป็นที่คนไม่สนใจมีเหตุผลทำไมเราไม่ต้องดูแลนอกเครือข่ายประสาท?

4
มันจะถูกขังอยู่ในจุดอานได้อย่างไร?
ตอนนี้ฉันรู้สึกสับสนนิดหน่อยจากการที่การไล่ระดับสีมินิแบทช์สามารถติดอยู่ในจุดอานม้าได้ วิธีแก้ปัญหาอาจเล็กน้อยเกินไปที่ฉันไม่เข้าใจ คุณได้รับตัวอย่างใหม่ทุกยุคและคำนวณข้อผิดพลาดใหม่ตามแบทช์ใหม่ดังนั้นฟังก์ชั่นค่าใช้จ่ายจะคงที่เฉพาะสำหรับแต่ละชุดซึ่งหมายความว่าการไล่ระดับสีควรเปลี่ยนสำหรับมินิแต่ละชุด .. แต่ตามนี้ควร การใช้วานิลลามีปัญหากับคะแนน saddle หรือไม่? ความท้าทายที่สำคัญอีกประการหนึ่งของการลดฟังก์ชั่นข้อผิดพลาดแบบไม่นูนสูงที่พบได้ทั่วไปสำหรับเครือข่ายประสาทคือการหลีกเลี่ยงการติดกับดักใน minima ท้องถิ่นที่น้อยที่สุด Dauphin และคณะ [19] ยืนยันว่าความยากลำบากเกิดขึ้นจริง ๆ แล้วไม่ใช่จากท้องถิ่นน้อยที่สุด แต่มาจากจุดอานคือจุดที่มิติหนึ่งลาดขึ้นและลาดลงอีก จุดอานเหล่านี้มักจะล้อมรอบด้วยที่ราบสูงของข้อผิดพลาดเดียวกันซึ่งทำให้ยากที่จะหนีออกจากสิงคโปร์ได้เนื่องจากการไล่ระดับสีนั้นใกล้เคียงกับศูนย์ในทุกมิติ ฉันหมายความว่าโดยเฉพาะอย่างยิ่ง SGD จะมีข้อได้เปรียบที่ชัดเจนกับจุดอานม้าเนื่องจากมันแปรปรวนไปตามจุดบรรจบ ... ความผันผวนและการสุ่มตัวอย่างและฟังก์ชั่นค่าใช้จ่ายที่แตกต่างกันสำหรับยุคแต่ละครั้งควรมีเหตุผลเพียงพอ สำหรับการไล่ระดับแบตช์ที่เหมาะสมจะทำให้รู้สึกว่าสามารถติดอยู่ในจุดอานม้าได้เนื่องจากฟังก์ชันข้อผิดพลาดคงที่ ฉันสับสนเล็กน้อยในสองส่วนอื่น ๆ

1
ฟังก์ชั่นค่าใช้จ่ายสำหรับการโจรตามบริบท
ฉันใช้Wabbit vowpalในการแก้ปัญหาตามบริบทโจร ฉันแสดงโฆษณาต่อผู้ใช้และฉันมีข้อมูลพอสมควรเกี่ยวกับบริบทที่แสดงโฆษณา (เช่นผู้ใช้คือใครไซต์ใดที่พวกเขาเปิดอยู่เป็นต้น) นี้ดูเหมือนว่าจะเป็นปัญหาโจรคลาสสิกสวยตามบริบทตามที่อธิบายไว้โดยจอห์นแลง ในสถานการณ์ของฉันมีการตอบสนองหลัก 2 อย่างที่ผู้ใช้สามารถทำได้กับโฆษณา: การคลิก (อาจเป็นหลายครั้ง) หรือไม่คลิก ฉันมีโฆษณาประมาณ 1,000 รายการที่ฉันสามารถเลือกได้ Vowpal Wabbit ต้องการตัวแปรเป้าหมายในรูปแบบของaction:cost:probabilityแต่ละบริบท ในกรณีของฉันactionและprobabilityง่ายต่อการเข้าใจ: actionเป็นโฆษณาที่ฉันเลือกที่จะแสดงและprobabilityเป็นโอกาสในการเลือกโฆษณานั้นที่ได้รับนโยบายปัจจุบันของฉันสำหรับการแสดงโฆษณา อย่างไรก็ตามฉันมีปัญหาในการหาวิธีที่ดีในการจับคู่การจ่ายเงิน (คลิก) กับค่าใช้จ่าย เห็นได้ชัดว่าการคลิกนั้นดีและการคลิกหลายครั้งในโฆษณาเดียวกันก็ยังดีกว่าการคลิกครั้งเดียวในโฆษณาเดียวกัน อย่างไรก็ตามการไม่คลิกโฆษณานั้นเป็นกลางจริง ๆ แล้วมันไม่ได้ทำให้ฉันเสียอะไรเลยนอกจากโอกาสที่จะพลาดการคลิก (ฉันกำลังทำงานในบริบทการโฆษณาที่แปลก) ความคิดบางอย่างที่ฉันมีคือ: ราคา = -1 * เครื่องหมาย (คลิก) + 0 * (ไม่ได้คลิก) ราคา = -1 * คลิก + 0 * (ไม่ได้คลิก) ราคา = -1 …

2
ฟังก์ชัน Gradient descent vs lm () ใน R?
ฉันกำลังดูวิดีโอในหลักสูตรการเรียนรู้ภาษาออนไลน์ของ Andrew Ng ที่ Stanford เขากล่าวถึง Gradient Descent เป็นอัลกอริทึมในการแก้ปัญหาการถดถอยเชิงเส้นและการเขียนฟังก์ชั่นในระดับแปดเสียงเพื่อดำเนินการ สมมุติว่าฉันสามารถเขียนฟังก์ชันเหล่านั้นใน R ใหม่ได้ แต่คำถามของฉันไม่ใช่ฟังก์ชัน lm () ให้ผลลัพธ์ของการถดถอยเชิงเส้นแล้ว ทำไมฉันต้องการเขียนฟังก์ชันการไล่ระดับสีของตัวเอง มีข้อได้เปรียบหรือว่าเป็นแบบฝึกหัดการเรียนรู้เท่านั้น? lm () ทำโคตรลาดชันหรือไม่?

5
ทำไมการไล่ระดับสีที่ไม่มีประสิทธิภาพสำหรับชุดข้อมูลขนาดใหญ่?
สมมติว่าชุดข้อมูลของเรามีตัวอย่าง 1 ล้านตัวอย่างเช่นและเราต้องการใช้การไล่ระดับสีแบบไล่ระดับเพื่อทำการโลจิสติกหรือการถดถอยเชิงเส้นบนชุดข้อมูลเหล่านี้x1,…,x106x1,…,x106x_1, \ldots, x_{10^6} อะไรคือวิธีการไล่ระดับสีที่ทำให้มันไม่มีประสิทธิภาพ? จำได้ว่าขั้นตอนการไล่ระดับสีในเวลามอบให้โดย:ttt wt+1=wt+ηt∇f(x)wt+1=wt+ηt∇f(x)w_{t+1} = w_{t} + \eta_t \nabla f(x) โดยที่คือฟังก์ชันการสูญเสียfff ฉันไม่เห็นอะไรผิดปกติกับขั้นตอนข้างต้นที่ทำให้อัลกอริทึมไม่มีประสิทธิภาพ มันเป็นการคำนวณของหรือไม่? การดำเนินการนี้ไม่สามารถคำนวณได้ล่วงหน้าเช่นคำนวณแล้วและประเมินได้ที่แต่ละจุดข้อมูล∂ f∇f(x)∇f(x)\nabla f(x) xฉัน?∂f∂x∂f∂x\frac{\partial f}{\partial x}xi?xi?x_i?

1
ทำไมอัลกอริธึม“ Saddle-Free Newton” ที่ไม่ได้นำมาใช้ในทางปฏิบัติ?
เมื่อเร็ว ๆ นี้ฉันได้อ่านบทความโดย Yann Dauphin และคณะ การระบุและโจมตีปัญหาจุดอานในการเพิ่มประสิทธิภาพแบบ non-convex ในระดับสูงซึ่งพวกเขาแนะนำอัลกอริธึมที่น่าสนใจที่เรียกว่าSaddle-Free Newtonซึ่งดูเหมือนว่าจะเหมาะสำหรับการเพิ่มประสิทธิภาพเครือข่ายประสาทและไม่ควรติดอยู่ที่จุดอาน ชอบวิธีการสั่งซื้อครั้งแรกเช่นวานิลลา SGD กระดาษวันที่กลับไปในปี 2014 ดังนั้นจึงไม่มีอะไรใหม่ แต่ฉันไม่ได้เห็นมันถูกใช้ "ในป่า" ทำไมไม่ใช้วิธีนี้? การคำนวณแบบ Hessian เป็นข้อห้ามเกินไปสำหรับปัญหา / เครือข่ายขนาดจริงหรือไม่? มีการใช้โอเพ่นซอร์สของอัลกอริทึมนี้หรือไม่และอาจใช้กับกรอบการเรียนรู้ที่สำคัญบางส่วนได้หรือไม่? อัปเดต ก.พ. 2019:มีการติดตั้งใช้งานแล้ว: https://github.com/dave-fernandes/SaddleFreeOptimizer )

2
เป็นไปได้หรือไม่ที่จะประเมิน GLM ใน Python / scikit-learn โดยใช้การแจกแจงแบบปัวซอง, แกมม่าหรือทวีดเป็นครอบครัวสำหรับการแจกแจงข้อผิดพลาด?
พยายามเรียนรู้ Python และ Sklearn แต่สำหรับงานของฉันฉันต้องเรียกใช้ regressions ที่ใช้การแจกแจงข้อผิดพลาดจาก Poisson, Gamma และโดยเฉพาะอย่างยิ่งตระกูล Tweedie ฉันไม่เห็นอะไรเลยในเอกสารเกี่ยวกับพวกเขา แต่พวกเขาอยู่ในหลายส่วนของการกระจาย R ดังนั้นฉันจึงสงสัยว่ามีใครเห็นการใช้งานที่ใดก็ได้สำหรับ Python มันจะเจ๋งมากถ้าคุณสามารถชี้ให้ฉันเห็นการใช้งานการกระจาย Tweedie ของ SGD!

1
การเลือกขนาดของมินิบัสที่เหมาะสมสำหรับการไล่ระดับสีแบบสุ่ม (SGD)
มีวรรณกรรมใดบ้างที่ตรวจสอบการเลือกขนาดของมินิบัสเมื่อทำการโคตรลาดลงแบบสุ่ม? จากประสบการณ์ของฉันดูเหมือนว่าจะเป็นทางเลือกเชิงประจักษ์ซึ่งมักพบผ่านการตรวจสอบข้ามหรือการใช้กฎง่ายๆ เป็นความคิดที่ดีหรือไม่ที่จะเพิ่มขนาดมินิบัสช้าลงเนื่องจากข้อผิดพลาดในการตรวจสอบความถูกต้องลดลง? สิ่งนี้จะมีผลกระทบอะไรกับข้อผิดพลาดการวางนัยทั่วไป? ฉันดีกว่าถ้าใช้มินิบัสขนาดเล็กมากและอัปเดตโมเดลของฉันนับแสนครั้งหรือไม่ ฉันจะดีกว่าด้วยจำนวนที่สมดุลระหว่างที่เล็กมากและแบตช์หรือไม่? ฉันควรปรับขนาดของรถมินิบัสตามขนาดของชุดข้อมูลหรือจำนวนคุณลักษณะที่คาดหวังภายในชุดข้อมูลหรือไม่ เห็นได้ชัดว่าฉันมีคำถามมากมายเกี่ยวกับการใช้แผนการเรียนรู้ของมินิบัส น่าเสียดายที่เอกสารส่วนใหญ่ที่ฉันอ่านไม่ได้ระบุวิธีการที่พวกเขาเลือกพารามิเตอร์นี้ ฉันเคยประสบความสำเร็จจากนักเขียนเช่น Yann LeCun โดยเฉพาะจาก Tricks of the Trade คอลเลกชันของเอกสาร อย่างไรก็ตามฉันยังไม่เห็นคำถามเหล่านี้ตอบอย่างเต็มที่ ไม่มีใครมีคำแนะนำสำหรับเอกสารหรือคำแนะนำเกี่ยวกับเกณฑ์ที่ฉันสามารถใช้เพื่อกำหนดขนาดรถมินิบัสที่ดีเมื่อพยายามเรียนรู้คุณสมบัติ

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