แนวคิดของคอขวด Tensorflow คืออะไร?


คำตอบ:


21

คอขวดในเครือข่ายประสาทเป็นเพียงชั้นที่มีเซลล์ประสาทน้อยกว่าจากนั้นชั้นล่างหรือเหนือ การมีเลเยอร์ดังกล่าวสนับสนุนให้เครือข่ายบีบอัดการแสดงคุณสมบัติให้เหมาะสมที่สุดในพื้นที่ว่างเพื่อที่จะได้รับความสูญเสียที่ดีที่สุดในระหว่างการฝึกอบรม

ใน CNN (เช่นเครือข่าย Inception ของ Google) มีการเพิ่มเลเยอร์คอขวดเพื่อลดจำนวนแผนที่คุณลักษณะ (aka "ช่อง") ในเครือข่ายซึ่งมีแนวโน้มที่จะเพิ่มขึ้นในแต่ละเลเยอร์ นี่คือความสำเร็จโดยใช้ 1x1 convolutions กับช่องสัญญาณออกน้อยกว่าช่องทางอินพุต

โดยปกติคุณจะไม่คำนวณน้ำหนักสำหรับเลเยอร์คอขวดโดยตรงกระบวนการฝึกอบรมจะจัดการกับน้ำหนักอื่น ๆ ทั้งหมด การเลือกขนาดที่ดีสำหรับเลเยอร์คอขวดเป็นสิ่งที่คุณต้องเดาจากนั้นทำการทดลองเพื่อค้นหาสถาปัตยกรรมเครือข่ายที่ทำงานได้ดี เป้าหมายที่นี่มักจะค้นหาเครือข่ายที่ใช้กับภาพใหม่และเลเยอร์คอขวดช่วยด้วยการลดจำนวนพารามิเตอร์ในเครือข่ายในขณะที่ยังคงให้มันลึกและแสดงแผนที่คุณสมบัติมากมาย


สวัสดีนีล! ฉันมีคำถามง่ายๆที่ฉันคิดว่า แต่ฉันยังคงสับสน ai.stackexchange.com/questions/21172/…คุณมีเวลาที่จะให้คำตอบกับฉันหรือไม่?
jgauth

@jgauth: ฉันสมัครรับฟีด RSS ของคำถามทั้งหมดในเว็บไซต์นี้และฉันพยายามตอบทุกคำถามที่ฉันเห็นว่าฉันคิดว่าฉันทำได้ที่ไหน ไม่จำเป็นต้องติดต่อฉันโดยตรงเพื่อถามคำถาม หากคุณต้องการติดต่อฉันเกี่ยวกับสิ่งที่เฉพาะเจาะจงจะทำได้ดีที่สุดสำหรับคำถามที่เกี่ยวข้องหรือในการแชทไซต์หากไม่มี
Neil Slater

8

ลองนึกภาพคุณต้องการคำนวณเลเยอร์สุดท้ายของโมเดลที่ได้รับการฝึกฝนมาใหม่อีกครั้ง:

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":

เนื่องจากเรามีแนวโน้มที่จะอ่านภาพเดียวกันหลาย ๆ ครั้ง (หากไม่มีการบิดเบือนในการฝึกอบรม) มันสามารถเพิ่มความเร็วได้มากขึ้นหากเราคำนวณค่าเลเยอร์คอขวดหนึ่งครั้งสำหรับแต่ละภาพในระหว่างการประมวลผลล่วงหน้าแล้วเพียงแค่อ่านค่าแคชเหล่านั้น ซ้ำ ๆ ระหว่างการฝึกซ้อม


5

คอขวด Tensorflow เป็นขั้นตอนก่อนการฟ้องร้องครั้งสุดท้ายก่อนการฝึกอบรมจริงโดยเริ่มการจดจำข้อมูล มันเป็นขั้นตอนที่โครงสร้างข้อมูลถูกสร้างขึ้นจากภาพการฝึกอบรมแต่ละภาพที่ขั้นตอนสุดท้ายของการฝึกอบรมสามารถเกิดขึ้นและแยกความแตกต่างของภาพจากภาพอื่น ๆ ที่ใช้ในสื่อการฝึกอบรม ค่อนข้างเหมือนลายนิ้วมือของภาพ

มันเกี่ยวข้องกับคำสั่งการฝึกซ้ำและเป็นชื่อที่แนะนำนี่คือผู้บริโภคหลักเวลาของการดำเนินการคำสั่ง ปริมาณของวัสดุการฝึกอบรมอาจต้องถูกประนีประนอมหากคอขวดนี้ใช้เวลานานเกินไป

เนื่องจากเป็นคำสั่งบรรทัดคำสั่งฉันไม่ทราบอัลกอริทึมที่แน่นอน อัลกอริทึมเป็นสาธารณะในรหัสใน Github แต่มีความซับซ้อนดังนั้น (เวลาดำเนินการนานมากโดยคำจำกัดความ) ที่ฉันเชื่อว่าฉันไม่สามารถเขียนลงในคำตอบประเภทนี้

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.