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

3
Backprop ผ่านเลเยอร์ Max-Pooling?
นี่เป็นคำถามเชิงแนวคิดขนาดเล็กที่จู้จี้ฉันอยู่ครู่หนึ่ง: เราจะเผยแพร่กลับผ่านเลเยอร์ max-pooling ในเครือข่ายประสาทได้อย่างไร ฉันเจอเลเยอร์แบบรวมกำไรสูงสุดในขณะที่ทำตามบทช่วยสอนนี้สำหรับห้องสมุด nn ของ Torch 7 ไลบรารีจะสรุปการคำนวณการไล่ระดับสีและส่งต่อสำหรับแต่ละเลเยอร์ของเครือข่ายที่ลึก ฉันไม่เข้าใจวิธีการคำนวณการไล่ระดับสีสำหรับเลเยอร์ที่รวมกำไรสูงสุด ฉันรู้ว่าถ้าคุณมีอินพุตเข้าสู่เซลล์ประสาทของเลเยอร์ดังนั้น (นิยามเป็น ) มอบให้โดย: zilzil{z_i}^liiilllδilδil{\delta_i}^lδil=∂E∂zilδil=∂E∂zil{\delta_i}^l = \frac{\partial E}{\partial {z_i}^l}δil=θ′(zil)∑jδjl+1wl,l+1i,jδil=θ′(zil)∑jδjl+1wi,jl,l+1 {\delta_i}^l = \theta^{'}({z_i}^l) \sum_{j} {\delta_j}^{l+1} w_{i,j}^{l,l+1} ดังนั้นเลเยอร์ที่รวมกำไรสูงสุดจะได้รับของเลเยอร์ถัดไปตามปกติ แต่เนื่องจากฟังก์ชั่นการเปิดใช้งานสำหรับเซลล์ประสาท max-pooling ใช้เวลาในเวกเตอร์ของค่า (ซึ่งมัน maxes) เป็นอินพุตไม่ใช่หมายเลขเดียวอีกต่อไป แต่เวกเตอร์ (จะต้องถูกแทนที่ด้วย ) นอกจากนี้ซึ่งเป็นฟังก์ชันสูงสุดแล้วยังไม่สามารถแยกความแตกต่างได้ด้วยความเคารพของอินพุตδjl+1δjl+1{\delta_j}^{l+1}δilδil{\delta_i}^{l}θ′(zjl)θ′(zjl)\theta^{'}({z_j}^l)∇θ({zjl})∇θ({zjl})\nabla \theta(\left\{{z_j}^l\right\})θθ\theta ดังนั้น .... มันจะออกมาดียังไง

3
แนวทางการเลือกเครื่องมือเพิ่มประสิทธิภาพสำหรับการฝึกอบรมโครงข่ายประสาทเทียม
ฉันใช้โครงข่ายประสาทเทียมมาระยะหนึ่งแล้ว อย่างไรก็ตามสิ่งหนึ่งที่ฉันต่อสู้อย่างต่อเนื่องคือการเลือกเครื่องมือเพิ่มประสิทธิภาพสำหรับการฝึกอบรมเครือข่าย (โดยใช้ backprop) สิ่งที่ฉันมักจะทำคือเริ่มต้นด้วยหนึ่ง (เช่นมาตรฐาน SGD) จากนั้นลองคนอื่น ๆ แบบสุ่มมากทีเดียว ฉันสงสัยว่ามีวิธีที่ดีกว่า (และสุ่มน้อยกว่า) ในการค้นหาเครื่องมือเพิ่มประสิทธิภาพที่ดีเช่นจากรายการนี้: SGD (มีหรือไม่มีโมเมนตัม) AdaDelta AdaGrad RMSProp อาดัม โดยเฉพาะอย่างยิ่งฉันสนใจว่ามีเหตุผลทางทฤษฎีบางอย่างสำหรับการเลือกมากกว่าหนึ่งเนื่องจากข้อมูลการฝึกอบรมมีคุณสมบัติบางอย่างเช่นมันเบาบาง ฉันจะจินตนาการว่าเครื่องมือเพิ่มประสิทธิภาพบางอย่างทำงานได้ดีกว่าโดเมนอื่น ๆ เช่นเมื่อฝึกอบรมเครือข่าย convolutional เทียบกับเครือข่าย feed-forward หรือการจัดหมวดหมู่เทียบกับการถดถอย หากคุณคนใดพัฒนากลยุทธ์และ / หรือสัญชาตญาณว่าคุณจะเลือกเครื่องมือเพิ่มประสิทธิภาพได้อย่างไรฉันจะสนใจเป็นอย่างมาก นอกจากนี้หากมีงานที่ให้เหตุผลทางทฤษฎีในการเลือกงานหนึ่งงานนั่นจะดียิ่งขึ้น

