คุณลักษณะซ่อนและการอินเตอร์โพเลต
โครงการเรียนรู้เพนกวิน
โครงการใช้ข้อมูลเพนกวิน Palmer ที่สมบูรณ์ 342 แถว: ชุดฝึก 240 และชุดทดสอบ 102 แถว แถวฝึกที่เลือกกำหนดการปรับสเกลและพารามิเตอร์ CSV ต้นฉบับ
โครงการนี้ฝึกน้ำหนักด้วย softmax ต่างจากแล็บในหน้าแรกที่ใช้ค่าเฉลี่ยของสายพันธุ์ที่ใกล้ที่สุด ข้อมูลวัดเพนกวินชุดเดียวกัน แต่วิธีจำแนกต่างกัน คำทำนายอาจต่างกันได้
คุณลักษณะ · แปลงข้อมูลเข้าเป็นคุณลักษณะที่กฎนำไปใช้
โครงการปรับสเกลความยาวจะงอยปากและครีบด้วยค่าเฉลี่ยและสเกลของชุดฝึก เวกเตอร์มีสองค่า
พิจารณาแนวคิดนี้ร่วมกับโครงการ สมมติฐานของต้นฉบับอาจต่างกัน ข้อมูลชุดนี้ไม่พิสูจน์ทฤษฎีบท
ข้อมูลเข้า: 12 × 2; ประเมินชุดทดสอบ: 102 · #58 · 40.6 มม., 193 มม.. คำตอบที่ทราบ: อาเดลี; ค่าทำนาย: อาเดลี · [≈0.7383, ≈0.2444, ≈0.01737].
ใช้ในส่วนต้นฉบับเหล่านี้: 1.2.2 โครงข่ายแสดงคำตอบที่ต้องการได้หรือไม่ · 1.2 เรียนรู้จากตัวอย่าง
ใส่ผลลัพธ์หน่วยซ่อนของข้อมูลเข้าฝึกแต่ละตัวเป็นหนึ่งคอลัมน์ ในบทพิสูจน์ต้นฉบับ เมทริกซ์ย่อยจัตุรัส A ที่ผกผันได้ทำให้เลือกน้ำหนักผลลัพธ์เพื่อสร้างป้ายเป้าหมายได้
ตัวอย่างใช้ข้อมูลเข้า 0 และ 1 และคุณลักษณะ ReLU(x), ReLU(1−x) เมทริกซ์คุณลักษณะเป็นเมทริกซ์ผกผันของตัวเอง
เมทริกซ์คุณลักษณะที่เหมาะสมทำให้เครือข่ายปรับตรงกับตัวอย่างต่างกันจำนวนจำกัดได้พอดี
ตัวอย่างสูตรต้นฉบับ
ภาพประกอบ · ตัวอย่างเล็กนี้สร้างเมทริกซ์ที่ทราบตัวผกผัน ไม่ได้พิสูจน์ว่าเมทริกซ์คุณลักษณะใด ๆ ผกผันได้หรือพิสูจน์ข้อเสนออินเตอร์โพเลตทั่วไป
สัญลักษณ์
- เมทริกซ์ที่มีหน่วยซ่อน n หน่วยเป็นแถวและจุดฝึก m จุดเป็นคอลัมน์
- เมทริกซ์ย่อย m คูณ m ที่ผกผันได้ซึ่งเลือกในบทพิสูจน์
- เมทริกซ์น้ำหนักผลลัพธ์ มีหนึ่งคอลัมน์ต่อคุณลักษณะซ่อน
ตัวอย่างสูตรต้นฉบับ
ตัวอย่างต้นฉบับนี้ใช้ข้อมูลเข้าและสมมติฐานของตัวเอง การแก้ไขไม่เปลี่ยนโครงการ
แก้ค่าหรือโค้ด แล้วกดรัน ตัวอย่างนี้เป็นการคำนวณจำนวนจำกัด ไม่ใช่การพิสูจน์ทฤษฎีบท
ลำดับข้อมูลในตัวอย่างนี้
โค้ดเปลี่ยนแล้ว กดรีเซ็ตเพื่อคืนลำดับข้อมูลของตัวอย่าง
คุณเลือก
input.firstLabel= 2
ค่าเริ่มต้นในโค้ด
inputs=[0, 1]inverse=[ [0, 1], [1, 0], ]
คำนวณที่นี่
นิพจน์ผลลัพธ์: {
matrix,
inverse,
labels,
outputWeights,
outputBias: 0,
proofOutputMatrix,
matrixProduct,
predictions,
}
labels=[input.firstLabel, 3]ใช้:input.firstLabelfeatures=inputs.map((x) => [Math.max(0, x), Math.max(0, 1 - x)])ใช้:inputsmatrix=[ [features[0][0], features[1][0]], [features[0][1], features[1][1]], ]ใช้:featuresoutputWeights=inverse[0].map((_, j) => labels.reduce((sum, y, i) => sum + y * inverse[i][j], 0), )ใช้:inverse,labelspredictions=features.map((column) => column.reduce((sum, value, i) => sum + value * outputWeights[i], 0), )ใช้:features,outputWeightsproofOutputMatrix=inverseใช้:inversematrixProduct=proofOutputMatrix.map((row) => matrix[0].map((_, j) => row.reduce((sum, value, k) => sum + value * matrix[k][j], 0)), )ใช้:proofOutputMatrix,matrix
ส่งกลับ
matrix- อาร์เรย์ (2 รายการ): [อาร์เรย์ (2 รายการ): [0, 1], อาร์เรย์ (2 รายการ): [1, 0]]
inverse- อาร์เรย์ (2 รายการ): [อาร์เรย์ (2 รายการ): [0, 1], อาร์เรย์ (2 รายการ): [1, 0]]
labels- อาร์เรย์ (2 รายการ): [2, 3]
outputWeights- อาร์เรย์ (2 รายการ): [3, 2]
outputBias- 0
proofOutputMatrix- อาร์เรย์ (2 รายการ): [อาร์เรย์ (2 รายการ): [0, 1], อาร์เรย์ (2 รายการ): [1, 0]]
matrixProduct- อาร์เรย์ (2 รายการ): [อาร์เรย์ (2 รายการ): [1, 0], อาร์เรย์ (2 รายการ): [0, 1]]
predictions- อาร์เรย์ (2 รายการ): [2, 3]
อ่านตัวเลขจาก input แล้วคืนค่าผลลัพธ์ พื้นฐาน JavaScript.
ผลลัพธ์
ข้อความทางเทคนิค
ข้อเสนอในต้นฉบับต้องการข้อมูลเข้าต่างกันและฟังก์ชันกระตุ้นต่อเนื่องที่ไม่ใช่พหุนาม โดยระบุว่ามีพารามิเตอร์ชั้นแรกที่เหมาะสมสำหรับป้ายใด ๆ จากนั้นบทพิสูจน์เลือก W² = [y¹ … yᵐ]A⁻¹ ตัวอย่างคำนวณกรณี ReLU เฉพาะและเมทริกซ์ผกผันจำกัดที่แน่นอน เครือข่ายในบทพิสูจน์มีสถาปัตยกรรม (1,2,2) น้ำหนักชั้นแรก [1,−1] ไบแอส [0,1] เมทริกซ์ผลลัพธ์สองคูณสอง และไบแอสผลลัพธ์ศูนย์ การคูณเมทริกซ์ผลลัพธ์กับเมทริกซ์คุณลักษณะให้เมทริกซ์เอกลักษณ์สองคูณสอง การปรับป้ายสุดท้ายแยกต่างหากใช้หนึ่งผลลัพธ์และไบแอสผลลัพธ์ศูนย์
แหล่งอ้างอิง: นิพจน์จากแหล่งต้นฉบับ