อัลกอริธึมการแพร่กระจายกลับ – ภาพรวม

เผยแพร่แล้ว: 2021-10-15

โครงข่ายประสาทเทียมเป็นคำที่มีแนวโน้มมากที่สุดในโลกของเทคโนโลยี AI และเมื่อพูดถึงโครงข่ายประสาท Back propagation เป็นคำที่ควรเน้น อัลกอริทึมของการแพร่กระจายกลับเป็นหนึ่งในบล็อกพื้นฐานของโครงข่ายประสาทเทียม เนื่องจากโครงข่ายประสาทเทียมใดๆ จำเป็นต้องได้รับการฝึกอบรมเพื่อประสิทธิภาพของงาน การแพร่พันธุ์ย้อนหลังจึงเป็นอัลกอริธึมที่ใช้สำหรับการฝึกโครงข่ายประสาทเทียม เป็นรูปแบบหนึ่งของอัลกอริทึมสำหรับการเรียนรู้ภายใต้การดูแลซึ่งใช้สำหรับฝึกการรับรู้ของหลายเลเยอร์ในเครือข่ายประสาทเทียม

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

บทความนี้จะเน้นที่อัลกอริทึมของการขยายพันธุ์ย้อนหลังและขั้นตอนการทำงาน

สารบัญ

ความสำคัญของการขยายพันธุ์หลัง

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

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

ไม่กี่ขั้นตอนของ อัลกอริธึม backpropagation ในโครงข่ายประสาทเทียม สามารถสรุปได้ด้านล่าง:

● การคำนวณข้อผิดพลาด: จะคำนวณค่าเบี่ยงเบนของเอาต์พุตโมเดลจากเอาต์พุตจริงของโมเดล

● ข้อผิดพลาดขั้นต่ำ: ในขั้นตอนนี้ จะมีการตรวจสอบว่าข้อผิดพลาดที่สร้างขึ้นนั้นย่อเล็กสุดหรือไม่

● การอัปเดตพารามิเตอร์: ขั้นตอนนี้มีขึ้นเพื่ออัปเดตพารามิเตอร์ของโมเดล หากโมเดลสร้างค่าความผิดพลาดที่สูงมาก ก็จำเป็นต้องอัปเดตพารามิเตอร์

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

● โมเดลสุดท้าย: หลังจากกระบวนการตรวจสอบและอัปเดตซ้ำแล้วซ้ำเล่า ข้อผิดพลาดจะลดลง และตอนนี้โมเดลก็พร้อมสำหรับอินพุตแล้ว อินพุตสามารถป้อนเข้าสู่โมเดล และสามารถวิเคราะห์เอาต์พุตจากโมเดลได้

โครงข่ายประสาทหลังการขยายพันธุ์

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

โมเดลโครงข่ายประสาทเทียม

หากพิจารณาโมเดล 4 ชั้นของโครงข่ายประสาทเทียม ก็จะประกอบด้วยชั้นต่างๆ เลเยอร์อินพุต เซลล์ประสาท 4 ตัวที่ออกแบบมาสำหรับเลเยอร์ที่ซ่อนอยู่ และจะมี 1 เซลล์ประสาทที่ออกแบบมาสำหรับเลเยอร์เอาต์พุต

เลเยอร์อินพุต: เลเยอร์ อินพุตอาจเป็นแบบธรรมดาหรือแบบซับซ้อนก็ได้ เลเยอร์อินพุตอย่างง่ายจะประกอบด้วยสเกลาร์ และเลเยอร์อินพุตที่ซับซ้อน จะประกอบด้วยเมทริกซ์ของหลายมิติหรือเวกเตอร์ ชุดการเปิดใช้งานชุดแรกจะถือว่าเท่ากับค่าอินพุต

โดยคำว่า การกระตุ้น หมายถึง ค่าของเซลล์ประสาทที่เป็นผลหลังจากการใช้ฟังก์ชันการกระตุ้น

เลเยอร์ที่ซ่อนอยู่: การใช้อินพุตแบบถ่วงน้ำหนักบางอย่าง เช่น z^l ในเลเยอร์ l และการเปิดใช้งาน a^l ในเลเยอร์เดียวกัน l สมการถูกสร้างขึ้นสำหรับเลเยอร์เหล่านี้ เช่น เลเยอร์ 2 และเลเยอร์ 3

การเปิดใช้งานสำหรับเลเยอร์คำนวณโดยใช้ฟังก์ชันการเปิดใช้งาน f ฟังก์ชันของการเปิดใช้งาน "f" เป็นฟังก์ชันที่ไม่เป็นเชิงเส้นที่ช่วยให้เรียนรู้รูปแบบที่ซับซ้อนที่มีอยู่ในข้อมูลโดยเครือข่าย

เมทริกซ์น้ำหนักถูกสร้างขึ้นด้วยรูปร่างของ (n,m) โดยที่หมายเลข "n" หมายถึงเซลล์ประสาทที่ส่งออก ในขณะที่ "m" หมายถึงเซลล์ประสาทอินพุตของโครงข่ายประสาทเทียม ในแบบจำลองของเลเยอร์ที่กล่าวถึงข้างต้น จำนวน n จะเป็น 2 และจำนวน m จะเป็น 4 นอกจากนี้ ตัวเลขแรกในตัวห้อยของน้ำหนักควรตรงกับดัชนีของเซลล์ประสาทที่อยู่ในเลเยอร์ถัดไป ตัวเลขที่สองควรตรงกับดัชนีเส้นประสาทของเลเยอร์ก่อนหน้าของเครือข่าย

เลเยอร์เอาต์พุต: เลเยอร์ เอาต์พุตเป็นเลเยอร์สุดท้ายของโครงข่ายประสาทเทียม มันทำนายมูลค่าของแบบจำลอง การแสดงเมทริกซ์ใช้สำหรับการลดความซับซ้อนของสมการ

