ทำไมเครือข่ายประสาทเทียมถึงลึกขึ้น แต่ไม่กว้างขึ้น


73

ในช่วงไม่กี่ปีที่ผ่านมาเครือข่ายประสาทเทียม (หรือเครือข่ายประสาทลึกทั่วไป) ได้กลายเป็นเครือข่ายที่ล้ำลึกและล้ำลึกโดยเครือข่ายที่ล้ำสมัยเริ่มจาก 7 ชั้น ( AlexNet ) ถึง 1,000 ชั้น ( มุ้งที่เหลือ)ในพื้นที่ 4 ปี. เหตุผลที่อยู่เบื้องหลังการเพิ่มประสิทธิภาพจากเครือข่ายที่ลึกกว่าคือสามารถเรียนรู้การทำงานที่ไม่ใช่เชิงเส้นที่ซับซ้อนมากขึ้น เมื่อได้รับข้อมูลการฝึกอบรมที่เพียงพอสิ่งนี้จะช่วยให้เครือข่ายสามารถแยกแยะความแตกต่างระหว่างคลาสต่างๆ

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

ดังนั้นในขณะที่เครือข่ายได้กลายเป็น "ลึก" พวกเขาไม่ได้กลายเป็น "กว้าง" ทำไมนี้


1
+1 แต่เพื่อความเป็นธรรมไม่ใช่ว่าเครือข่ายชั้น 1,000+ เหล่านี้เป็น "ทันสมัย" ในแง่ของประสิทธิภาพที่เหนือกว่าผู้อื่น กระดาษ arxiv ที่คุณเชื่อมโยงกับรายงานเครือข่ายที่เหลือซึ่งมี 152 เลเยอร์เป็นผู้ชนะในปัจจุบันของ ImageNet
อะมีบา

3
คุณเคยอ่านเน็ตเวิร์กที่เหลืออย่างกว้างขวางarxiv.org/abs/1605.07146 .... อาจจะไม่มีเหตุผล .. ยกระดับฟังก์ชั่นที่ไม่ใช่นูนที่มีการไล่ระดับสีแบบลาดชันไม่มีรากฐานทางทฤษฎี ... มีเพียงการทดลองและข้อผิดพลาดมากมาย :-)
seanv507

@ seanv507 น่าสนใจมากขอบคุณสำหรับลิงค์นี้ BTW นี่คือกระทู้ที่เกี่ยวข้องมาก: stats.stackexchange.com/questions/214360และมีลิงก์ไปยังเธรด reddit นี้ที่นั่น
อะมีบา


มากที่เกี่ยวข้องมาก: stats.stackexchange.com/questions/182734
อะมีบา

คำตอบ:


87

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

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

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

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

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


+1 ความคิดเห็นใด ๆ เกี่ยวกับarxiv.org/abs/1605.07146 ?
อะมีบา

2
ฉันอ่านมันเพียงอย่างเดียวดังนั้นฉันไม่สามารถพูดอะไรที่มีอำนาจ แต่ดูเหมือนว่าผู้เขียนพบว่าอย่างน้อยในกรณีของเครือข่ายที่เหลือเครือข่ายที่กว้าง (แต่ยังคงลึกถึง 16 ชั้น!) มีประสิทธิภาพที่เหนือกว่าแคบ ) สุทธิ ฉันไม่รู้มากเกี่ยวกับเครือข่ายที่เหลือ แต่จากการแนะนำดูเหมือนว่าความยากลำบากในการฝึกอบรมพวกเขาคืออาจมีแนวโน้มที่เลเยอร์ที่จะไม่เรียนรู้อะไรเลยและไม่ได้มีส่วนช่วยในผลลัพธ์ ดูเหมือนว่าจะมีเลเยอร์น้อยลง แต่มีประสิทธิภาพมากกว่าหลีกเลี่ยงเลเยอร์นี้ ไม่ว่าสิ่งนี้จะนำไปใช้กับ NNs ชนิดอื่นที่ฉันไม่รู้
J. O'Brien Antognini

คำตอบที่ชัดเจนและรัดกุมทำได้ดี @J
ctwardy

21

ฉันไม่คิดว่าจะมีคำตอบที่ชัดเจนสำหรับคำถามของคุณ แต่ฉันคิดว่าภูมิปัญญาดั้งเดิมดำเนินไปดังนี้:

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

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

เมื่อพูดถึงโครงข่ายประสาทเทียมขนาดของพื้นที่สมมุติฐานจะถูกควบคุมโดยจำนวนพารามิเตอร์ และดูเหมือนว่าสำหรับพารามิเตอร์จำนวนคงที่ (หรือลำดับความสำคัญคงที่) การลงลึกทำให้โมเดลสามารถจับภาพโครงสร้างที่สมบูรณ์ยิ่งขึ้น (เช่นกระดาษนี้ )

นี่อาจอธิบายความสำเร็จของโมเดลที่ลึกกว่าบางส่วนด้วยพารามิเตอร์ที่น้อยลง: VGGNet (จาก 2014) มี 16 เลเยอร์ที่มีพารามิเตอร์ ~ 140M ในขณะที่ ResNet (จากปี 2015) เอาชนะด้วย 152 เลเยอร์ แต่มีเพียงพารามิเตอร์ 2M เท่านั้น