1
Deep Neural Network - Backpropogation ด้วย ReLU
ฉันมีปัญหาในการได้รับการเผยแพร่กลับด้วย ReLU และฉันทำงานบางอย่าง แต่ฉันไม่แน่ใจว่าฉันกำลังถูกทาง ฟังก์ชันต้นทุน:โดยที่คือค่าจริงและเป็นค่าที่คาดการณ์ไว้ นอกจากนี้สมมติว่า > 0 เสมอ12(y−y^)212(y−y^)2\frac{1}{2}(y-\hat y)^2yyyy^y^\hat yxxx 1 Layer ReLU โดยที่น้ำหนักที่ชั้นที่ 1 คือw1w1w_1 dCdw1=dCdRdRdw1dCdw1=dCdRdRdw1\frac{dC}{dw_1}=\frac{dC}{dR}\frac{dR}{dw_1} dCw1=(y−ReLU(w1x))(x)dCw1=(y−ReLU(w1x))(x)\frac{dC}{w_1}=(y-ReLU(w_1x))(x) 2 Layer ReLU โดยที่ตุ้มน้ำหนักที่ชั้นที่ 1 คือและชั้นที่สองคือและฉันต้องการอัปเดตชั้นที่ 1w2w2w_2w1w1w_1w2w2w_2 dCdw2=dCdRdRdw2dCdw2=dCdRdRdw2\frac{dC}{dw_2}=\frac{dC}{dR}\frac{dR}{dw_2} dCw2=(y−ReLU(w1∗ReLU(w2x))(w1x)dCw2=(y−ReLU(w1∗ReLU(w2x))(w1x)\frac{dC}{w_2}=(y-ReLU(w_1*ReLU(w_2x))(w_1x) ตั้งแต่ReLU(w1∗ReLU(w2x))=w1w2xReLU(w1∗ReLU(w2x))=w1w2xReLU(w_1*ReLU(w_2x))=w_1w_2x 3 Layer ReLU โดยที่ตุ้มน้ำหนักที่ชั้นที่ 1 คือ , 2nd layer w 2และ 3rd layer w 1w3w3w_3w2w2w_2w1w1w_1 dCdw3=dCdRdRdw3dCdw3=dCdRdRdw3\frac{dC}{dw_3}=\frac{dC}{dR}\frac{dR}{dw_3} dCw3=(y−ReLU(w1∗ReLU(w2(∗ReLU(w3)))(w1w2x)dCw3=(y−ReLU(w1∗ReLU(w2(∗ReLU(w3)))(w1w2x)\frac{dC}{w_3}=(y-ReLU(w_1*ReLU(w_2(*ReLU(w_3)))(w_1w_2x) ตั้งแต่ReLU(w1∗ReLU(w2(∗ReLU(w3))=w1w2w3xReLU(w1∗ReLU(w2(∗ReLU(w3))=w1w2w3xReLU(w_1*ReLU(w_2(*ReLU(w_3))=w_1w_2w_3x เนื่องจากกฎลูกโซ่ใช้เวลาเพียง 2 อนุพันธ์เมื่อเทียบกับ …

1
การขยายพันธุ์กลับในซีเอ็นเอ็น
ฉันมีซีเอ็นเอ็นต่อไปนี้: ฉันเริ่มต้นด้วยภาพอินพุตขนาด 5x5 จากนั้นฉันใช้การแปลงโดยใช้เคอร์เนล 2x2 และ stride = 1 ซึ่งสร้างแผนที่คุณลักษณะขนาด 4x4 จากนั้นฉันใช้ 2x2 max-pooling ร่วมกับ stride = 2 ซึ่งจะลดขนาดของแผนที่ขนาด 2x2 จากนั้นฉันก็ใช้ sigmoid โลจิสติก จากนั้นหนึ่งเลเยอร์ที่เชื่อมต่ออย่างเต็มที่กับ 2 เซลล์ประสาท และชั้นเอาท์พุท เพื่อความเรียบง่ายสมมติว่าฉันได้ทำพาสพาสไปแล้วและคำนวณδH1 = 0.25และ δH2 = -0.15 ดังนั้นหลังจากผ่านไปข้างหน้าอย่างสมบูรณ์และทำย้อนหลังผ่านบางส่วนเครือข่ายของฉันมีลักษณะเช่นนี้: จากนั้นฉันคำนวณ delta สำหรับเลเยอร์ที่ไม่ใช่เชิงเส้น (sigmoid โลจิสติก): δ11=(0.25∗0.61+−0.15∗0.02)∗0.58∗(1−0.58)=0.0364182δ12=(0.25∗0.82+−0.15∗−0.50)∗0.57∗(1−0.57)=0.068628δ21=(0.25∗0.96+−0.15∗0.23)∗0.65∗(1−0.65)=0.04675125δ22=(0.25∗−1.00+−0.15∗0.17)∗0.55∗(1−0.55)=−0.06818625δ11=(0.25∗0.61+−0.15∗0.02)∗0.58∗(1−0.58)=0.0364182δ12=(0.25∗0.82+−0.15∗−0.50)∗0.57∗(1−0.57)=0.068628δ21=(0.25∗0.96+−0.15∗0.23)∗0.65∗(1−0.65)=0.04675125δ22=(0.25∗−1.00+−0.15∗0.17)∗0.55∗(1−0.55)=−0.06818625 \begin{align} &\delta_{11}=(0.25 * 0.61 + -0.15 * 0.02) * 0.58 …

2
หน้าต่างบานเลื่อนนำไปสู่การ overfitting ใน LSTM?
ฉันจะใช้ LSTM ของฉันให้มากเกินไปได้หรือไม่ถ้าฉันฝึกฝนผ่านทางหน้าต่างบานเลื่อน? เหตุใดผู้คนจึงไม่ใช้ LSTM สำหรับตัวอย่างที่ง่ายสมมติว่าเราต้องทำนายลำดับของอักขระ: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z มันไม่ดี (หรือดีกว่า) ถ้าฉันฝึก LSTM ด้วยมินิบัสต่อไปนี้: A B C D E F G H I J K L M …

1
Back-propagation ผ่านเลเยอร์การรวมสูงสุด
ฉันมีขนาดเล็กย่อยคำถามคำถามนี้ ฉันเข้าใจว่าเมื่อการแพร่กระจายย้อนกลับผ่านเลเยอร์รวมกำไรสูงสุดการไล่ระดับสีจะถูกส่งกลับในลักษณะที่เซลล์ประสาทในเลเยอร์ก่อนหน้าซึ่งถูกเลือกเมื่อแม็กซ์ได้รับการไล่ระดับสีทั้งหมด สิ่งที่ฉันไม่แน่ใจ 100% คือวิธีการไล่ระดับสีในเลเยอร์ถัดไปที่ได้รับการส่งกลับไปยังเลเยอร์รวมกำไร ดังนั้นคำถามแรกคือถ้าฉันมีเลเยอร์ร่วมกันเชื่อมต่อกับเลเยอร์เชื่อมต่ออย่างเต็มที่ - เช่นภาพด้านล่าง เมื่อคำนวณการไล่สีสำหรับ cyan "neuron" ของ pooling layer ฉันจะรวมการไล่ระดับสีทั้งหมดจากเซลล์เลเยอร์ FC หรือไม่ หากสิ่งนี้ถูกต้องแล้ว "เซลล์ประสาท" ของเลเยอร์รวมกำไรทุกคนมีการไล่ระดับสีเดียวกันหรือไม่ ตัวอย่างเช่นถ้าเซลล์ประสาทแรกของเลเยอร์ FC มีการไล่ระดับสีที่ 2, ที่สองมีการไล่ระดับสีที่ 3 และที่สามการไล่ระดับที่ 6 การไล่ระดับสีของ "เซลล์ประสาท" สีน้ำเงินและสีม่วงในชั้นรวมกำไรคืออะไรและทำไม? และคำถามที่สองคือเมื่อเลเยอร์ร่วมกันเชื่อมต่อกับอีกชั้นหนึ่ง ฉันจะคำนวณการไล่ระดับสีได้อย่างไร ดูตัวอย่างด้านล่าง สำหรับ "เซลล์ประสาท" ที่อยู่บนสุดสุดของชั้นรวมกำไร (สีเขียวที่กำหนดไว้) ฉันแค่ใช้การไล่ระดับสีของเซลล์ประสาทสีม่วงในชั้น Conv ต่อไปและกำหนดเส้นทางกลับใช่ไหม? สีเขียวที่เติมเต็มแล้วล่ะ? ฉันต้องคูณคอลัมน์แรกของเซลล์ประสาทในเลเยอร์ถัดไปเนื่องจากกฎลูกโซ่ หรือฉันจะต้องเพิ่มพวกเขา? โปรดอย่าโพสต์สมการและบอกฉันว่าคำตอบของฉันอยู่ตรงนั้นเพราะฉันพยายามคลุมหัวสมการและฉันยังไม่เข้าใจมันอย่างสมบูรณ์แบบนั่นคือเหตุผลที่ฉันถามคำถามนี้ในแบบง่าย ๆ ทาง

2
คำถามเกี่ยวกับอคติในเครือข่าย Convolutional
ฉันกำลังพยายามหาจำนวนและความเอนเอียงที่จำเป็นสำหรับซีเอ็นเอ็น บอกว่าฉันมี (3, 32, 32) - ภาพและต้องการใช้ (32, 5, 5) - ตัวกรอง สำหรับแต่ละคุณลักษณะแผนที่ฉันมีน้ำหนัก 5x5 ดังนั้นฉันควรมีพารามิเตอร์ 3 x (5x5) x 32 ตอนนี้ฉันต้องเพิ่มอคติ ฉันเชื่อว่าฉันมีพารามิเตอร์ (3 x (5x5) + 1) x 32 เท่านั้นอคติเหมือนกันในทุกสี (RGB) หรือไม่ ถูกต้องหรือไม่ ฉันจะรักษาความลำเอียงที่เหมือนกันของแต่ละภาพในเชิงลึก (ในกรณีนี้ 3) ในขณะที่ฉันใช้น้ำหนักที่แตกต่างกันหรือไม่ ทำไมถึงเป็นอย่างนั้น?
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.