งานวิจัย · arXiv 1512.03385
Deep Residual Learning for Image Recognition
สรุปสามบรรทัด
- 🎯 Plain neural networks ที่ลึกกว่าประสบปัญหา optimization degradation ซึ่งการเพิ่มความลึกส่งผลให้ training error สูงขึ้น แม้ว่า gradient จะไม่ได้เลือนหาย (vanishing) ก็ตาม
- 🔧 ปรับสูตรเลเยอร์ที่ซ้อนกันให้เรียนรู้ residual mapping โดยใช้ identity shortcut connections ที่ปราศจากพารามิเตอร์
- 📈 ทำให้สามารถเทรนโครงข่ายที่มีความลึกได้ถึง 152 เลเยอร์บน ImageNet (ทำ top-5 ensemble error ได้ 3.57%) และชนะเลิศอันดับ 1 ในการแข่งขัน ILSVRC และ COCO 2015
บทคัดย่อ
โครงข่ายประสาทเทียมที่มีความลึกมากขึ้นจะฝึกฝนได้ยากยิ่งขึ้น เราขอนำเสนอเฟรมเวิร์ก residual learning เพื่อช่วยลดความยุ่งยากในการเทรนโครงข่ายที่มีความลึกมากกว่าโมเดลที่เคยใช้ในอดีตอย่างมาก เราได้ปรับสูตรของเลเยอร์ต่างๆ ให้อยู่ในรูปของการเรียนรู้ residual function โดยอ้างอิงจากอินพุตของเลเยอร์อย่างชัดเจน แทนที่จะเรียนรู้ฟังก์ชันแบบไม่มีการอ้างอิง เราได้แสดงหลักฐานเชิงประจักษ์อย่างครอบคลุมว่าโครงข่าย residual เหล่านี้หาค่าเหมาะสมที่สุด (optimize) ได้ง่ายกว่า และสามารถเพิ่มความแม่นยำขึ้นได้จากความลึกที่เพิ่มขึ้นอย่างมาก บนชุดข้อมูล ImageNet เราประเมิน residual nets ที่มีความลึกสูงสุดถึง 152 เลเยอร์ ซึ่งลึกกว่า VGG nets ถึง 8 เท่าแต่ยังคงมีความซับซ้อนที่ต่ำกว่า การรวมโมเดล (ensemble) ของ residual nets เหล่านี้ทำให้อัตราความผิดพลาดบนชุดทดสอบ ImageNet ลดลงเหลือ 3.57% ซึ่งผลลัพธ์นี้คว้ารางวัลชนะเลิศในการแข่งขันจำแนกประเภทภาพของ ILSVRC 2015 นอกจากนี้เรายังนำเสนอบทวิเคราะห์บน CIFAR-10 ที่ความลึก 100 และ 1,000 เลเยอร์ ความลึกของ representation มีความสำคัญอย่างยิ่งสำหรับงาน visual recognition หลากหลายงาน และด้วย representation ที่ลึกมากเป็นพิเศษนี้ เราสามารถปรับปรุงผลลัพธ์บนชุดข้อมูล COCO object detection เพิ่มขึ้นสัมพัทธ์ถึง 28% Deep residual nets นับเป็นรากฐานสำคัญในผลงานที่เราส่งเข้าแข่งขัน ILSVRC & COCO 2015 ซึ่งเรายังคว้ารางวัลชนะเลิศในงาน ImageNet detection, ImageNet localization, COCO detection และ COCO segmentation อีกด้วย
บทคัดย่อต้นฉบับ (ภาษาอังกฤษ)
Deeper neural networks are more difficult to train. We present a residual learning framework to ease the training of networks that are substantially deeper than those used previously. We explicitly reformulate the layers as learning residual functions with reference to the layer inputs, instead of learning unreferenced functions. We provide comprehensive empirical evidence showing that these residual networks are easier to optimize, and can gain accuracy from considerably increased depth. On the ImageNet dataset we evaluate residual nets with a depth of up to 152 layers---8x deeper than VGG nets but still having lower complexity. An ensemble of these residual nets achieves 3.57% error on the ImageNet test set. This result won the 1st place on the ILSVRC 2015 classification task. We also present analysis on CIFAR-10 with 100 and 1000 layers. The depth of representations is of central importance for many visual recognition tasks. Solely due to our extremely deep representations, we obtain a 28% relative improvement on the COCO object detection dataset. Deep residual nets are foundations of our submissions to ILSVRC & COCO 2015 competitions, where we also won the 1st places on the tasks of ImageNet detection, ImageNet localization, COCO detection, and COCO segmentation.
คู่มือการอ่าน
ปัญหาและแรงจูงใจ
ความลึกของโครงข่ายมีความสำคัญอย่างยิ่งต่อ representation ในงาน visual recognition แต่การซ้อนเลเยอร์มากขึ้นกลับเผยให้เห็น degradation problem ขั้นพื้นฐาน: เมื่อความลึกเพิ่มขึ้น ความแม่นยำจะเริ่มอิ่มตัวและลดลงอย่างรวดเร็วในเวลาต่อมา ที่สำคัญคือ การเสื่อมถอยนี้ไม่ได้เกิดจาก overfitting เพราะโครงข่ายที่ลึกกว่ากลับให้ค่า training error ที่สูงกว่าโครงข่ายที่ตื้นกว่า ทั้งที่เทคนิคอย่าง Batch Normalization และ normalized initialization สามารถรับประกันได้แล้วว่า forward activations และ backpropagated gradients จะไม่เลือนหายไป (vanish)
ในทางทฤษฎี โมเดลที่ลึกกว่าย่อมมีคำตอบแบบ identity-mapping อยู่ในตัวตามโครงสร้าง นั่นคือคัดลอกโมเดลที่ตื้นกว่าที่เรียนรู้มาแล้ว และกำหนดให้เลเยอร์ส่วนขยายเป็น identity transformations อย่างไรก็ตาม ตัวหาค่าที่เหมาะสม (solver) แบบดั้งเดิมกลับล้มเหลวในการค้นหาคำตอบนี้เมื่อต้องเรียนรู้ nonlinear mapping แบบไม่มีการอ้างอิงโดยตรง
แนวคิดสำคัญ
- Residual Learning Framework: แทนที่จะปรับโครงข่ายที่ซ้อนกันเพื่อประมาณค่า mapping ที่ต้องการโดยตรง ให้กำหนดให้เลเยอร์ประมาณค่า residual mapping อย่างชัดเจน โดย mapping ดั้งเดิมจะกู้คืนได้จาก
- Identity Shortcut Connections: ทำให้ เกิดขึ้นจริงผ่าน feedforward shortcut connections ที่ข้ามผ่านเลเยอร์ตั้งแต่หนึ่งเลเยอร์ขึ้นไป โดย identity shortcuts ไม่ต้องใช้พารามิเตอร์เพิ่มเติมและแทบไม่เพิ่มภาระในการคำนวณเลย
- การ Optimize ที่ง่ายขึ้นและการ Preconditioning: หาก identity mappings เป็นคำตอบที่เหมาะสมที่สุด ตัว optimizer ก็เพียงแค่ปรับค่าน้ำหนักของ residual ให้เข้าใกล้ศูนย์ ในทางปฏิบัติ ค่าตอบสนองของ residual function จะมีขนาดเล็ก ซึ่งบ่งชี้ว่า identity connections ทำหน้าที่เป็น preconditioning ที่มีประสิทธิภาพ
- Bottleneck Architecture: สำหรับรุ่นที่มีความลึกมาก (ResNet-50, ResNet-101, ResNet-152) residual unit แบบ 2 เลเยอร์แต่ละชุดจะถูกแทนที่ด้วย bottleneck block แบบ 3 เลเยอร์ (คอนโวลูชัน , , ) ซึ่งช่วยลดการคำนวณลงในขณะที่ยังคงความสามารถในการแทนข้อมูลไว้ได้
ระเบียบวิธี (Method)
สำหรับ residual building block ที่มิติของอินพุตและเอาต์พุตมีขนาดเท่ากัน: โดยที่ และ คือเวกเตอร์อินพุตและเอาต์พุต และ สำหรับยูนิตแบบ 2 เลเยอร์ (โดยที่ แทนฟังก์ชัน ReLU และละเว้น bias เพื่อความกระชับ) การบวกแบบ element-wise จะดำเนินการก่อนที่จะใช้ฟังก์ชันกระตุ้น ReLU ครั้งที่สอง
เมื่อมิติของ feature map มีการเปลี่ยนแปลง (เช่น ในระหว่างการ downsampling เชิงพื้นที่ หรือการเพิ่มจำนวนแชนเนลเป็นสองเท่า): ในที่นี้ จะหมายถึงอย่างใดอย่างหนึ่งดังต่อไปนี้:
- Option A: การทำ zero-padding ในมิติที่เพิ่มขึ้นร่วมกับ identity shortcuts (ใช้ stride 2 สำหรับการ subsampling) ซึ่งไม่ต้องเพิ่มพารามิเตอร์ใหม่เลย (0 พารามิเตอร์)
- Option B: การใช้ linear convolution projection ขนาด สำหรับ เฉพาะเมื่อมิติเพิ่มขึ้นเท่านั้น ในขณะที่จุดอื่นๆ ยังใช้ pure identity connections
- Option C: การใช้ linear projection shortcuts สำหรับทุก residual blocks
งานวิจัยนี้เลือกใช้ Option B สำหรับโมเดล ImageNet (ResNet-50/101/152) เนื่องจาก Option C ทำให้พารามิเตอร์บวมขึ้นโดยไม่ได้ช่วยเพิ่มความแม่นยำอย่างมีนัยสำคัญ และ pure identity shortcuts นั้นมีความจำเป็นอย่างยิ่งต่อการรักษาประสิทธิภาพของโครงสร้าง bottleneck
ผลการทดลอง
- ImageNet Classification:
- ResNet-34 ทำผลงานได้เหนือกว่า plain-34 โดยลดข้อผิดพลาด top-1 error ลงได้ 3.5% (25.03% เทียบกับ 28.54% บน 10-crop val error) และแก้ปัญหา training degradation ได้สำเร็จ
- ResNet-152 ทำ top-5 validation error สำหรับโมเดลเดี่ยวได้ 4.49% (ใช้ 11.3 พันล้าน FLOPs ซึ่งมีความซับซ้อนต่ำกว่า VGG-16 ที่ใช้ 15.3 พันล้าน FLOPs)
- Ensemble ของ ResNets ทำ top-5 error บนชุดทดสอบได้ 3.57% และคว้ารางวัลชนะเลิศอันดับ 1 ในการแข่งขัน ILSVRC 2015 classification challenge
- CIFAR-10: ระดับความลึกของ ResNet ขยายตัวได้อย่างราบรื่นผ่าน 20, 32, 44, 56 และ 110 เลเยอร์ โดย ResNet-110 ทำ test error ได้ 6.43% นอกจากนี้ยังได้ทดลองเทรนโครงข่าย 1202 เลเยอร์โดยไม่พบความล้มเหลวในการ optimize เลย ( training error)
- Transfer & Downstream Tasks: การเปลี่ยนจาก VGG-16 เป็น ResNet-101 ใน Faster R-CNN ช่วยปรับปรุงค่า mAP@[.5, .95] บน MS COCO จาก 21.2% เป็น 27.2% (เพิ่มขึ้นสัมพัทธ์ 28%) และเพิ่ม test mAP บน PASCAL VOC 2007 จาก 73.2% เป็น 76.4% ยิ่งไปกว่านั้น Deep residual networks ยังคว้ารางวัลชนะเลิศใน ImageNet detection, ImageNet localization, COCO detection และ COCO segmentation อีกด้วย
ข้อจำกัดและคำถามปลายเปิด
- Overfitting บนสถาปัตยกรรมที่ลึกเป็นพิเศษ: บนชุดข้อมูล CIFAR-10 โมเดล 1202 เลเยอร์แสดงค่า test error (7.93%) ที่สูงกว่า ResNet-110 (6.43%) แม้ว่าจะทำ training error ได้ ก็ตาม เนื่องจากการขาด regularization บนชุดข้อมูลขนาดเล็ก
- สาเหตุเชิงทฤษฎีของ Degradation: งานวิจัยแสดงให้เห็นจากการทดลองว่า gradient vanishing ไม่ใช่สาเหตุของปัญหา โดยสันนิษฐานว่า plain networks อาจประสบปัญหาอัตราการลู่เข้าที่ต่ำแบบเอกซ์โพเนนเชียล แต่ยังคงละการพิสูจน์ทางทฤษฎีเกี่ยวกับพลศาสตร์ของการ optimize ไว้สำหรับงานวิจัยในอนาคต
- Single-Layer Residuals: สูตรคำนวณ residual ไม่ได้แสดงให้เห็นถึงประโยชน์ที่ชัดเจนเมื่อ ประกอบด้วยเลเยอร์เพียงชั้นเดียว (ซึ่งจะลดรูปลงเหลือ )
คำศัพท์สำคัญ
- degradation problem
- ปรากฏการณ์ที่ขัดกับสัญชาตญาณ ซึ่งการเพิ่มเลเยอร์เข้าไปในดีพนิวรอลเน็ตเวิร์กกลับส่งผลให้ training error สูงขึ้น ทั้งที่ไม่มีปัญหา vanishing/exploding gradients เกิดขึ้นเลย
- residual learning
- การปรับสูตรของเลเยอร์ในนิวรอลเน็ตเวิร์กที่ซ้อนกัน เพื่อให้เรียนรู้ residual function สัมพัทธ์กับอินพุต แทนที่จะพยายามฟิต unreferenced mapping โดยตรง
- identity shortcut connection
- Skip connection แบบไม่ใช้พารามิเตอร์ ซึ่งส่งผ่านเวกเตอร์อินพุตหรือ feature map ไปโดยไม่มีการเปลี่ยนแปลง แล้วนำไปบวกแบบ element-wise เข้ากับเอาต์พุตของเลเยอร์คอนโวลูชันที่ซ้อนกันอยู่
- projection shortcut
- Shortcut connection ที่ใช้เมทริกซ์การแปลงเชิงเส้นหรือคอนโวลูชันขนาด () เพื่อปรับมิติให้ตรงกัน เมื่อขนาดของแชนเนลหรือขนาดเชิงพื้นที่ระหว่างอินพุตและเอาต์พุตมีความแตกต่างกัน
- bottleneck design
- Residual building block แบบ 3 เลเยอร์ที่ประกอบด้วยคอนโวลูชันขนาด , , และ โดยเลเยอร์ จะทำหน้าที่บีบอัดและคืนขนาดมิติของฟีเจอร์เพื่อลดความซับซ้อนในการคำนวณ
- plain network
- สถาปัตยกรรมโครงข่ายคอนโวลูชันแบบเบสไลน์ที่ใช้วิธีซ้อนเลเยอร์คอนโวลูชันและพูลลิงมาตรฐานต่อกันไปเรื่อยๆ โดยไม่มี shortcut หรือ residual connections
คำถามที่พบบ่อย
เหตุใด degradation problem จึงไม่ได้เกิดจาก vanishing gradients?
โครงข่ายได้รับการเทรนโดยใช้ Batch Normalization และ normalized weight initialization ซึ่งได้รับการตรวจสอบแล้วว่าสามารถรักษาค่าความแปรปรวนของสัญญาณไม่ให้เป็นศูนย์ในการส่งสัญญาณไปข้างหน้า (forward propagation) และมีขนาด gradient ที่เหมาะสมในกระบวนการ backpropagation ยิ่งไปกว่านั้น plain networks ที่ลึกกว่าอย่าง plain-34 ก็ยังสามารถลู่เข้าสู่คำตอบที่มีนัยสำคัญได้ เพียงแต่ลู่เข้าสู่จุดที่มี training error สูงกว่าโมเดลที่ตื้นกว่า
ความแตกต่างระหว่าง identity shortcuts ของ ResNet กับ Highway Networks คืออะไร?
Highway networks ใช้ gating functions ที่มีพารามิเตอร์และขึ้นอยู่กับข้อมูล ซึ่งสามารถปิดกั้นและทำให้เลเยอร์ไม่เป็น residual ได้ ในขณะที่ shortcut ของ ResNet เป็น identity mappings ที่ปราศจากพารามิเตอร์และไม่เคยปิดกั้น จึงรับประกันได้ว่าจะเกิด residual learning ขึ้นตลอดทั้งเครือข่าย
เมื่อใดที่ควรใช้ projection แทน identity shortcut?
Projection (ใช้คอนโวลูชัน ) จะถูกนำมาใช้เป็นหลักเมื่อมิติของฟีเจอร์อินพุตและเอาต์พุตไม่ตรงกัน (เช่น เมื่อเพิ่มแชนเนลเป็นสองเท่าและลดความละเอียดเชิงพื้นที่ลงครึ่งหนึ่งด้วย stride 2) สำหรับมิติที่เท่ากัน การใช้ identity mapping นั้นเพียงพอ ประหยัดทรัพยากรกว่า และช่วยหลีกเลี่ยงไม่ให้พารามิเตอร์เพิ่มขึ้นมากเกินไปใน bottleneck units
ทำไม ResNet-1202 ถึงให้ผลลัพธ์บน CIFAR-10 ด้อยกว่า ResNet-110?
ResNet-1202 ประสบปัญหา overfitting มากกว่าความล้มเหลวในการ optimize โดยโมเดลสามารถทำ training error ได้ต่ำกว่า แต่พารามิเตอร์จำนวน 19.4M ตัวนั้นมีขนาดใหญ่เกินความจำเป็นสำหรับชุดข้อมูลขนาดเล็กอย่าง CIFAR-10 หากไม่มีเทคนิค regularization เพิ่มเติมอย่างเช่น dropout
คำอธิบายในหน้านี้เขียนโดย AI จากงานวิจัยและอาจมีข้อผิดพลาด โปรดอ่านต้นฉบับเพื่อดูรายละเอียด