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

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

6
เป็นไปได้ไหมที่จะฝึกโครงข่ายใยประสาทเทียมโดยไม่ต้องทำ backpropagation
หนังสือและแบบฝึกหัดเกี่ยวกับโครงข่ายประสาทหลายเล่มใช้เวลากับอัลกอริธึม backpropagation เป็นหลักซึ่งเป็นเครื่องมือในการคำนวณการไล่ระดับสี สมมติว่าเรากำลังสร้างแบบจำลองที่มีพารามิเตอร์ / น้ำหนักประมาณ ~ 10K เป็นไปได้ไหมที่จะใช้การเพิ่มประสิทธิภาพโดยใช้อัลกอริธึมการเพิ่มประสิทธิภาพไล่ระดับสีฟรี? ฉันคิดว่าการคำนวณการไล่ระดับตัวเลขจะช้าเกินไป แต่วิธีการอื่น ๆ เช่น Nelder-Mead, Simulated Annealing หรือ Algorithm ทางพันธุกรรม? อัลกอริธึมทั้งหมดจะได้รับผลกระทบจากมินิมาท้องถิ่นทำไมจึงต้องหมกมุ่นกับการไล่ระดับสี

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

1
softmax_cross_entropy_with_logits แตกต่างจาก softmax_cross_entropy_with_logits_v2 อย่างไร
โดยเฉพาะฉันคิดว่าฉันสงสัยเกี่ยวกับคำสั่งนี้: เวอร์ชันหลักของ TensorFlow ในอนาคตจะอนุญาตให้การไล่ระดับสีไหลไปยังอินพุตของฉลากบน backprop ตามค่าเริ่มต้น tf.nn.softmax_cross_entropy_with_logitsซึ่งจะแสดงเมื่อฉันใช้ tf.nn.softmax_cross_entropy_with_logits_v2ในข้อความเดียวกันก็เรียกร้องให้ผมที่จะมีลักษณะที่ ฉันดูเอกสาร แต่ระบุว่าtf.nn.softmax_cross_entropy_with_logits_v2: Backpropagation จะเกิดขึ้นในทั้งการบันทึกและป้ายกำกับ หากต้องการไม่อนุญาตให้ backpagation ลงในฉลากให้ส่งเทนเซอร์ของฉลากผ่าน stop_gradients ก่อนส่งไปยังฟังก์ชันนี้ เมื่อเทียบกับtf.nn.softmax_cross_entropy_with_logits: การแพร่กระจายย้อนหลังจะเกิดขึ้นในบันทึกเท่านั้น เป็นเรื่องใหม่มากกับเรื่อง (ฉันกำลังพยายามหาทางผ่านบทเรียนพื้นฐานบางอย่าง) ข้อความเหล่านี้ไม่ชัดเจน ฉันมีความเข้าใจตื้น ๆ เกี่ยวกับ backpropagation แต่จริงๆแล้วข้อความก่อนหน้านี้หมายถึงอะไร? backpropagation และฉลากเชื่อมต่อกันอย่างไร? และสิ่งนี้จะเปลี่ยนแปลงวิธีที่ฉันทำงานด้วยtf.nn.softmax_cross_entropy_with_logits_v2เมื่อเทียบกับต้นฉบับได้อย่างไร

