ขั้นการลดระดับด้วยความชัน
โครงการเรียนรู้เพนกวิน
โครงการใช้ข้อมูลเพนกวิน 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θ
ขั้นนี้เป็นวิธีพื้นฐานหนึ่งในการลดค่าเป้าหมาย
ตัวอย่างสูตรต้นฉบับ
ภาพประกอบ · นี่เป็นหนึ่งขั้นบนฟังก์ชันกำลังสองเฉพาะ ก้าวหนึ่งขั้นไม่จำเป็นต้องลดค่าเป้าหมายทุกชนิดสำหรับทุกขนาดก้าว
ตัวอย่างสูตรต้นฉบับ
ตัวอย่างต้นฉบับนี้ใช้ข้อมูลเข้าและสมมติฐานของตัวเอง การแก้ไขไม่เปลี่ยนโครงการ
แก้ค่าหรือโค้ด แล้วกดรัน ตัวอย่างนี้เป็นการคำนวณจำนวนจำกัด ไม่ใช่การพิสูจน์ทฤษฎีบท
ลำดับข้อมูลในตัวอย่างนี้
โค้ดเปลี่ยนแล้ว กดรีเซ็ตเพื่อคืนลำดับข้อมูลของตัวอย่าง
คุณเลือก
input.theta= 2input.rate= 0.1
คำนวณที่นี่
นิพจน์ผลลัพธ์: { gradient, next, before: input.theta ** 2, after: next ** 2 }
gradient=2 * input.thetaใช้:input.thetanext=input.theta - input.rate * gradientใช้:input.theta,input.rate,gradient
ส่งกลับ
gradient- 4
next- 1.6
before- 4
after- 2.56
อ่านตัวเลขจาก input แล้วคืนค่าผลลัพธ์ พื้นฐาน JavaScript.
ผลลัพธ์
ข้อความทางเทคนิค
เปลี่ยนข้อมูลเข้าแล้วเรียกใช้โค้ดเดิมอีกครั้ง ผลลัพธ์ที่แสดงใช้ค่าข้างต้น
แหล่งอ้างอิง: การลดระดับด้วยความชัน