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


113

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

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

สำหรับบริบทเพิ่มเติม: ฉันรู้ว่าเครือข่ายประสาทคืออะไรและทำงานอย่างไร backpropagation ฉันรู้ว่า DNN ต้องมีเลเยอร์ที่ซ่อนอยู่หลายชั้น อย่างไรก็ตาม 10 ปีที่ผ่านมาในระดับผมได้เรียนรู้ว่ามีหลายชั้นหรือชั้นหนึ่ง (ไม่นับเข้าและส่งออกชั้น) ก็เท่ากับในแง่ของการทำงานเครือข่ายประสาทสามารถที่จะเป็นตัวแทน (ดู Cybenko ของทฤษฎีบทประมาณสากล ) และว่ามี เลเยอร์มากขึ้นทำให้การวิเคราะห์ซับซ้อนขึ้นโดยไม่เพิ่มประสิทธิภาพ เห็นได้ชัดว่านั่นไม่ใช่กรณีอีกต่อไป

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



หากฟังก์ชั่นที่คุณต้องการประมาณนั้นเป็นฟังก์ชั่นประกอบภาพ (ทั่วไปในการประมวลผลภาพและโดเมนธรรมชาติจำนวนมากเนื่องจากกฎของฟิสิกส์) มันสามารถพิสูจน์ได้ว่าเครือข่ายที่ลึกสามารถใช้ประโยชน์จากการผสมผสานนี้และบรรลุข้อผิดพลาดในระดับเดียวกันกับจำนวนเซลล์ประสาทที่น้อยลงอย่างไม่น่าเชื่อ (เทียบกับเครือข่ายชั้นเดียวที่ซ่อนอยู่) Ref: Poggio, Tomaso, et al. "ทำไมและเมื่อใดที่เครือข่ายตื้นเขิน แต่ไม่สามารถหลีกเลี่ยงคำสาปของมิติ: การตรวจสอบ" วารสารอัตโนมัติและการคำนวณระหว่างประเทศ (2017)
DataHungry

คุณอาจต้องการอ่านบทความนี้
agcala

คำตอบ:


151

เริ่มจากเรื่องไม่สำคัญ: เครือข่ายระบบประสาทลึกเป็นเพียงเครือข่ายอาหารที่มีเลเยอร์ที่ซ่อนอยู่มากมาย

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

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

นี่คือภาพประกอบดัดแปลงมาจากที่นี่ :

Deep vs non-neural network

แต่คำถามจริงที่คุณถามคือแน่นอนว่าทำไมการมีหลายเลเยอร์จึงมีประโยชน์

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

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

ฉันฐานการอภิปรายของฉันในการเรียนรู้ลึกหนังสือโดย Goodfellow, Bengio และ Courville ซึ่งก็ออกไปในปี 2017 และได้รับการยอมรับอย่างกว้างขวางว่าเป็นหนังสือเกี่ยวกับการเรียนรู้ลึก (สามารถออนไลน์ได้อย่างอิสระ) ส่วนที่เกี่ยวข้องคือ6.4.1 คุณสมบัติการประมาณและความลึกโดยทั่วไป

คุณเขียนว่า

10 ปีที่แล้วในชั้นเรียนฉันได้เรียนรู้ว่าการมีหลายเลเยอร์หรือหนึ่งเลเยอร์ (ไม่นับอินพุทและเลเยอร์เอาท์พุท) เทียบเท่าในแง่ของฟังก์ชั่นที่เครือข่ายประสาทเทียมสามารถแสดง [... ]

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

ถ้าเป็นเช่นนั้นแล้วทำไมทุกคนใช้มุ้งลึก

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

เลเยอร์เพิ่มเติมนั้นดี

เรารู้ว่าเครือข่ายตื้นสามารถทำงานได้ดีเหมือนเครือข่ายที่ลึกกว่า แต่มันไม่ได้; และพวกเขามักจะทำไม่ได้ คำถามคือ --- ทำไม คำตอบที่เป็นไปได้:

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

การเรียนรู้ลึกหนังสือระบุว่าสำหรับจุด bullet # 1 และ # 3 ข้อแรกมันให้เหตุผลว่าจำนวนหน่วยในเครือข่ายตื้นเติบโตขึ้นชี้แจงกับความซับซ้อนของงาน ดังนั้นเพื่อให้มีประโยชน์เครือข่ายที่ตื้นอาจต้องมีขนาดใหญ่มาก อาจใหญ่กว่าเครือข่ายที่ลึกมาก สิ่งนี้ขึ้นอยู่กับเอกสารจำนวนมากที่พิสูจน์ว่าเครือข่ายตื้น ๆในบางกรณีจำเป็นต้องมีเซลล์ประสาทจำนวนมาก แต่ไม่ว่าจะเป็นเช่นการจำแนกประเภท MNIST หรือ Go play เป็นกรณีดังกล่าวไม่ชัดเจน ประการที่สองหนังสือพูดว่า:

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

