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

การไหลตามเกรเดียนต์และเคอร์เนล

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

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

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

เคอร์เนลและการทำให้เป็นเชิงเส้น · เชื่อมเกรเดียนต์พารามิเตอร์หรือคุณลักษณะกับเมทริกซ์เคอร์เนล

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

พิจารณาแนวคิดนี้ร่วมกับโครงการ สมมติฐานของต้นฉบับอาจต่างกัน ข้อมูลชุดนี้ไม่พิสูจน์ทฤษฎีบท

ข้อมูลเข้า: 12 × 2; ประเมินชุดทดสอบ: 102 · #58 · 40.6 มม., 193 มม.. คำตอบที่ทราบ: อาเดลี; ค่าทำนาย: อาเดลี · [≈0.7383, ≈0.2444, ≈0.01737].

ใช้ในส่วนต้นฉบับเหล่านี้: 2.1 มองผ่านความคล้ายคลึง

การไหลตามเกรเดียนต์เปลี่ยนพารามิเตอร์ในทิศลบของเกรเดียนต์ความเสี่ยง Dᵢ แต่ละตัวเป็นอนุพันธ์ของความสูญเสียเทียบกับค่าทำนาย

สำหรับแบบจำลองสมมติ Φ(x,θ) = θx และความสูญเสียกำลังสอง โค้ดคำนวณอัตราการเปลี่ยนพารามิเตอร์ ค่าทำนาย และความเสี่ยง ณ ขณะหนึ่ง

เคอร์เนลแสดงว่าการปรับพารามิเตอร์เปลี่ยนค่าทำนายที่ข้อมูลเข้าต่างกันอย่างไร

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

dΘ(t)dt=−∇θR^s(Φ(⋅,Θ(t)))=−1m∑i=1m∇θΦ(x(i),Θ(t))Di(t),Θ(0)=Θ0,\frac{\mathrm{d}\Theta(t)}{\mathrm{d}t}=-\nabla_{\theta}\widehat{\mathcal{R}}_{s}(\Phi(\cdot,\Theta(t)))=-\frac{1}{m}\sum_{i=1}^{m}\nabla_{\theta}\Phi(x^{(i)},\Theta(t))D_{i}(t),\quad\Theta(0)=\Theta_{0},

ภาพประกอบ · คำนวณอัตรา ณ ขณะหนึ่งสำหรับแบบจำลองสเกลาร์เรียบหนึ่งแบบและตัวอย่างคงที่สองตัว ไม่ได้แก้วิถีทั้งหมดหรือแสดงว่าเคอร์เนลทั่วไปคงที่

สัญลักษณ์

DiD_i
อนุพันธ์ความสูญเสียเทียบกับค่าทำนายบนตัวอย่างฝึก i
Kθ(x,x′)K_θ(x,x^{\prime})
ผลคูณจุดของเกรเดียนต์ผลลัพธ์ที่ข้อมูลเข้าสองค่า

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

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

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

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

คุณเลือก

  • input.theta = 1
  • input.query = 1

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

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

คำนวณที่นี่

นิพจน์ผลลัพธ์: { predictions, lossDerivatives, parameterRate, kernelRow, kernelMatrix, predictionRate, riskRate, }

  • predictions = xs.map((x) => input.theta * x) ใช้: xs, input.theta
  • lossDerivatives = predictions.map((value, i) => 2 * (value - ys[i])) ใช้: predictions, ys
  • parameterRate = -xs.reduce((sum, x, i) => sum + x * lossDerivatives[i], 0) / xs.length ใช้: xs, lossDerivatives
  • kernelRow = xs.map((x) => input.query * x) ใช้: xs, input.query
  • kernelMatrix = xs.map((xi) => xs.map((xj) => xi * xj)) ใช้: xs
  • predictionRate = -kernelRow.reduce((sum, value, i) => sum + value * lossDerivatives[i], 0) / xs.length ใช้: kernelRow, lossDerivatives, xs
  • riskRate = -xs.reduce( (sum, xi, i) => sum + xs.reduce( (inner, xj, j) => inner + lossDerivatives[i] * xi * xj * lossDerivatives[j], 0, ), 0, ) / xs.length ** 2 ใช้: xs, lossDerivatives

ส่งกลับ

ผลลัพธ์ตัวอย่าง
predictions
อาร์เรย์ (2 รายการ): [1, 2]
lossDerivatives
อาร์เรย์ (2 รายการ): [-2, -4]
parameterRate
5
kernelRow
อาร์เรย์ (2 รายการ): [1, 2]
kernelMatrix
อาร์เรย์ (2 รายการ): [อาร์เรย์ (2 รายการ): [1, 2], อาร์เรย์ (2 รายการ): [2, 4]]
predictionRate
5
riskRate
-25

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

ผลลัพธ์

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

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

ต้นฉบับใช้กฎลูกโซ่แสดงความเร็วพารามิเตอร์ ผลลัพธ์ และความเสี่ยงผ่าน D และเคอร์เนลสัมผัสประสาท แบบจำลองเชิงเส้นนี้มีเกรเดียนต์ ∂Φ/∂θ = x จึงมีเคอร์เนล K(x,x′) = xx′ สำหรับความสูญเสียกำลังสอง Dᵢ = 2(Φ(xᵢ,θ)−yᵢ) อัตราความเสี่ยงเท่ากับลบกำลังสองของเกรเดียนต์พารามิเตอร์ในตัวอย่างสเกลาร์นี้

แหล่งอ้างอิง: นิพจน์จากแหล่งต้นฉบับ