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