ฉันคิดว่า "ฉันทามติ" ในปัจจุบันคือมันเป็นการรวมกันของสัญลักษณ์แสดงหัวข้อย่อย # 1 และ # 3: สำหรับงานในโลกแห่งความเป็นจริงสถาปัตยกรรมเชิงลึกมักเป็นประโยชน์และสถาปัตยกรรมตื้นจะไม่มีประสิทธิภาพและต้องใช้เซลล์ประสาทมากขึ้นสำหรับประสิทธิภาพเดียวกัน

แต่มันก็ยังห่างไกลจากการพิสูจน์แล้ว พิจารณาเช่นZagoruyko และ Komodakis 2016 เครือข่ายที่เหลือไวด์ เครือข่ายที่เหลือซึ่งมีเลเยอร์มากกว่า 150 เลเยอร์ปรากฏในปี 2558และชนะการประกวดการจดจำรูปภาพหลายรูปแบบ นี่เป็นความสำเร็จครั้งยิ่งใหญ่และดูเหมือนจะเป็นข้อโต้แย้งที่น่าดึงดูดสำหรับความลึก นี่คือรูปหนึ่งจากงานนำเสนอโดยผู้เขียนคนแรกบนกระดาษเครือข่ายที่เหลือ (โปรดทราบว่าเวลาที่สับสนไปทางซ้ายที่นี่):

เครือข่ายที่เหลือลึก

แต่กระดาษที่เชื่อมโยงข้างต้นแสดงให้เห็นว่าเครือข่ายที่เหลือ "กว้าง" ที่มี "เพียง" 16 ชั้นเท่านั้นที่จะมีประสิทธิภาพสูงกว่าเครือข่ายที่ลึกกว่าที่มี 150 ชั้น หากเป็นจริงแล้วจุดรวมของรูปด้านบนจะพังลง

หรือพิจารณาBa และ Caruana, 2014, Deep Net ต้องเป็น Deep หรือไม่? :

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

หากเป็นจริงนี่หมายความว่าคำอธิบายที่ถูกต้องนั้นค่อนข้างจะเป็นหัวข้อย่อยของฉัน # 2 และไม่ใช่ # 1 หรือ # 3

อย่างที่ฉันบอกไปแล้ว --- ยังไม่มีใครรู้แน่ชัด


สรุปข้อสังเกต

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

ยุคฟื้นฟูศิลปวิทยาลึกการเรียนรู้เริ่มต้นในปี 2006 เมื่อเจฟฟรีย์ฮินตัน (ที่ได้รับการทำงานในเครือข่ายประสาทสำหรับ 20 ปีโดยไม่ต้องสนใจมากจากใคร) ตีพิมพ์คู่ของเอกสารที่นำเสนอการพัฒนาวิธีที่มีประสิทธิภาพในการฝึกอบรมเครือข่ายลึก ( กระดาษวิทยาศาสตร์ , ประสาทกระดาษคำนวณ ) . เคล็ดลับคือการใช้การฝึกอบรมแบบไม่สำรองล่วงหน้าก่อนเริ่มการไล่ระดับสี เอกสารเหล่านี้ปฏิวัติวงการและเป็นเวลาสองสามปีที่ผู้คนคิดว่าการฝึกอบรมแบบไม่มีผู้ดูแลเป็นกุญแจสำคัญ

จากนั้นในปี 2010 Martens แสดงให้เห็นว่าเครือข่ายประสาทลึกสามารถผ่านการฝึกอบรมด้วยวิธีการที่สอง-order (เรียกว่าวิธีการที่รัฐฟรี) และสามารถ outperform เครือข่ายการฝึกอบรมที่มีก่อนการฝึกอบรม: การเรียนรู้ลึกผ่านการเพิ่มประสิทธิภาพของรัฐฟรี จากนั้นในปี 2013 Sutskever และคณะ แสดงให้เห็นว่าโคตรลาดสุ่มด้วยเทคนิคที่ฉลาดมากบางคนสามารถมีประสิทธิภาพสูงกว่าวิธีการรัฐฟรี: ในความสำคัญของการเริ่มต้นและแรงผลักดันในการเรียนรู้ลึก นอกจากนี้ประมาณปี 2010 คนตระหนักว่าการใช้หน่วยเชิงเส้นที่ถูกต้องแทนที่จะเป็นหน่วย sigmoid สร้างความแตกต่างอย่างมากสำหรับการไล่ระดับสี การออกกลางคันปรากฏในปี 2014 เครือข่ายที่เหลือปรากฏขึ้นในปี 2558 ผู้คนกำลังติดตามวิธีการฝึกฝนเครือข่ายที่ลึกและมีประสิทธิภาพมากขึ้นเรื่อย ๆสิ่งที่ดูเหมือนความเข้าใจที่สำคัญเมื่อ 10 ปีที่แล้วมักถูกมองว่าเป็นเรื่องน่ารำคาญในปัจจุบัน ทั้งหมดนี้ส่วนใหญ่ขับเคลื่อนด้วยการลองผิดลองถูกและมีความเข้าใจเพียงเล็กน้อยว่าอะไรทำให้บางสิ่งทำงานได้ดีและบางอย่างไม่เป็นเช่นนั้น การฝึกอบรมเครือข่ายที่ลึกซึ้งนั้นเป็นเหมือนกลอุบายใหญ่ ๆ เทคนิคที่ประสบความสำเร็จมักจะหาเหตุผลโพสต์ factum

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

