การค้นหาแบบสุ่ม

หน่วยนี้เน้นที่การค้นหาแบบเสมือน

เหตุใดจึงควรใช้การค้นหาแบบเสมือน

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

ข้อดีของการค้นหาแบบกึ่งสุ่มเหนือ Blackbox ที่ซับซ้อนยิ่งขึ้น เครื่องมือเพิ่มประสิทธิภาพ (เช่น การเพิ่มประสิทธิภาพแบบ Bayesian, อัลกอริทึมวิวัฒนาการ) รวมข้อมูลต่อไปนี้

  • การสุ่มใช้พื้นที่การค้นหาโดยไม่ได้ปรับเปลี่ยนให้เหมาะสมสามารถทำให้เกิดการเปลี่ยนแปลงได้ วัตถุประสงค์การปรับแต่งในการวิเคราะห์หลังงานโดยไม่ต้องทำการทดสอบอีกครั้ง เช่น เรามักจะต้องการค้นหาการทดลองที่ดีที่สุดในแง่ของการตรวจสอบความถูกต้อง สำเร็จในช่วงใดของการฝึกอบรม อย่างไรก็ตาม การทดสอบไม่ได้ปรับ ลักษณะของการค้นหาแบบเสมือนแบบสุ่มช่วยให้พบการทดลองใช้ที่ดีที่สุด ตามข้อผิดพลาดในการตรวจสอบความถูกต้องครั้งสุดท้าย ข้อผิดพลาดในการฝึก หรืออื่นๆ เมตริกประเมินผลโดยไม่ต้องทำการทดสอบซ้ำ
  • การค้นหาแบบเสมือนแบบสุ่มมีลักษณะการทำงานที่เหมือนกันและทำให้เกิดซ้ำได้ทางสถิติ ควรสามารถทำซ้ำการศึกษาจากเมื่อ 6 เดือนที่ผ่านมาได้ หากการใช้อัลกอริทึมการค้นหามีการเปลี่ยนแปลง ตราบใดที่ จะยังคงรักษาคุณสมบัติในแบบเดียวกัน หากใช้เบย์เซียนที่ซับซ้อน เพิ่มประสิทธิภาพซอฟต์แวร์ การติดตั้งอาจเปลี่ยนแปลงไปใน ระหว่างเวอร์ชันต่างๆ กัน ทำให้การค้นหาเก่าๆ ซ้ำยากขึ้นมาก คุณไม่สามารถย้อนกลับไปยังการติดตั้งแบบเก่าได้ (เช่น หาก ระบบจะเรียกใช้เครื่องมือเพิ่มประสิทธิภาพในฐานะบริการ)
  • การสำรวจพื้นที่การค้นหาแบบเดียวกันทำให้เหตุผลง่ายขึ้น เกี่ยวกับผลการค้นหาและสิ่งที่พวกเขาอาจแนะนำในพื้นที่การค้นหา ตัวอย่างเช่น ถ้าจุดที่ดีที่สุดในการส่งผ่านของการค้นหากึ่งสุ่ม อยู่ในขอบเขตของพื้นที่การค้นหา ซึ่งถือว่าดี (แต่ไม่สมบูรณ์) ควรมีการเปลี่ยนแปลงขอบเขตของพื้นที่การค้นหา แต่อัลกอริทึมการเพิ่มประสิทธิภาพแบล็คบ็อกซ์แบบปรับอัตโนมัติ อาจมองข้ามพื้นที่การค้นหาเนื่องจาก การทดสอบระยะแรกแม้ว่าจะมีคะแนนที่ดีเท่ากันก็ตาม ความไม่เป็นแบบเดียวกันนี้ อัลกอริทึมการเพิ่มประสิทธิภาพที่ดี เพื่อเร่งการค้นหาให้เร็วขึ้น
  • การเรียกใช้การทดลองจำนวนมากพร้อมกันและการทดสอบตามลำดับ ไม่ได้สร้างผลลัพธ์ที่แตกต่างกันในเชิงสถิติเมื่อใช้กึ่งสุ่ม (หรืออัลกอริทึมการค้นหาที่ไม่ปรับอัตโนมัติอื่นๆ) ซึ่งต่างจากแบบปรับอัตโนมัติ อัลกอริทึม
  • อัลกอริทึมการค้นหาที่ซับซ้อนมากขึ้นอาจไม่สามารถจัดการกับสิ่งที่ทำไม่ได้เสมอไป ได้อย่างถูกต้อง โดยเฉพาะหากไม่ได้ออกแบบโดยใช้โครงข่ายระบบประสาทเทียม ต้องปรับแต่งไฮเปอร์พารามิเตอร์ก่อน
  • การค้นหาแบบเสมือนสุ่มเป็นไปอย่างง่ายดายและทำงานได้ดีโดยเฉพาะอย่างยิ่งเมื่อมีการปรับแต่งหลายรายการ ดำเนินการทดลองควบคู่กันไป โดยส่วนตัวแล้ว1 การที่อัลกอริทึมปรับตัวได้สามารถเอาชนะ การค้นหาแบบเสมือนแบบสุ่มที่มีงบประมาณเป็น 2 เท่า โดยเฉพาะเมื่อมีช่วงทดลองใช้หลายครั้ง จะต้องทำงานไปพร้อมๆ กัน (ดังนั้นจึงมีโอกาสน้อยมากที่จะทำให้ ใช้ผลช่วงทดลองใช้ก่อนหน้าเมื่อเปิดตัวการทดลองใหม่) ไม่มีความเชี่ยวชาญในการเพิ่มประสิทธิภาพแบบ Bayesian และ Blackbox ขั้นสูงอื่นๆ ของการเพิ่มประสิทธิภาพ คุณอาจไม่ได้รับประโยชน์ที่จะได้รับ คือความสามารถในการให้ได้ การเปรียบเทียบขั้นสูงทำได้ยาก อัลกอริทึมการเพิ่มประสิทธิภาพ Blackbox ในการปรับแต่งการเรียนรู้เชิงลึกที่สมจริง ซึ่งเป็นด้านที่มีการใช้งานมากในการวิจัยในปัจจุบัน และ อัลกอริทึมที่ซับซ้อนมากขึ้น มาพร้อมกับข้อผิดพลาดของตัวเอง ผู้ใช้ที่ไม่มีประสบการณ์ ผู้เชี่ยวชาญในวิธีเหล่านี้ จะได้ผลลัพธ์ที่ดี แต่ในเงื่อนไขที่ทำงานพร้อมกันสูง พื้นที่ในการค้นหาและงบประมาณมักจะ มีความสำคัญมากขึ้น

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

