การเพิ่มประสิทธิภาพพารามิเตอร์ไฮเปอร์พารามิเตอร์ที่ใช้งานได้: การสุ่มเทียบกับการค้นหากริด


40

ขณะนี้ฉันกำลังผ่านการค้นหาแบบสุ่ม ของ Bengio และ Bergsta สำหรับการเพิ่มประสิทธิภาพพารามิเตอร์มากเกินไป[1]ซึ่งผู้เขียนอ้างว่าการค้นหาแบบสุ่มนั้นมีประสิทธิภาพมากกว่าการค้นหาแบบตารางเพื่อให้ได้ประสิทธิภาพที่เท่าเทียมกันโดยประมาณ

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

ประสบการณ์ของผู้ใช้ที่ใช้กริดกับการค้นหาแบบสุ่มคืออะไร


การค้นหาแบบสุ่มดีกว่าและควรเป็นที่ต้องการเสมอ อย่างไรก็ตามจะเป็นการดียิ่งขึ้นถ้าใช้ไลบรารีเฉพาะสำหรับการเพิ่มประสิทธิภาพพารามิเตอร์ไฮเปอร์พารามิเตอร์เช่นOptunity , hyperopt หรือ bayesopt
Marc Claesen

Bengio และคณะ เขียนเกี่ยวกับที่นี่: papers.nips.cc/paper/…ดังนั้น GP จึงทำงานได้ดีที่สุด แต่ RS ก็ใช้งานได้ดีเช่นกัน
Guy L

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

คำตอบ:


39

การค้นหาแบบสุ่มมีความน่าจะเป็น 95% ของการค้นหาการรวมกันของพารามิเตอร์ภายในออพติม่า 5% ด้วยการวนซ้ำเพียง 60 ครั้ง เมื่อเปรียบเทียบกับวิธีการอื่น ๆ มันไม่ได้จมลงใน Optima ท้องถิ่น

ตรวจสอบการโพสต์บล็อกนี้ดีที่ Datoโดยอลิซเจิ้งเหอโดยเฉพาะส่วนHyperparameter ขั้นตอนวิธีการปรับจูน

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

(10.05)n. ความน่าจะเป็นที่อย่างน้อยหนึ่งคนที่ประสบความสำเร็จในการกดปุ่มช่วงเวลาคือ 1 ลบด้วยปริมาณนั้น เราต้องการความน่าจะเป็นอย่างน้อย. 95 ของความสำเร็จ เพื่อหาจำนวนการจับที่เราต้องการเพียงแค่แก้หา n ในสมการ:

1(10.05)n>0.95

n60

คุณธรรมของเรื่องราวคือ: ถ้าบริเวณใกล้เคียงกับ hyperparameters มีพื้นที่อย่างน้อย 5% ของพื้นผิวกริดการค้นหาแบบสุ่มด้วยการทดลอง 60 ครั้งจะพบว่าภูมิภาคมีความน่าจะเป็นสูง

คุณสามารถปรับปรุงโอกาสนั้นด้วยการทดลองจำนวนมากขึ้น

สรุปถ้าคุณมีพารามิเตอร์ในการปรับแต่งมากเกินไปการค้นหากริดอาจไม่สามารถทำได้ นั่นคือเมื่อฉันลองค้นหาแบบสุ่ม


3
ลิงก์ไปยังโพสต์บล็อกไม่ทำงาน :( อาจเป็นบทความเดียวกันได้หรือไม่ oreilly.com/ideas/evaluating-machine-learning-models/page/5/…
n1k31t4

@DexterMorgan เฮ้ขอบคุณสำหรับหัวขึ้น เห็นได้ชัดว่าบล็อกไม่ทำงานและฉันไม่แน่ใจว่าฉันควรเชื่อมโยงไปยังแหล่งข้อมูลอื่นซึ่งอาจไม่ใช่"เป็นทางการ"ดังนั้นฉันจะทิ้งมันไว้ตามที่เป็นอยู่ตอนนี้ฉันคิดว่า
Firebug

บล็อกยังคงอยู่ ... ขอบคุณที่อ้างถึงมันและ @ n1k31t4 ขอบคุณที่ให้ลิงก์สำหรับการอ่านเพิ่มเติม!
llrs

8

ดูอีกครั้งที่กราฟิกจากกระดาษ (รูปที่ 1) สมมติว่าคุณมีสองพารามิเตอร์ด้วยการค้นหาแบบตาราง 3x3 คุณตรวจสอบค่าพารามิเตอร์ที่แตกต่างกันเพียงสามค่าจากแต่ละพารามิเตอร์ (สามแถวและสามคอลัมน์ในพล็อตด้านซ้าย) ในขณะที่การค้นหาแบบสุ่มคุณตรวจสอบค่าพารามิเตอร์ที่แตกต่างกันเก้ารายการ ของแต่ละพารามิเตอร์ (เก้าแถวที่แตกต่างและเก้าคอลัมน์ที่แตกต่างกัน)

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

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


6

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

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

ข้อมูลเพิ่มเติมสามารถพบได้ในคำถามเหล่านี้:

ข้อเสียของการเพิ่มประสิทธิภาพพารามิเตอร์ไฮเปอร์เบย์คืออะไร?

การปรับให้เหมาะสมเมื่อฟังก์ชันต้นทุนช้าเพื่อประเมิน


2

ตามค่าเริ่มต้นการค้นหาแบบสุ่มและการค้นหากริดเป็นอัลกอริธึมที่แย่มากเว้นแต่จะมีข้อใดข้อหนึ่งต่อไปนี้

  • ปัญหาของคุณไม่มีโครงสร้างระดับโลกเช่นหากปัญหาเป็นแบบหลายค่าและจำนวนของ optima ท้องถิ่นนั้นมีขนาดใหญ่มาก
  • ปัญหาของคุณมีเสียงดังคือการประเมินโซลูชันเดียวกันสองครั้งนำไปสู่ค่าฟังก์ชันวัตถุประสงค์ที่แตกต่างกัน
  • งบประมาณของการเรียกใช้ฟังก์ชันวัตถุประสงค์มีขนาดเล็กมากเมื่อเทียบกับจำนวนของตัวแปรเช่นเล็กกว่า 1x หรือ 10x
  • จำนวนตัวแปรมีน้อยมากเช่นน้อยกว่า 5 (ในทางปฏิบัติ)
  • เงื่อนไขอื่น ๆ ไม่กี่

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


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

0

การค้นหาจุดภายใน 95% ของ maxima ในภูมิประเทศ 2 มิติที่มี maxima เดียวเท่านั้นจะใช้ 100% / 25 = 25%, 6.25%, 1.5625% หรือ 16 การสำรวจ ตราบใดที่การสำรวจสี่ครั้งแรกอย่างถูกต้องจะกำหนดว่าควอแดรนต์สูงสุดนั้นมีอยู่ในขอบเขตใด 1D ภูมิประเทศจะใช้ 100/2 = 50, 25, 12.5, 6.25, 3.125 หรือ 5 * 2 ฉันเดาว่าคนที่ค้นหา maxima ท้องถิ่นหลาย farflung ใช้ค้นหากริด inital ใหญ่แล้วถดถอยหรือวิธีการทำนายอื่น ๆ ตารางจากการสังเกต 60 ครั้งควรมีการสังเกตหนึ่งครั้งภายใน 100/60 = 1.66% ของการสังเกต การปรับให้เหมาะสมระดับโลก Wikipediaฉันยังคิดว่าจะมีวิธีที่ดีกว่าการสุ่ม


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