เครือข่ายประสาทของฉันไม่สามารถเรียนรู้ระยะทางแบบยุคลิด


9

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

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

ดังนั้นฉันอยากดูว่าฉันสามารถเพิ่มabs()และทำให้เรียนรู้สเปกตรัมแอมพลิจูด ครั้งแรกที่ฉันคิดเกี่ยวกับจำนวนโหนดที่มันจะต้องอยู่ในชั้นที่ซ่อนอยู่และตระหนักว่า 3 ReLUs นั้นเพียงพอสำหรับการประมาณที่หยาบกabs(x+jy) = sqrt(x² + y²)ร้านดังนั้นฉันจึงทดสอบการทำงานด้วยตัวเองบนตัวเลขที่ซับซ้อนโดดเดี่ยว (2 อินพุต→ 3 ReLU โหนดที่ซ่อนชั้น→ 1 เอาท์พุท) มันทำงานเป็นครั้งคราว:

3 ReLUs ที่ใช้ระยะทางแบบยุคลิดเป็นปิรามิดหกเหลี่ยมแบบกลับหัว

แต่ส่วนใหญ่เวลาที่ฉันลองมันติดอยู่ในขั้นต่ำในท้องถิ่นและล้มเหลวในการหารูปร่างที่เหมาะสม:

3 ReLUs สร้างเครือข่ายรูปหุบเขา

การสูญเสียกับยุค

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


1
พล็อตของคุณแสดงสิ่งที่ดูเหมือนจะเป็นการทดลองที่แตกต่างกันหลายอย่างซึ่งบางอันใช้งานได้และบางอันก็ไม่ได้ผล อะไรคือความแตกต่าง?
— Sycorax พูดว่า Reinstate Monica

@Sycorax เหล่านั้นเป็นเพียงการทดลองซ้ำในสิ่งเดียวกัน บางครั้งก็พบวิธีการแก้ปัญหาปิรามิดหกเหลี่ยม แต่โดยปกติจะไม่ได้
— endolith

คุณลองสองเลเยอร์ที่ซ่อนอยู่และ tanh เป็นฟังก์ชันการเปิดใช้งานหรือไม่
— Ketan

@ KetanNo ทำไมล่ะ ฉันโพสต์ชุดรูปแบบที่ง่ายกว่าที่นี่: stats.stackexchange.com/q/379884/11633
— endolith

คุณอาจต้องการดูอันนี้ stats.stackexchange.com/q/375655/27556 แต่คุณสามารถอธิบายได้ไหมว่าทำไมคุณคิดว่าคุณต้องการเพียง 3 relus? การสลายตัวของ 'ธรรมชาติ' จะเป็นชั้นซ่อนเร้นเพื่อทำการประมาณกำลังสองด้วย relus และอีกชั้นหนึ่งทำรากที่สอง
— seanv507

คำตอบ:


6

ผลลัพธ์ดูเหมือนจะแนะนำอย่างยิ่งว่าเซลล์ประสาทของคุณหนึ่งหรือมากกว่านั้นจะตาย (หรือไฮเปอร์เพลตของน้ำหนักสำหรับเซลล์ประสาทสองเซลล์ของคุณรวมกันแล้ว) คุณจะเห็นได้ว่าด้วย 3 Relu's คุณจะได้รับการแยกเงา 3 จุดที่กึ่งกลางเมื่อคุณรวมเข้ากับโซลูชันที่สมเหตุสมผลมากขึ้น คุณสามารถตรวจสอบได้อย่างง่ายดายว่าสิ่งนี้เป็นจริงหรือไม่โดยการตรวจสอบค่าเอาต์พุตของแต่ละเซลล์ประสาทเพื่อดูว่ามันยังคงตายอยู่สำหรับตัวอย่างส่วนใหญ่ของคุณ อีกวิธีหนึ่งคุณสามารถพล็อตน้ำหนักของเซลล์ประสาท 2x3 = 6 ทั้งหมดจัดกลุ่มตามเซลล์ประสาทที่เกี่ยวข้องเพื่อดูว่าเซลล์ประสาทสองเซลล์ยุบไปเป็นน้ำหนักคู่เดียวกันหรือไม่

ฉันสงสัยว่าสาเหตุหนึ่งที่เป็นไปได้คือเมื่อ x+ผมY เอียงไปทางหนึ่งพิกัดเช่น x»Yในกรณีนี้คุณกำลังพยายามทำซ้ำตัวตนเช่นนั้น aขs(x+ผมY)≈x. มีไม่มากที่คุณสามารถทำได้ที่นี่เพื่อแก้ไขปัญหานี้ ทางเลือกหนึ่งคือการเพิ่มเซลล์ประสาทเพิ่มเติมตามที่คุณพยายาม ตัวเลือกที่สองคือการลองเปิดใช้งานอย่างต่อเนื่องเช่น sigmoid หรือบางทีสิ่งที่ไม่ได้ จำกัด เช่น exponential คุณสามารถลองดรอปเอาท์ (ด้วยความน่าจะเป็น 10%) คุณสามารถใช้การเลื่อนออกปกติใน keras ซึ่งหวังว่าฉลาดพอที่จะเพิกเฉยต่อสถานการณ์เมื่อเซลล์ประสาททั้งสามของคุณเลื่อนออก


1
+1 เกือบจะแน่นอน เมื่อคุณใช้ ReLU กับจำนวนเซลล์ประสาทที่ตายแล้วซึ่งมีน้ำหนักเพียงเล็กน้อย
— kbrose

1
นี่คือการเดาที่น่าเชื่อถือในกรณีของ ReLU แต่ OP เขียนว่าพวกเขาได้ลองใช้สายพันธุ์ ReLU ที่แตกต่างกันสองสามเซลล์ประสาทที่ตายแล้วเกิดขึ้นในสายพันธุ์เช่น ELU หรือ Leaky Relu หรือ PReLU หรือไม่
— Sycorax พูดว่า Reinstate Monica

3 shadowy splits in the center when you converge to the more reasonable solution.ใช่นั่นคือประมาณคร่าวๆที่ฉันหมายถึง; ปิรามิดหกเหลี่ยมแบบกลับด้าน or perhaps something unbounded like an exponential ฉันลองใช้ elu และ selu ซึ่งไม่ได้ผลดีกว่านี้มากนัก two neurons collapse to the same pair of weightsอาฉันไม่ได้คิดอย่างนั้น ฉันแค่คิดว่าพวกเขาตายแล้ว
— endolith

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

1
@endolith Dropout ได้รับการออกแบบอย่างชัดเจนเกี่ยวกับการสร้างเซลล์ประสาทอิสระ ELU ไม่เคย "ตาย" แต่พวกมันหายไปจากการไล่ระดับสีทางด้านซ้าย
— Sycorax พูดว่า Reinstate Monica
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.