อ่าน 4 นาที
อินเซปชั่น (สถาปัตยกรรมเรียนรู้เชิงลึก)
Inception เป็นตระกูลของโครงข่ายประสาทเทียมแบบคอนโวลูชัน (CNN) สำหรับคอมพิวเตอร์วิชันซึ่งนักวิจัยของ Google นำเสนอในปี 2014 ในชื่อ GoogLeNet (ต่อมาเปลี่ยนชื่อเป็น Inception v1)...
อินเซปชั่น (สถาปัตยกรรมเรียนรู้เชิงลึก)
| การเริ่มต้น | |
|---|---|
| ผู้เขียนต้นฉบับ | Google AI |
| ปล่อย | 2014 |
| เวอร์ชันเสถียร | เวอร์ชัน 4 / 2017 |
| พิมพ์ | |
| ใบอนุญาต | อะปาเช่ 2.0 |
| ที่เก็บข้อมูล | github.com/tensorflow/models/blob/master/research/slim/README.md |
Inception [ 1 ]เป็นตระกูลของโครงข่ายประสาทเทียมแบบคอนโวลูชัน (CNN) สำหรับคอมพิวเตอร์วิชันซึ่งนักวิจัยของ Google นำเสนอในปี 2014 ในชื่อ GoogLeNet (ต่อมาเปลี่ยนชื่อเป็น Inception v1) ซีรีส์นี้มีความสำคัญทางประวัติศาสตร์ในฐานะ CNN รุ่นแรกๆ ที่แยกส่วนลำต้น (การนำเข้าข้อมูล) ส่วนลำตัว (การประมวลผลข้อมูล) และส่วนหัว (การทำนาย) ซึ่งเป็นการออกแบบสถาปัตยกรรมที่ยังคงมีอยู่ใน CNN สมัยใหม่ทั้งหมด[ 2 ]

ประวัติเวอร์ชัน
อินเซปชั่น เวอร์ชัน 1

ในปี 2014 ทีมงานของ Google ได้พัฒนาสถาปัตยกรรม GoogLeNet ซึ่งตัวอย่างหนึ่งได้รับรางวัลชนะเลิศในการแข่งขัน ImageNet Large-Scale Visual Recognition Challenge 2014 (ILSVRC14) [ 1 ] [ 3 ]
ชื่อนี้มาจากLeNetในปี 1998 เนื่องจากทั้ง LeNet และ GoogLeNet ต่างก็เป็น CNN พวกเขายังเรียกมันว่า "Inception" ตามมีมอินเทอร์เน็ต "we need to go deeper" ซึ่งเป็นวลีจากภาพยนตร์เรื่องInception (2010) [ 1 ]เนื่องจากต่อมามีการปล่อยเวอร์ชันเพิ่มเติมออกมา สถาปัตยกรรม Inception ดั้งเดิมจึงถูกเปลี่ยนชื่ออีกครั้งเป็น "Inception v1"
โมเดลและโค้ดได้รับการเผยแพร่ภายใต้ใบอนุญาต Apache 2.0 บน GitHub [ 4 ]


