คณิตศาสตร์สมัยใหม่ของการเรียนรู้เชิงลึกอธิบายสำหรับผู้ที่ไม่ใช่นักคณิตศาสตร์

การถดถอยริดจ์

โครงการเรียนรู้เพนกวิน

โครงการใช้ข้อมูลเพนกวิน Palmer ที่สมบูรณ์ 342 แถว: ชุดฝึก 240 และชุดทดสอบ 102 แถว แถวฝึกที่เลือกกำหนดการปรับสเกลและพารามิเตอร์ CSV ต้นฉบับ

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

ฟังก์ชันเป้าหมาย · รวมความสูญเสียและค่าปรับเป็นเกณฑ์สำหรับพารามิเตอร์หรือกฎ

ค่าทำนายและคำตอบให้ความสูญเสีย การจำแนกใช้ครอสเอนโทรปีและ α/2 คูณผลรวมน้ำหนักที่ไม่ใช่ไบแอสยกกำลังสอง ริดจ์ใช้ MSE ของมวลที่ปรับสเกลและ α คูณสัมประสิทธิ์ทุกตัวรวมไบแอสยกกำลังสอง

ฟังก์ชันเป้าหมาย

ข้อมูลเข้า
ความสูญเสียเฉลี่ยชุดฝึก: ≈0.2556; ค่าปรับ: ≈0.0005264
ผลลัพธ์
≈0.2561

การดำเนินการของโครงการ

การคำนวณโครงการใช้ข้อมูลชุดนี้ สูตรและตัวอย่างต้นฉบับอยู่ด้านล่าง การแก้โค้ดมีผลเฉพาะหน้านี้ ส่วนการตั้งค่าโครงการส่งต่อระหว่างหน้า

ความสูญเสียเฉลี่ยชุดฝึก → ฟังก์ชันเป้าหมาย → เกรเดียนต์

ข้อมูลเข้าโครงการ

แสดงสามรายการแรก การดำเนินการรับอาร์เรย์ทั้งหมด ค่าตัวอย่างปัดเศษแล้ว การดำเนินการใช้ค่าเต็ม

input.weights · แบบจำลอง
[≈-2.422E-17, ≈0.2558, ≈0.679]
input.alpha · การตั้งค่าโครงการหรือค่าคงที่
0.001
input.task · การตั้งค่าโครงการหรือค่าคงที่
ridge

ผลลัพธ์

≈0.2561

ใช้ในส่วนต้นฉบับเหล่านี้: 1.3 คำถามที่จะศึกษาต่อ

คู่ฝึกสมมติสามคู่แสดงจำนวนซองและจำนวนสติกเกอร์ที่ทราบ: (1, 2), (2, 4), (3, 6) ในงานจริงมีการเก็บข้อมูลดิบจากการสังเกต แล้วอาจทำความสะอาดหรือแปลงเป็นคุณลักษณะ ส่วนป้ายกำกับคือคำตอบที่ทราบ ในตัวอย่างนี้จำนวนสมมติใส่ใน xs และ ys โดยตรงโดยไม่แปลงข้อมูล

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

ค่าปรับส่งเสริมน้ำหนักที่เล็กลง ขณะที่ความผิดพลาดวัดความพอดีกับข้อมูล

ตัวอย่างสูตรต้นฉบับ

1m∑i=1m(Φ(X(i),θ)−Y(i))2+α∥θ∥22\frac{1}{m}\sum_{i=1}^{m}(\Phi(X^{(i)},\theta)-Y^{(i)})^{2}+\alpha\|\theta\|_{2}^{2}

ตรงตามนิยาม · ผลลัพธ์ตรงตามการคำนวณสำหรับข้อมูลเข้าสมมติจำนวนจำกัดนี้ ยกเว้นการปัดเศษตามปกติของคอมพิวเตอร์

สัญลักษณ์

mm
จำนวนตัวอย่างฝึก
x(i),y(i)x^{(i)}, y^{(i)}
ข้อมูลเข้าและเป้าหมายของตัวอย่างที่ i
θθ
เวกเตอร์น้ำหนักจำนวนจริง ตัวอย่างนี้มีหนึ่งสมาชิก
αα
ความแรงของค่าปรับที่ไม่เป็นลบ

ตัวอย่างสูตรต้นฉบับ

ตัวอย่างต้นฉบับนี้ใช้ข้อมูลเข้าและสมมติฐานของตัวเอง การแก้ไขไม่เปลี่ยนโครงการ

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

ลองตั้งน้ำหนักเป็น 2 คะแนนส่วนใดยังเหลืออยู่ จากนั้นตั้ง α เป็น 0

ลำดับข้อมูลในตัวอย่างนี้

คุณเลือก

  • input.weight = 1
  • input.alpha = 0.001

ค่าเริ่มต้นในโค้ด

  • xs = [1, 2, 3]
  • ys = [2, 4, 6]

คำนวณที่นี่

นิพจน์ผลลัพธ์: evaluateRidge(xs, ys, input.weight, input.alpha)

  • weight ← input.weight
  • alpha ← input.alpha
  • predictions = xs.map((x) => predict(x, weight)) ใช้: xs, predict, weight
  • errors = predictions.map((prediction, i) => prediction - ys[i]) ใช้: predictions, ys
  • squaredErrors = errors.map(squaredLoss) ใช้: errors, squaredLoss
  • mse = mean(squaredErrors) ใช้: mean, squaredErrors
  • penalty = 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.

ผลลัพธ์

เปิด JavaScript เพื่อรันตัวอย่างนี้

ข้อความทางเทคนิค

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

แหล่งอ้างอิง: รูป 1.4 · หน้าในบทความ 18