โครงข่ายประสาทเทียมที่มีการเชื่อมต่อแบบข้ามชั้น


26

ฉันสนใจในการถดถอยกับเครือข่ายประสาท

โครงข่ายประสาทเทียมที่ไม่มีโหนดซ่อนเร้น + การเชื่อมต่อข้ามชั้นเป็นโมเดลเชิงเส้น

สิ่งที่เกี่ยวกับมุ้งประสาทเดียวกัน แต่มีโหนดที่ซ่อนอยู่? ฉันสงสัยว่าสิ่งที่จะเป็นบทบาทของการเชื่อมต่อข้ามชั้น?

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

มีข้อได้เปรียบหรือเสียเปรียบในการเพิ่มการเชื่อมต่อข้ามชั้นไปยังตาข่ายประสาทหรือไม่?

คำตอบ:


38

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

เมื่อเร็ว ๆ นี้ทีมงานวิจัยของ Microsoft ชนะการแข่งขัน ImageNet 2015 และเผยแพร่รายงานทางเทคนิคDeep Residual Learning เพื่อการจดจำรูปภาพซึ่งอธิบายแนวคิดหลักบางส่วนของพวกเขา

หนึ่งในผลงานหลักของพวกเขาเป็นแนวคิดของการนี้ชั้นที่เหลือลึก เหล่านี้ชั้นที่เหลือลึกใช้ข้ามการเชื่อมต่อ ด้วยการใช้เลเยอร์ที่ตกค้างลึกเหล่านี้พวกเขาสามารถฝึกฝนตาข่าย 152 เลเยอร์ Conv สำหรับ ImageNet 2015 พวกเขายังได้ฝึกฝนตาข่าย Convier 1000+ เลเยอร์สำหรับ CIFAR-10

ปัญหาที่กระตุ้นให้พวกเขามีต่อไปนี้:

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

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

ดังนั้นนี้แรงบันดาลใจให้พวกเขาใช้ข้ามการเชื่อมต่อและการใช้งานที่เรียกว่าชั้นที่เหลือลึกที่จะช่วยให้เครือข่ายของพวกเขาที่จะเรียนรู้การเบี่ยงเบนจากชั้นเอกลักษณ์เพราะฉะนั้นคำว่าเหลือตกค้างที่นี่หมายถึงความแตกต่างจากตัวตน

พวกเขาใช้การเชื่อมต่อข้ามในลักษณะดังต่อไปนี้: ป้อนคำอธิบายรูปภาพที่นี่

ดังนั้นพวกเขาจึงดูแผนที่เป็นแผนที่ที่เหลือ พวกเขาใช้การเชื่อมต่อชั้นเฮี๊ยบจะโยนการทำแผนที่นี้ลงใน(x) ดังนั้นหากส่วนที่เหลือคือ "เล็ก" แผนที่นั้นเป็นตัวตนคร่าวๆF(x):=H(x)xF(x)+x=H(x)F(x)H(x)

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

เราแสดงโดยการทดลอง (รูปที่ 7) ว่าฟังก์ชั่นที่เหลือที่เรียนรู้โดยทั่วไปมีการตอบสนองเล็กน้อย

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

โดยวิธีการย้อนหลัง: คำตอบของ sashkello ดีกว่าใช่ไหม?


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

20

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


@sashkello คุณสามารถอธิบายเพิ่มเติมเกี่ยวกับ 'การเชื่อมต่อข้ามชั้นไม่ควรปรับปรุงประสิทธิภาพของเครือข่าย' ในทางทฤษฎี นั่นจะเป็นการดีที่จะเข้าใจ
ลางสังหรณ์

@hunch เป็นเพราะคุณสามารถทำแบบนี้ได้โดยไม่ต้องข้ามชั้น ข้ามเลเยอร์เป็นเพียงคำเชิงเส้น ฟังก์ชั่น Sigmoid คือ ~ เชิงเส้นประมาณ 0 ดังนั้นการเชื่อมต่อข้ามชั้นจะทำหน้าที่เหมือนโหนดที่ซ่อนอยู่ที่มีน้ำหนักอินพุตขนาดเล็กมาก
sashkello

5

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

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

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


3
"ลองดูสิ" - คำทองคำ :)
sashkello

0

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

อย่างไรก็ตามในทางปฏิบัติอาจเป็นประโยชน์ในการรวมการเชื่อมต่อข้ามชั้นอย่างชัดเจนป้อนคำอธิบายรูปภาพที่นี่

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