สมมติฐานการตัดแต่งบนโครงข่ายจำกัด
โครงการเรียนรู้เพนกวิน
โครงการใช้ข้อมูลเพนกวิน Palmer ที่สมบูรณ์ 342 แถว: ชุดฝึก 240 และชุดทดสอบ 102 แถว แถวฝึกที่เลือกกำหนดการปรับสเกลและพารามิเตอร์ CSV ต้นฉบับ
โครงการนี้ฝึกน้ำหนักด้วย softmax ต่างจากแล็บในหน้าแรกที่ใช้ค่าเฉลี่ยของสายพันธุ์ที่ใกล้ที่สุด ข้อมูลวัดเพนกวินชุดเดียวกัน แต่วิธีจำแนกต่างกัน คำทำนายอาจต่างกันได้
การตัดแต่ง · อธิบายการตัดน้ำหนักเครือข่ายและขอบเขตความผิดพลาด
โครงการใช้กฎเชิงเส้นกับสองคุณลักษณะ น้ำหนักที่ฝึกให้คะแนนหรือมวลที่ปรับสเกล
พิจารณาแนวคิดนี้ร่วมกับโครงการ สมมติฐานของต้นฉบับอาจต่างกัน ข้อมูลชุดนี้ไม่พิสูจน์ทฤษฎีบท
ข้อมูลเข้า: 12 × 2; ประเมินชุดทดสอบ: 102 · #58 · 40.6 มม., 193 มม.. คำตอบที่ทราบ: อาเดลี; ค่าทำนาย: อาเดลี · [≈0.7383, ≈0.2444, ≈0.01737].
ใช้ในส่วนต้นฉบับเหล่านี้: 6.5 ตัดการเชื่อมต่อที่ไม่จำเป็น
ตรวจสอบเงื่อนไขต้นฉบับสำหรับโครงข่ายเรลูหนึ่งโครงข่าย และนับพารามิเตอร์ที่นำออกด้วยหน้ากากที่เลือก
ตัวอย่างนี้ทำให้สัญกรณ์หรือเงื่อนไขในต้นฉบับเป็นรูปธรรม
ตัวอย่างสูตรต้นฉบับ
ภาพประกอบ · โครงข่ายเฉพาะที่สร้างขึ้นนี้เป็นไปตามสมมติฐานและแสดงผลพารามิเตอร์เบาบาง 99% แต่หน้ากากที่เลือกตามอำเภอใจไม่จำเป็นต้องให้ขอบเขตความผิดพลาดในต้นฉบับ
สัญลักษณ์
- จำนวนหน่วยซ่อนเดิม อย่างน้อย 100
- น้ำหนักและไบแอสขาเข้าของหน่วย i
- เวกเตอร์น้ำหนักผลลัพธ์
- เซตหน่วยที่เก็บไว้
- เมเชอร์ความน่าจะเป็นที่รองรับบนบอลหนึ่งหน่วย
- คุณลักษณะซ่อนที่ปรับมาตราส่วน
ตัวอย่างสูตรต้นฉบับ
ตัวอย่างต้นฉบับนี้ใช้ข้อมูลเข้าและสมมติฐานของตัวเอง การแก้ไขไม่เปลี่ยนโครงการ
แก้ค่าหรือโค้ด แล้วกดรัน ตัวอย่างนี้เป็นการคำนวณจำนวนจำกัด ไม่ใช่การพิสูจน์ทฤษฎีบท
ลำดับข้อมูลในตัวอย่างนี้
โค้ดเปลี่ยนแล้ว กดรีเซ็ตเพื่อคืนลำดับข้อมูลของตัวอย่าง
คุณเลือก
input.hiddenWeight= 0.5
ค่าเริ่มต้นในโค้ด
n=100bias=0.5keep=[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.hiddenWeightoriginalOutputWeights=Array(n).fill(1)ใช้:nkeptOutputWeights=originalOutputWeights.map((_, i) => (i === 0 ? 100 : 0))ใช้:originalOutputWeightsoriginalValue=originalOutputWeights.reduce( (s, w) => s + w * Math.max(0, bias), 0, )ใช้:originalOutputWeights,biasprunedValue=keptOutputWeights.reduce((s, w) => s + w * Math.max(0, bias), 0)ใช้:keptOutputWeights,biasfeature=100 * Math.max(0, bias)ใช้:bias
ส่งกลับ
n- 100
hiddenWeight- 0.5
bias- 0.5
hiddenNorm- 0.5
weightBound- จริง
biasBound- จริง
keepCount- 1
keepBound- จริง
อ่านตัวเลขจาก input แล้วคืนค่าผลลัพธ์ พื้นฐาน JavaScript.
ผลลัพธ์
ข้อความทางเทคนิค
ตัวอย่างใช้ n=100 โดยน้ำหนักซ่อนสเกลาร์และไบแอสเหมือนกัน และ μ กระจุกที่ x=0 ขอบเขตนอร์มข้อมูลป้อนเข้าและไบแอสเป็นจริง น้ำหนักผลลัพธ์เดิมทั้งหมดเป็น 1 จึงมีนอร์ม L1 เท่ากับ 100 และ fᵢ(0)=50 การเก็บหนึ่งหน่วยที่มีน้ำหนักผลลัพธ์ 100 ทำซ้ำผลลัพธ์เดิมที่ x=0 ขณะที่น้ำหนักผลลัพธ์ 99 ตัวและพารามิเตอร์ขาเข้าทั้งหมดของหน่วยที่นำออกตั้งเป็นศูนย์ได้ กลุ่มคุณลักษณะมีเครื่องหมายมี fᵢ และ −fᵢ หากน้ำหนักผลลัพธ์ทุกตัวเป็นศูนย์ ผลลัพธ์โครงข่ายเดิมเป็นศูนย์
แหล่งอ้างอิง: นิพจน์ในต้นฉบับ