(ด้านข้างแบบจำลองขนาดเล็กอาจจะง่ายต่อการคำนวณ แต่ฉันไม่คิดว่ามันเป็นปัจจัยสำคัญของตัวเอง - เนื่องจากความลึกทำให้การฝึกอบรมซับซ้อนจริง ๆ )

โปรดทราบว่าแนวโน้มนี้ (ความลึกมากกว่าพารามิเตอร์น้อยกว่า) ส่วนใหญ่จะปรากฏในงานที่เกี่ยวข้องกับการมองเห็นและเครือข่าย convolutional และสิ่งนี้เรียกร้องให้มีคำอธิบายเฉพาะโดเมน ดังนั้นนี่คือมุมมองอื่น:

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

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

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


ส่วน Boltzmann Machine ที่ จำกัด ของเครือข่ายที่ลึกเป็นตัวคูณขนาดใหญ่ในเวลาการบรรจบกัน (afaict)
EngrStudent

4
RBMs ไม่ได้อยู่ที่การเรียนรู้อย่างลึกซึ้ง เครือข่ายที่ประสบความสำเร็จจำนวนมาก (ปัจจุบันนี้มากที่สุด) ที่ประสบความสำเร็จไม่ได้ใช้ RBM
Borbei

3
ขอบคุณที่เชื่อมโยงกับกระดาษนั้นฉันไม่เคยเห็นมาก่อนและดูเหมือนว่าจะมีความเกี่ยวข้องมาก
J. O'Brien Antognini

@Borbei - พวกเขาจะแยกคุณสมบัติโดยไม่ต้อง RBM อย่างไร?
EngrStudent

1
+1 ความคิดเห็นใด ๆ เกี่ยวกับarxiv.org/abs/1605.07146 ?
อะมีบา

10

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

ในทางกลับกันการหาฟังก์ชั่นที่เหมาะสมสำหรับ ma ของคุณสมบัตินั้นเป็นความคิดที่ดีเสมอ อย่างไรก็ตามถ้าคุณไม่มีทฤษฎีที่ดีมันก็ยากที่จะคิดฟังก์ชั่นที่ถูกต้องแน่นอน ดังนั้นการเพิ่มเลเยอร์จึงมีประโยชน์ในรูปแบบของวิธีการบังคับกำลังดุร้าย

fCρAv2/2
Aρv

fiβixi

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


5
คุณถือว่าฟังก์ชันถ่ายโอนเชิงเส้น แต่มีตัวเลือก (ทั่วไป) อื่น ๆ อีกมากมายและตามทฤษฎีการประมาณค่าสากลของ ANNsแม้แต่เลเยอร์ที่ไม่ใช่เชิงเส้นเดียวที่ซ่อนอยู่ (ถ้ากว้างพอ) ก็สามารถประมาณฟังก์ชันที่ดีได้ ดังนั้นการเป็นตัวแทนจึงไม่สามารถอธิบายความสำเร็จของเครือข่ายที่ลึกล้ำได้
Borbei

2
ตัวอย่างของฉันคือแบบเส้นตรง แต่ใช้กับกรณีที่กว้างขึ้น คุณคิดว่าฟังก์ชั่น "ดี" แต่หลายคนไม่ค่อยดีนัก เช่นเมื่อฉันเลือกรถยนต์เพื่อซื้อทำไมอัลกอริทึมการตัดสินใจของฉันถึงเป็นฟังก์ชั่นที่ดี
Aksakal

2

dwO(dw2)

ทำไมคุณถึงพยายาม จำกัด จำนวนพารามิเตอร์ เหตุผลหลายประการ:

  • คุณกำลังพยายามหลีกเลี่ยงการ overfitting (แม้ว่าการ จำกัด จำนวนพารามิเตอร์เป็นเครื่องมือที่ทื่อมากสำหรับการบรรลุเป้าหมายนี้)
  • การวิจัยของคุณน่าประทับใจมากขึ้นถ้าคุณสามารถเอาชนะโมเดลของคนอื่นได้โดยใช้พารามิเตอร์จำนวนเดียวกัน
  • การฝึกอบรมแบบจำลองของคุณนั้นง่ายกว่ามากหากแบบจำลอง (บวกกับช่วงเวลาสำคัญหากคุณใช้อดัม) สามารถใส่หน่วยความจำใน GPU เดี่ยวได้
  • ในแอปพลิเคชันในชีวิตจริง RAM มักมีราคาแพงเมื่อให้บริการรุ่น นี่เป็นเรื่องจริงโดยเฉพาะอย่างยิ่งสำหรับรุ่นที่ทำงานอยู่เช่นโทรศัพท์มือถือ แต่บางครั้งก็สามารถนำไปใช้กับการให้บริการโมเดลจากคลาวด์ได้

O(dw2)w1,w2w1×w2(d2)w

(d2)w2+w(input layer width)+w(output layer width)=O(dw2).
1/wO(dw)
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.