การทดสอบการถดถอยของแบบจำลองเชิงตัวเลข


10

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

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

คำตอบ:


7

สิ่งที่คุณสามารถเปรียบเทียบได้ในกรณีเช่นนี้คือสถิติของโซลูชันของคุณ: ค่าเฉลี่ย, ช่วงเวลาที่สูงขึ้น, ฟลักซ์ความร้อนในขอบเขตและปริมาณอินทิกรัลอื่น ๆ ลองดูที่หนึ่งในเอกสารจำนวนมากที่พูดถึงแบบจำลองความปั่นป่วนสำหรับสมการเนเวียร์ - สโตคส์: พวกมันเต็มไปด้วยปีกของพลังงานสเปกตรัม, entalpies, entropies, enstrophies และคำอื่น ๆ ที่คุณไม่เคยได้ยินมาก่อน . ทั้งหมดเป็นปริมาณอินทิกรัลบางส่วนของการไหลและเปรียบเทียบกับอินทิกรัลปริมาณเดียวกันซึ่งคำนวณจากการจำลองและ / หรือการทดลองอื่น ๆ


คุณรู้จากตัวอย่างกระดาษที่ดี? น่าจะเป็นคำตอบที่ดีของคุณ
naught101

ไม่ได้อยู่ด้านบนของหัวของฉัน - ฉันไม่ได้เป็นคนแบบจำลองความปั่นป่วน ฉันจะเริ่มต้นด้วยเอกสารล่าสุดโดยทอมฮิวจ์และทำงานจากที่นั่น
Wolfgang Bangerth

ฉันคิดว่านี่เป็นตัวอย่างที่ดีของการใช้สถิติสรุปเพื่อพิจารณาระบอบการปกครองของระบบแบบไดนามิก: "การอนุมานเชิงสถิติสำหรับระบบไดนามิกเชิงนิเวศน์ที่มีเสียงดังไม่เชิงเส้น"
Jugurtha

4

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


ฉันไม่คิดว่าแบบจำลองสภาพภูมิอากาศทั้งหมดสามารถดำเนินการได้ แต่อาจเป็นส่วนประกอบหลัก บางอย่างเช่นการทดสอบระดับหน่วย ความคิดดี.
naught101

2
แต่นั่นคือประเด็น การทดสอบการถดถอยของคุณควรมีรหัสที่ดี (gcov และสิ่งที่คล้ายกันคือเพื่อนของคุณ) และควรทำงานได้อย่างรวดเร็ว หากคุณใช้แบบจำลองสภาพภูมิอากาศทั้งหมดเป็นแบบทดสอบการถดถอยรายวันของคุณฉันสงสัยว่าคุณกำลังเสียเวลาไปมาก
Bill Barth

ฉันคิดว่าฉันกำลังคิดมากขึ้นตามแนวของ: คุณทำการทดสอบในตอนแรกและจากนั้นเก็บตัวชี้วัดจำนวนมาก (ดังที่ได้กล่าวไว้ในคำตอบของ Wolfgang) จากนั้นคุณทำการเปลี่ยนแปลงและเรียกใช้การทดสอบอีกครั้งและเปรียบเทียบตัวชี้วัดเดียวกันกับที่คุณเก็บไว้ในครั้งที่แล้ว หากคุณปรับปรุงโมเดล (หรือโมเดลซุปเปอร์คอมโพเนนต์) ตามหลักทฤษฏีแล้วตัวชี้วัดทั้งหมดควรปรับปรุงหรืออย่างน้อยก็ไม่แย่ลงอย่างมาก (เว้นแต่คุณจะปรับตัวมากเกินไปมาก่อนหรือบางอย่าง แต่คุณสามารถตัดสินใจเองได้) . ฉันเดาว่าการทดสอบในแง่นี้มีคุณภาพมากขึ้น แต่ก็ยังมีประโยชน์มาก
naught101

ตามที่กล่าวไว้ในคำตอบนี้ฉันคิดว่า
naught101

2

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

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

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