ต้นขั้ว Backpropagation คืออะไร? - Unite.AI
เชื่อมต่อกับเรา
มาสเตอร์คลาส AI:

AI 101

Backpropagation คืออะไร?

mm
วันที่อัพเดท on

Backpropagation คืออะไร?

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

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

เป้าหมายของการขยายพันธุ์กลับ

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

การฝึกอบรม Deep Neural Network

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

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

การเปิดใช้งาน = ผลรวม (น้ำหนัก * อินพุต) + อคติ

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

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

การขยายพันธุ์กลับในเครือข่าย

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

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

error = (expected_output – actual_output) * ความชันของค่าเอาต์พุตของเซลล์ประสาท

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

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

“Gradient Desciented” คือกระบวนการอัปเดตน้ำหนักเพื่อให้อัตราความผิดพลาดลดลง Backpropagation ใช้เพื่อทำนายความสัมพันธ์ระหว่างพารามิเตอร์ของโครงข่ายประสาทเทียมและอัตราความผิดพลาด ซึ่งจะตั้งค่าเครือข่ายสำหรับการไล่ระดับสีลงมา การฝึกอบรมเครือข่ายที่มีการไล่ระดับสีที่เกี่ยวข้องกับการคำนวณน้ำหนักผ่านการแพร่กระจายไปข้างหน้า การแพร่กระจายข้อผิดพลาดย้อนหลัง และการอัปเดตน้ำหนักของเครือข่าย

บล็อกเกอร์และโปรแกรมเมอร์ที่มีความเชี่ยวชาญด้าน เครื่องเรียนรู้ และ การเรียนรู้ลึก ๆ หัวข้อ Daniel หวังว่าจะช่วยให้ผู้อื่นใช้พลังของ AI เพื่อประโยชน์ทางสังคม