ส่งต่อการแพร่กระจายของโครงข่ายประสาทเทียมและการประเมินผล

สมการที่สร้างขึ้นในการกำหนดโครงข่ายประสาทเทียมประกอบด้วยการขยายพันธุ์ไปข้างหน้าของเครือข่าย มันทำนายผลลัพธ์ของแบบจำลอง ในอัลกอริธึมการแพร่กระจายไปข้างหน้า ขั้นตอนสุดท้ายที่เกี่ยวข้องคือการประเมินผลลัพธ์ที่คาดการณ์ไว้เทียบกับผลลัพธ์ที่คาดหวัง หากผลลัพธ์ที่คาดการณ์คือ "s" และผลลัพธ์ที่คาดหวังคือ "y" s จะถูกประเมินเทียบกับ y สำหรับชุดข้อมูลการฝึก (x,y) x คืออินพุต และ y คือเอาต์พุต

ฟังก์ชันต้นทุน "C" ใช้สำหรับการประเมิน s เทียบกับ y ฟังก์ชันต้นทุนอาจเป็นฟังก์ชันง่ายๆ เช่น ความคลาดเคลื่อนกำลังสองเฉลี่ย (MSE) หรืออาจเป็นฟังก์ชันที่ซับซ้อน เช่น ครอสเอนโทรปี ตามค่าของ C ตัวแบบจะรู้ว่าควรปรับพารามิเตอร์เท่าใดเพื่อให้เข้าใกล้เอาต์พุตที่คาดหวังมากขึ้น ซึ่งก็คือ y ทำได้โดยใช้อัลกอริธึมการแพร่กระจายด้านหลัง

อัลกอริธึมการแพร่กระจายกลับ

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

อัลกอริธึม Backpropagation ยังมีจุดมุ่งหมายเพื่อลดหรือลดฟังก์ชันต้นทุนที่กำหนดไว้ของเครือข่าย เช่น C ซึ่งทำได้ผ่านการปรับพารามิเตอร์ เช่น ความเอนเอียงและน้ำหนัก การปรับปรุงที่จะทำในพารามิเตอร์นี้ถูกกำหนดผ่านการไล่ระดับของฟังก์ชันต้นทุนที่สัมพันธ์กับพารามิเตอร์เหล่านั้นทั้งหมด

เกรเดียนต์ของฟังก์ชัน C ในจุด x ถูกกำหนดให้เป็นเวกเตอร์ของอนุพันธ์ย่อยทั้งหมดที่อยู่ในฟังก์ชันต้นทุน C ใน x

ความไวต่อการเปลี่ยนแปลงค่าของฟังก์ชันวัดโดยอนุพันธ์ของฟังก์ชัน C เทียบกับการเปลี่ยนแปลงอาร์กิวเมนต์ x ซึ่งหมายความว่าเป็นอนุพันธ์ที่บอกว่าฟังก์ชันต้นทุน C กำลังเคลื่อนที่อยู่ที่ใด

การเปลี่ยนแปลงในพารามิเตอร์ x ถูกกำหนดโดยการไล่ระดับสี มันแสดงการเปลี่ยนแปลงที่จำเป็นในพารามิเตอร์ x สำหรับการย่อ C กฎลูกโซ่ใช้สำหรับคำนวณการไล่ระดับสี เป็นการไล่ระดับสีที่ช่วยให้สามารถปรับพารามิเตอร์ให้เหมาะสมได้

นี่คือวิธีการทำงานของอัลกอริธึม backpropagation ในการปรับปรุงและการฝึกอบรมโครงข่ายประสาทเทียม มันทำหน้าที่เป็นส่วนสำคัญของด้านการเรียนรู้ของเครื่อง เนื่องจากเป็นส่วนสำคัญของการฝึกอบรมโครงข่ายประสาทเทียม การทำความเข้าใจอัลกอริธึมของการแพร่กระจายกลับจึงเป็นสิ่งสำคัญ หากคุณต้องการเป็นผู้เชี่ยวชาญด้านแมชชีนเลิร์นนิงและปัญญาประดิษฐ์ คุณสามารถดูหลักสูตร “วิทยาศาสตรมหาบัณฑิตในการเรียนรู้ของเครื่องและปัญญาประดิษฐ์” ที่นำเสนอโดย upGrad ผู้เชี่ยวชาญด้านการทำงานทุกคนมีสิทธิ์ได้รับหลักสูตรนี้ คุณจะได้รับการฝึกอบรมผ่านคณะผู้เชี่ยวชาญจาก IIIT Bangalore และจาก LJMU การเรียนรู้เนื้อหามากกว่า 650 ชั่วโมงจะช่วยคุณในการเตรียมตัวสำหรับอนาคต AI ที่รออยู่ ยินดีต้อนรับคำถามใด ๆ เกี่ยวกับหลักสูตร

วิธีการที่ใช้ในอัลกอริธึมการแพร่กระจายด้านหลังคืออะไร?

วิธีการที่ใช้ในอัลกอริธึมการขยายพันธุ์ด้านหลังคือกฎลูกโซ่

เหตุใดจึงใช้อัลกอริธึมการแพร่กระจายด้านหลัง

อัลกอริธึม backpropagation ใช้สำหรับลดข้อผิดพลาดของโมเดล

อัลกอริธึมการแพร่กระจายด้านหลังช่วยลดข้อผิดพลาดของเครือข่ายได้อย่างไร

อัลกอริธึมการแพร่กระจายด้านหลังพยายามปรับพารามิเตอร์ตามผลให้เกิดข้อผิดพลาดน้อยที่สุด