การดีบักโครงข่ายประสาทเทียม


10

ฉันได้สร้างเครือข่ายประสาทเทียมในไพ ธ อนโดยใช้ฟังก์ชั่นการเพิ่มประสิทธิภาพ scipy.optimize.minimize (การไล่ระดับสีคอนจูเกต)

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

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

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

ฉันสนใจที่จะเข้าใจว่าเกิดอะไรขึ้นที่นี่หรือหากฉันใช้งานโครงข่ายประสาทผิดปกติ

คำตอบ:


9

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

  1. คุณได้เพิ่มน้ำหนักตัวที่ลดลง การเพิ่มเลเยอร์เพิ่มเติมเพิ่มน้ำหนักมากขึ้นซึ่งจะเป็นการเพิ่มค่าใช้จ่ายในการทำให้เป็นมาตรฐานของคุณ
  2. ปัญหานั้นง่ายมากพอที่โมเดลที่มีเลเยอร์ที่ซ่อนเพียงอันเดียวก็เพียงพอแล้ว การเพิ่มเลเยอร์ที่ซ่อนอยู่เพิ่มเติมทำให้เครือข่ายเรียนรู้ได้ยากขึ้น (ปัญหาการเพิ่มประสิทธิภาพยากขึ้น)
  3. วิธีการปรับให้เหมาะสมไม่ทำงานที่ยอดเยี่ยม (ฉันชอบ climin เพื่อ scipy.optimize)
  4. คุณใช้ฟังก์ชันเปิดใช้งาน sigmoid / tanh ฟังก์ชั่น sigmoid ทำให้เกิดปัญหาการไล่ระดับสีที่หายไปซึ่งทำให้การเรียนรู้อย่างหนักด้วยเลเยอร์มากขึ้น ลองใช้ฟังก์ชั่น ReLu

การฝึกมุ้งอวนใช้เวลาฝึกฝนโชคและความอดทนเป็นอย่างมาก โชคดี.


1
คำตอบที่ดี. ตระหนักว่า 2, 3, 4 สามารถโต้ตอบในรูปแบบที่ซับซ้อนได้ การดีบักสามารถทำได้โดยการตรวจสอบค่าการเปิดใช้งานของ ANN, ขนาดของน้ำหนักของ ANN, จับตาดูข้อผิดพลาดในตัวอย่างและนอกตัวอย่างและการบรรจบกันของเครื่องมือเพิ่มประสิทธิภาพ
Def_Os

3

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

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

วิดีโอแนะนำที่ดีเกี่ยวกับหัวข้อนี้บนYouTube


2
การเรียนรู้อย่างลึกซึ้งเกี่ยวกับการเพิ่มจำนวนเลเยอร์ที่ซ่อนอยู่ มิฉะนั้นก็จะถูกเรียกว่าการเรียนรู้ไขมัน :)
เอ็ม

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