คำถามติดแท็ก backpropagation

Backpropagation เป็นคำย่อของ "การเผยแพร่ข้อผิดพลาดย้อนกลับ" เป็นวิธีการทั่วไปในการฝึกอบรมโครงข่ายประสาทเทียมที่ใช้ร่วมกับวิธีการเพิ่มประสิทธิภาพเช่นการไล่ระดับสี

2
ประโยชน์ของการกระจายแบบปกติที่ถูกตัดทอนในการเริ่มต้นน้ำหนักในเครือข่ายประสาทคืออะไร
เมื่อเริ่มต้นน้ำหนักการเชื่อมต่อในเครือข่ายประสาท feedforward เป็นสิ่งสำคัญที่จะเริ่มต้นพวกเขาแบบสุ่มเพื่อหลีกเลี่ยง symmetries ใด ๆ ที่อัลกอริทึมการเรียนรู้จะไม่สามารถทำลาย คำแนะนำที่ฉันได้เห็นในสถานที่ต่าง ๆ (เช่นในการสอน MNIST ของTensorFlow ) คือการใช้การแจกแจงแบบปกติที่ถูกตัดทอนโดยใช้ค่าเบี่ยงเบนมาตรฐานของโดยที่คือจำนวนอินพุตของ รับชั้นเซลล์ประสาท1ยังไม่มีข้อความ--√1N\dfrac{1}{\sqrt{N}}ยังไม่มีข้อความNN ฉันเชื่อว่าสูตรค่าเบี่ยงเบนมาตรฐานช่วยให้มั่นใจว่าการไล่ระดับสีที่ backpropagated ไม่ละลายหรือขยายเร็วเกินไป แต่ฉันไม่รู้ว่าทำไมเราจึงใช้การแจกแจงแบบปกติที่ถูกตัดทอนเมื่อเทียบกับการแจกแจงแบบปกติทั่วไป มันคือการหลีกเลี่ยงน้ำหนักผิดปกติที่หายาก?

2
ทำไม RNNs กับหน่วย LSTM ยังทนทุกข์ทรมานจาก“ การไล่ระดับสีแบบระเบิด”
ฉันมีความรู้พื้นฐานเกี่ยวกับการทำงานของ RNNs (และโดยเฉพาะอย่างยิ่งกับหน่วย LSTMs) ฉันมีภาพความคิดเกี่ยวกับสถาปัตยกรรมของหน่วย LSTM นั่นคือเซลล์และประตูสองสามบานซึ่งควบคุมการไหลของค่า อย่างไรก็ตามเห็นได้ชัดว่าฉันไม่ได้เข้าใจอย่างสมบูรณ์ว่า LSTM แก้ปัญหา "การหายตัวไปและการกระจายตัวของการไล่ระดับสี" ซึ่งเกิดขึ้นในขณะที่การฝึกอบรมโดยใช้การเผยแพร่กลับไปตามกาลเวลา RNN ทั่วไป ฉันไม่ได้มีโอกาสอ่านเอกสารเพื่อเข้าใจคณิตศาสตร์อย่างเต็มที่ คำตอบนี้ให้คำอธิบายโดยย่อเกี่ยวกับวิธีที่ RNNs กับหน่วย LSTM แก้ปัญหา "การไล่ระดับสีหายไป" ในทางคณิตศาสตร์เหตุผลที่ดูเหมือนจะไม่มีอยู่ของอนุพันธ์ที่ไม่หายไปคือไม่มีแนวโน้มที่จะเป็นศูนย์ ดังนั้นผู้เขียนกล่าวว่า "มีอย่างน้อยหนึ่งเส้นทางที่การไล่ระดับสีไม่หายไป" IMHO คำอธิบายนี้ค่อนข้างคลุมเครือ ในขณะเดียวกันฉันกำลังอ่านกระดาษลำดับการเรียนรู้ต่อเนื่องกับโครงข่ายประสาท (โดย Ilya Sutskever, Oriol Vinyals, Quoc V. Le) และในบทความนั้นส่วน "3.4 รายละเอียดการฝึกอบรม" มีการระบุไว้ แม้ว่า LSTMs มักจะไม่ประสบปัญหาการไล่ระดับสีที่หายไปพวกเขาสามารถระเบิดการไล่ระดับสี ฉันคิดเสมอว่า RNNs กับหน่วย LSTM แก้ปัญหา "หายไป" และ "ระเบิดการไล่ระดับสี" …

