4 ปัจจัยในการทดสอบแอปพลิเคชันแมชชีนเลิร์นนิง

ระบบแมชชีนเลิร์นนิงดูเหมือนปัญหาคณิตศาสตร์เล็กน้อย หาอัลกอริทึมป๊อปข้อมูลและคำตอบออกมา

แต่คุณจะรู้ได้อย่างไรว่าคำตอบนั้นถูกต้อง?

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

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

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

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

สิ่งที่ผู้ทดสอบต้องให้ความสำคัญสำหรับแอปพลิเคชันแมชชีนเลิร์นนิง:

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

2. ทดสอบด้วยข้อมูลใหม่แทนที่จะเป็นข้อมูลการฝึกอบรมเดิม หากจำเป็นให้แบ่งชุดการฝึกของคุณออกเป็นสองกลุ่มกลุ่มที่ฝึกและกลุ่มที่ทำการทดสอบ ดีกว่ารับและใช้ข้อมูลใหม่หากคุณสามารถทำได้

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

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

บรรทัดล่างสุด

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

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

ตอนนี้การเขียนโค้ดของคุณทำงานแบบขนานง่ายกว่าที่เคย - ทดลองใช้Intel® Parallel Studio XE ฟรี 30 วัน