การหาค่าเหมาะที่สุดของแบบจำลองสโตแคสติกคอมพิวเตอร์


11

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

ตัวอย่างเช่นหากคุณพิจารณารูปแบบคอมพิวเตอร์ที่มีฟังก์ชั่นที่ไม่รู้จักที่แสดงถึงเอาท์พุทของรูปแบบคอมพิวเตอร์นั้นมีวิธีการทางสถิติมากมายสำหรับการแก้ปัญหาเช่นf(x)

minf(x)xX

เมื่อf(x)ถูกกำหนดขึ้น แต่จะเกิดอะไรขึ้นเมื่อf(x)สุ่ม มีวิธีแก้ไขปัญหาหรือไม่เราสามารถแก้ไขได้ดีที่สุด

minE[f(x)]xX

โดยที่E()เป็นผู้ดำเนินการตามปกติ


1
นี่เป็นคำถามที่น่าสนใจมาก การเพิ่มประสิทธิภาพของเป็นสิ่งเดียวที่จะเป็นไปได้จริง ๆ แอปพลิเคชันเชิงสถิติที่เกี่ยวข้องกับคำถามนี้คืออัลกอริธึม MCEM ซึ่งฟังก์ชันความน่าจะเป็นเต็มสามารถสังเกตได้เฉพาะกับข้อผิดพลาด MCMC ด้านบนของมัน ในทำนองเดียวกันอัลกอริทึมตัวกรองอนุภาค MCMC มีปัญหาเดียวกัน ฉันไม่ได้อ่านหนังสือทั้งสองเล่มมากพอที่จะรู้ว่าวิธีการตอบคำถามนี้เป็นอย่างไร E[f(x)]
หน้าผา AB

2
ขึ้นอยู่กับเป้าหมายของคุณ เป็นเพียงหนึ่งในตัวเลือกที่เป็นไปได้มากมาย ในบางแอปพลิเคชันคุณอาจต้องการโซลูชันที่ "น่าเชื่อถือ" ไม่ใช่เฉพาะที่ "ดีโดยเฉลี่ย" ในสถานการณ์นี้คุณจะเพิ่มประสิทธิภาพในการ WRT quantile ของการกระจายของบาง(x) การปรับให้เหมาะสมแบบเบย์เกี่ยวข้องกับการประเมินฟังก์ชั่นราคาแพง ตรวจสอบตัวอย่างคำถามนี้ E[f(x)]f(x)
lacerbi

1
@lacerbi เป็นตัวอย่างที่มีเสียงดังไหม? ฉันคิดว่าพวกเขาจะกำหนดขึ้นเท่านั้น
RustyStatistician

@RealStatistician: คุณพูดถูกตัวอย่างส่วนใหญ่เป็นการกำหนดหรือพูดคุยเกี่ยวกับการเพิ่มประสิทธิภาพแบบเบย์โดยทั่วไป ดูด้านล่างสำหรับการอ้างอิงเพ่งความสนใจไปที่ส่วน "noisy"
lacerbi

คุณเข้าถึงโปรแกรมคอมพิวเตอร์เพื่อให้คุณสามารถรันด้วยตัวเองเพื่อเลือกอินพุตหรือไม่? จากนั้นจึงมีวิธีการออกแบบการทดลองให้ใช้งาน! ค้นหาไซต์นี้. x
kjetil b halvorsen

คำตอบ:


10

( ขยายความคิดเห็นของฉันไปยังคำตอบที่เหมาะสม )

ดังที่ได้กล่าวไปแล้วมันขึ้นอยู่กับเป้าหมายของคุณ

ค่าที่คาดหวังเป็นเพียงหนึ่งในตัวเลือกที่เป็นไปได้มากมายสำหรับเป้าหมายการเพิ่มประสิทธิภาพ ตัวอย่างเช่นสมมติว่ากระจายตามปกติคุณสามารถทำได้:E[f(x)]f(x)