ปรับปรุง:นี้จะมากหรือน้อยเรื่องของอาลี Rahimi ของ NIPS 2017 พูดคุยเกี่ยวกับการเรียนรู้ของเครื่องเป็นเล่นแร่แปรธาตุ: https://www.youtube.com/watch?v=Qi1Yry33TQE


[คำตอบนี้เขียนใหม่ทั้งหมดในเดือนเมษายน 2560 ดังนั้นความคิดเห็นบางส่วนด้านล่างจะไม่นำมาใช้อีกต่อไป]


2
ตอบรับที่ดี! 1) ในฐานะที่เป็นยังกล่าวถึงโดย @Nicolas ก็ปรากฎว่ามีเป็นทฤษฎีบท ( en.wikipedia.org/wiki/Universal_approximation_theorem ) ที่อ้างว่าฟีดไปข้างหน้าเครือข่ายประสาทกับซิงเกิ้ลที่ซ่อนอยู่ชั้นและจำนวน จำกัด ของเซลล์ประสาทสามารถใกล้เคียงฟังก์ชั่นใด ๆ อย่างต่อเนื่อง (รวมถึง DNN) ในหน่วย hypercube ผลลัพธ์นี้อ้างว่าเป็นอิสระจากตัวเลือกของฟังก์ชั่นการเปิดใช้งาน 2) ฉันไม่แน่ใจว่าคำพูดสุดท้ายของคุณ (เช่นที่ฮินตันเข้าร่วมกับ Google) นั้นเกี่ยวข้องกับความสำเร็จล่าสุดของ DNN หรือไม่ Hinton เข้าร่วมกับ Google เป็นเวลานานหลังจาก DNN เริ่มแพร่ระบาด!
Sobi

4
บางทีเรากำลังใช้คำศัพท์ต่างกัน Perceptrons ไม่มีเลเยอร์ที่ซ่อนอยู่ - อินพุตของพวกเขาคือข้อมูลเอาต์พุตของพวกเขาคือการจัดหมวดหมู่ เครือข่ายหลายประกอบด้วยพวงของเพอร์เซปตรอนสายร่วมกันดังกล่าวว่าการส่งออกจากชั้นรูปแบบการป้อนข้อมูลเพื่อชั้นnเครือข่ายที่มีเลเยอร์ที่ซ่อนอยู่เดียวจึงมีสามชั้น (อินพุทซ่อนเอาท์พุท) เลเยอร์ที่ซ่อนอยู่นี้เป็นกุญแจสำคัญสำหรับการประมาณแบบสากล: perceptrons ที่ขาดมันไม่สามารถคำนวณสิ่งต่าง ๆ เช่น XOR แต่เครือข่ายหลายชั้นสามารถทำได้ nn1n
Matt Krause

2
สิ่งที่เป็นเส้นตรงดูเหมือนเป็นการรวมกันของสองประเด็น Perceptrons สามารถคำนวณขอบเขตการตัดสินใจเชิงเส้นเท่านั้น - สามารถวาดเส้นตรงเพื่อแบ่งสองคลาสได้ เครือข่ายหลายชั้นสามารถ "ดึง" ขอบเขตที่ซับซ้อนมากขึ้น แต่ทั้ง perceptrons และเครือข่ายหลายชั้นไม่ใช้ฟังก์ชั่นการเปิดใช้งานเชิงเส้นยกเว้นในชั้นเลเยอร์ของเครือข่ายแบบหลายชั้น ฟังก์ชั่นการเปิดใช้งาน perceptron นั้นเป็นแบบหนัก (1 ถ้า x> 0, 0 เป็นอย่างอื่น); เครือข่ายหลายชั้นมักจะใช้ sigmoids แต่ข้อ จำกัด สำหรับการประมาณสากล ค่อนข้างอ่อน: ไม่คงที่, มีขอบเขต, และเพิ่มขึ้นอย่างน่าเบื่อ
Matt Krause

