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


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ในกรณีนี้คุณกำลังพยายามทำซ้ำตัวตนเช่นนั้น as(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.