6
Backpropagation ด้วย Softmax / Cross Entropy
ฉันพยายามที่จะเข้าใจวิธีการทำงานของ backpropagation สำหรับเลเยอร์เอาต์พุต softmax / cross-entropy ฟังก์ชันข้อผิดพลาดข้ามเอนโทรปีคือ E(t,o)=−∑jtjlogojE(t,o)=−∑jtjlog⁡ojE(t,o)=-\sum_j t_j \log o_j ด้วยและเป็นเป้าหมายและเอาต์พุตที่เซลล์ประสาทตามลำดับ ผลรวมอยู่เหนือเซลล์ประสาทแต่ละเซลล์ในชั้นเอาต์พุต นั้นเป็นผลมาจากฟังก์ชั่น softmax:tttooojjjojojo_j oj=softmax(zj)=ezj∑jezjoj=softmax(zj)=ezj∑jezjo_j=softmax(z_j)=\frac{e^{z_j}}{\sum_j e^{z_j}} อีกครั้งผลรวมจะอยู่เหนือแต่ละเซลล์ประสาทในเลเยอร์เอาต์พุตและคืออินพุตไปยังเซลล์ประสาท :zjzjz_jjjj zj=∑iwijoi+bzj=∑iwijoi+bz_j=\sum_i w_{ij}o_i+b นั่นคือผลรวมกว่าเซลล์ทั้งหมดในชั้นก่อนหน้านี้กับการส่งออกของพวกเขาที่สอดคล้องกันและน้ำหนักต่อเซลล์ประสาทบวกอคติขoioio_iwijwijw_{ij}jjjbbb ตอนนี้เพื่ออัปเดตน้ำหนักที่เชื่อมต่อเซลล์ประสาทในชั้นเลเยอร์เอาท์พุทกับเซลล์ประสาทในชั้นก่อนหน้าฉันต้องคำนวณอนุพันธ์บางส่วนของฟังก์ชันข้อผิดพลาดโดยใช้กฎลูกโซ่:wijwijw_{ij}jjjiii ∂E∂wij=∂E∂oj∂oj∂zj∂zj∂wij∂E∂wij=∂E∂oj∂oj∂zj∂zj∂wij\frac{\partial E} {\partial w_{ij}}=\frac{\partial E} {\partial o_j} \frac{\partial o_j} {\partial z_{j}} \frac{\partial z_j} {\partial w_{ij}} กับเป็น input เพื่อเซลล์ประสาทญzjzjz_jjjj เทอมสุดท้ายค่อนข้างเรียบง่าย เนื่องจากมีน้ำหนักเพียงหนึ่งเดียวระหว่างและอนุพันธ์คือ:iiijjj ∂zj∂wij=oi∂zj∂wij=oi\frac{\partial z_j} {\partial w_{ij}}=o_i เทอมแรกคือการสืบทอดของฟังก์ชันข้อผิดพลาดเกี่ยวกับเอาต์พุต :ojojo_j ∂E∂oj=−tjoj∂E∂oj=−tjoj\frac{\partial …

5
Backpropagation กับขั้นตอนวิธีเชิงพันธุกรรมสำหรับการฝึกอบรมโครงข่ายประสาทเทียม
ฉันได้อ่านบทความสองสามฉบับเกี่ยวกับข้อดีข้อเสียของแต่ละวิธีบางคนโต้แย้งว่า GA ไม่ได้ปรับปรุงการหาทางออกที่ดีที่สุดในขณะที่คนอื่น ๆ แสดงว่ามันมีประสิทธิภาพมากกว่า ดูเหมือนว่า GA เป็นที่ต้องการโดยทั่วไปในวรรณกรรม (แม้ว่าคนส่วนใหญ่จะปรับเปลี่ยนเพื่อให้ได้ผลลัพธ์ตามที่ต้องการ) ดังนั้นทำไมโซลูชันซอฟต์แวร์ส่วนใหญ่จึงใช้ backpropagation เท่านั้น มีกฎทั่วไปของหัวแม่มือเมื่อใช้อย่างใดอย่างหนึ่งหรือไม่? บางทีมันอาจขึ้นอยู่กับประเภทของ NN หรือมีวิธีการแก้ปัญหาบางอย่างที่โดยทั่วไปมีประสิทธิภาพสูงกว่าคนอื่น ถ้าเป็นไปได้ฉันกำลังมองหาคำตอบทั่วไป: เช่น "ถ้า NN มีค่ามาก GA ดีกว่า" หรือ "GA ดีกว่าเสมอ แต่มีปัญหาประสิทธิภาพการคำนวณ" ฯลฯ ...

4
ทำไม tanh เกือบดีกว่า sigmoid ในฐานะฟังก์ชั่นการเปิดใช้งานเกือบทุกครั้ง
ในแอนดรูอึ้งของหลักสูตรโครงข่ายประสาทและลึกการเรียนรู้เกี่ยวกับ Courseraเขากล่าวว่าการใช้มักจะดีกว่าที่จะใช้sigmoidtanhtanhtanhsigmoidsigmoidsigmoid เหตุผลที่เขาให้คือผลลัพธ์ที่ใช้ศูนย์ประมาณ 0 มากกว่า 's 0.5 และสิ่งนี้ "ทำให้การเรียนรู้สำหรับชั้นถัดไปง่ายขึ้นเล็กน้อย"tanhtanhtanhsigmoidsigmoidsigmoid เหตุใดการทำให้การเรียนรู้ความเร็วของการเปิดใช้งานเป็นศูนย์อยู่ตรงกลาง ฉันคิดว่าเขาพูดถึงเลเยอร์ก่อนหน้านี้เมื่อการเรียนรู้เกิดขึ้นระหว่างการทำโพสต์? มีคุณสมบัติอื่น ๆ ที่ทำให้ดีกว่า ? การไล่ระดับสีชันช้ากว่าจะทำให้การไล่ระดับสีหายไปหรือไม่tanhtanhtanh มีสถานการณ์ใดบ้างที่น่าจะดีกว่า?sigmoidsigmoidsigmoid ต้องการคำตอบทางคณิตศาสตร์ที่เข้าใจง่าย


1
เหตุใดการเปิดใช้งานที่ไม่อยู่กึ่งกลางจึงไม่เกิดปัญหาในการกระจายข้อความ?
ฉันอ่านที่นี่ต่อไปนี้: เอาท์พุท sigmoid จะไม่เป็นศูนย์เป็นศูนย์กลาง สิ่งนี้ไม่เป็นที่พึงปรารถนาเนื่องจากเซลล์ประสาทในชั้นถัดไปของการประมวลผลในเครือข่ายประสาท (เพิ่มเติมในเร็ว ๆ นี้) จะได้รับข้อมูลที่ไม่ได้อยู่กึ่งกลาง เรื่องนี้มีผลกระทบต่อการเปลี่ยนแปลงในระหว่างการสืบเชื้อสายการไล่ระดับสีเพราะถ้าข้อมูลที่เข้ามาในเซลล์ประสาทเป็นบวกเสมอ (เช่นx > 0x>0x > 0 elementwise ใน )) จากนั้นการไล่ระดับน้ำหนักที่ จะระหว่าง backpropagation ทั้งหมดเป็นบวกหรือลบทั้งหมด (ขึ้นอยู่กับความชันของการแสดงออกทั้งหมด ฉ= wTx + bฉ=WTx+ขf = w^Tx + bWWwฉฉf) สิ่งนี้สามารถแนะนำพลวัตซิกซิกซิกที่ไม่พึงประสงค์ในการปรับปรุงการไล่ระดับสีสำหรับตุ้มน้ำหนัก อย่างไรก็ตามโปรดสังเกตว่าเมื่อมีการเพิ่มการไล่ระดับสีเหล่านี้ข้ามชุดข้อมูลการปรับปรุงขั้นสุดท้ายสำหรับตุ้มน้ำหนักอาจมีสัญญาณตัวแปรซึ่งจะช่วยบรรเทาปัญหานี้ได้บ้าง ดังนั้นนี่เป็นความไม่สะดวก แต่มีผลกระทบรุนแรงน้อยกว่าเมื่อเทียบกับปัญหาการเปิดใช้งานอิ่มตัวด้านบน ทำไมจะมีทั้งหมด (elementwise) นำไปสู่การบวกทั้งหมดหรือการไล่ระดับสีทั้งหมดในทางลบต่อ ?x > 0x>0x>0WWw

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