xopt=argminx{E[f(x)]+κVar[f(x)]}
สำหรับ บางที่ปรุงแต่งความเสี่ยงไว หากคุณกำลังมองหาโซลูชันที่มีประสิทธิภาพที่น่าจะดีที่สุดและลดความผันผวนเชิงบวกอย่างมาก ในทางกลับกันการลบจะสนับสนุนการเพิ่มประสิทธิภาพ "มองโลกในแง่" ซึ่งมองหาความผันผวนเชิงลบขนาดใหญ่ คุณสามารถเลือกตามปริมาณของการแจกแจงแบบปกติ (ดูข้อมูลอ้างอิง 2 ด้านล่าง)κRκ>0κκ

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

มีหลายคนที่ใช้ BO กับฟังก์ชั่นที่มีเสียงดัง ในฐานะที่เป็นบทนำของหัวข้อ David Ginsbourger ได้พูดคุยอย่างดีในหัวข้อ "การเปลี่ยนแปลงในการปรับปรุงที่คาดหวัง" ที่การประชุมเชิงปฏิบัติการเกี่ยวกับกระบวนการแบบเกาส์เพื่อการเพิ่มประสิทธิภาพระดับโลก (Sheffield, 17 กันยายน 2015) คุณสามารถค้นหาคำปราศรัยของเขาที่นี่และการพูดคุยทั้งหมดมีอยู่ในหน้านี้ (ฉันขอแนะนำการพูดคุยอื่น ๆ ทั้งหมดเพื่อเป็นการแนะนำทั่วไปที่ยอดเยี่ยมแก่ BO)

จากการอ้างอิงฉันจะเริ่มด้วยงานที่ทำโดย Ginsbourger และเพื่อนร่วมงานและ Gramacy และเพื่อนร่วมงาน:

  1. Picheny, V. และ Ginsbourger, D. , 2014. "วิธีการปรับให้เหมาะสมตามที่น่าสนใจ: การใช้งานแบบรวมเป็นหนึ่งเดียวในแพ็คเกจ DiceOptim" สถิติการคำนวณและการวิเคราะห์ข้อมูล , 71, pp.1035-1053 ( ลิงก์ )

  2. Picheny, V. , Ginsbourger, D. , Richet, Y. และ Caplin, G. , 2013 "การเพิ่มประสิทธิภาพแบบ Quantile-based ของการทดลองด้วยคอมพิวเตอร์ที่มีเสียงดังด้วยความแม่นยำที่ปรับได้" เทคนิค , 55 (1), pp.2-13 ( ลิงก์ )

  3. Gramacy, RB และ Lee, HK, 2012 "Bayesian ปฏิบัติต่อแบบจำลองกระบวนการของเกาส์ด้วยแอปพลิเคชันสำหรับการสร้างแบบจำลองคอมพิวเตอร์" วารสารของสมาคมอเมริกันสถิติ ( ลิงก์ )

  4. Gramacy, RB และ Apley, DW, 2015 "การประมาณกระบวนการแบบเกาส์เซียนท้องถิ่นสำหรับการทดลองคอมพิวเตอร์ขนาดใหญ่" วารสารสถิติการคำนวณและกราฟิก , 24 (2), pp.561-578 ( ลิงก์ )

ทั้งสอง Ginsburger และ Gramacy มีแพคเกจ R ที่ใช้วิธีการของพวกเขา BO ตามลำดับDiceOptimและTGP


1
อยู่ที่ไหนในคำตอบของคุณหรือคุณหมายถึง ? kκ
RustyStatistician

1
หนึ่งในขั้นตอนวิธีการมากขึ้นซึ่งผมไม่ได้ใช้ * แต่ชนะในแผนกชื่อที่น่าขบขันเป็นSNOBFIT (* ผู้เขียนเป็นที่โดดเด่นในชุมชนเพิ่มประสิทธิภาพอย่างไรและซอฟแวร์ได้ตกลงบนมาตรฐานที่กำหนดขึ้นเพื่อให้คำแนะนำที่ไม่ได้เป็นเพียงแค่ตามชื่อเย็น!)
GeoMatt22

