การย้อนกลับการแพร่กระจายในโครงข่ายประสาทเทียม: อัลกอริทึมการเรียนรู้ของเครื่องและตัวอย่าง
⚡ สรุปอย่างชาญฉลาด
การย้อนกลับการแพร่กระจาย (Backpropagation) เป็นอัลกอริธึมการฝึกฝนหลักของโครงข่ายประสาทเทียม โดยจะปรับแต่งน้ำหนักแต่ละตัวอย่างละเอียดจากค่าความคลาดเคลื่อนที่วัดได้ในรอบการฝึกฝนก่อนหน้า เพื่อให้แบบจำลองสามารถสรุปผลได้ดีขึ้นกับข้อมูลที่ไม่เคยเห็นมาก่อน โดยทำทีละชั้น
โครงข่ายประสาทเทียมคืออะไร?
โครงข่ายประสาทเทียม (Artificial Neural Network) คือกลุ่มของหน่วยอินพุต/เอาต์พุตที่เชื่อมต่อกัน โดยแต่ละการเชื่อมต่อจะมีน้ำหนัก มันช่วยในการสร้างแบบจำลองการทำนายจากฐานข้อมูลขนาดใหญ่ และการออกแบบนั้นได้ยืมคำศัพท์มาจากระบบประสาทของมนุษย์ โครงข่ายประเภทนี้สนับสนุนการทำความเข้าใจภาพ การเรียนรู้ของเครื่อง การประมวลผลเสียงพูดของคอมพิวเตอร์ และงานการจดจำรูปแบบอื่นๆ อีกมากมาย
การแพร่กระจายย้อนกลับ (Backpropagation) คืออัลกอริทึมที่ใช้ตัดสินว่าค่าน้ำหนักเหล่านั้นควรเป็นเท่าใด ดังนั้นจึงควรศึกษาทั้งสองแนวคิดนี้ควบคู่กันไป
Backpropagation คืออะไร?
การย้อนกลับการแพร่กระจาย (Backpropagation) เป็นหัวใจสำคัญของการฝึกโครงข่ายประสาทเทียม เป็นวิธีการปรับแต่งน้ำหนักของโครงข่ายประสาทเทียมโดยอาศัยอัตราความผิดพลาดที่ได้รับในรอบการฝึกก่อนหน้า (epoch หรือ iteration) การปรับแต่งน้ำหนักอย่างเหมาะสมจะช่วยลดอัตราความผิดพลาดและทำให้แบบจำลองมีความน่าเชื่อถือมากขึ้นโดยการเพิ่มความสามารถในการสรุปผล (generalization)
Backpropagation ในโครงข่ายประสาทเทียมเป็นรูปแบบย่อของ “การเผยแพร่ข้อผิดพลาดแบบย้อนกลับ” เป็นวิธีมาตรฐานในการฝึกโครงข่ายประสาทเทียม วิธีการนี้จะช่วยคำนวณความชันของฟังก์ชันการสูญเสียโดยคำนึงถึงน้ำหนักทั้งหมดในเครือข่าย
สองคำนี้มักทำให้สับสนกัน Backpropagation เท่านั้น คำนวณ ความชัน; ตัวปรับค่าให้เหมาะสม เช่น การลดความชัน คือสิ่งที่ทำจริง ๆ การเปลี่ยนแปลง น้ำหนักที่ใช้การไล่ระดับนั้น เฟรมเวิร์กสมัยใหม่เกือบทุกตัวจะทำการย้อนกลับการแพร่กระจายโดยอัตโนมัติผ่านกลไก autodiff ของมัน
วิธีการทำงานของอัลกอริทึม Backpropagation
อัลกอริทึมการแพร่กระจายย้อนกลับ (Back propagation) ในโครงข่ายประสาทเทียมคำนวณเกรเดียนต์ของฟังก์ชันความสูญเสียสำหรับน้ำหนักเดียวโดยใช้กฎลูกโซ่ มันคำนวณได้อย่างมีประสิทธิภาพทีละชั้น ซึ่งแตกต่างจากการคำนวณโดยตรงแบบดั้งเดิม มันคำนวณเกรเดียนต์ แต่ไม่ได้กำหนดวิธีการใช้เกรเดียนต์ มันเป็นการขยายการคำนวณในกฎเดลต้า (Delta rule)
กฎลูกโซ่เป็นสิ่งที่ทำให้กระบวนการนี้มีประสิทธิภาพ อิทธิพลของน้ำหนักเริ่มต้นหนึ่งค่าต่อค่าความสูญเสียสุดท้ายเป็นผลมาจากอนุพันธ์เฉพาะที่ตลอดเส้นทางไปยังเอาต์พุต ดังนั้นอัลกอริทึมจึงแคชผลลัพธ์ระดับกลางของแต่ละเลเยอร์ในระหว่างทางกลับและนำกลับมาใช้ใหม่สำหรับน้ำหนักทุกค่าในเลเยอร์ด้านล่างแทนที่จะคำนวณเครือข่ายทั้งหมดใหม่สำหรับแต่ละน้ำหนัก
พิจารณาแผนภาพตัวอย่างโครงข่ายประสาทเทียมแบบย้อนกลับ (Back propagation neural network) ต่อไปนี้เพื่อทำความเข้าใจ รูปภาพ tracกระบวนการนี้ประกอบด้วยขั้นตอนการประมวลผลครบวงจร: ข้อมูลนำเข้าจะเข้ามาทางด้านซ้าย ค่าแอคติเวชันจะเคลื่อนที่ไปข้างหน้าผ่านเลเยอร์ที่ซ่อนอยู่ไปยังเอาต์พุต และค่าความคลาดเคลื่อนที่วัดได้จะเดินทางกลับมาตามเส้นทางการเชื่อมต่อเดียวกันเพื่อแก้ไขค่าน้ำหนัก
- อินพุต X มาถึงผ่านเส้นทางที่เชื่อมต่อไว้ล่วงหน้า
- อินพุตถูกสร้างแบบจำลองโดยใช้น้ำหนักจริง W โดยปกติแล้วน้ำหนักจะถูกเลือกแบบสุ่ม
- คำนวณเอาต์พุตสำหรับเซลล์ประสาททุกตัวตั้งแต่เลเยอร์อินพุต เลเยอร์ที่ซ่อนอยู่ ไปจนถึงเลเยอร์เอาท์พุต
- คำนวณค่าความคลาดเคลื่อนในผลลัพธ์:
ErrorB= Actual Output – Desired Output
- เดินทางกลับจากเลเยอร์เอาต์พุตไปยังเลเยอร์ที่ซ่อนอยู่เพื่อปรับน้ำหนักเพื่อลดข้อผิดพลาด
- ทำซ้ำขั้นตอนนี้ไปเรื่อยๆ จนกว่าจะได้ผลลัพธ์ที่ต้องการ
ตำราเรียนหลายเล่มเขียนปริมาณเท่ากันว่า ค่าที่ต้องการลบด้วยค่าจริงทั้งสองแบบใช้ได้ เพราะเครื่องหมายจะถูกดูดซับเมื่อตัวปรับแต่งทำงานย่อยtracนั่นคือค่าความชัน โดยมีเงื่อนไขว่าคุณต้องยึดถือรูปแบบเดียวกันตลอดทั้งเครือข่าย
ในทางปฏิบัติ ข้อผิดพลาดนั้นแทบจะไม่ใช่การใช้ sub เปล่าๆ เลยtracฟังก์ชันความสูญเสีย เช่น ค่าความคลาดเคลื่อนกำลังสองเฉลี่ยสำหรับการถดถอย หรือเอนโทรปีไขว้สำหรับการจำแนกประเภท จะแปลงความแตกต่างต่อเอาต์พุตให้เป็นตัวเลขเดียว ซึ่งการแพร่กระจายย้อนกลับของเกรเดียนต์จะคำนวณออกมาจริง ๆ
ทำไมเราต้องมีการขยายพันธุ์กลับ?
ข้อดีที่โดดเด่นที่สุดของ Backpropagation คือ:
- Backpropagation นั้นรวดเร็ว ง่ายดาย และง่ายต่อการตั้งโปรแกรม
- มันไม่ได้เพิ่มพารามิเตอร์ใหม่ใดๆ การปรับแต่งที่คุณทำนั้นเป็นหน้าที่ของตัวปรับแต่งและเครือข่าย โดยหลักๆ แล้วคืออัตราการเรียนรู้และจำนวนอินพุต
- เป็นวิธีที่ยืดหยุ่นเนื่องจากไม่จำเป็นต้องมีความรู้เกี่ยวกับเครือข่ายมาก่อน
- เป็นวิธีมาตรฐานที่ใช้ได้ผลดีโดยทั่วไป
- ไม่จำเป็นต้องกล่าวถึงคุณลักษณะของฟังก์ชันเป็นพิเศษเพื่อเรียนรู้
กล่าวโดยสรุป หากไม่มีวิธีการที่มีประสิทธิภาพในการหาค่าความชัน การฝึกฝนโมเดลที่มีความลึกมากกว่าหนึ่งชั้นจะเป็นไปไม่ได้ในเชิงการคำนวณ
เครือข่าย Feed Forward คืออะไร?
โครงข่ายประสาทเทียมแบบป้อนไปข้างหน้าคือโครงข่ายประสาทเทียมที่โหนดไม่เคยสร้างวงจร โครงข่ายประสาทเทียมประเภทนี้มีเลเยอร์อินพุต เลเยอร์ที่ซ่อนอยู่ และเลเยอร์เอาท์พุต เป็นโครงข่ายประสาทเทียมชนิดแรกและง่ายที่สุด
ความแตกต่างนี้มีความสำคัญในที่นี้ เพราะการส่งผ่านไปข้างหน้าของการแพร่กระจายย้อนกลับนั้นก็คือการส่งผ่านไปข้างหน้าแบบป้อนกลับนั่นเอง เพียงแต่การแก้ไขข้อผิดพลาดทำงานในทิศทางตรงกันข้าม
ประเภทของเครือข่าย Backpropagation
เครือข่าย Backpropagation สองประเภทคือ:
- การแพร่กระจายกลับแบบคงที่
- การแพร่กระจายกลับซ้ำ
การแพร่กระจายกลับแบบคงที่
เป็นเครือข่ายแบ็กโพรพาเกชันชนิดหนึ่งที่สร้างแผนที่ping เป็นการรับข้อมูลคงที่เพื่อให้ได้ผลลัพธ์คงที่ มีประโยชน์ในการแก้ปัญหาการจำแนกประเภทแบบคงที่ เช่น การรู้จำอักษรด้วยแสง (Optical Character Recognition หรือ OCR)
การแพร่กระจายกลับซ้ำ
การแพร่กระจายย้อนกลับแบบวนซ้ำใน การทำเหมืองข้อมูล ค่าที่ได้จะถูกส่งต่อไปเรื่อยๆ จนกว่าจะถึงค่าคงที่ จากนั้นจะคำนวณค่าความคลาดเคลื่อนและส่งย้อนกลับไป
ความแตกต่างหลักระหว่างทั้งสองวิธีนี้คือ: แผนที่ping การแพร่ย้อนกลับแบบคงที่ (static back-propagation) นั้นรวดเร็ว ในขณะที่การแพร่ย้อนกลับแบบวนซ้ำ (recurrent backpropagation) นั้นไม่คงที่ ตารางด้านล่างแสดงผลลัพธ์ทั้งสองแบบควบคู่กันไป
| เกณฑ์ | การแพร่กระจายกลับแบบคงที่ | การแพร่กระจายย้อนกลับแบบวนซ้ำ |
|---|---|---|
| แผนที่แสดงที่ตั้งบริษัทping | อินพุตคงที่สู่เอาต์พุตคงที่ | ไม่ใช่แบบคงที่; เครือข่ายจะเสถียรขึ้นก่อนที่จะใช้ข้อผิดพลาด |
| ความเร็ว | รวดเร็ว ผ่านตัวอย่างเพียงครั้งเดียว | กระบวนการจะช้าลง และจะทำซ้ำไปเรื่อยๆ จนกว่าจะเสถียร |
| รูปร่างเครือข่าย | ฟีดฟอร์เวิร์ด ไม่มีวงจร | ประกอบด้วยการเชื่อมต่อฟีดแบ็ก |
| การใช้งานทั่วไป | การรู้จำอักขระด้วยแสง การจำแนกขนาดคงที่ | ปัญหาที่ผลลัพธ์ขึ้นอยู่กับสถานะภายในที่คงที่ |
ประวัติความเป็นมาของการย้อนกลับ
- ในปี ค.ศ. 1961 แนวคิดพื้นฐานของการแพร่กระจายย้อนกลับอย่างต่อเนื่อง (continuous backpropagation) ได้ถูกนำเสนอขึ้นในบริบทของทฤษฎีการควบคุมโดย เจ. เคลลี่, เฮนรี่ อาร์เธอร์ และ อี. ไบรสัน
- ในปี 1969 ไบรสันและโฮได้เสนอวิธีการเพิ่มประสิทธิภาพระบบไดนามิกแบบหลายขั้นตอน
- ในปี 1970 เซปโป ลินเนนมา ได้ตีพิมพ์วิธีการหาอนุพันธ์อัตโนมัติแบบย้อนกลับ ซึ่งเป็นวิธีการคำนวณที่เป็นพื้นฐานของการแพร่กระจายย้อนกลับ (backpropagation) ในปัจจุบัน
- ในปี 1974 Werbos ระบุถึงความเป็นไปได้ของการนำหลักการนี้ไปประยุกต์ใช้กับโครงข่ายประสาทเทียม
- ในปี 1982 Hopfield ได้นำแนวคิดของเขาเกี่ยวกับโครงข่ายประสาทเทียม
- ในปี 1986 ด้วยความพยายามของ David E. Rumelhart, Geoffrey E. Hinton, Ronald J. Williams ทำให้การเผยแพร่ย้อนกลับได้รับการยอมรับ
- ในปี 1989 ยานน์ เลอคุนและเพื่อนร่วมงานได้ฝึกฝนโครงข่ายประสาทเทียมแบบคอนโวลูชันโดยใช้การแพร่กระจายย้อนกลับเพื่ออ่านตัวเลขที่เขียนด้วยลายมือ ซึ่งเป็นหนึ่งในตัวอย่างการใช้งานจริงขนาดใหญ่ครั้งแรกๆ
- ในปี 1993 Wan เป็นคนแรกที่ชนะการประกวดการจดจำรูปแบบระดับนานาชาติด้วยความช่วยเหลือของวิธี backpropagation
- ในปี 2006 ผลงานของฮินตันเกี่ยวกับโครงข่ายความเชื่อเชิงลึกและการฝึกฝนล่วงหน้าแบบทีละชั้นได้จุดประกายความสนใจในการฝึกฝนโครงข่ายเชิงลึกอีกครั้ง ซึ่งหยุดชะงักไปเนื่องจากปัญหาการหายไปของเกรเดียนต์
- ในปี 2010 Xavier Glorot และ Yoshua Bengio ได้วิเคราะห์ว่าทำไมโครงข่ายประสาทเทียมเชิงลึกจึงฝึกฝนได้ยาก และได้นำเสนอวิธีการเริ่มต้นน้ำหนักที่ดีขึ้น ซึ่งเมื่อรวมกับการใช้ฟังก์ชันกระตุ้น ReLU ทำให้การแพร่กระจายย้อนกลับเชิงลึก (deep backpropagation) สามารถใช้งานได้จริง
- ในปี 2012 AlexNet (พัฒนาโดย Krizhevsky, Sutskever และ Hinton) ชนะการแข่งขัน ImageNet โดยใช้การแพร่กระจายย้อนกลับที่เร่งความเร็วด้วย GPU ซึ่งเป็นจุดเริ่มต้นของกระแสการเรียนรู้เชิงลึกสมัยใหม่
- ในปี 2014 ตัวปรับแต่ง Adam (Kingma และ Ba) ได้ถูกนำมาใช้และกลายเป็นตัวเลือกการลดระดับความชันเริ่มต้นที่ใช้ร่วมกับการแพร่กระจายย้อนกลับอย่างรวดเร็ว
- ในปี 2015 การทำให้เป็นมาตรฐานแบบกลุ่ม (Batch Normalization) และโครงข่ายประสาทเทียมแบบตกค้าง (ResNet) ได้แก้ไขปัญหาการไหลของเกรเดียนต์ในโครงข่ายประสาทเทียมที่มีความลึกมาก ทำให้สามารถส่งผ่านเกรเดียนต์ย้อนกลับ (Backpropagation) ผ่านชั้นต่างๆ นับร้อยชั้นได้
- ในช่วงปี 2015-2017 TensorFlow และ PyTorch ได้ทำให้การหาอนุพันธ์อัตโนมัติเป็นคุณสมบัติมาตรฐานของซอฟต์แวร์ ดังนั้นจึงไม่จำเป็นต้องหาค่าความชันด้วยมืออีกต่อไป
- ในปี 2017 สถาปัตยกรรม Transformer ได้ถูกนำมาใช้ และได้รับการฝึกฝนแบบครบวงจรด้วยการแพร่กระจายย้อนกลับ (backpropagation) เช่นเดียวกับโมเดลภาษาขนาดใหญ่ที่สร้างขึ้นบนสถาปัตยกรรมนี้
- ในปี 2019 Bengio, Hinton และ LeCun ได้รับรางวัล ACM AM Turing Award จากผลงานด้านโครงข่ายประสาทเทียมเชิงลึก
- ในปี 2020 บทความเรื่อง “Backpropagation and the Brain” (Lillicrap, Santoro, Marris, Akerman, and Hinton) ได้เสนอว่าสมองอาจจำลองการเรียนรู้แบบ backpropagation ได้ ซึ่งเป็นการเปิดประเด็นถกเถียงเรื่องความเป็นไปได้ทางชีววิทยาขึ้นอีกครั้ง
- ในปี 2022 ฮินตันได้เสนออัลกอริทึม Forward-Forward ซึ่งเป็นวิธีการฝึกฝนที่หลีกเลี่ยงการส่งผ่านข้อมูลย้อนกลับโดยสิ้นเชิง
- ในปี 2024 จอห์น ฮอปฟิลด์ และ เจฟฟรีย์ ฮินตัน ได้รับรางวัลโนเบลสาขาฟิสิกส์ จากการค้นพบพื้นฐานที่ทำให้เกิดการเรียนรู้ของเครื่องจักรด้วยโครงข่ายประสาทเทียม
- ในปี 2025 วิธีการส่งต่อข้อมูลไปข้างหน้า (forward-forward methods) ได้ถูกขยายไปใช้กับเครือข่ายประสาทแบบคอนโวลูชัน (convolutional networks) ซึ่งแสดงให้เห็นว่าการฝึกฝนโดยไม่ต้องใช้การแพร่กระจายย้อนกลับ (backpropagation-free training) สามารถใช้งานได้กับงานจำแนกประเภทภาพ
- ณ ปี 2026 การแพร่กระจายย้อนกลับ (backpropagation) ยังคงเป็นอัลกอริธึมการฝึกอบรมมาตรฐานสำหรับโมเดลการเรียนรู้เชิงลึกเกือบทั้งหมด ในขณะที่การวิจัยยังคงดำเนินต่อไปเกี่ยวกับวิธีการเรียนรู้แบบไร้เกรดเดียนต์ แบบเฉพาะที่ และแบบขนาน ซึ่งจะช่วยลดต้นทุนด้านหน่วยความจำและการคำนวณ
ประเด็นสำคัญในการขยายพันธุ์กลับ
- ลดความซับซ้อนของโครงสร้างเครือข่ายโดยการลบลิงก์ที่มีน้ำหนักซึ่งมีผลกระทบต่อเครือข่ายที่ฝึกฝนน้อยที่สุด
- คุณต้องศึกษากลุ่มของค่าอินพุตและการเปิดใช้งานเพื่อพัฒนาความสัมพันธ์ระหว่างเลเยอร์อินพุตและเลเยอร์หน่วยที่ซ่อนอยู่
- ช่วยในการประเมินผลกระทบที่ตัวแปรอินพุตที่กำหนดมีต่อเอาท์พุตเครือข่าย ความรู้ที่ได้รับจากการวิเคราะห์นี้ควรแสดงเป็นกฎเกณฑ์
- การเผยแพร่กลับมีประโยชน์อย่างยิ่งสำหรับโครงข่ายประสาทเชิงลึกที่ทำงานในโครงการที่มีแนวโน้มเกิดข้อผิดพลาด เช่น การรู้จำรูปภาพหรือคำพูด
- การย้อนกลับการแพร่กระจาย (Backpropagation) ใช้ประโยชน์จากกฎของห่วงโซ่และกำลัง ซึ่งทำให้สามารถทำงานได้กับจำนวนเอาต์พุตใดๆ ก็ได้
แนวทางปฏิบัติที่ดีที่สุดสำหรับการย้อนกลับการแพร่กระจาย (Backpropagation)
การย้อนกลับการแพร่กระจาย (Backpropagation) ในโครงข่ายประสาทเทียมสามารถอธิบายได้ด้วยการเปรียบเทียบกับ "เชือกรองเท้า" การอัปเดตน้ำหนักมีพฤติกรรมคล้ายกับแรงดึงของเชือกรองเท้า: ถ้าเบาเกินไปก็จะไม่ยึดติดกัน ถ้ามากเกินไปก็จะขาด
| ความตึงของลูกไม้ | ความหมายระหว่างการฝึกอบรม |
|---|---|
| ความตึงเครียดน้อยเกินไป | ไม่มีการรัดแน่นเพียงพอและหลวมเกินไป — แบบจำลองไม่พอดีตัว |
| ความตึงเครียดมากเกินไป | ข้อจำกัดมากเกินไป (การฝึกหนักเกินไป); ใช้เวลานานเกินไป (กระบวนการค่อนข้างช้า); มีโอกาสแตกหักสูงขึ้น |
| ดึงเชือกข้างหนึ่งมากกว่าอีกข้างหนึ่ง | ความไม่สบายใจ (อคติ) — ส่วนใดส่วนหนึ่งของเครือข่ายมีอิทธิพลเหนือกว่าในการปรับให้เข้ากัน |
จากตัวอย่างเปรียบเทียบนี้ มีแนวทางปฏิบัติสองประการที่ควรยึดถือ คือ ปรับขนาดข้อมูลป้อนเข้าก่อนการฝึกฝน เพื่อไม่ให้คุณลักษณะใดคุณลักษณะหนึ่งทำงานหนักกว่าคุณลักษณะอื่น และเฝ้าสังเกตค่าความสูญเสียในการตรวจสอบความถูกต้อง เพื่อลดความตึงเครียดก่อนที่จะเกิดการฝึกฝนมากเกินไป
ข้อเสียของการใช้ Backpropagation
- ประสิทธิภาพที่แท้จริงของการเผยแพร่ย้อนกลับในปัญหาเฉพาะนั้นขึ้นอยู่กับข้อมูลอินพุต
- อัลกอริธึมการแพร่กระจายกลับในการทำเหมืองข้อมูลค่อนข้างไวต่อข้อมูลที่มีเสียงดัง
- ในการประมวลผลแบบมินิแบทช์ การแพร่กระจายย้อนกลับควรดำเนินการโดยใช้แนวทางแบบเมทริกซ์; looping การยกตัวอย่างทีละตัวอย่างนั้นช้ากว่าอย่างเห็นได้ชัด
- ในโครงข่ายประสาทเทียมแบบลึก การคูณอนุพันธ์ขนาดเล็กซ้ำๆ กัน อาจทำให้ค่าเกรเดียนต์ลดลงเข้าใกล้ศูนย์ ส่งผลให้เลเยอร์แรกๆ แทบไม่เรียนรู้เลย ซึ่งเป็นปัญหาเกรเดียนต์หายไปดังที่ได้อธิบายไว้ใน Google หลักสูตร Machine Learning Crash.
ปัจจัยเหล่านี้ไม่ได้ทำให้วิธีการนี้ใช้ไม่ได้ ตรงกันข้าม ปัจจัยเหล่านี้เป็นเหตุผลที่ผู้ปฏิบัติงานเลือกใช้ฟังก์ชันการกระตุ้น ReLU การทำให้เป็นมาตรฐาน และตารางอัตราการเรียนรู้ที่รอบคอบ เมื่อพวกเขาย้ายจากเครือข่ายแบบตื้นไปสู่เครือข่ายที่ซับซ้อนขึ้น การเรียนรู้ลึก ๆ แบบ