2
@amoeba คำตอบที่ดีรูปภาพในตอนเริ่มต้นให้ฉันออกไปอ่านที่เหลือ แต่มันก็เป็นสิ่งที่ดีที่สุด Perceptron เป็นคู่ของการถดถอยเชิงเส้นสำหรับการจำแนกซึ่งเป็นสาเหตุที่เมื่อผู้คนใช้วิธีแก้ปัญหาแบบปิด (pseudoinverse) เพื่อแก้ปัญหาแทนวิธีออนไลน์ (sgd) มันเรียกว่า Logistic Regression เนื่องจากฟังก์ชันลอจิสติก (sigmoid) = perceptron การถดถอยเชิงเส้น / ลอจิสติกสามารถทำได้เพียง 'วาด' ขอบเขตการตัดสินใจเชิงเส้นเท่านั้นและนั่นคือสาเหตุที่เรียกว่าเชิงเส้น
shuriken x blue

2
อย่างไรก็ตามมัลติเพอร์เซ็ปตรอน (สิ่งที่คุณวาดในภาพแรกของคุณด้านซ้าย) สามารถรวมขอบเขตการตัดสินใจเชิงเส้นหลาย ๆ เส้นและสามารถแบ่งพื้นที่เพื่อแก้ปัญหา XOR (ไม่ใช่เชิงเส้น) เช่น @Matt ดังนั้นขอบเขตการตัดสินใจเชิงเส้นหลาย ๆ เส้นที่รวมกันสามารถทำให้เป็นวงกลมได้เช่นถ้าคุณเหล่ตา มันขึ้นอยู่กับว่าคุณคิดอย่างไร - การตัดสินใจยังคงเป็นเชิงเส้นในพื้นที่ที่สูงขึ้นถ้าคุณคุ้นเคยกับเมล็ดมันเป็นสิ่งเดียวกัน
shuriken x blue

8

คำตอบที่ดีจนถึงแม้ว่าจะมีสองสิ่งที่ไม่มีใครพูดถึงนี่คือ 0.02 $ ของฉัน

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

มีสาเหตุหลายประการที่ทำให้ DNN เกิดประกายไฟเมื่อพวกเขาทำ (ดาวต้องจัดตำแหน่งเหมือนทุกสิ่งที่คล้ายกันมันเป็นเพียงเรื่องของสถานที่ที่ถูกต้องเวลาที่เหมาะสม ฯลฯ )

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

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

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

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

บางคนคิดว่าการใช้ cross-entropy เป็นฟังก์ชั่นการสูญเสีย (เช่นกันการจัดหมวดหมู่และการจดจำภาพ) ให้การจัดระเบียบแบบปกติและช่วยต่อต้านเครือข่ายที่อิ่มตัวและทำให้การไล่ระดับสีไม่สามารถปิดบังได้

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

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

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

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

แล้วจะทำยังไงดีล่ะ? ดูที่ขอบหน้าจอของคุณแล้วลองอ่านข้อความนี้ ปัญหา? คุณต้องดูว่าคุณกำลังอ่านอะไรอยู่ มิฉะนั้นมันจะคลุมเครือเกินไป / มีความละเอียดไม่เพียงพอ / ละเอียด ลองเรียกพื้นที่โฟกัสว่าเป็นสนามที่เปิดกว้าง เครือข่ายจำเป็นต้องมุ่งเน้นเช่นกัน โดยพื้นฐานแล้วแทนที่จะใช้ภาพทั้งหมดเป็นอินพุทคุณย้ายหน้าต่างแบบเลื่อนไปตามรูปภาพและจากนั้นคุณใช้มันเป็นอินพุทไปยังเครือข่าย (stochastic น้อยกว่าที่มนุษย์ทำ) ตอนนี้คุณมีโอกาสที่จะจับภาพความสัมพันธ์ระหว่างพิกเซลกับวัตถุและคุณยังสามารถแยกแยะระหว่างแมวที่ง่วงนอนอยู่บนโซฟาและแมวกระโดดบันจี้จัมพ์คว่ำได้ เรียบร้อยศรัทธาในมนุษยชาติได้รับการฟื้นฟู เครือข่ายสามารถเรียนรู้ abstractions ท้องถิ่นในภาพในหลายระดับ เครือข่ายเรียนรู้การกรอง

ดังนั้นเพื่อสรุปสิ่งต่าง ๆ : เขตข้อมูลที่เปิดกว้าง / convolutions, การเริ่มต้นที่ไม่ได้รับอนุญาต, หน่วยเชิงเส้นที่แก้ไขแล้ว, แบบเลื่อนออกหรือวิธีการทำให้เป็นมาตรฐานอื่น ๆ หากคุณจริงจังกับเรื่องนี้มากฉันขอแนะนำให้คุณดูที่การเรียนรู้ลึกของ Schmidhub ในเครือข่ายประสาท: ภาพรวมที่นี่เป็น URL สำหรับการพิมพ์ล่วงหน้าhttp://arxiv.org/abs/1404.7828

