อะไรคือวิธีที่ดีที่สุดในการทำวิจัยที่ทำซ้ำได้หากคุณต้องการห้องสมุดที่เป็นกรรมสิทธิ์


19

การทำซ้ำการวิจัยในการคำนวณมีจุดมุ่งหมายที่จะทำให้รหัสที่จำเป็นในการสร้างผลลัพธ์ในกระดาษคำนวณที่มีให้กับนักวิจัยคนอื่น ๆ เพื่อให้พวกเขาสามารถเรียกใช้รหัสนี้เพื่อทำซ้ำผลลัพธ์ในกระดาษนั้น ฉันต้องการให้การวิจัยทั้งหมดของฉันทำซ้ำได้ แต่ฉันพบอุปสรรคเล็กน้อย: มีเอกสารสองฉบับที่ฉันใช้งานโดยใช้แพ็คเกจสร้างความแตกต่างโดยอัตโนมัติ (เรียกว่า DAEPACK ) ในห้องสมุดที่เป็นกรรมสิทธิ์ ( CHEMKIN- II ; ข้อกำหนดสิทธิการใช้งานไม่ชัดเจน)

มันจะใช้เวลานานเกินไปในการแทนที่ส่วนประกอบซอฟต์แวร์เหล่านี้ด้วยเวอร์ชันโอเพ่นซอร์ส การแทนที่โอเพนซอร์สสำหรับ CHEMKIN-II เรียกว่าCanteraแต่ Cantera อยู่ใน C ++ ในขณะที่ CHEMKIN-II อยู่ใน Fortran 77 มันต้องใช้ความพยายามอย่างมากในการปรับเปลี่ยนรหัส Cantera ให้เพียงพอเพื่อให้สามารถประมวลผลได้โดยอัตโนมัติ เครื่องมือสร้างความแตกต่างสำหรับ C ++

เนื่องจากฉันต้องการแพ็คเกจที่เป็นกรรมสิทธิ์เหล่านี้วิธีที่ดีที่สุดในการทำวิจัยของฉันให้ทำซ้ำได้มากที่สุดคือสมมติว่านักวิจัยอาจไม่สามารถเข้าถึง CHEMKIN-II ได้ เนื่องจาก DAEPACK เป็นนักแปลที่มาจากแหล่งที่มาฉันไม่จำเป็นต้องแจกจ่าย DAEPACK ฉันอาจรวมเอาท์พุทของมันซึ่งจะเป็นไฟล์ต้นฉบับของ Fortran ที่คำนวณอนุพันธ์

โดยทั่วไปหากคุณต้องการซอฟต์แวร์ที่เป็นกรรมสิทธิ์ในการทำงานของคุณและซอฟต์แวร์ที่เป็นกรรมสิทธิ์นั้นไม่สามารถใช้ได้อย่างกว้างขวาง (เช่นไม่ใช่ MATLAB, Mathematica และอื่น ๆ ) คุณจะทำให้งานของคุณทำซ้ำได้อย่างไร


DAEPACK แก้ไขรหัสต้นฉบับ CHEMKIN-II หรือไม่หรือเพียงแค่ใช้ CHEMKIN-II ภายในเท่านั้น
Dan

DAEPACK แยกวิเคราะห์ซอร์สโค้ด CHEMKIN-II และสร้างไฟล์ต้นฉบับ Fortran ที่มีรูทีนย่อยที่คำนวณเมทริกจาโคเบียนรูปแบบการกระจายและช่วงเวลาส่วนขยาย ไม่ได้แก้ไขซอร์สโค้ด มันเหมือนคอมไพเลอร์ในแง่นั้น
Geoff Oxberry

หากเอาต์พุตของ DAEPACK ได้รับการแก้ไขแหล่งที่มาของ CHEMKIN-II ทำไมคุณถึงได้รับอนุญาตให้เผยแพร่
Dan

มันเป็นงานที่ได้มา แต่ก็ไม่ชัดเจนสำหรับฉันหากมีการดัดแปลงแหล่งที่มา ชื่อตัวแปรถูกคัดลอก แต่ด้วยเหตุผลนั้นหลาย ๆ โปรแกรมที่ฉันเขียนคือ "แหล่งที่มาของ CHEMKIN-II ที่ได้รับการแก้ไข" ฉันต้องตรวจสอบจุดนั้น
Geoff Oxberry

ใบอนุญาต CHEMKIN-II อนุญาตให้คุณแจกจ่ายแหล่งที่ไม่มีการแก้ไขได้อย่างอิสระและ จำกัด วิธีกระจายการเปลี่ยนแปลงหรือไม่ ฉันหาสำเนาใบอนุญาตออนไลน์ไม่พบ
Dan

คำตอบ:


13

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

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


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

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

4

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

CrossValidated มีการอภิปรายที่คล้ายกันในหัวข้อ - "ทำซ้ำได้" หมายความว่าคุณสามารถทำซ้ำการวิเคราะห์ข้อมูลของฉันหรือว่าการทดสอบตัวเองสามารถเรียกใช้ซ้ำตั้งแต่เริ่มต้นและให้ผลการยืนยัน ลิงค์อยู่ที่นี่: /stats/14999/how-are-we-defining-reproducible-research

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


2

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

มิฉะนั้นให้ถามไปรอบ ๆ และดูว่าคุณได้รับอนุญาตให้เผยแพร่งานของคุณมากแค่ไหนแล้วปล่อยงานนั้น


จำนวนมากนี้มาจากนี้การสนทนาแชท
Dan

1

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

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


ฉันคิดว่าเราต้องการทั้งแนวคิดและแนวคิดสำหรับความเข้าใจของมนุษย์และการตีความในระยะยาวและรหัสสำหรับการยืนยันระยะสั้น
khinsen

1

การเผยแพร่รหัส Fortran ที่สร้างขึ้นดูเหมือนจะเป็นทางออกที่ดีในกรณีของคุณ

ตามกฎทั่วไปฉันคิดว่าการใช้ซอฟต์แวร์ที่ไม่ได้เผยแพร่ไม่เข้ากันกับเป้าหมายของการวิจัยที่ทำซ้ำได้ นั่นเป็นหนึ่งในเหตุผลที่ฉันเห็นว่าการวิจัยที่ทำซ้ำได้เป็นเป้าหมายระยะยาวมากกว่าที่จะต้องมีการประยุกต์ใช้ในทันที


1

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

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