การไล่ระดับความชัน เป็นเทคนิคทางคณิตศาสตร์ที่ค้นหาน้ำหนักและอคติซ้ำๆ ซึ่งจะสร้างโมเดลที่มีการสูญเสียต่ำสุด การไล่ระดับสีจะค้นหาน้ำหนักและอคติที่ดีที่สุด
โดยทำกระบวนการต่อไปนี้ซ้ำตามจำนวนการทำซ้ำที่ผู้ใช้กำหนด
โมเดลจะเริ่มฝึกโดยใช้ค่าถ่วงน้ำหนักและอคติแบบสุ่มที่ใกล้ 0
จากนั้นจะทำซ้ำขั้นตอนต่อไปนี้
คำนวณการสูญเสียด้วยน้ำหนักและอคติปัจจุบัน
กำหนดทิศทางที่จะย้ายน้ำหนักและอคติที่ลดการสูญเสีย
เลื่อนค่าถ่วงน้ำหนักและค่าอคติเล็กน้อยในทิศทางที่ลด
การสูญเสีย
กลับไปที่ขั้นตอนที่ 1 และทำซ้ำจนกว่าโมเดลจะลด
การสูญเสียไม่ได้อีก
แผนภาพด้านล่างแสดงขั้นตอนการวนซ้ำที่การไล่ระดับความชันดำเนินการเพื่อค้นหาน้ำหนักและอคติที่สร้างโมเดลที่มีการสูญเสียต่ำที่สุด
รูปที่ 11 การไล่ระดับความชันเป็นกระบวนการแบบวนซ้ำที่ค้นหาน้ำหนัก
และอคติที่สร้างโมเดลที่มี Loss ต่ำที่สุด
คลิกไอคอนเครื่องหมายบวกเพื่อดูข้อมูลเพิ่มเติมเกี่ยวกับคณิตศาสตร์เบื้องหลังการไล่ระดับสี
ในระดับที่เจาะจง เราสามารถดูขั้นตอนการไล่ระดับการไล่ระดับ
โดยใช้ชุดข้อมูลประสิทธิภาพการใช้เชื้อเพลิงขนาดเล็กต่อไปนี้ที่มีตัวอย่าง 7 รายการ
และ
ข้อผิดพลาดกำลังสองเฉลี่ย (MSE) เป็นเมตริกการสูญเสีย
ปอนด์ในหน่วยพัน (ฟีเจอร์)
ไมล์ต่อแกลลอน (ป้ายกำกับ)
3.5
18
3.69
15
3.44
18
3.43
16
4.34
15
4.42
14
2.37
24
โมเดลจะเริ่มฝึกโดยตั้งค่าน้ำหนักและอคติเป็น 0
$$ \small{Weight:\ 0} $$
$$ \small{Bias:\ 0} $$
$$ \small{y = 0 + 0(x_1)} $$
คำนวณการสูญเสีย MSE ด้วยพารามิเตอร์โมเดลปัจจุบัน
$$ \small{Loss = \frac{(18-0)^2 + (15-0)^2 + (18-0)^2 + (16-0)^2 + (15-0)^2 + (14-0)^2 + (24-0)^2}{7}} $$
$$ \small{Loss= 303.71} $$
คำนวณความชันของเส้นสัมผัสฟังก์ชันการสูญเสียที่น้ำหนักแต่ละรายการ
และอคติ
$$ \small{Weight\ slope: -119.7} $$
$$ \small{Bias\ slope: -34.3} $$
คลิกไอคอนเครื่องหมายบวกเพื่อดูข้อมูลเกี่ยวกับการคำนวณความชัน
หากต้องการหาความชันของเส้นสัมผัสกับน้ำหนักและ
อคติ เราจะหาอนุพันธ์ของฟังก์ชันการสูญเสียเทียบกับ
น้ำหนักและอคติ แล้วแก้สมการ
เราจะเขียนสมการสำหรับการคาดการณ์ได้ดังนี้
$ f_{w,b}(x) = (w*x)+b $
เราจะเขียนค่าจริงเป็น $ y $
เราจะคำนวณ MSE โดยใช้
$ \frac{1}{M} \sum_{i=1}^{M} (f_{w,b}(x_{(i)}) - y_{(i)})^2 $
โดยที่ $i$ แสดงถึงตัวอย่างการฝึกที่ $i$ และ $M$ แสดงถึง
จำนวนตัวอย่าง
อนุพันธ์ของน้ำหนัก
อนุพันธ์ของฟังก์ชันการสูญเสียที่เทียบกับน้ำหนักเขียนได้ดังนี้
$ \frac{\partial }{\partial w} \frac{1}{M} \sum_{i=1}^{M} (f_{w,b}(x_{(i)}) - y_{(i)})^2 $
และประเมินได้เป็น
$ \frac{1}{M} \sum_{i=1}^{M} (f_{w,b}(x_{(i)}) - y_{(i)}) * 2x_{(i)} $
ก่อนอื่นเราจะบวกค่าที่คาดการณ์แต่ละค่าลบด้วยค่าจริง
แล้วคูณด้วยค่าฟีเจอร์ 2 เท่า
จากนั้นเราจะนำผลรวมไปหารด้วยจำนวนตัวอย่าง
ผลลัพธ์คือความชันของเส้นสัมผัสกับค่า
ของน้ำหนัก
หากเราแก้สมการนี้โดยกำหนดให้น้ำหนักและอคติเท่ากับ
0 เราจะได้ความชันของเส้นเท่ากับ -119.7
อนุพันธ์ของอคติ
อนุพันธ์ของฟังก์ชันการสูญเสียที่เทียบกับ
อคติเขียนได้ดังนี้
$ \frac{\partial }{\partial b} \frac{1}{M} \sum_{i=1}^{M} (f_{w,b}(x_{(i)}) - y_{(i)})^2 $
และประเมินเป็น
$ \frac{1}{M} \sum_{i=1}^{M} (f_{w,b}(x_{(i)}) - y_{(i)}) * 2 $
ก่อนอื่นเราจะบวกค่าที่คาดการณ์แต่ละค่าลบด้วยค่าจริง
แล้วคูณด้วย 2 จากนั้นเราจะหารผลรวมด้วย
จำนวนตัวอย่าง ผลลัพธ์คือความชันของเส้น
สัมผัสกับค่าของอคติ
หากเราแก้สมการนี้โดยให้น้ำหนักและค่าอคติเท่ากับ
0 เราจะได้ -34.3 สำหรับความชันของเส้น
เลื่อนไปเล็กน้อยในทิศทางของความชันที่เป็นลบเพื่อรับ
น้ำหนักและอคติถัดไป ตอนนี้เราจะกำหนด "จำนวนเล็กน้อย" เป็น 0.01 โดยพลการ
ดังนี้
$$ \small{New\ weight = old\ weight - (small\ amount * weight\ slope)} $$
$$ \small{New\ bias = old\ bias - (small\ amount * bias\ slope)} $$
$$ \small{New\ weight = 0 - (0.01)*(-119.7)} $$
$$ \small{New\ bias = 0 - (0.01)*(-34.3)} $$
$$ \small{New\ weight = 1.2} $$
$$ \small{New\ bias = 0.34} $$
ใช้น้ำหนักและความเอนเอียงใหม่เพื่อคำนวณการสูญเสียและการทำซ้ำ เมื่อทำกระบวนการนี้ซ้ำ 6 ครั้ง เราจะได้ค่าถ่วงน้ำหนัก อคติ และการสูญเสียต่อไปนี้
การทำซ้ำ
น้ำหนัก
อคติ
Loss (MSE)
1
0
0
303.71
2
1.20
0.34
170.84
3
2.05
0.59
103.17
4
2.66
0.78
68.70
5
3.09
0.91
51.13
6
3.40
1.01
42.17
คุณจะเห็นว่าการสูญเสียลดลงเมื่อมีการอัปเดตน้ำหนักและความเอนเอียงแต่ละครั้ง
ในตัวอย่างนี้ เราหยุดหลังจากทำซ้ำ 6 ครั้ง ในทางปฏิบัติ โมเดลจะ
ฝึกจนกว่าจะ
บรรจบกัน
เมื่อโมเดลบรรจบกัน การทำซ้ำเพิ่มเติมจะไม่ลดค่า Loss อีก
เนื่องจากการไล่ระดับความชันได้พบน้ำหนักและค่าอคติที่ลดค่า Loss ได้เกือบ
ต่ำสุดแล้ว
หากโมเดลยังคงฝึกต่อไปหลังจากบรรจบกันแล้ว การสูญเสียจะเริ่ม
ผันผวนเล็กน้อยเนื่องจากโมเดลจะอัปเดต
พารามิเตอร์อย่างต่อเนื่องรอบค่าต่ำสุด ซึ่งอาจทำให้
ยืนยันได้ยากว่าโมเดลบรรจบกันแล้วจริงๆ หากต้องการยืนยันว่าโมเดล
บรรจบกันแล้ว คุณจะต้องฝึกต่อไปจนกว่าการสูญเสียจะ
คงที่
เส้นโค้งการบรรจบกันของโมเดลและเส้นโค้งการสูญเสีย
เมื่อฝึกโมเดล คุณมักจะดูเส้นโค้ง
การสูญเสีย เพื่อพิจารณาว่าโมเดลบรรจบกัน หรือไม่ เส้นโค้งการสูญเสียแสดง
การเปลี่ยนแปลงของการสูญเสียเมื่อโมเดลได้รับการฝึก ต่อไปนี้คือลักษณะของเส้นโค้งการสูญเสียโดยทั่วไป
การสูญเสียจะอยู่บนแกน Y และการทำซ้ำจะอยู่บนแกน X
รูปที่ 12 เส้นโค้งการสูญเสียแสดงให้เห็นว่าโมเดลบรรจบกันที่ประมาณการทำซ้ำครั้งที่ 1,000
คุณจะเห็นว่าการสูญเสียลดลงอย่างมากในช่วง 2-3 การทำซ้ำแรก
จากนั้นจะค่อยๆ ลดลงก่อนที่จะคงที่เมื่อถึงการทำซ้ำที่ประมาณ 1,000
หลังจากทำซ้ำ 1,000 ครั้ง เราจะมั่นใจได้ว่าโมเดล
บรรจบกันแล้ว
ในรูปต่อไปนี้ เราจะวาดโมเดลที่ 3 จุดในระหว่างกระบวนการฝึก
ได้แก่ จุดเริ่มต้น จุดกึ่งกลาง และจุดสิ้นสุด การแสดงภาพสถานะของโมเดล
ในสแนปชอตระหว่างกระบวนการฝึกจะช่วยเสริมความเชื่อมโยงระหว่างการอัปเดต
น้ำหนักและอคติ การลดการสูญเสีย และการบรรจบกันของโมเดล
ในรูปภาพ เราใช้น้ำหนักและอคติที่ได้มาในการทำซ้ำที่เฉพาะเจาะจงเพื่อ
แสดงถึงโมเดล ในกราฟที่มีจุดข้อมูลและสแนปชอตโมเดล
เส้นการสูญเสียสีน้ำเงินจากโมเดลไปยังจุดข้อมูลจะแสดงปริมาณการสูญเสีย
ยิ่งสายยาวมากเท่าใด การสูญเสียก็จะยิ่งมากขึ้นเท่านั้น
ในรูปที่ 1 เราจะเห็นว่าในรอบที่ 2 โมเดล
จะคาดการณ์ได้ไม่ดีเนื่องจากค่าการสูญเสียสูง
รูปที่ 13 เส้นโค้งการสูญเสียและสแนปชอตของโมเดลในช่วงเริ่มต้นของ
กระบวนการฝึก
เมื่อวนซ้ำประมาณ 400 ครั้ง เราจะเห็นว่าการไล่ระดับความชันได้ค้นพบ
น้ำหนักและอคติที่สร้างโมเดลที่ดีขึ้น
รูปที่ 14 เส้นโค้งการสูญเสียและภาพรวมของโมเดลในช่วงกลางของการฝึก
และเมื่อถึงการวนซ้ำครั้งที่ประมาณ 1,000 เราจะเห็นว่าโมเดลได้บรรจบกันแล้ว
ซึ่งสร้างโมเดลที่มี Loss ต่ำที่สุดเท่าที่จะเป็นไปได้
รูปที่ 15 เส้นโค้งการสูญเสียและภาพรวมของโมเดลในช่วงท้ายของกระบวนการฝึก
แบบฝึกหัด: ทดสอบความเข้าใจ
บทบาทของการไล่ระดับสีในการถดถอยเชิงเส้นคืออะไร
การไล่ระดับความชันเป็นกระบวนการแบบวนซ้ำที่ค้นหาน้ำหนักและอคติที่ดีที่สุด
ซึ่งช่วยลดการสูญเสีย
การไล่ระดับความชันช่วยกำหนดประเภทการสูญเสียที่จะใช้เมื่อ
ฝึกโมเดล เช่น L1 หรือ L2
การไล่ระดับความชันไม่ได้เกี่ยวข้องกับการเลือกฟังก์ชัน
การสูญเสียสำหรับการฝึกโมเดล
การไล่ระดับแบบไล่ลงจะนำค่าผิดปกติออกจากชุดข้อมูลเพื่อช่วยให้โมเดล
คาดการณ์ได้ดียิ่งขึ้น
การไล่ระดับสีจะไม่เปลี่ยนแปลงชุดข้อมูล
ฟังก์ชันการบรรจบกันและฟังก์ชันนูน
ฟังก์ชันการสูญเสียสำหรับโมเดลเชิงเส้นจะสร้างพื้นผิวนูน เสมอ ด้วยคุณสมบัตินี้ เมื่อโมเดลการถดถอยเชิงเส้นบรรจบกัน เราจะทราบว่าโมเดลได้ค้นหาน้ำหนักและอคติที่ทำให้เกิดการสูญเสียต่ำที่สุดแล้ว
หากเราสร้างกราฟพื้นผิวการสูญเสียสำหรับโมเดลที่มีฟีเจอร์เดียว เราจะเห็นรูปร่างนูนของพื้นผิว ต่อไปนี้คือพื้นผิวการสูญเสียสำหรับชุดข้อมูลไมล์ต่อแกลลอนสมมติ น้ำหนักอยู่บนแกน x อคติอยู่บนแกน y และการสูญเสียอยู่บน
แกน z
รูปที่ 16 พื้นผิวการสูญเสียที่แสดงรูปร่างนูน
ในตัวอย่างนี้ น้ำหนัก -5.44 และอคติ 35.94 ทำให้เกิดการสูญเสียต่ำสุด
ที่ 5.54 ดังนี้
รูปที่ 17 พื้นผิวการสูญเสียที่แสดงค่าถ่วงน้ำหนักและค่าอคติที่ทำให้เกิดการสูญเสียต่ำสุด
โมเดลเชิงเส้นจะบรรจบกันเมื่อพบการสูญเสียขั้นต่ำ หากเราทำกราฟของจุดน้ำหนักและอคติระหว่างการไล่ระดับความชัน จุดต่างๆ จะมีลักษณะเหมือนลูกบอลกลิ้งลงเนินเขา และหยุดในที่สุดที่จุดที่ไม่มีความชันลงอีก
หมายเหตุ: โมเดลแทบจะไม่พบค่าถ่วงน้ำหนักและค่าอคติที่แน่นอนซึ่งลดการสูญเสียให้เหลือน้อยที่สุด แต่จะพบค่าที่ใกล้เคียงกับค่าเหล่านั้นมากแทน
รูปที่ 18 กราฟการสูญเสียที่แสดงจุดการไล่ระดับสีหยุดที่จุดต่ำสุด
บนกราฟ
โปรดสังเกตว่าจุดการสูญเสียสีดำสร้างรูปร่างที่แน่นอนของเส้นโค้งการสูญเสีย ซึ่งก็คือการลดลงอย่างรวดเร็วก่อนที่จะค่อยๆ ลดลงจนถึงจุดต่ำสุดบนพื้นผิวการสูญเสีย
หมายเหตุ: จุดนี้แสดงถึงการสูญเสียขั้นต่ำสำหรับโมเดล
ซึ่งโดยปกติจะมากกว่า 0 การสูญเสีย 0 หมายความว่าโมเดลพอดีกับจุดข้อมูลทุกจุดอย่างแม่นยำ ซึ่งมักเป็นสัญญาณของการปรับมากเกินไป (กล่าวคือ โมเดลซับซ้อน/ทรงพลังเกินไป) เราจะพูดถึงการปรับมากเกินไปในรายละเอียดเพิ่มเติม
ในภายหลังของ
หลักสูตร
การใช้น้ำหนักและค่าอคติที่ทำให้เกิดการสูญเสียต่ำที่สุด ในกรณีนี้คือน้ำหนัก -5.44 และอคติ 35.94 เราสามารถสร้างกราฟโมเดลเพื่อดูว่าโมเดลเหมาะกับข้อมูลมากน้อยเพียงใด
รูปที่ 19 โมเดลที่สร้างกราฟโดยใช้น้ำหนักและค่าอคติที่ทำให้เกิด
การสูญเสียต่ำที่สุด
นี่จะเป็นโมเดลที่ดีที่สุดสําหรับชุดข้อมูลนี้ เนื่องจากค่าถ่วงน้ำหนักและความเอนเอียงอื่นๆ ไม่ได้สร้างโมเดลที่มีการสูญเสียต่ำกว่า