และจำไว้ว่า: การเรียนรู้ที่ยิ่งใหญ่ข้อมูลที่ลึกซึ้ง คำ.


สวัสดี Florin ขอบคุณสำหรับคำตอบที่ดี! ฉันชอบสไตล์การแต่งตัว เมื่อคุณพูดถึงหน้าต่างบานเลื่อนคุณกำลังอ้างถึงว่าชั้นของ Convolutional NN สังเกตส่วนต่าง ๆ ของภาพและฉายการเปิดใช้งานของพวกเขาในพื้นที่ที่มีมิติต่ำกว่าหรือไม่?
นิโคลัส

ใช่แล้วการโน้มน้าวใจนั้นไม่จำเป็น แต่พวกเขาคำนวณได้เร็วขึ้นเนื่องจากน้ำหนักถูก จำกัด ตรวจสอบกระดาษนี้ที่พวกเขาไม่ได้ใช้ convolutions และใช้เขตข้อมูลที่เปิดกว้างในท้องถิ่น คำหลักที่สำคัญคือท้องถิ่น / ลำดับชั้น: arxiv.org/pdf/1112.6209.pdf
shuriken x blue

ฉันคิดว่าคำตอบที่เป็นระบบที่สุดคือ sobi เขามี upvote ของฉัน ฉันเพิ่งเพิ่มบางสิ่งที่นี่และมีเกลือและพริกไทยเล็กน้อย
shuriken x blue

6

ในแง่คนธรรมดาความแตกต่างที่สำคัญกับโครงข่ายประสาทเทียมแบบคลาสสิกคือพวกมันมีเลเยอร์ที่ซ่อนอยู่มากมาย

แนวคิดคือการเพิ่มป้ายกำกับให้กับเลเยอร์เพื่อสร้างสิ่งที่เป็นนามธรรมหลายเลเยอร์:

ตัวอย่างเช่นเครือข่ายประสาทลึกสำหรับการรับรู้วัตถุ :

  • ชั้นที่ 1: พิกเซลเดียว
  • ชั้นที่ 2: ขอบ
  • ชั้นที่ 3: แบบฟอร์ม (วงกลมสี่เหลี่ยม)
  • ชั้น n: วัตถุทั้งหมด

คุณสามารถหาคำอธิบายที่ดีที่คำถามนี้ในQuora

และถ้าคุณมีความสนใจในเรื่องนี้ฉันจะกลับไปดูหนังสือเล่มนี้อีกครั้ง


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

พลังงานมาเมื่อคุณใช้มันเหมือนไปป์ไลน์ดังนั้นอินพุตและเอาต์พุตจากเลเยอร์ซ้อนที่ทุกชั้น
David Gasquez

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

2
แม้จะมีแหล่งข้อมูลที่น่าสนใจ แต่การตอบกลับปัจจุบันไม่ตอบคำถาม
Nicolas

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

2

ฉันก็สับสนเล็กน้อยในตอนแรกด้วยความแตกต่างระหว่างเครือข่ายประสาท (NN) และเครือข่ายประสาทลึก (DNN) อย่างไรก็ตาม 'ความลึก' หมายถึงจำนวนพารามิเตอร์และเลเยอร์เท่านั้นโชคไม่ดี คุณสามารถใช้มันเป็นเหมือนการสร้างแบรนด์ใหม่ภายใต้ 'Canadian Mafia'

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

เหตุผลที่ทำให้การย้ายไปยัง DNN เป็นไปได้และเป็นที่ต้องการคือความก้าวหน้าในการพัฒนาฮาร์ดแวร์ พูดง่ายๆก็คือตอนนี้เราสามารถคำนวณได้มากขึ้นเร็วขึ้นและขนานมากขึ้น (DNN สำหรับ GPU) ในขณะที่ก่อนหน้านี้เวลาเป็นปัญหาคอขวดของ NN

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

ในหน้าเดียวกันที่นี่คุณมีคำจำกัดความ'เครือข่ายประสาทลึก (DNN) เป็นเครือข่ายประสาทเทียม (ANN) ที่มีเลเยอร์ที่ซ่อนอยู่หลายหน่วยระหว่างชั้นอินพุตและเอาต์พุต'


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

จริงๆแล้วฉันไม่เห็นด้วยกับคำจำกัดความสุดท้ายที่ฉันอ้างถึง - เนื่องจาก ANN / NN ที่มีเลเยอร์ที่ซ่อนอยู่หนึ่งชั้นไม่มีประสิทธิภาพจริงๆและคุณจำเป็นต้องใช้พหุคูณในการทำนายที่ซับซ้อนกว่านี้ (ฉันพูดแบบนี้เพราะฉันคิดว่า DNN เพิ่ม buzzword ที่ไม่มีประโยชน์ในคำที่ดีอยู่แล้ว NN) ฉันคิดว่าคุณสามารถใช้ NN และ DNN แทนกันได้ (เพราะปัจจุบันไม่มีใครใช้ NN ของชั้นเดียวที่ซ่อนอยู่) ในขณะที่การใช้งานของเลเยอร์แตกต่างกันระหว่างประเภทของ DNN (CNN, RBM, RNN, LSTM, CW-RNN, ... ) และไม่ใช่ความคิดของ DNN
mttk

