ใครช่วยอธิบายอัลกอริธึมการเผยแพร่กลับได้ไหม [ซ้ำ]


13

อัลกอริทึมการเผยแพร่กลับคืออะไรและทำงานอย่างไร


1
ฉันรวบรวมคำตอบสำหรับคำถามนี้ที่นี่ถ้าใครสนใจ (ฉันไม่ต้องการ repost)
Phylliida

คำตอบ:


14

อัลกอริธึมการแพร่กระจายกลับเป็นอัลกอริธึมการไล่ระดับสีสำหรับการปรับโมเดลเครือข่ายประสาท (ตามที่กล่าวถึงโดย @Dikran) ให้ฉันอธิบายวิธี

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

โมเดลโครงข่ายประสาทเทียม อย่างเป็นทางการเราแก้ไขความคิดด้วยโมเดลเลเยอร์เดี่ยวแบบง่าย:

f(x)=g(A1(s(A2(x))))
โดยที่และเป็นที่รู้จักสำหรับทั้งหมด , , และ ,เป็นฟังก์ชันเลียนแบบที่ไม่รู้จัก ฟังก์ชั่นเรียกว่าฟังก์ชั่นการเปิดใช้งานในกรอบการจำแนกประเภทg:RRs:RMRMm=1,Ms(x)[m]=σ(x[m])A1:RMRA2RpRMσ:RR

ฟังก์ชั่นการสูญเสียกำลังสองถูกนำมาใช้เพื่อแก้ไขความคิด ดังนั้นการป้อนข้อมูลเวกเตอร์ของสามารถติดตั้งกับเอาท์พุทที่แท้จริง ของ (อาจเป็นเวกเตอร์) โดยลดการทดลอง การสูญเสีย: ที่เกี่ยวกับทางเลือกของและ 2(x1,,xn)Rp(y1,,yn)R

Rn(A1,A2)=i=1n(yif(xi))2[1]
A1A2

Gradient descent เชื้อสาย Grandient สำหรับการย่อขนาดเป็นอัลกอริทึมที่ย้ำ: สำหรับขนาดขั้นตอนที่เลือกไว้อย่างดี(เรียกอีกอย่างว่าอัตราการเรียนรู้ในกรอบของการขยายพันธุ์ด้านหลัง) มันต้องมีการคำนวณการไล่ระดับสีของ{R} ในกรณีที่ถือว่าเป็น{L})R

al+1=alγlR(al), l0.
(γl)lRal=(Al1,Al2)

การไล่ระดับของR (สำหรับแบบจำลองโครงข่ายประสาทอย่างง่าย) ให้เราแสดงโดยการไล่ระดับของเป็นฟังก์ชันของและลาดของเป็นหน้าที่ของ 2 การคำนวณมาตรฐาน (ใช้กฎสำหรับการหาองค์ประกอบของฟังก์ชัน) และการใช้สัญกรณ์ให้ สำหรับทั้งหมด1RRA12RRA2zi=A1(s(A2(xi)))

1R[1:M]=2×i=1nzig(zi)(yif(xi))
m=1,,M
2R[1:p,m]=2×i=1nxig(zi)zi[m]σ(A2(xi)[m])(yif(xi))

นี่ผมใช้สัญกรณ์การ R:เป็นเวกเตอร์ประกอบด้วยพิกัดของจากดัชนีเพื่อจัดทำดัชนีขx[a:b]xab


11

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

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

ฉันขอแนะนำหนังสือบาทหลวงเพื่อคำตอบที่เหมาะสม! ; o)


2

มันเป็นอัลกอริทึมสำหรับการฝึกอบรมเครือข่ายประสาทหลายชั้นแบบป้อนต่อเนื่อง มีหลาย applets ดี Java รอบเว็บที่แสดงให้เห็นถึงสิ่งที่เกิดขึ้นเช่นนี้คือ: http://neuron.eng.wayne.edu/bpFunctionApprox/bpFunctionApprox.html นอกจากนี้หนังสือของ Bishop ใน NNsยังเป็นข้อมูลอ้างอิงมาตรฐานสำหรับสิ่งที่เกี่ยวข้องกับ NNs


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