วิธีการเลือกจำนวนเลเยอร์ที่ซ่อนอยู่และจำนวนของเซลล์หน่วยความจำใน LSTM


28

ฉันกำลังพยายามหางานวิจัยที่มีอยู่เกี่ยวกับวิธีเลือกจำนวนเลเยอร์ที่ซ่อนอยู่และขนาดของ RNN ที่ใช้ LSTM

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

คำตอบ:


15

คำถามของคุณค่อนข้างกว้าง แต่นี่เป็นเคล็ดลับ:

สำหรับเครือข่าย feedforward ดูคำถามนี้ :

คำตอบของ @dougทำงานได้สำหรับฉัน มีกฎง่ายๆอีกข้อหนึ่งที่ช่วยสำหรับปัญหาการเรียนรู้แบบมีผู้สอน ขอบเขตด้านบนของจำนวนเซลล์ประสาทที่ซ่อนอยู่ซึ่งจะไม่ส่งผลให้เกิดการปรับตัวเกินคือ:

ยังไม่มีข้อความชั่วโมง=ยังไม่มีข้อความs(α* * * *(ยังไม่มีข้อความผม+ยังไม่มีข้อความโอ))

ยังไม่มีข้อความผม = จำนวนของเซลล์ประสาทรับเข้า ยังไม่มีข้อความโอ = จำนวนของเซลล์ประสาทขาออก ยังไม่มีข้อความs = จำนวนตัวอย่างในชุดข้อมูลการฝึกอบรม α = ปัจจัยการขยายโดยพลการมัก 2-10
อื่น ๆ ขอแนะนำให้ ตั้งค่าลิตรพีเอชเป็นค่าระหว่าง 5 และ 10 แต่ผมพบว่ามีค่า 2 มักจะทำงานได้โดยไม่ต้องอิง ตามที่อธิบายโดยข้อความการออกแบบ NN ที่ยอดเยี่ยมนี้คุณต้องการ จำกัด จำนวนพารามิเตอร์ฟรีในแบบจำลองของคุณ (ระดับของมัน aล.พีชั่วโมงaหรือจำนวนของน้ำหนักที่ไม่เป็นศูนย์) กับองศาอิสระเพียงเล็กน้อยในข้อมูลของคุณ องศาอิสระในข้อมูลของคุณคือตัวอย่างจำนวน * องศาอิสระ (มิติ) ในแต่ละตัวอย่างหรือยังไม่มีข้อความs* * * *(ยังไม่มีข้อความผม+ยังไม่มีข้อความโอ) (สมมติว่าพวกเขาเป็นอิสระทั้งหมด) ดังนั้นαเป็นวิธีในการระบุว่าคุณต้องการให้โมเดลของคุณเป็นนายพลหรือว่าคุณต้องการป้องกันไม่ให้เกินกำลัง

สำหรับขั้นตอนอัตโนมัติคุณจะต้องเริ่มต้นด้วยอัลฟ่า 2 (สองเท่าขององศาอิสระในข้อมูลการฝึกอบรมของคุณเป็นแบบจำลองของคุณ) และดำเนินการด้วยวิธีสูงสุด 10 หากข้อผิดพลาดสำหรับข้อมูลการฝึกอบรมมีขนาดเล็กกว่า ชุดข้อมูล

และโดยเฉพาะใน LSTM คุณอาจต้องการตรวจสอบนี้

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


7

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

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

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

I assume it totally depends on the application and in which context the model is being used.


5
ไม่ใช่เชิงเส้นเกิดจากการใช้ฟังก์ชั่นการเปิดใช้งานที่ไม่ใช่เชิงเส้น จำนวนเลเยอร์เพิ่มความชัดเจนของ NN เท่านั้น คุณควรแก้ไขคำตอบนี้ การรวมกันของฟังก์ชั่นเชิงเส้นยังคงเป็นฟังก์ชั่นเชิงเส้น (ดังนั้นหากคุณมีหลายเลเยอร์ที่ดำเนินการผสมเชิงเส้นของอินพุตเท่านั้นดังนั้นการรวมกันของเลเยอร์เหล่านี้จะยังคงเป็นแบบเชิงเส้น)
nbro

4

โดยทั่วไปไม่มีแนวทางในการกำหนดจำนวนเลเยอร์หรือจำนวนของเซลล์หน่วยความจำใน LSTM

จำนวนเลเยอร์และเซลล์ที่ต้องการใน LSTM อาจขึ้นอยู่กับปัญหาหลายด้าน:

  1. ซับซ้อนของชุดข้อมูล จำนวนคุณสมบัติจำนวนจุดข้อมูล ฯลฯ

  2. กระบวนการสร้างข้อมูล ตัวอย่างต่อไปนี้แสดงว่ากระบวนการสร้างข้อมูลสามารถมีส่วนสำคัญได้อย่างไร

ตัวอย่างการทำนายราคาน้ำมันเมื่อเทียบกับการคาดการณ์ของ GDP ของเศรษฐกิจที่เข้าใจกันดี หลังเป็นเรื่องง่ายกว่าเดิม ดังนั้นการคาดการณ์ราคาน้ำมันอาจต้องการเซลล์หน่วยความจำ LSTM จำนวนมากขึ้นเพื่อทำนายด้วยความแม่นยำเดียวกันเมื่อเปรียบเทียบกับจีดีพี

  1. ความถูกต้องที่จำเป็นสำหรับการใช้งานจำนวน case.The ของเซลล์หน่วยความจำจะหนักขึ้นเกี่ยวกับเรื่องนี้ หากเป้าหมายคือการเอาชนะความทันสมัยเราต้องใช้เซลล์ LSTM มากกว่าปกติ เปรียบเทียบกับเป้าหมายของการคำนวณด้วยเหตุผลที่เหมาะสมซึ่งต้องใช้จำนวนเซลล์ LSTM ที่น้อยลง

ฉันทำตามขั้นตอนเหล่านี้เมื่อสร้างแบบจำลองโดยใช้ LSTM:

  1. ลองเลเยอร์ที่ซ่อนอยู่เดียวกับเซลล์หน่วยความจำ 2 หรือ 3 เซลล์ ดูว่ามันทำงานอย่างไรเทียบกับมาตรฐาน หากเป็นปัญหาอนุกรมเวลาฉันมักจะทำการพยากรณ์จากเทคนิคอนุกรมเวลาแบบดั้งเดิมเป็นเกณฑ์มาตรฐาน

  2. ลองเพิ่มจำนวนเซลล์หน่วยความจำ หากประสิทธิภาพไม่เพิ่มขึ้นมากนักให้ไปยังขั้นตอนถัดไป

  3. เริ่มต้นสร้างเครือข่ายที่ลึกเช่นเพิ่มเลเยอร์อื่นด้วยเซลล์หน่วยความจำจำนวนน้อย

นอกเหนือจาก:

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

ปัญหาส่วนใหญ่สามารถจัดการได้โดยใช้เครือข่าย 2-3 ชั้น


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