2

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

อีกคำถามที่อาจถูกถามก็คือ: เหตุใด Neural Networks (โดยเฉพาะ DNN) จึงเป็นที่นิยมในทันใด เพื่อความเข้าใจของฉันส่วนผสมมหัศจรรย์ที่ทำให้ DNN ได้รับความนิยมในช่วงนี้คือ:

A. ปรับปรุงชุดข้อมูลและความสามารถในการประมวลผลข้อมูล

1. ชุดข้อมูลขนาดใหญ่ที่มีรูปภาพหลายล้านรูปพร้อมใช้งาน

2. การใช้ GPU อย่างรวดเร็วถูกเปิดเผยต่อสาธารณะ

B. ปรับปรุงอัลกอริทึมการฝึกอบรมและสถาปัตยกรรมเครือข่าย

1. แก้ไขหน่วยเชิงเส้น (ReLU) แทน sigmoid หรือ tanh

2. สถาปัตยกรรมเครือข่ายที่ลึกพัฒนาในช่วงหลายปีที่ผ่านมา


A-1)จนกระทั่งเมื่อเร็ว ๆ นี้อย่างน้อยที่สุดใน Computer Vision เราไม่สามารถฝึกนางแบบจากรูปภาพนับล้านที่มีป้ายกำกับได้ เพียงเพราะชุดข้อมูลที่มีป้ายกำกับของขนาดนั้นไม่มีอยู่ ปรากฎว่านอกเหนือจากจำนวนรูปภาพแล้วความละเอียดของชุดฉลากยังเป็นปัจจัยสำคัญอย่างยิ่งต่อความสำเร็จของ DNNs (ดูรูปที่ 8 ในบทความนี้โดย Azizpour et al.)

A-2)ความพยายามด้านวิศวกรรมจำนวนมากทำให้สามารถฝึก DNN ที่ใช้งานได้ดีโดยเฉพาะอย่างยิ่งการถือกำเนิดของการใช้งาน GPU หนึ่งในการใช้งาน GPU ครั้งแรกที่ประสบความสำเร็จของ DNNs ทำงานบน GPU แบบขนานสองตัว แต่มันต้องใช้เวลาประมาณหนึ่งสัปดาห์ในการฝึกฝน DNN บนภาพ 1.2 ล้านภาพจาก 1,000 หมวดโดยใช้ GPU ระดับสูง (ดูบทความนี้โดย Krizhevsky et al.)

B-1)การใช้หน่วยการแก้ปัญหาเชิงเส้นแบบเรียบง่าย (ReLU) แทนฟังก์ชั่น sigmoid และ tanh น่าจะเป็น Building Block ที่ใหญ่ที่สุดในการทำให้การฝึกอบรมเป็นไปได้ของ DNN โปรดทราบว่าทั้งฟังก์ชั่น sigmoid และ tanh มีการไล่ระดับสีเกือบเป็นศูนย์เกือบทุกที่ขึ้นอยู่กับความรวดเร็วในการเคลื่อนย้ายจากระดับการเปิดใช้งานต่ำไปสูง ในกรณีที่รุนแรงเมื่อมีการเปลี่ยนแปลงอย่างฉับพลันเราจะได้รับฟังก์ชั่นขั้นตอนที่มีความชันเป็นศูนย์ทุกที่ยกเว้นในช่วงเวลาหนึ่งที่เกิดการเปลี่ยนแปลง

B-2)เรื่องราวของสถาปัตยกรรมเครือข่ายประสาทที่พัฒนาขึ้นในช่วงหลายปีที่ผ่านมาทำให้ผมนึกถึงว่าวิวัฒนาการเปลี่ยนแปลงโครงสร้างของสิ่งมีชีวิตในธรรมชาติได้อย่างไร การแชร์พารามิเตอร์ (เช่นในเลเยอร์ convolutional), การทำให้เป็นมาตรฐานแบบ dropout, การกำหนดค่าเริ่มต้น, อัตราการเรียนรู้, การรวมเชิงพื้นที่, การสุ่มตัวอย่างย่อยในเลเยอร์ที่ลึกกว่าและเทคนิคอื่น ๆ ที่ตอนนี้ถือว่าเป็นมาตรฐานในการฝึกอบรม ปีที่จะทำให้การฝึกอบรมของเครือข่ายลึกเป็นไปได้อย่างที่มันเป็นในวันนี้


