AlexNet: วิศวกรรม CUDA เบื้องหลังความสำเร็จปี 2012

ในปี 2012 ความสำเร็จของ AlexNet พิสูจน์ว่าโครงข่ายประสาทเทียมลึกที่จับคู่กับ GPU ที่รองรับ CUDA สามารถเหนือกว่าวิศวกรรมคอมพิวเตอร์วิทัศน์แบบดั้งเดิมหลายทศวรรษ ในการแข่งขัน ImageNet Large Scale Visual Recognition Challenge (ILSVRC) Alex Krizhevsky, Ilya Sutskever และ Geoffrey Hinton ทำอัตราความผิดพลาด top-5 ได้ 15.3% เอาชนะรองชนะเลิศที่ 26.2% ด้วยส่วนต่างเกือบ 11 เปอร์เซ็นต์
คอขวดของฮาร์ดแวร์และทางแก้
ในขณะนั้น เฟรมเวิร์กการเรียนรู้เชิงลึกอย่าง PyTorch และ TensorFlow ยังไม่มีอยู่ และ GPU สำหรับผู้บริโภคมีข้อจำกัดด้านหน่วยความจำอย่างรุนแรง
- ฮาร์ดแวร์เกมมิ่งระดับผู้บริโภค: ทีมฝึกโครงข่ายนี้ในห้องนอนด้วย NVIDIA GTX 580 GPU ระดับผู้บริโภคสองตัว การ์ดแต่ละใบมี VRAM เพียง 3 GB ซึ่งไม่เพียงพอที่จะบรรจุโครงข่ายที่มีพารามิเตอร์ 60 ล้านตัวทั้งหมดลงในชิปเดียว
- การทำโมเดลแบบขนานผ่าน CUDA: Alex Krizhevsky เขียนเคอร์เนล CUDA C++ แบบกำหนดเอง (cuda-convnet) เพื่อแบ่งโครงข่ายในแนวตั้งออกเป็นสอง GPU แต่ละตัว โดย GPU แต่ละตัวจัดเก็บนิวรอนและเคอร์เนลครึ่งหนึ่งในพูลหน่วยความจำ 3 GB ของตัวเอง
- การสื่อสารข้าม GPU แบบเลือกเฉพาะ: เนื่องจากการถ่ายโอนข้อมูลระหว่าง GPU ผ่านบัส PCIe ของเมนบอร์ดช้า Krizhevsky จึงเขียนโปรแกรมให้ GPU สื่อสารกันเฉพาะที่เลเยอร์เฉพาะเจาะจง (เช่น เลเยอร์ 3) ส่วนเลเยอร์อื่นทำงานอย่างอิสระสมบูรณ์บนการ์ดแต่ละใบ ลดคอขวดด้านแบนด์วิดท์ให้เหลือน้อยที่สุด
ความก้าวหน้าสำคัญด้านสถาปัตยกรรม
การมีกำลังคำนวณ CUDA ดิบทำให้ทีมสามารถผสานเทคนิคสำคัญหลายอย่างที่ก่อนหน้านี้ช้าเกินไปที่จะทดสอบในระดับใหญ่:
- สถาปัตยกรรมลึก: AlexNet ซ้อนเลเยอร์ที่เรียนรู้ได้ 8 ชั้น (เลเยอร์คอนโวลูชัน 5 ชั้นตามด้วยเลเยอร์ fully connected 3 ชั้น) ซึ่งลึกกว่าโครงข่ายประสาทเทียมก่อนหน้ามาก
- ฟังก์ชันกระตุ้น ReLU: แทนที่จะใช้คณิตศาสตร์ tanh หรือ sigmoid แบบดั้งเดิม พวกเขาใช้ Rectified Linear Units (ReLU) ReLU คำนวณได้ง่ายใน CUDA และทำให้โครงข่ายลึกฝึกได้เร็วขึ้นประมาณหกเท่าโดยไม่มีปัญหาเกรเดียนต์หายไป
- การขยายข้อมูลและ Dropout: ในขณะที่ GPU บดคำนวณเมทริกซ์ CPU สร้างการแปลงภาพแบบเรียลไทม์ (ครอบและพลิก) เพื่อป้องกัน overfitting พวกเขายังใช้ Dropout โดยสุ่มปิดนิวรอนระหว่างการฝึกเพื่อบังคับให้เครือข่ายเรียนรู้คุณลักษณะที่ทนทาน
เหตุใดจึงจุดประกายการปฏิวัติการเรียนรู้เชิงลึก
ก่อนเดือนกันยายน 2012 นักวิจัยคอมพิวเตอร์วิทัศน์ส่วนใหญ่พึ่งพาอัลกอริทึมที่ออกแบบด้วยมือ (เช่น SIFT และ HOG) เพื่อตรวจจับขอบและรูปร่าง โดยมองโครงข่ายประสาทเทียมลึกว่าเป็นทฤษฎีตีบตัน
- เวลาฝึก: แม้จะมีการปรับแต่ง CUDA แบบกำหนดเอง AlexNet ก็ใช้เวลาฝึก 5 ถึง 6 วันบนภาพความละเอียดสูง 1.2 ล้านภาพ หากไม่มี CUDA การทดลองเดียวกันนี้จะใช้เวลาหลายเดือนบน CPU
- การเปลี่ยนแปลงของอุตสาหกรรม: เมื่อ AlexNet บดขยี้ทุกวิธีดั้งเดิมที่ ImageNet ชุมชนนักวิจัย AI ทั้งหมดละทิ้งคุณลักษณะที่ออกแบบด้วยมือเกือบจะในชั่วข้ามคืน นักวิจัยแห่กันไปซื้อ NVIDIA GPU ผลักให้ NVIDIA หันมามุ่ง AI และเปิดตัว cuDNN สองปีต่อมา