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

สมมติฐานการตัดแต่งบนโครงข่ายจำกัด

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

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

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

การตัดแต่ง · อธิบายการตัดน้ำหนักเครือข่ายและขอบเขตความผิดพลาด

โครงการใช้กฎเชิงเส้นกับสองคุณลักษณะ น้ำหนักที่ฝึกให้คะแนนหรือมวลที่ปรับสเกล

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

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

ใช้ในส่วนต้นฉบับเหล่านี้: 6.5 ตัดการเชื่อมต่อที่ไม่จำเป็น

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

ตัวอย่างนี้ทำให้สัญกรณ์หรือเงื่อนไขในต้นฉบับเป็นรูปธรรม

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

∥wi(1)∥2≤1/2\|w_{i}^{(1)}\|_{2}\leq 1/2

ภาพประกอบ · โครงข่ายเฉพาะที่สร้างขึ้นนี้เป็นไปตามสมมติฐานและแสดงผลพารามิเตอร์เบาบาง 99% แต่หน้ากากที่เลือกตามอำเภอใจไม่จำเป็นต้องให้ขอบเขตความผิดพลาดในต้นฉบับ

สัญลักษณ์

nn
จำนวนหน่วยซ่อนเดิม อย่างน้อย 100
wi(1),bi(1)wᵢ⁽¹⁾,bᵢ⁽¹⁾
น้ำหนักและไบแอสขาเข้าของหน่วย i
w(2)w⁽²⁾
เวกเตอร์น้ำหนักผลลัพธ์
II
เซตหน่วยที่เก็บไว้
μμ
เมเชอร์ความน่าจะเป็นที่รองรับบนบอลหนึ่งหน่วย
fifᵢ
คุณลักษณะซ่อนที่ปรับมาตราส่วน

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

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

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

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

คุณเลือก

  • input.hiddenWeight = 0.5

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

  • n = 100
  • bias = 0.5
  • keep = [0]

คำนวณที่นี่

นิพจน์ผลลัพธ์: { n, hiddenWeight, bias, hiddenNorm: Math.abs(hiddenWeight), weightBound: Math.abs(hiddenWeight) <= 0.5, biasBound: bias <= 0.5, keepCount: keep.length, keepBound: keep.length <= n / 100, zeroOutputWeights: keptOutputWe...

  • hiddenWeight = input.hiddenWeight ใช้: input.hiddenWeight
  • originalOutputWeights = Array(n).fill(1) ใช้: n
  • keptOutputWeights = originalOutputWeights.map((_, i) => (i === 0 ? 100 : 0)) ใช้: originalOutputWeights
  • originalValue = originalOutputWeights.reduce( (s, w) => s + w * Math.max(0, bias), 0, ) ใช้: originalOutputWeights, bias
  • prunedValue = keptOutputWeights.reduce((s, w) => s + w * Math.max(0, bias), 0) ใช้: keptOutputWeights, bias
  • feature = 100 * Math.max(0, bias) ใช้: bias

ส่งกลับ

ผลลัพธ์ตัวอย่าง
n
100
hiddenWeight
0.5
bias
0.5
hiddenNorm
0.5
weightBound
จริง
biasBound
จริง
keepCount
1
keepBound
จริง
… (13 รายการ)

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

ผลลัพธ์

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

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

ตัวอย่างใช้ n=100 โดยน้ำหนักซ่อนสเกลาร์และไบแอสเหมือนกัน และ μ กระจุกที่ x=0 ขอบเขตนอร์มข้อมูลป้อนเข้าและไบแอสเป็นจริง น้ำหนักผลลัพธ์เดิมทั้งหมดเป็น 1 จึงมีนอร์ม L1 เท่ากับ 100 และ fᵢ(0)=50 การเก็บหนึ่งหน่วยที่มีน้ำหนักผลลัพธ์ 100 ทำซ้ำผลลัพธ์เดิมที่ x=0 ขณะที่น้ำหนักผลลัพธ์ 99 ตัวและพารามิเตอร์ขาเข้าทั้งหมดของหน่วยที่นำออกตั้งเป็นศูนย์ได้ กลุ่มคุณลักษณะมีเครื่องหมายมี fᵢ และ −fᵢ หากน้ำหนักผลลัพธ์ทุกตัวเป็นศูนย์ ผลลัพธ์โครงข่ายเดิมเป็นศูนย์

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