แนวคิดคืออะไรและจะคำนวณค่าคอขวดได้อย่างไร ค่าเหล่านี้ช่วยจำแนกภาพอย่างไร โปรดอธิบายด้วยคำง่าย ๆ
แนวคิดคืออะไรและจะคำนวณค่าคอขวดได้อย่างไร ค่าเหล่านี้ช่วยจำแนกภาพอย่างไร โปรดอธิบายด้วยคำง่าย ๆ
คำตอบ:
คอขวดในเครือข่ายประสาทเป็นเพียงชั้นที่มีเซลล์ประสาทน้อยกว่าจากนั้นชั้นล่างหรือเหนือ การมีเลเยอร์ดังกล่าวสนับสนุนให้เครือข่ายบีบอัดการแสดงคุณสมบัติให้เหมาะสมที่สุดในพื้นที่ว่างเพื่อที่จะได้รับความสูญเสียที่ดีที่สุดในระหว่างการฝึกอบรม
ใน CNN (เช่นเครือข่าย Inception ของ Google) มีการเพิ่มเลเยอร์คอขวดเพื่อลดจำนวนแผนที่คุณลักษณะ (aka "ช่อง") ในเครือข่ายซึ่งมีแนวโน้มที่จะเพิ่มขึ้นในแต่ละเลเยอร์ นี่คือความสำเร็จโดยใช้ 1x1 convolutions กับช่องสัญญาณออกน้อยกว่าช่องทางอินพุต
โดยปกติคุณจะไม่คำนวณน้ำหนักสำหรับเลเยอร์คอขวดโดยตรงกระบวนการฝึกอบรมจะจัดการกับน้ำหนักอื่น ๆ ทั้งหมด การเลือกขนาดที่ดีสำหรับเลเยอร์คอขวดเป็นสิ่งที่คุณต้องเดาจากนั้นทำการทดลองเพื่อค้นหาสถาปัตยกรรมเครือข่ายที่ทำงานได้ดี เป้าหมายที่นี่มักจะค้นหาเครือข่ายที่ใช้กับภาพใหม่และเลเยอร์คอขวดช่วยด้วยการลดจำนวนพารามิเตอร์ในเครือข่ายในขณะที่ยังคงให้มันลึกและแสดงแผนที่คุณสมบัติมากมาย
ลองนึกภาพคุณต้องการคำนวณเลเยอร์สุดท้ายของโมเดลที่ได้รับการฝึกฝนมาใหม่อีกครั้ง:
Input->[Freezed-Layers]->[Last-Layer-To-Re-Compute]->Output
ในการฝึกอบรม[Last-Layer-To-Re-Compute]คุณจะต้องประเมินผลลัพธ์ของ[Freezed-Layers]หลาย ๆ ครั้งสำหรับข้อมูลอินพุตที่กำหนด เพื่อประหยัดเวลาคุณสามารถคำนวณเพื่อถ่ายทอดเหล่านี้เพียงครั้งเดียว
Input#1->[Freezed-Layers]->Bottleneck-Features-Of-Input#1
จากนั้นคุณเก็บBottleneck-Features-Of-Input # iและใช้พวกมันโดยตรงเพื่อฝึกฝน [Last-Layer-To-Re-Compute]
คำอธิบายจากฟังก์ชัน "cache_bottlenecks" ของตัวอย่าง "image_retraining":
เนื่องจากเรามีแนวโน้มที่จะอ่านภาพเดียวกันหลาย ๆ ครั้ง (หากไม่มีการบิดเบือนในการฝึกอบรม) มันสามารถเพิ่มความเร็วได้มากขึ้นหากเราคำนวณค่าเลเยอร์คอขวดหนึ่งครั้งสำหรับแต่ละภาพในระหว่างการประมวลผลล่วงหน้าแล้วเพียงแค่อ่านค่าแคชเหล่านั้น ซ้ำ ๆ ระหว่างการฝึกซ้อม
คอขวด Tensorflow เป็นขั้นตอนก่อนการฟ้องร้องครั้งสุดท้ายก่อนการฝึกอบรมจริงโดยเริ่มการจดจำข้อมูล มันเป็นขั้นตอนที่โครงสร้างข้อมูลถูกสร้างขึ้นจากภาพการฝึกอบรมแต่ละภาพที่ขั้นตอนสุดท้ายของการฝึกอบรมสามารถเกิดขึ้นและแยกความแตกต่างของภาพจากภาพอื่น ๆ ที่ใช้ในสื่อการฝึกอบรม ค่อนข้างเหมือนลายนิ้วมือของภาพ
มันเกี่ยวข้องกับคำสั่งการฝึกซ้ำและเป็นชื่อที่แนะนำนี่คือผู้บริโภคหลักเวลาของการดำเนินการคำสั่ง ปริมาณของวัสดุการฝึกอบรมอาจต้องถูกประนีประนอมหากคอขวดนี้ใช้เวลานานเกินไป
เนื่องจากเป็นคำสั่งบรรทัดคำสั่งฉันไม่ทราบอัลกอริทึมที่แน่นอน อัลกอริทึมเป็นสาธารณะในรหัสใน Github แต่มีความซับซ้อนดังนั้น (เวลาดำเนินการนานมากโดยคำจำกัดความ) ที่ฉันเชื่อว่าฉันไม่สามารถเขียนลงในคำตอบประเภทนี้