ทำไมต้องมีหลายชั้น?
หนึ่งชั้นรวมเบาะแสง่าย ๆ ได้ แล้วชั้นที่สอง สาม หรือสิบจะช่วยสร้างกฎบางแบบโดยใช้เซลล์ประสาทน้อยกว่าชั้นเดียวที่กว้างมากได้ไหม?
เราจะวาดเส้นคล้ายหลังคาเต็นท์ แล้วใช้ผลลัพธ์เป็นข้อมูลเข้าของกฎเดิมอีกครั้ง ลองดูว่าการทำซ้ำไม่กี่ขั้นสร้างยอดเพิ่มขึ้นอย่างไร
3.1 กฎที่ขึ้นกับระยะทาง
การประมาณฟังก์ชันแนวรัศมี · หน้าในบทความ 29–31
ทำไมเครือข่ายจึงอาจต้องมีหลายชั้น ลองนึกถึงโคมไฟกลางสวนวงกลม แสงที่ดอกไม้ได้รับขึ้นอยู่กับระยะจากโคมเท่านั้น ไม่ได้ขึ้นอยู่กับว่าอยู่ทางซ้ายหรือขวา
พิจารณากฎสมมติที่คืนระยะจากจุดกำเนิด จุด (3, 4) และ (0, 5) อยู่ที่รัศมีเท่ากัน
นิยาม / กฎในบทความ
function distances(firstPoint, secondPoint) {
const first = Math.sqrt(firstPoint[0] ** 2 + firstPoint[1] ** 2);
const second = Math.sqrt(secondPoint[0] ** 2 + secondPoint[1] ** 2);
return { first, second };
}
const result = distances([3, 4], [0, 5]);เลือกการเปลี่ยนแปลง ทำนาย แล้วกดรัน
โคมไฟกับดอกไม้
ตัวอย่างสมมติสำรวจ
หาตำแหน่งอื่นที่ได้แสงเท่าตำแหน่ง 2
แตะภาพหรือใช้ปุ่ม
โคมอยู่ที่ 5 เปรียบเทียบระยะ
ตำแหน่ง: 2; ระยะ: 3; ความสว่าง: 2
สำหรับจุด (3, 4) ยกกำลังสองแล้วบวก: 3×3 + 4×4 = 25 เพราะ 5×5 = 25 รากที่สองจึงเป็น 5 ซึ่งคือระยะจาก (0, 0) กิจกรรมหลอดไฟใช้จุดศูนย์กลางอีกแบบที่ตำแหน่ง 5 ดอกไม้ที่ 3 และ 7 อยู่ห่างเท่ากัน 2 หน่วย จึงได้รับแสงเท่ากัน
บทความสร้างกฎพิเศษที่อิงระยะทาง เครือข่ายสามชั้นสามารถประมาณกฎนี้ได้ด้วยขนาดที่จัดการได้ ส่วนเครือข่ายสองชั้นบางกลุ่มต้องใช้เซลล์ซ่อนมากกว่าระดับเลขชี้กำลังเพื่อให้แม่นยำใกล้เคียงกัน กล่าวคือจำนวนที่ต้องใช้อาจเพิ่มแบบคูณซ้ำเมื่อขนาดปัญหาเพิ่ม
นี่เป็นผลการแยกทางคณิตศาสตร์สำหรับเป้าหมายและการแจกแจงที่สร้างขึ้นเป็นพิเศษภายใต้สมมติฐานของทฤษฎีบท ไม่ได้บอกว่าทุกเครือข่ายลึกดีกว่าทุกเครือข่ายตื้น
3.2 ส่วนตรงง่าย ๆ กับหลายชั้น
โครงข่ายเรลูเชิงลึก · หน้าในบทความ 31–32
ReLU ใช้เพียงส่วนเส้นตรง: คงค่าบวกไว้และตัดค่าลบเป็นศูนย์ การรวมพจน์ ReLU หลายพจน์ทำให้เส้นขึ้น เปลี่ยนทิศ แล้วลงได้เหมือนเต็นท์เล็ก ๆ
รวม ReLU สองพจน์ในฟังก์ชันรูปหมวกของบทความ ซึ่งกำหนดสำหรับข้อมูลเข้าตั้งแต่ 0 ถึง 1 ลองใช้ 0, 0.5 และ 1
สูตรจากบทความ
function tent(value) {
return 2 * Math.max(0, value) - 4 * Math.max(0, value - 0.5);
}
function tentExamples(value, inputs) {
const examples = [];
for (const input of inputs) examples.push(tent(input));
return { output: tent(value), examples };
}
const result = tentExamples(0.5, [0, 0.5, 1]);เลือกการเปลี่ยนแปลง ทำนาย แล้วกดรัน
กฎของโคมไฟ
ตัวอย่างสมมติสำรวจ
หาตำแหน่งที่สว่างที่สุดจาก 0 ถึง 4
แตะภาพหรือใช้ปุ่ม
เปรียบเทียบตำแหน่งรอบยอด
ตำแหน่ง: 1; ความสว่าง: 1
ลอง x = 0.25 ส่วนแรกให้ 2×0.25 = 0.5 ส่วนที่สองรับ 0.25 − 0.5 = −0.25 ดังนั้น ReLU เปลี่ยนเป็น 0 จึงได้ h(0.25) = 0.5 เมื่อ x = 0.75 ทั้งสองส่วนให้ 1.5 และ 4×0.25 = 1 จึงได้ h(0.75) = 0.5 เช่นกัน นำ 0.5 กลับเข้าไป จะได้ h(0.5) = 1 การใช้กฎซ้ำอาจเพิ่มจำนวนยอดเป็นสองเท่า
ภาพหลอดไฟแสดงการขึ้นและลงคล้ายกันในขนาดที่ต่างกัน คือจาก 0 ถึง 4 โดยมียอดที่ 2 ส่วนเต็นท์ในบทความอยู่ระหว่าง 0 ถึง 1 และมียอดที่ 0.5 ในกิจกรรมถัดไปจะนำผลของเต็นท์ช่วง 0 ถึง 1 ผ่านกฎเดิมอีกครั้ง
ประสิทธิภาพนี้ช่วยให้เครือข่ายลึกบางชนิดประมาณฟังก์ชันโค้ง รวมถึงการคูณ โดยประกอบส่วนเส้นตรงสั้น ๆ จำนวนมากเข้าด้วยกัน นี่เป็นข้อความเกี่ยวกับการแทนฟังก์ชัน ไม่ได้หมายถึงการหาน้ำหนักระหว่างฝึกโดยอัตโนมัติ
3.3 วิธีอื่นในการวัดความสามารถในการแทนฟังก์ชัน
แนวคิดอื่นเกี่ยวกับความสามารถในการแทนฟังก์ชัน · หน้าในบทความ 32–34
เราได้วัดเครือข่ายจากความใกล้เคียงในการจับคู่เป้าหมาย อีกวิธีวัดความสามารถคือการนับจำนวนครั้งที่ทิศทางของเส้นโค้งผลลัพธ์เปลี่ยนได้
เดินจาก 0 ไป 3 แล้วกลับมาที่ 1 คือเดินไปข้างหน้าสามก้าวและกลับสองก้าว บวกระยะทั้งสองเพื่อวัดเส้นทางทั้งหมด ไม่ใช่แค่ระยะระหว่างจุดเริ่มกับจุดสิ้นสุด
นิยาม / กฎในบทความ
function journey(middle, end) {
const length = Math.abs(middle) + Math.abs(end - middle);
return { length, netChange: end };
}
const result = journey(3, 1);เลือกการเปลี่ยนแปลง ทำนาย แล้วกดรัน
พับเส้นทาง
ตัวอย่างสมมติสำรวจ
ประกอบการพับให้ได้ 8 ชิ้นตรง
แตะภาพหรือใช้ปุ่ม
แต่ละการพับเพิ่มจำนวนชิ้นเป็นสองเท่า
จำนวนขั้น: 1; จำนวนชิ้น: 2
เต็นท์หนึ่งอันมีส่วนเส้นตรงสองส่วน เมื่อนำผลลัพธ์ผ่านกฎเต็นท์อีกครั้งจะได้สี่ส่วน และอีกครั้งจะได้แปดส่วน หลังทำซ้ำ k ครั้ง กฎที่สร้างนี้มี 2^k ส่วน ตัวเลขนี้ไม่ได้บอกจำนวนทุกฟังก์ชันที่เครือข่าย k ชั้นสร้างได้
นิวรอน ReLU แต่ละตัวเปลี่ยนพฤติกรรมเมื่อข้อมูลเข้าที่ถ่วงน้ำหนักข้ามศูนย์ การซ้อนชั้นสามารถแบ่งและพับปริภูมิเป็นหลายบริเวณที่เครือข่ายใช้กฎเส้นตรงต่างกัน
บทความยังศึกษาว่าเส้นโค้งที่วาดในปริภูมิข้อมูลเข้าสามารถยืดออกอย่างไรเมื่อผ่านชั้นสุ่ม ผลเช่นนี้ต้องมีสมมติฐานเฉพาะเกี่ยวกับการกำหนดค่าเริ่มต้น การเห็นเส้นโค้งซับซ้อนในภาพเพียงอย่างเดียวไม่ใช่ทฤษฎีบท
ความลึกช่วยให้โครงข่ายแทนฟังก์ชันบางชนิดได้อย่างมีประสิทธิภาพขึ้นด้วยการนำการคำนวณย่อยมาใช้ซ้ำ แต่ไม่ได้รับประกันว่าทำนายแม่นหรือฝึกได้ง่าย ต่อไปเราจะถามว่าเกิดอะไรขึ้นเมื่อข้อมูลเข้ามีพิกัดนับร้อย
ลองแบบทดสอบท้ายบท
คำอธิบายเพื่อการศึกษาอย่างอิสระจาก คณิตศาสตร์สมัยใหม่ของการเรียนรู้เชิงลึก — จูเลียส แบร์เนอร์, ฟิลิปป์ โกรส์, กิตตา คูทินิออค, ฟิลิปป์ ปีเตอร์เซน. ตัวอย่างใช้ตัวเลขสมมติ เว้นแต่จะระบุแหล่งข้อมูลที่วัดจริง