สถาปัตยกรรม Inception v1 เป็น CNN เชิงลึกที่ประกอบด้วย 22 เลเยอร์ เลเยอร์ส่วนใหญ่เหล่านี้เป็น "โมดูล Inception" เอกสารต้นฉบับระบุว่าโมดูล Inception เป็น "จุดสูงสุดเชิงตรรกะ" ของเครือข่ายในเครือข่าย[ 5 ]และ (Arora et al, 2014) [ 6 ]
เนื่องจาก Inception v1 เป็นโครงข่ายประสาทเทียมที่มีความลึกมาก จึงประสบปัญหาการลดลงของค่าความชัน (vanishing gradient problem ) ทีมงานจึงแก้ไขปัญหานี้โดยใช้ "ตัวจำแนกเสริม" สองตัว ซึ่งเป็นตัวจำแนกแบบ linear-softmax ที่แทรกไว้ที่ระดับความลึก 1/3 และ 2/3 ของโครงข่าย และฟังก์ชันความสูญเสีย (loss function) คือผลรวมถ่วงน้ำหนักของทั้งสามตัวจำแนก:
สิ่งเหล่านี้ถูกลบออกหลังจากฝึกอบรมเสร็จสิ้น ปัญหานี้ได้รับการแก้ไขในภายหลังด้วยสถาปัตยกรรม ResNet
สถาปัตยกรรมประกอบด้วยสามส่วนที่ซ้อนกันอยู่: [ 2 ]
- ส่วนหลัก (การนำเข้าข้อมูล): เลเยอร์การแปลงแบบคอนโวลูชันแรกๆ จะทำการประมวลผลข้อมูลเบื้องต้นเพื่อลดขนาดภาพให้เล็กลง
- ส่วนหลัก (การประมวลผลข้อมูล): โมดูล Inception ต่อไปนี้จำนวนมากทำหน้าที่ประมวลผลข้อมูลเป็นส่วนใหญ่
- ส่วนหัว (การทำนาย): เลเยอร์เชื่อมต่อเต็มรูปแบบสุดท้ายและฟังก์ชัน softmax สร้างการกระจายความน่าจะเป็นสำหรับการจำแนกภาพ
โครงสร้างนี้ถูกนำไปใช้ในสถาปัตยกรรม CNN สมัยใหม่ส่วนใหญ่
อินเซปชั่น เวอร์ชัน 2
Inception v2 ได้รับการเผยแพร่ในปี 2015 ในเอกสารที่โด่งดังกว่าในเรื่องการเสนอBatch Normalization [ 7 ] [ 8 ]โดยมีพารามิเตอร์ 13.6 ล้านตัว
เวอร์ชันนี้ปรับปรุงจาก Inception v1 โดยเพิ่มการปรับค่ามาตรฐานแบบกลุ่ม (batch normalization) และลบค่า dropout และการปรับค่ามาตรฐานการตอบสนองเฉพาะที่ (local response normalization)ซึ่งพบว่าไม่จำเป็นอีกต่อไปเมื่อใช้การปรับค่ามาตรฐานแบบกลุ่มอยู่แล้ว
อินเซปชั่น เวอร์ชัน 3
Inception v3 เปิดตัวในปี 2016 [ 7 ] [ 9 ]โดยปรับปรุงจาก Inception v2 โดยใช้การแปลงแบบแยกส่วน
ยกตัวอย่างเช่น การแปลงแบบคอนโวลูชันขนาด 5×5 หนึ่งตัว สามารถแยกตัวประกอบออกเป็นขนาด 3×3 ที่ซ้อนกันอยู่ โดยทั้งสองแบบจะมีขอบเขตการรับรู้ขนาด 5×5 เคอร์เนลของการแปลงแบบคอนโวลูชันขนาด 5×5 มีพารามิเตอร์ 25 ตัว ในขณะที่แบบที่แยกตัวประกอบมีเพียง 18 ตัว ดังนั้น การแปลงแบบคอนโวลูชันขนาด 5×5 จึงมีประสิทธิภาพมากกว่าแบบที่แยกตัวประกอบอย่างเห็นได้ชัด อย่างไรก็ตาม ประสิทธิภาพนี้ไม่จำเป็นต้องใช้เสมอไป จากการทดลอง ทีมวิจัยพบว่าการแปลงแบบคอนโวลูชันที่แยกตัวประกอบนั้นมีประโยชน์
นอกจากนี้ยังใช้รูปแบบการลดมิติโดยการต่อผลลัพธ์จากเลเยอร์คอนโวลูชันและเลเยอร์พูลลิ่งเข้าด้วยกัน ตัวอย่างเช่น เทนเซอร์ขนาดสามารถลดขนาดลงได้โดยใช้คอนโวลูชันที่มี stride 2 เป็นและโดยใช้ maxpooling ที่มีขนาด pool เป็นจากนั้นจึงนำมาต่อกันเป็น
นอกเหนือจากนี้ ยังได้ลบตัวจำแนกเสริมที่ต่ำที่สุดออกในระหว่างการฝึกอบรมด้วย พวกเขาพบว่าส่วนหัวเสริมทำหน้าที่เหมือนการปรับให้เป็นระเบียบ (regularization ) รูปแบบหนึ่ง
นอกจากนี้ พวกเขายังเสนอการปรับความเรียบของป้ายกำกับ (label-smoothing regularization) ในการจำแนกประเภท สำหรับภาพที่มีป้ายกำกับแทนที่จะให้แบบจำลองทำนายการกระจายความน่าจะเป็นพวกเขาให้แบบจำลองทำนายการกระจายความเรียบโดยที่คือจำนวนคลาสทั้งหมด
อินเซปชั่น เวอร์ชัน 4
ในปี 2017 ทีมงานได้ปล่อย Inception v4, Inception ResNet v1 และ Inception ResNet v2 ออกมา[ 10 ]
Inception v4 เป็นการอัปเดตแบบค่อยเป็นค่อยไป โดยมีการเพิ่มการคำนวณแบบแยกตัวประกอบ (factorized convolution) และความซับซ้อนอื่นๆ ที่ได้รับการพิสูจน์แล้วว่าช่วยปรับปรุงประสิทธิภาพในการทดสอบ
Inception ResNet v1 และ v2 ต่างก็เป็นการดัดแปลง Inception v4 โดยมีการเพิ่มการเชื่อมต่อแบบตกค้าง ให้กับโมดูล Inception แต่ละโมดูล ซึ่งได้รับแรงบันดาลใจจาก สถาปัตยกรรมResNet [ 11 ]
เอ็กซ์เซคชั่น
Xception (“Extreme Inception”) ได้รับการเผยแพร่ในปี 2017 [ 12 ]เป็นสแต็กเชิงเส้นของ เลเยอร์ convolution ที่แยกตามความลึกพร้อมการเชื่อมต่อแบบตกค้าง การออกแบบนี้เสนอขึ้นบนสมมติฐานที่ว่าใน CNN ความสัมพันธ์ข้ามช่องและความสัมพันธ์เชิงพื้นที่ในแผนที่ฟีเจอร์สามารถแยกออกจากกันได้อย่างสมบูรณ์
การฝึกอบรมเครือข่ายแต่ละเครือข่ายใช้เวลา 3 วันบน GPU K80 จำนวน 60 ตัว หรือประมาณ 0.5 เพตาฟลอป-วัน[ 13 ]
ลิงก์ภายนอก
- รายชื่อโมเดล Inception ทั้งหมดที่ Google เผยแพร่: "models/research/slim/README.md ที่ master · tensorflow/models" . GitHub . เรียกดูเมื่อ2024-10-19 .
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ อินเซปชั่น (สถาปัตยกรรมเรียนรู้เชิงลึก)
Inception เป็นตระกูลของโครงข่ายประสาทเทียมแบบคอนโวลูชัน (CNN) สำหรับคอมพิวเตอร์วิชันซึ่งนักวิจัยของ Google นำเสนอในปี 2014 ในชื่อ GoogLeNet (ต่อมาเปลี่ยนชื่อเป็น Inception v1)...
อินเซปชั่น เวอร์ชัน 1
ในปี 2014 ทีมงานของ Google ได้พัฒนาสถาปัตยกรรม GoogLeNet ซึ่งตัวอย่างหนึ่งได้รับรางวัลชนะเลิศ ในการแข่งขัน ImageNet Large-Scale Visual Recognition Challenge 2014 (ILSVRC14) [ 1 ] [ 3 ]
อินเซปชั่น เวอร์ชัน 2
Inception v2 ได้รับการเผยแพร่ในปี 2015 ในเอกสารที่โด่งดังกว่าในเรื่องการเสนอBatch Normalization [ 7 ] [ 8 ] โดยมีพารามิเตอร์ 13.6 ล้านตัว
อินเซปชั่น เวอร์ชัน 3
Inception v3 เปิดตัวในปี 2016 [ 7 ] [ 9 ] โดยปรับปรุงจาก Inception v2 โดยใช้การแปลงแบบแยกส่วน