4

คำตอบปัจจุบันมุ่งเน้นไปที่คำนิยาม (ทางคณิตศาสตร์) ที่เหมาะสมของเป้าหมายการเพิ่มประสิทธิภาพสุ่ม - ฉันต้องการให้มุมมองที่นำไปใช้ค่อนข้างมาก

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

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

a) หากคุณยังคงมีการเพิ่มประสิทธิภาพคุณต้องแน่ใจว่าคุณไม่ติดขัดและเครื่องมือเพิ่มประสิทธิภาพสามารถจัดการกับเป้าหมายที่สุ่ม บทที่ 4 ในวิทยานิพนธ์ปริญญาเอกของ Matteo Fasiolo ให้คำแนะนำดู (2)

b) ตามที่เราได้บันทึกไว้ใน (1) MCMC มักจะแข็งแกร่งกว่าเป้าหมายที่สุ่ม - ภายใต้เงื่อนไขที่ไม่รุนแรงเกี่ยวกับการกระจายของเสียง MCMC จะเฉลี่ยเสียงดังออกไปและเป้าหมายที่สุ่มตัวอย่างจะแยกไม่ออกจากเสียงดัง เป้าหมายที่มีค่าเฉลี่ยของเป้าหมายที่มีเสียงดัง อย่างไรก็ตาม MCMC ก็อาจติดขัดเช่นกันเมื่อต้องเผชิญกับการประเมินที่ดีเป็นพิเศษ สิ่งที่คุณต้องไม่ทำในขณะนี้คือการได้รับแนวคิด "ชัดเจน" ต่อไปนี้: เพียงคำนวณทั้งมูลค่าปัจจุบันและมูลค่าที่เสนอในการทำซ้ำ MCMC แต่ละรายการ คำหลักที่จะมองขึ้นนี่ก็เป็น "หลอกร่อแร่" ดูเพิ่มเติมที่นี่และที่นี่

1) Hartig, F.; Calabrese, JM; Reineking, B.; Wiegand, ตัน & ร์ตฮู ธ , A. (2011) การอนุมานทางสถิติสำหรับแบบจำลองสุ่ม - ทฤษฎีและการประยุกต์ Ecol Lett., 14, 816-827

2) Fasiolo, M. (2016) วิธีการทางสถิติสำหรับคอมเพล็กซ์พลวัตรประชากร มหาวิทยาลัยบา ธ


4

สมมติว่าเรากำลังอยู่ในพื้นที่น่าจะเป็นต่อเนื่องเพื่อให้ n สังหรณ์ใจคุณต้องการฟังก์ชั่นบางอย่างเพื่อให้คุณสามารถเพิ่มประสิทธิภาพ(x)) คุณสามารถเพิ่มประสิทธิภาพวัตถุประสงค์เดียวเท่านั้น!f(x)RnU:RnRU(f(x))

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

การข้ามไปข้างหน้าจุดเริ่มต้นที่ง่ายอาจเลือกตัวแปรสุ่มแล้วจึงแก้ไข:λ

minimize (over x)E[λf(x)]subject toxX
นี้เป็นเชิงเส้นอย่างง่ายอีกครั้งน้ำหนักของ(x)] อย่างไรก็ตามนี่คือเหตุผลว่าทำไมการยุบหลายวัตถุประสงค์กับวัตถุประสงค์เดียวโดยทั่วไปแล้วก็โอเคE[f(x)]