1
รูปแบบเมทริกซ์ของการแพร่กระจายย้อนกลับพร้อมการทำให้เป็นมาตรฐาน
การทำให้เป็นมาตรฐานของแบทช์ได้รับเครดิตด้วยการปรับปรุงประสิทธิภาพอย่างมากในอวนตาข่ายประสาท วัสดุจำนวนมากบนอินเทอร์เน็ตแสดงวิธีใช้งานบนพื้นฐานการเปิดใช้งานโดยการเปิดใช้งาน ฉันใช้ backprop ไปแล้วโดยใช้พีชคณิตเมทริกซ์และเนื่องจากฉันทำงานในภาษาระดับสูง (ในขณะที่พึ่งพาRcpp(และในที่สุด GPU ของ) สำหรับการคูณเมทริกซ์หนาแน่น) การฉีกทุกอย่างออกไปและหันไปใช้forลูปของฉัน อย่างมีนัยสำคัญนอกเหนือไปจากความเจ็บปวดขนาดใหญ่ ฟังก์ชั่นการปรับสภาพแบทช์คือ โดยที่b(xp)=γ(xp−μxp)σ−1xp+βb(xp)=γ(xp−μxp)σxp−1+β b(x_p) = \gamma \left(x_p - \mu_{x_p}\right) \sigma^{-1}_{x_p} + \beta คือ Pโหนด, th ก่อนที่มันจะได้รับการเปิดใช้งานxpxpx_pppp และ βเป็นพารามิเตอร์สเกลาร์γγ\gammaββ\beta และ σ x พีมีค่าเฉลี่ยและ SD ของ xพี (โปรดสังเกตว่าปกติใช้สแควร์รูทของความแปรปรวนบวกกับฟัดจ์แฟคเตอร์ - สมมติว่าองค์ประกอบที่ไม่ใช่ศูนย์เพื่อความกะทัดรัด)μxpμxp\mu_{x_p}σxpσxp\sigma_{x_p}xpxpx_p ในรูปแบบเมทริกซ์ฟื้นฟูชุดสำหรับชั้นทั้งจะ ที่b(X)=(γ⊗1p)⊙(X−μX)⊙σ−1X+(β⊗1p)b(X)=(γ⊗1p)⊙(X−μX)⊙σX−1+(β⊗1p) b(\mathbf{X}) = \left(\gamma\otimes\mathbf{1}_p\right)\odot \left(\mathbf{X} - \mu_{\mathbf{X}}\right) \odot\sigma^{-1}_{\mathbf{X}} + \left(\beta\otimes\mathbf{1}_p\right) คือ …

2
การดักจับรูปแบบเริ่มต้นเมื่อใช้การขยายส่วนแบ็คอัปที่ผ่านการตัดทอนผ่านเวลา (RNN / LSTM)
บอกว่าฉันใช้ RNN / LSTM เพื่อทำการวิเคราะห์ความเชื่อมั่นซึ่งเป็นวิธีการแบบตัวต่อตัว (ดูบล็อกนี้ ) เครือข่ายได้รับการฝึกฝนผ่านการ backpropagation ที่ถูกตัดทอนผ่านช่วงเวลา (BPTT) ซึ่งเครือข่ายไม่ได้ถูกควบคุมในขั้นตอนสุดท้ายเพียง 30 ขั้นตอนตามปกติ ในกรณีของฉันแต่ละส่วนข้อความของฉันที่ฉันต้องการจัดหมวดหมู่นั้นมีความยาวมากกว่า 30 ขั้นตอนที่ไม่ได้ถูกควบคุม (ประมาณ 100 คำ) จากความรู้ของฉัน BPTT ใช้เวลาเพียงครั้งเดียวสำหรับส่วนข้อความเดียวซึ่งก็คือเมื่อมันผ่านส่วนข้อความทั้งหมดและคำนวณเป้าหมายการจำแนกเลขฐานสองซึ่งเปรียบเทียบกับฟังก์ชันการสูญเสียเพื่อค้นหาข้อผิดพลาดyyy การไล่ระดับสีจะไม่ถูกคำนวณโดยคำนึงถึงคำแรกของแต่ละส่วนข้อความ RNN / LSTM จะยังสามารถปรับน้ำหนักเพื่อจับรูปแบบเฉพาะที่เกิดขึ้นภายในสองสามคำแรกเท่านั้นได้อย่างไร ตัวอย่างเช่นสมมติว่าประโยคทั้งหมดที่ทำเครื่องหมายว่าเริ่มต้นด้วย "ฉันรักสิ่งนี้" และประโยคทั้งหมดที่ทำเครื่องหมายว่าเริ่มต้นด้วย "ฉันเกลียดสิ่งนี้" RNN / LSTM จะจับได้อย่างไรว่าเมื่อมันถูกยกเลิกการลงทะเบียนสำหรับ 30 ขั้นตอนสุดท้ายเมื่อพบกับจุดสิ้นสุดของลำดับความยาว 100 ขั้นตอนpositivepositivepositivenegativenegativenegative

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

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 \\ &= …