Vizier แบบโอเพนซอร์สมี การใช้งานกึ่งสุ่ม การค้นหา ตั้งค่า algorithm="QUASI_RANDOM_SEARCH" ในการใช้งาน Vizier นี้ ตัวอย่าง มีการใช้งานทางเลือกอยู่ในการกวาดไฮเปอร์พารามิเตอร์นี้ ตัวอย่าง การใช้งานทั้ง 2 รายการนี้จะสร้างลำดับ Halton สำหรับการค้นหาหนึ่งๆ (ที่ตั้งใจจะใช้ลำดับ Halton ที่ถูกเลื่อนหรือสลับ) เป็น แนะนำใน พารามิเตอร์ไฮเปอร์วิกฤต: ไม่สุ่ม ไม่มี ร้องไห้

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

จําเป็นต้องมีการทดลองกี่ครั้งเพื่อให้ได้ผลลัพธ์ที่ดีด้วยการค้นหาแบบเสมือนแบบสุ่ม

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

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

รูปที่ 3: ResNet-50 ปรับแต่งบน ImageNet ด้วยการทดลอง 100 ครั้ง เมื่อมีการใช้ Bootstrapping ระบบจึงจำลองงบประมาณในการปรับแต่งจำนวนที่แตกต่างกัน บนกล่องแสดงประสิทธิภาพที่ดีที่สุดสำหรับงบประมาณทดลองแต่ละรายการ

 

โปรดสังเกตสิ่งต่อไปนี้เกี่ยวกับรูปที่ 3

  • ช่วงระหว่างควอไทล์ที่มีการสุ่มตัวอย่าง 6 การทดลองมีปริมาณมากกว่ามาก ถูกสุ่มตัวอย่าง 20 ครั้ง
  • แม้ใช้การทดลองได้ถึง 20 ครั้ง ความแตกต่างระหว่าง "โชคดีเป็นพิเศษ" และ "ไม่โชคดี" จากการศึกษามีแนวโน้มที่จะมีจำนวนมากกว่ารูปแบบปกติของการฝึกซ้ำ ของโมเดลนี้ใน Seed แบบสุ่มแบบต่างๆ ที่มีไฮเปอร์พารามิเตอร์คงที่ ซึ่งปริมาณงานนี้อาจอยู่ที่ประมาณ +/- 0.1% ใน มีอัตราข้อผิดพลาดในการตรวจสอบความถูกต้องประมาณ 23%

  1. Ben Recht และ Kevin Jamieson ชี้ให้เห็นว่าแข็งแกร่งแค่ไหน การค้นหาแบบสุ่มงบประมาณ 2 เท่าเป็นเกณฑ์พื้นฐาน ( กระดาษสำหรับไฮเปอร์แบนด์ สร้างข้อโต้แย้งที่คล้ายๆ กัน) แต่ก็เป็นไปได้ที่จะค้นหา การเว้นวรรคและโจทย์ที่การเพิ่มประสิทธิภาพแบบ Bayesian สุดล้ำสมัย จะบดบังการค้นหาแบบสุ่มที่มีงบประมาณเป็น 2 เท่า อย่างไรก็ตาม ใน การค้นหาแบบสุ่มด้วยงบประมาณ 2 เท่าทำได้ยากขึ้นมาก เนื่องจากการเพิ่มประสิทธิภาพแบบเบย์ไม่มีโอกาส สังเกตผลการทดสอบก่อนหน้านี้