การถดถอยริดจ์
โครงการเรียนรู้เพนกวิน
โครงการใช้ข้อมูลเพนกวิน Palmer ที่สมบูรณ์ 342 แถว: ชุดฝึก 240 และชุดทดสอบ 102 แถว แถวฝึกที่เลือกกำหนดการปรับสเกลและพารามิเตอร์ CSV ต้นฉบับ
โครงการนี้ฝึกน้ำหนักด้วย softmax ต่างจากแล็บในหน้าแรกที่ใช้ค่าเฉลี่ยของสายพันธุ์ที่ใกล้ที่สุด ข้อมูลวัดเพนกวินชุดเดียวกัน แต่วิธีจำแนกต่างกัน คำทำนายอาจต่างกันได้
การจำแนกทำนายสามชนิด ริดจ์ทำนายมวลเป็นกรัมจากข้อมูลเดียวกัน แต่เป็นคนละแบบจำลอง ค่าทำนายชุดฝึกส่งไปยังฟังก์ชันเป้าหมาย ค่าทำนายชุดทดสอบ 102 แถวแยกไว้และไม่ปรับน้ำหนัก
ฟังก์ชันเป้าหมาย · รวมความสูญเสียและค่าปรับเป็นเกณฑ์สำหรับพารามิเตอร์หรือกฎ
ค่าทำนายและคำตอบให้ความสูญเสีย การจำแนกใช้ครอสเอนโทรปีและ α/2 คูณผลรวมน้ำหนักที่ไม่ใช่ไบแอสยกกำลังสอง ริดจ์ใช้ MSE ของมวลที่ปรับสเกลและ α คูณสัมประสิทธิ์ทุกตัวรวมไบแอสยกกำลังสอง
ฟังก์ชันเป้าหมาย
- ข้อมูลเข้า
- ความสูญเสียเฉลี่ยชุดฝึก: ≈0.2556; ค่าปรับ: ≈0.0005264
- ผลลัพธ์
- ≈0.2561
การดำเนินการของโครงการ
การคำนวณโครงการใช้ข้อมูลชุดนี้ สูตรและตัวอย่างต้นฉบับอยู่ด้านล่าง การแก้โค้ดมีผลเฉพาะหน้านี้ ส่วนการตั้งค่าโครงการส่งต่อระหว่างหน้า
ความสูญเสียเฉลี่ยชุดฝึก → ฟังก์ชันเป้าหมาย → เกรเดียนต์
ข้อมูลเข้าโครงการ
แสดงสามรายการแรก การดำเนินการรับอาร์เรย์ทั้งหมด ค่าตัวอย่างปัดเศษแล้ว การดำเนินการใช้ค่าเต็ม
input.meanLoss· ความสูญเสียเฉลี่ยชุดฝึก≈0.2556input.weights· แบบจำลอง[≈-2.422E-17, ≈0.2558, ≈0.679]input.alpha· การตั้งค่าโครงการหรือค่าคงที่0.001input.task· การตั้งค่าโครงการหรือค่าคงที่ridge
ผลลัพธ์
≈0.2561
ใช้ในส่วนต้นฉบับเหล่านี้: 1.3 คำถามที่จะศึกษาต่อ
คู่ฝึกสมมติสามคู่แสดงจำนวนซองและจำนวนสติกเกอร์ที่ทราบ: (1, 2), (2, 4), (3, 6) ในงานจริงมีการเก็บข้อมูลดิบจากการสังเกต แล้วอาจทำความสะอาดหรือแปลงเป็นคุณลักษณะ ส่วนป้ายกำกับคือคำตอบที่ทราบ ในตัวอย่างนี้จำนวนสมมติใส่ใน xs และ ys โดยตรงโดยไม่แปลงข้อมูล
แบบจำลองไม่มีจุดตัดแกน น้ำหนักที่เลือกจึงหมายถึงจำนวนสติกเกอร์ต่อซอง ทำนายจำนวน ยกกำลังสองความผิดพลาดแต่ละค่า หาค่าเฉลี่ย แล้วบวก α คูณน้ำหนักกำลังสอง
ค่าปรับส่งเสริมน้ำหนักที่เล็กลง ขณะที่ความผิดพลาดวัดความพอดีกับข้อมูล
ตัวอย่างสูตรต้นฉบับ
ตรงตามนิยาม · ผลลัพธ์ตรงตามการคำนวณสำหรับข้อมูลเข้าสมมติจำนวนจำกัดนี้ ยกเว้นการปัดเศษตามปกติของคอมพิวเตอร์
สัญลักษณ์
- จำนวนตัวอย่างฝึก
- ข้อมูลเข้าและเป้าหมายของตัวอย่างที่ i
- เวกเตอร์น้ำหนักจำนวนจริง ตัวอย่างนี้มีหนึ่งสมาชิก
- ความแรงของค่าปรับที่ไม่เป็นลบ
ตัวอย่างสูตรต้นฉบับ
ตัวอย่างต้นฉบับนี้ใช้ข้อมูลเข้าและสมมติฐานของตัวเอง การแก้ไขไม่เปลี่ยนโครงการ
แก้ค่าหรือโค้ด แล้วกดรัน ตัวอย่างนี้เป็นการคำนวณจำนวนจำกัด ไม่ใช่การพิสูจน์ทฤษฎีบท
ลองตั้งน้ำหนักเป็น 2 คะแนนส่วนใดยังเหลืออยู่ จากนั้นตั้ง α เป็น 0
ลำดับข้อมูลในตัวอย่างนี้
โค้ดเปลี่ยนแล้ว กดรีเซ็ตเพื่อคืนลำดับข้อมูลของตัวอย่าง
คุณเลือก
input.weight= 1input.alpha= 0.001
ค่าเริ่มต้นในโค้ด
xs=[1, 2, 3]ys=[2, 4, 6]
คำนวณที่นี่
นิพจน์ผลลัพธ์: evaluateRidge(xs, ys, input.weight, input.alpha)
weight←input.weightalpha←input.alpha
predictions=xs.map((x) => predict(x, weight))ใช้:xs,predict,weighterrors=predictions.map((prediction, i) => prediction - ys[i])ใช้:predictions,yssquaredErrors=errors.map(squaredLoss)ใช้:errors,squaredLossmse=mean(squaredErrors)ใช้:mean,squaredErrorspenalty=alpha * weight ** 2ใช้:alpha,weight
ส่งกลับ
xs- อาร์เรย์ (3 รายการ): [1, 2, 3]
ys- อาร์เรย์ (3 รายการ): [2, 4, 6]
predictions- อาร์เรย์ (3 รายการ): [1, 2, 3]
errors- อาร์เรย์ (3 รายการ): [-1, -2, -3]
squaredErrors- อาร์เรย์ (3 รายการ): [1, 4, 9]
mse- ≈4.667
penalty- 0.001
objective- ≈4.668
อ่านตัวเลขจาก input แล้วคืนค่าผลลัพธ์ พื้นฐาน JavaScript.
ผลลัพธ์
ข้อความทางเทคนิค
ผู้อ่านเลือกน้ำหนักและ α โดยค่าเริ่มต้น α = 0.001 มาจากรูปต้นฉบับ ตัวอย่างนี้ให้คะแนนน้ำหนักที่เลือก ไม่ได้ฝึกหรือหาน้ำหนักที่ดีที่สุด ตัวหาค่าเหมาะที่สุดอาจใช้คะแนนเพื่อลองน้ำหนักอื่น แล้วใช้น้ำหนักที่ฝึกได้ทำนายจำนวนสติกเกอร์สำหรับจำนวนซองใหม่
แหล่งอ้างอิง: รูป 1.4 · หน้าในบทความ 18