3
+1 คำตอบแรกในหัวข้อนี้ที่ให้การตอบคำถามของ OP อย่างเพียงพอ จุดที่ดีมากมายที่นี่ ความคิดเห็นสำคัญของฉันเท่านั้นคือนอกเหนือจาก A และ B ของคุณแล้วยังมี C: เพิ่มขึ้นอย่างมากในขนาดของชุดข้อมูลการฝึกอบรมที่มีอยู่ สิ่งนี้ดูเหมือนจะมีความสำคัญไม่น้อยไปกว่า A และ B.
อะมีบา

1
ฉันไม่คิดว่า relu สำคัญมาก: กระดาษของ Alex krizhevsky อ้างว่าทำให้การเรียนรู้เร็วขึ้นถึง 6 เท่า การเปลี่ยนแปลงโครงสร้างเครือข่ายอื่น ๆ ส่วนใหญ่ที่คุณพูดถึงเกี่ยวข้องกับ convolutional nns ซึ่งเพียงแค่คัดลอกไพพ์ไลน์การประมวลผลมาตรฐาน (สิ่งที่ดี แต่ไม่มีข้อมูลเชิงลึกใหม่)
seanv507

1
@amoeba: ขนาดของชุดข้อมูลอยู่ภายใต้ A. ฉันได้อัปเดตข้อความเพื่อเน้น
Sobi

@ seanv507: แน่นอนฉันมีเครือข่าย convolutional (ConvNets) ในใจเมื่อเขียนคำตอบ หากมีปัจจัยอื่นที่สำคัญ (ไม่เกี่ยวข้องกับ ConvNets) ที่ฉันพลาดไปฉันจะขอบคุณถ้าคุณพูดถึงพวกเขา ฉันยินดีที่จะปรับปรุงคำตอบของฉันตาม เกี่ยวกับ ReLUs การฝึกอบรม nns ที่มี tanh และ sigmoid นั้นหนักกว่าของ ReLUs เนื่องจากปัญหาการไล่ระดับสีที่หายไป: หน่วยได้รับการอิ่มตัวอย่างง่ายดายและเมื่อเกิดขึ้นมันจะใช้เวลานานในการกลายเป็นไม่อิ่มตัวอีกครั้ง อิ่มตัว)
Sobi

2

ความแตกต่างระหว่าง NN "ลึก" และ NN มาตรฐานคือคุณภาพล้วนๆ: ไม่มีคำจำกัดความว่า "ลึก" หมายถึงอะไร "Deep" อาจหมายถึงอะไรก็ได้จากสถาปัตยกรรมที่ซับซ้อนมากซึ่งใช้โดย Google, Facebook และ co ที่มีเลเยอร์ 50-80 หรือมากกว่านั้นไปเป็นเลเยอร์ที่ซ่อนอยู่ 2 ชั้น (รวม 4 ชั้น) ฉันจะไม่แปลกใจถ้าคุณสามารถค้นหาบทความที่อ้างว่าทำการเรียนรู้อย่างลึกล้ำด้วยเลเยอร์ที่ซ่อนเดี่ยวเพราะ "ความลึก" ไม่ได้มีความหมายอะไรมาก

"เครือข่ายประสาท" เป็นคำที่ไม่มีความหมายที่แม่นยำมาก มันครอบคลุมชุดโมเดลที่มีขนาดใหญ่มากตั้งแต่เครื่องโบลต์แมนแบบสุ่ม (ซึ่งเป็นกราฟที่ไม่ได้บอกทิศทาง) ไปจนถึงสถาปัตยกรรมฟีดเวิร์ดข้างหน้า NNs ส่วนใหญ่จะได้รับการฝึกอบรมโดยใช้ backprop แต่ไม่จำเป็นต้องเป็นอย่างนั้นดังนั้นแม้ขั้นตอนวิธีการฝึกอบรมจะไม่เหมือนกันมาก

โดยรวมแล้วการเรียนรู้อย่างลึกซึ้งเอ็นเอ็นลึกและเอ็นเอ็นทั้งหมดได้กลายเป็นคำที่จับได้ทั้งหมดซึ่งเข้าถึงวิธีการมากมาย

สำหรับการอ้างอิงเบื้องต้นที่ดีเกี่ยวกับ "สิ่งที่เปลี่ยนแปลง": การเรียนรู้อย่างลึกซึ้งของการเป็นตัวแทน: มองไปข้างหน้าเบงงิ 2013 เป็นมุมมองที่ดี + มุมมองที่ดีสำหรับอนาคต ดูที่Do Deep Nets จริงๆต้องลึก Ba & Caruana, 2013 ซึ่งแสดงให้เห็นว่าลึกอาจไม่เป็นประโยชน์สำหรับการเป็นตัวแทน แต่สำหรับการเรียนรู้


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

1