3
ทำไมต้องใช้การไล่ระดับสีด้วยเครือข่ายประสาท
เมื่อทำการฝึกอบรมเครือข่ายประสาทเทียมโดยใช้อัลกอริธึมการขยายพันธุ์แบบย้อนกลับจะใช้วิธีการไล่ระดับสีแบบไล่ระดับสีเพื่อกำหนดน้ำหนักการอัพเดท คำถามของฉันคือ: แทนที่จะใช้วิธีการไล่ระดับสีไล่ระดับเพื่อค้นหาจุดต่ำสุดอย่างช้าๆตามน้ำหนักที่กำหนดทำไมเราไม่ตั้งอนุพันธ์ , และหาค่าของน้ำหนักซึ่งช่วยลดข้อผิดพลาดหรือไม่wd( ข้อผิดพลาด)dW= 0d(Error)dw=0\frac{d(\text{Error})}{dw}=0Www นอกจากนี้เรามั่นใจว่าเหตุใดฟังก์ชันข้อผิดพลาดในการเผยแพร่ย้อนหลังจึงเป็นขั้นต่ำ มันไม่สามารถเปิดฟังก์ชั่นข้อผิดพลาดได้สูงสุดหรือไม่? มีคุณสมบัติเฉพาะของฟังก์ชั่นการบีบอัดที่รับประกันได้ว่าเครือข่ายที่มีจำนวนโหนดที่ซ่อนอยู่ใด ๆ ที่มีน้ำหนักตามอำเภอใจและเวกเตอร์การป้อนข้อมูลจะให้ฟังก์ชั่นข้อผิดพลาดที่มีขนาดเล็กที่สุดหรือไม่?

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

2
ทำไม backpropagation ไม่ทำงานเมื่อคุณเริ่มต้นน้ำหนักที่มีค่าเท่ากัน?
ทำไม backpropagation ไม่ทำงานเมื่อคุณเริ่มต้นน้ำหนักทั้งหมดด้วยค่าเดียวกัน (พูด 0.5) แต่ทำงานได้ดีเมื่อได้รับตัวเลขสุ่ม อัลกอริทึมไม่ควรคำนวณข้อผิดพลาดและทำงานจากที่นั่นแม้ว่าความจริงแล้วน้ำหนักจะเหมือนเดิมหรือไม่

2
อัลกอริทึมการแพร่กระจายกลับ
ฉันมีความสับสนเล็กน้อยเกี่ยวกับอัลกอริทึมbackpropagation ที่ใช้ในMultilayer Perceptron (MLP) ข้อผิดพลาดจะถูกปรับโดยฟังก์ชั่นค่าใช้จ่าย ในการแพร่กระจายย้อนกลับเรากำลังพยายามปรับน้ำหนักของเลเยอร์ที่ซ่อนอยู่ ข้อผิดพลาดของผลลัพธ์ที่ฉันสามารถเข้าใจได้นั่นคือe = d - y[ไม่มีตัวห้อย] คำถามคือ: เราจะได้รับข้อผิดพลาดของเลเยอร์ที่ซ่อนอยู่ได้อย่างไร คนเราคำนวณมันได้อย่างไร ถ้าฉัน backpropagate ฉันควรใช้มันเป็นฟังก์ชั่นต้นทุนของตัวกรองแบบปรับตัวหรือฉันควรใช้ตัวชี้การเขียนโปรแกรม (ใน C / C ++) เพื่อปรับปรุงน้ำหนักหรือไม่

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

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

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