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

การแพร่ย้อนกลับผ่านสองชั้น

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

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

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

ฟังก์ชันและอนุพันธ์ · อธิบายการจับคู่และการเปลี่ยนแปลงของผลลัพธ์

เวกเตอร์โครงการมีสองคุณลักษณะ เมทริกซ์ฝึกมี n แถวและสองคอลัมน์ ใช้เครื่องมือเมื่อสมมติฐานตรงกัน

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

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

ใช้ในส่วนต้นฉบับเหล่านี้: 2.3 เส้นทางการฝึกมีผล

กฎลูกโซ่คูณการตอบสนองของแต่ละขั้นต่อการเปลี่ยนเล็กน้อย ในตัวอย่างสเกลาร์ตัวประกอบเหล่านี้เป็นจำนวนธรรมดา

ให้ Φ(x)=v·ReLU(ux) เมื่อห่างจาก ux=0 อนุพันธ์เทียบกับ u คือ v·ReLU′(ux)·x

การแพร่ย้อนกลับคำนวณว่าพารามิเตอร์ส่งผลต่อผลลัพธ์อย่างไร

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

∇W(ℓ)Φ=ϱ(Φ(ℓ−1))∂Φ∂Φ(ℓ+1)∂Φ(ℓ+1)∂Φ(ℓ)=ϱ(Φ(ℓ−1))∂Φ∂Φ(ℓ+1)W(ℓ+1)diag⁡(ϱ′(Φ(ℓ))),\nabla_{W^{(\ell)}}\Phi=\varrho(\Phi^{(\ell-1)})\frac{\partial\Phi}{\partial\Phi^{(\ell+1)}}\frac{\partial\Phi^{(\ell+1)}}{\partial\Phi^{(\ell)}}=\varrho(\Phi^{(\ell-1)})\frac{\partial\Phi}{\partial\Phi^{(\ell+1)}}W^{(\ell+1)}\operatorname{diag}\big(\varrho^{\prime}(\Phi^{(\ell)})\big),

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

สัญลักษณ์

W(ℓ)W^{(ℓ)}
เมทริกซ์น้ำหนักของชั้น ℓ
ρ′ρ^{\prime}
อนุพันธ์ฟังก์ชันกระตุ้น ณ จุดที่นิยามได้

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

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

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

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

คุณเลือก

  • input.u = 2
  • input.x = 1
  • input.v = 3

คำนวณที่นี่

นิพจน์ผลลัพธ์: { preactivation, activation, activationDerivative, output, gradientU, gradientMatrix: [[gradientU]], gradientShape: [1, 1], }

  • preactivation = input.u * input.x ใช้: input.u, input.x
  • activation = Math.max(0, preactivation) ใช้: preactivation
  • activationDerivative = preactivation > 0 ? 1 : 0 ใช้: preactivation
  • output = input.v * activation ใช้: input.v, activation
  • gradientU = input.x * input.v * activationDerivative ใช้: input.x, input.v, activationDerivative

ส่งกลับ

ผลลัพธ์ตัวอย่าง
preactivation
2
activation
2
activationDerivative
1
output
6
gradientU
3
gradientMatrix
อาร์เรย์ (1 รายการ): [อาร์เรย์ (1 รายการ): [3]]
gradientShape
อาร์เรย์ (2 รายการ): [1, 1]

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

ผลลัพธ์

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

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

ต้นฉบับใช้กฎลูกโซ่กับเครือข่ายไม่มีไบแอสที่ให้ผลสเกลาร์ โดยแสดงเกรเดียนต์รูปทรง N_(ℓ−1) คูณ N_ℓ ตัวอย่างมีข้อมูลเข้าสเกลาร์หนึ่งค่าและหน่วยซ่อนหนึ่งหน่วย เกรเดียนต์ที่แสดงจึงมีรูปทรง 1 คูณ 1 ReLU ไม่มีอนุพันธ์เอกลักษณ์ที่ศูนย์และโค้ดปฏิเสธกรณีนั้น

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