เพื่อขยายคำตอบของ David Gasquez หนึ่งในความแตกต่างที่สำคัญระหว่างเครือข่ายประสาทลึกและเครือข่ายประสาทแบบดั้งเดิมคือเราไม่เพียงแค่ใช้ backpropagation สำหรับมุ้งประสาทลึก

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

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


1

NN:

  • หนึ่งเลเยอร์ที่ซ่อนอยู่นั้นเพียงพอ แต่สามารถมีได้หลายเลเยอร์อย่างไรก็ตามสั่งจากซ้ายไปขวา (โมเดล: feed forward NN)
  • ผ่านการฝึกอบรมในวิธีการดูแลเท่านั้น (backpropagation)
  • เมื่อมีการใช้หลายเลเยอร์ฝึกเลเยอร์ทั้งหมดในเวลาเดียวกัน (อัลกอริทึมเดียวกัน: backpropagation) เลเยอร์เพิ่มเติมทำให้ยากต่อการใช้งานเนื่องจากข้อผิดพลาดมีขนาดเล็กเกินไป
  • ยากที่จะเข้าใจสิ่งที่เรียนรู้ในแต่ละชั้น

DNN:

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

การย้ายไปยัง DNN นั้นเกิดจากการคิดค้นอิสระสามครั้งที่เกิดขึ้นในปี 2549

เกี่ยวกับทฤษฎีบทเกี่ยวกับ NN คำถามหนึ่งที่กล่าวถึงคือ:

  • ทฤษฎีบทการประมาณแบบสากลหรือทฤษฎีบท Cybenko: เครือข่ายนิวรัลไปข้างหน้าพร้อมกับเลเยอร์ที่ซ่อนอยู่เดียวสามารถประมาณฟังก์ชันใด ๆ ที่ต่อเนื่อง อย่างไรก็ตามในทางปฏิบัติอาจต้องใช้เซลล์ประสาทมากขึ้นหากใช้เลเยอร์ที่ซ่อนอยู่เพียงชั้นเดียว

2
-1? จริงๆ? ฉันอ่านทั้งหมดนี้ในวรรณคดีและทำการเปรียบเทียบทีละจุดของทั้งสองวิธี! กรุณารัฐอย่างน้อยสิ่งที่ไม่ถูกต้อง ...
นิโคลัส

3
ฉันไม่ได้ลงคะแนน (อาจเป็น downvoter ไม่ชอบที่คุณตอบคำถามของคุณเองหรือ แต่ที่แน่นอนดีอย่างสมบูรณ์ที่นี่) แต่นี่เป็นสิ่งหนึ่งที่ไม่ถูกต้องทั้งหมด สิ่งที่คุณเป็นรายการคุณสมบัติของ DNN: ที่ขอบไม่มีทิศทางที่จะได้รับการฝึกฝนเป็นครั้งแรกในทางที่ใกล้ชิดที่ชั้นได้รับการฝึกฝนโดยหนึ่ง - ทุกที่เพียง แต่หมายถึงเครือข่ายความเชื่อลึกแนะนำโดยฮินตันในปี 2006 นี้ไม่ได้ จำเป็นต้องเป็นจริงสำหรับเครือข่ายประสาทลึกโดยทั่วไปและในความเป็นจริงขณะนี้มีหลายวิธีในการฝึกอบรมเครือข่ายลึกโดยไม่ต้องทั้งหมด ดูคำตอบของฉัน
อะมีบา

1

O(n)

ฉันคิดว่าคุณควรถอยออกมาและเห็นว่าสิ่งนี้ได้สร้างการฟื้นคืนชีพขึ้นมาใน AI ตื้น ๆ - เช่นถุงคำสำหรับการวิเคราะห์ความเชื่อมั่นและการใช้งานภาษาอื่น ๆ ไม่มีใครพูดว่าถุงคำเป็นรูปแบบที่แท้จริงของภาษา แต่เป็นวิธีแก้ปัญหาทางวิศวกรรมที่มีประสิทธิภาพ ดังนั้นฉันจะบอกว่า DNN เป็น 'ถุงคำที่มองเห็น' ที่ดีกว่า - ดูเช่น Szegedy et al 2013 คุณสมบัติที่น่าสนใจของโครงข่ายประสาทเทียม และเหงียนและคณะ โครงข่ายใยประสาทลึกนั้นง่ายมาก: การคาดคะเนความเชื่อมั่นสูงสำหรับภาพที่ไม่สามารถจดจำได้ซึ่งเป็นที่ชัดเจนว่าไม่มีโครงสร้างการสั่งซื้อที่สูงขึ้น ฯลฯ การเรียนรู้ (หรืออะไรก็ตามที่อ้างว่าเป็น DNN)


@ amoeba เอกสารอื่น ๆ นี้เกือบจะเป็นเอกสารฉบับแรก (อีกครั้งด้วยภาพจำนวนมาก!)
seanv507

0

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

ที่มา: Arno Candel

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