การตั้งค่าพื้นฐาน:

  • คุณมีทางเลือกตัวแปรและความเป็นไปได้ชุดXxX
  • การเลือกนำไปสู่ผลลัพธ์แบบสุ่มxy~=f(x)
  • คุณมีการกำหนดค่าตามเหตุผล เหนือผลลัพธ์แบบสุ่ม (โดยทั่วไปคุณสามารถพูดได้ว่าคุณชอบผลลัพธ์สุ่มอีกรายการหนึ่งหรือไม่)y~

ปัญหาของคุณคือการเลือกเช่นนั้น:xX

xXf(x)f(x)
ในภาษาอังกฤษคุณต้องเลือกเพื่อไม่ให้ทางเลือกที่เป็นไปได้นำไปสู่ผลลัพธ์ที่ต้องการ .xxf(x)

เทียบเท่ากับการเพิ่มอรรถประโยชน์ให้สูงสุด (ภายใต้เงื่อนไขทางเทคนิคบางอย่าง)

สำหรับความเรียบง่ายทางเทคนิคผมจะบอกว่าเราอยู่ในพื้นที่น่าจะต่อเนื่องกับผลลัพธ์ดังนั้นฉันสามารถแสดงผลแบบสุ่มกับเวกเตอร์ nny~yRn

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

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

maximize (over x)U(f(x))subject toxX

ให้โครงสร้างมากขึ้นสำหรับฟังก์ชันยูทิลิตี้ : สมมติฐานยูทิลิตี้ที่คาดไว้:U

หากเราอยู่ในสภาวะที่น่าจะเป็นและเรายอมรับความจริงของNeumann-Morgernsternฟังก์ชันยูทิลิตี้โดยรวมของจะต้องอยู่ในรูปแบบพิเศษ:U

U(y)=E[u(yi)]=ipiu(yi)
โดยที่คือความน่าจะเป็นของสถานะและคือฟังก์ชันยูทิลิตี้เว้า ความโค้งของวัดความเกลียดชังความเสี่ยง เพียงแทนที่รูปแบบเฉพาะของคุณคุณจะได้รับ:piiuuU

maximize (over x)ipiu(yi)subject toxXy=f(x)

สังเกตว่ากรณีง่าย ๆกำลังเพิ่มค่าสูงสุดที่คาดไว้ (เช่นไม่มีการหลีกเลี่ยงความเสี่ยง)u(yi)=yi

อีกวิธีหนึ่ง:น้ำหนักλ

อีกสิ่งที่ต้องทำคือ:

maximize (over x)iλiyisubject toxXy=f(x)

โดยสังหรณ์ใจคุณสามารถเลือกน้ำหนักที่มีขนาดใหญ่กว่าหรือเล็กกว่าความน่าจะเป็นของสถานะที่เกิดขึ้นและสิ่งนี้จะจับความสำคัญของรัฐλipi

เหตุผลที่ลึกซึ้งกว่าของวิธีการนี้คือภายใต้เงื่อนไขทางเทคนิคบางอย่างมีแลมบ์ดา weightsเช่นนั้นปัญหาข้างต้นและปัญหาก่อนหน้า (e กรัมสูงสุด ) มีวิธีแก้ปัญหาเดียวกันλU(f(x))


แต่ในการตั้งค่านี้ไม่ได้มีฟังก์ชั่นยูทิลิตี้ทั้งหมดที่นำไปสู่คำตอบเดียวกันถูกต้อง?
RustyStatistician

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

คุณต้องคิดผ่านตรรกะของปัญหาของคุณสิ่งที่ก่อให้เกิดผลลัพธ์ที่ดีและจากนั้นหาฟังก์ชั่นวัตถุประสงค์บางอย่างที่กำหนดผลลัพธ์ที่ดีขึ้นเป็นจำนวนที่สูงขึ้น (หรือเทียบเท่าคุณสามารถตั้งค่านี้เป็นปัญหาการย่อขนาดและกำหนดผลลัพธ์ที่แย่กว่าให้สูงขึ้นเช่นลดความผิดพลาดกำลังสองเป็นต้น)
Matthew Gunn
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.