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

ขั้นการลดระดับด้วยความชัน

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

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

โครงการนี้ฝึกน้ำหนักด้วย softmax ต่างจากแล็บในหน้าแรกที่ใช้ค่าเฉลี่ยของสายพันธุ์ที่ใกล้ที่สุด ข้อมูลวัดเพนกวินชุดเดียวกัน แต่วิธีจำแนกต่างกัน คำทำนายอาจต่างกันได้

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

การเรียนรู้และการปรับพารามิเตอร์ · เลือกกฎหรือปรับพารามิเตอร์ด้วยกฎการเรียนรู้

ฟังก์ชันเป้าหมายให้เกรเดียนต์เพื่อปรับพารามิเตอร์

การปรับ

ข้อมูลเข้า
เกรเดียนต์: [≈0.004056, ≈0.01907, ≈0.008327, ≈-0.008829, ≈-0.0138, ≈0.01504, ≈0.004773, ≈-0.005269, ≈-0.02337]; ขนาดขั้น: 0.1
ผลลัพธ์
[≈-0.2899, ≈-2.054, ≈-1.017, ≈0.6924, ≈1.558, ≈-1.663, ≈-0.4025, ≈0.4955, ≈2.68]

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

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

เกรเดียนต์ → การปรับ → ค่าทำนาย

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

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

input.weights · แบบจำลอง
[≈-0.2895, ≈-2.052, ≈-1.016] … (9 รายการ)
input.gradient · เกรเดียนต์
[≈0.004056, ≈0.01907, ≈0.008327] … (9 รายการ)
input.rate · การปรับ
0.1

ผลลัพธ์

[≈-0.2899, ≈-2.054, ≈-1.017] … (9 รายการ)

ใช้ในส่วนต้นฉบับเหล่านี้: 1.2.1 หาพารามิเตอร์ที่เหมาะสม · 2.3 เส้นทางการฝึกมีผล

เกรเดียนต์บอกทิศที่ค่าเป้าหมายเพิ่มเร็วที่สุด ลบเกรเดียนต์ที่ปรับขนาดแล้วเพื่อก้าวหนึ่งขั้น

สำหรับเป้าหมายสมมติ r(θ) = θ² เกรเดียนต์คือ 2θ

ขั้นนี้เป็นวิธีพื้นฐานหนึ่งในการลดค่าเป้าหมาย

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

θk+1=θk−η∇r(θk)\theta_{k+1}=\theta_k-\eta\nabla r(\theta_k)

ภาพประกอบ · นี่เป็นหนึ่งขั้นบนฟังก์ชันกำลังสองเฉพาะ ก้าวหนึ่งขั้นไม่จำเป็นต้องลดค่าเป้าหมายทุกชนิดสำหรับทุกขนาดก้าว

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

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

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

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

คุณเลือก

  • input.theta = 2
  • input.rate = 0.1

คำนวณที่นี่

นิพจน์ผลลัพธ์: { gradient, next, before: input.theta ** 2, after: next ** 2 }

  • gradient = 2 * input.theta ใช้: input.theta
  • next = input.theta - input.rate * gradient ใช้: input.theta, input.rate, gradient

ส่งกลับ

ผลลัพธ์ตัวอย่าง
gradient
4
next
1.6
before
4
after
2.56

อ่านตัวเลขจาก input แล้วคืนค่าผลลัพธ์ พื้นฐาน JavaScript.

ผลลัพธ์

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

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

เปลี่ยนข้อมูลเข้าแล้วเรียกใช้โค้ดเดิมอีกครั้ง ผลลัพธ์ที่แสดงใช้ค่าข้างต้น

แหล่งอ้างอิง: การลดระดับด้วยความชัน