1
ฝึกอบรมโครงข่ายประสาทเทียม
ฉันกำลังทำงานกับซอฟต์แวร์จดจำใบหน้าที่ใช้เครือข่ายประสาทเทียมเพื่อจดจำใบหน้า จากการอ่านของฉันฉันได้รวบรวมว่าเครือข่ายประสาทเทียมได้แบ่งปันน้ำหนักเพื่อประหยัดเวลาในการฝึก แต่วิธีหนึ่งจะปรับการกระจายกลับเพื่อให้สามารถใช้ในโครงข่ายประสาทเทียม ในการแพร่กระจายย้อนกลับหนึ่งใช้สูตรที่คล้ายกับสิ่งนี้ในการฝึกอบรมน้ำหนัก New Weight = Old Weight + LEARNING_RATE * 1 * Output Of InputNeuron * Delta อย่างไรก็ตามเนื่องจากในเครือข่ายประสาทเทียมน้ำหนักที่ใช้ร่วมกันจึงมีการใช้น้ำหนักแต่ละเซลล์ร่วมกับเซลล์ประสาทหลายตัวดังนั้นฉันจะตัดสินใจได้อย่างไรว่าOutput of InputNeuronจะใช้อุปกรณ์ใด กล่าวอีกนัยหนึ่งเนื่องจากน้ำหนักถูกแชร์ฉันจะตัดสินใจได้อย่างไรว่าต้องเปลี่ยนน้ำหนักด้วย

2
pretraining คืออะไรและคุณจะฝึกฝนเครือข่ายประสาทเทียมอย่างไร
ฉันเข้าใจว่าการเตรียมการล่วงหน้านั้นใช้เพื่อหลีกเลี่ยงปัญหาบางอย่างด้วยการฝึกอบรมทั่วไป ถ้าฉันใช้ backpropagation ด้วยพูด autoencoder ฉันรู้ว่าฉันกำลังจะเจอปัญหาเวลาเพราะ backpropagation ช้าและฉันสามารถติดอยู่ใน optima ท้องถิ่นและไม่ได้เรียนรู้คุณสมบัติบางอย่าง สิ่งที่ฉันไม่เข้าใจคือวิธีที่เราฝึกฝนเครือข่ายและสิ่งที่เราทำเพื่อฝึกฝน ตัวอย่างเช่นหากเราได้รับเครื่อง Boltzmann ที่มีการ จำกัด จำนวนมากเราจะจัดการเครือข่ายนี้ได้อย่างไร

1
การไล่ระดับสีสำหรับ skipgram word2vec
ฉันกำลังประสบปัญหาในปัญหาการมอบหมายการเรียนรู้อย่างลึกของ Stanford NLP http://cs224d.stanford.edu/assignment1/assignment1_soln ฉันพยายามที่จะเข้าใจคำตอบของ 3a ที่พวกเขากำลังหาอนุพันธ์ของเวกเตอร์สำหรับคำกลาง สมมติว่าคุณได้คำทำนายเวกเตอร์ตรงกับคำกลางcสำหรับ skipgram และการคาดคะเนคำจะทำกับฟังก์ชัน softmax ที่พบในรุ่น word2vecvcvcv_{c} y^o=p(o|c)=exp(uTovc)∑Ww=1exp(uTwvc)y^o=p(o|c)=exp(uoTvc)∑w=1Wexp(uwTvc)\hat{y}^{o} = p(o | c) = \frac {exp(u_{o}^{T} v_{c})}{\sum_{w=1}^{W}exp(u_{w}^{T} v_{c})} โดยที่wหมายถึงคำ w-th และ (w = 1,..., W) คือเวกเตอร์คำว่า "เอาท์พุท" สำหรับคำทั้งหมดในคำศัพท์ สมมติว่าค่าใช้จ่ายข้ามเอนโทรปีถูกนำไปใช้กับการทำนายนี้และคำoเป็นคำที่คาดหวังuwuwu_w โดยที่คือเมทริกซ์ของเวกเตอร์เอาต์พุตทั้งหมดและให้เป็นเวกเตอร์คอลัมน์ของการคาดคะเนคำ softmax และyเป็นป้ายกำกับที่ร้อนแรงที่สุดซึ่ง ยังเป็นเวกเตอร์คอลัมน์U=[u1,u2,⋅⋅⋅,uW]U=[u1,u2,···,uW]U = [u_1,u_2, · · · ,u_W ]y^y^\hat{y} ที่เอนโทรปีของการข้ามคือCE(y,y^)=−∑iyilog(y^i)CE(y,y^)=−∑iyilog⁡(y^i)CE(y, \hat{y}) = − \sum_iy_i\log(\hat{y}_i) …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.