การประมาณความไม่แน่นอนในปัญหาการอนุมานมิติสูงโดยไม่มีการสุ่มตัวอย่าง?


9

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

ฉันอยากจะประเมินความไม่แน่นอนเกี่ยวกับพารามิเตอร์ของแบบจำลองเพิ่มเติมนอกเหนือจากการค้นหาการประมาณค่า MAP

เราสามารถคำนวณการไล่ระดับสีของ log-posterior ได้อย่างมีประสิทธิภาพเกี่ยวกับพารามิเตอร์ดังนั้นในระยะยาวเรามีเป้าหมายที่จะใช้ Hamiltonian MCMC ทำการสุ่มตัวอย่าง แต่ตอนนี้ฉันสนใจการประมาณการแบบไม่สุ่มตัวอย่าง

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

ใครช่วยแนะนำวิธีการแบบใดที่มักใช้ในกรณีเช่นนี้?

ขอบคุณ!

แก้ไข - ข้อมูลเพิ่มเติมเกี่ยวกับปัญหา

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

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

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

ดังนั้นฉันจึงสงสัยว่า 'แบบจำลอง' นี้จัดอยู่ในหมวดหมู่อย่างเรียบร้อย - เราไม่มีทางเลือกว่าแบบจำลองคืออะไรมันถูกกำหนดโดยวิธีการใช้งานจริงของเครื่องมือที่รวบรวมข้อมูลการทดลองของเรา

ชุดข้อมูลชุด
ข้อมูลประกอบด้วยภาพ 500x500 และมีหนึ่งภาพสำหรับกล้องแต่ละตัวดังนั้นจุดข้อมูลทั้งหมดคือ 500x500x4 =106.

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

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

ในการทำซ้ำข้อมูลมีสองขั้นตอนคือ ก่อนอื่นเราต้องสร้างแบบจำลองแสงที่มาจากพลาสม่าบนตาข่ายจากนั้นเราต้องสร้างแบบจำลองแสงนั้นกลับไปที่ภาพจากกล้อง

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

สมมติ R1 และ R2 คือฟังก์ชันอัตรา (ซึ่งเราประเมินโดยการแก้ไข) แล้วปล่อยที่ iจุดสุดยอดของตาข่าย Ei ได้รับจาก

Ei=R1(xi,yi)+ziR2(xi,yi)
ที่ไหน (x,y,z)เป็น 3 ฟิลด์ที่เราสร้างแบบจำลองบนตาข่าย การทำให้เวกเตอร์ของการปล่อยมลพิษไปยังภาพของกล้องนั้นเป็นเรื่องง่ายมันเป็นเพียงการคูณด้วยเมทริกซ์G ซึ่งเข้ารหัสส่วนของตาข่ายที่แต่ละพิกเซลของกล้องมองผ่าน

เนื่องจากข้อผิดพลาดคือเกาส์เซียนจึงมีความเป็นไปได้ที่จะบันทึกสำหรับกล้องนี้โดยเฉพาะ

L=12(GEd)Σ1(GEd)

ที่ไหน dคือข้อมูลกล้อง โอกาสในการบันทึกรวมเป็นผลรวมของ 4 ของการแสดงออกข้างต้น แต่สำหรับกล้องที่แตกต่างกันซึ่งทุกคนมีฟังก์ชั่นอัตรารุ่นที่แตกต่างกันR1,R2 เพราะพวกเขาดูที่ส่วนต่าง ๆ ของสเปกตรัมแสง

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

log-prior=12xSx12ySy12zSz


1
คุณเป็นคนรุ่นอะไร การถดถอยเชิงเส้น? GP? รูปแบบการนับแบบลำดับชั้น? การสอบเทียบแบบเบส์ของคอมพิวเตอร์รุ่นใด? โปรดเพิ่มรายละเอียดเพิ่มเติมเกี่ยวกับปัญหาที่คุณแก้ไขและฉันจะเขียนคำตอบด้วยข้อดีข้อเสียของ VI
DeltaIV

1
@DeltaIV ฉันได้อัปเดตคำถามพร้อมข้อมูลเพิ่มเติม - อาจเป็นได้ว่าฉันไม่ได้อธิบายรายละเอียดอย่างชัดเจนถึงสิ่งที่คุณกำลังมองหา ถ้าเป็นเช่นนั้นแจ้งให้ฉันทราบและฉันจะแก้ไขอีกครั้งขอบคุณ!
CBowman

1
@DeltaIV ขอบคุณอีกครั้ง! เพิ่มข้อมูลเพิ่มเติมแจ้งให้เราทราบหากมีสิ่งอื่นที่ฉันสามารถเพิ่มได้
CBowman

1
@DeltaIV ข้อมูลภาพอยู่ที่ 500x500 และมีหนึ่งภาพสำหรับกล้องแต่ละตัวดังนั้นจุดข้อมูลทั้งหมดคือ 500x500x4 = 106. ข้อมูลฟังก์ชั่นอัตราถูกคำนวณเพียงครั้งเดียว - เราเก็บไว้จากนั้นสร้างเส้นโค้งเมื่อรหัสเริ่มต้นขึ้นจากนั้นเส้นโค้งนั้นจะถูกใช้สำหรับการประเมินฟังก์ชั่นทั้งหมด
CBowman

1
ฉันไม่มีการอ้างอิง แต่มีการประมาณยศต่ำมากในการคำนวณเมทริกซ์ผกผัน เช่นหาสิ่งที่ใหญ่ที่สุดk ค่าเฉพาะ, สมมติว่าเหลือ 2000kมีความเท่าเทียมกันและใช้การประมาณคร่าวๆสำหรับค่าลักษณะเฉพาะที่สอดคล้องกับค่าลักษณะเฉพาะต่ำ ฉันค่อนข้างมั่นใจว่ายังมีการสลายตัวโดยประมาณ / ซ้ำ Cholesky ที่มาบรรจบกับค่าที่แน่นอน เพียงยกเลิกการวนซ้ำหลังจากที่คุณรอคอยว่าค่าเวลาสูงสุดคือ
ความน่าจะเป็นทาง

คำตอบ:


4

ก่อนอื่นฉันคิดว่าแบบจำลองทางสถิติของคุณผิด ฉันเปลี่ยนรูปแบบของคุณให้คุ้นเคยกับนักสถิติอีกคนหนึ่ง

d=y=(y1,,yN), N=106

เป็นเวกเตอร์ของการสังเกต (ข้อมูล) และ

x=θ=(θ1,,θp)y=ϕ=(ϕ1,,ϕp)z=ρ=(ρ1,,ρp), p650

เวกเตอร์ของพารามิเตอร์, ขนาดทั้งหมด d=3p2000. จากนั้นถ้าฉันเข้าใจถูกต้องคุณถือว่าเป็นนายแบบ

y=Gr1(θ,ϕ)+ρGr2(θ,ϕ))+ϵ, ϵN(0,IN)

ที่ไหน G คือ N×d เมทริกซ์การแก้ไขเส้นโค้ง

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


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

HMC

พารามิเตอร์ 2000 ไม่ใช่รุ่นที่มีขนาดใหญ่มากเว้นแต่คุณกำลังฝึกอบรมสิ่งนี้บนแล็ปท็อป ชุดข้อมูลมีขนาดใหญ่กว่า (106จุดข้อมูล) แต่ถึงกระนั้นหากคุณสามารถเข้าถึงอินสแตนซ์คลาวด์หรือเครื่องที่มี GPU กรอบงานเช่นPyroหรือTensorflow น่าจะเป็นทำให้เกิดปัญหาสั้น ๆ ดังนั้นคุณสามารถใช้ Hamiltonian Monte Carlo ที่ขับเคลื่อนด้วย GPU ได้

ข้อดี : การอนุมาน "ถูกต้อง" โดย จำกัด จำนวนตัวอย่างที่ไม่สิ้นสุดจากห่วงโซ่

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

การประมาณตัวอย่างขนาดใหญ่

ด้วยการใช้สัญลักษณ์ที่ไม่เหมาะสม θเวกเตอร์ที่ได้จากการเชื่อมเวกเตอร์สามตัวของพารามิเตอร์ จากนั้นใช้ทฤษฎีบทขีด จำกัด กลางแบบเบย์ (Bernstein-von Mises) คุณสามารถประมาณได้p(θ|y) กับ N(θ0^n,In1(θ0))ที่ไหน θ0 คือค่าพารามิเตอร์ "จริง" θ0^n คือการประมาณ MLE ของ θ0 และ In1(θ0) มีการประเมินเมทริกซ์ข้อมูลฟิชเชอร์ที่ θ0. แน่นอน,θ0 ไม่เป็นที่รู้จักเราจะใช้ In1(θ0^n)แทน. ความถูกต้องของทฤษฎีบทของ Bernstein-von Mises นั้นขึ้นอยู่กับสมมติฐานบางประการที่คุณสามารถหาได้เช่นกรัมที่นี่ : ในกรณีของคุณสมมติว่าR1,R2มีความราบรื่นและมีความแตกต่างทฤษฎีบทนี้ใช้ได้เพราะการสนับสนุนแบบเกาส์ก่อนคือพื้นที่พารามิเตอร์ทั้งหมด หรือดีกว่ามันจะถูกต้องถ้าข้อมูลของคุณเป็นจริงตามที่คุณสมมติ แต่ฉันไม่เชื่อว่ามันเป็นอย่างที่ฉันอธิบายไว้ในตอนแรก

จุดเด่น : มีประโยชน์อย่างยิ่งในการp<<Nกรณี. รับประกันว่าจะมาบรรจบกับคำตอบที่ถูกต้องในการตั้งค่า iid เมื่อโอกาสราบรื่นและแตกต่างกันและก่อนหน้านี้ไม่ใช่ศูนย์ในย่านθ0.

จุดด้อย : ข้อโต้แย้งที่ใหญ่ที่สุดตามที่คุณระบุไว้คือความต้องการที่จะกลับเมทริกซ์ข้อมูลฟิชเชอร์ อีกทั้งฉันก็ไม่รู้ว่าจะตัดสินความถูกต้องของการประมาณโดยประจักษ์ได้อย่างไรการขาดตัวอย่าง MCMC เพื่อดึงตัวอย่างจากp(θ|y). แน่นอนว่าสิ่งนี้จะเอาชนะยูทิลิตี้การใช้ B-vM ตั้งแต่แรก

การอนุมานความแปรปรวน

ในกรณีนี้แทนที่จะค้นหาที่แน่นอน p(θ|y) (ซึ่งจะต้องมีการคำนวณของ dอินทิกรัลที่เป็นมิติเดียว) เราเลือกที่จะประมาณ p กับ qϕ(θ)ที่ไหน q เป็นของครอบครัวพาราเมตริก Qϕ จัดทำดัชนีโดยเวกเตอร์พารามิเตอร์ ϕ. เรามองหาϕ วัดความแตกต่างระหว่าง q และ pย่อเล็กสุด การเลือกการวัดนี้เป็นความแตกต่างของ KL เราได้รับวิธีการอนุมานการแปรผัน:

ϕ=argminϕΦDKL(qϕ(θ)||p(θ|y))

ข้อกำหนดเกี่ยวกับ qϕ(θ):

  • มันควรจะแตกต่างกันด้วยความเคารพ ϕเพื่อให้เราสามารถใช้วิธีการเพิ่มประสิทธิภาพขนาดใหญ่เช่น Stochastic Gradient Descent เพื่อแก้ปัญหาการย่อขนาด
  • ควรยืดหยุ่นพอที่จะประมาณได้อย่างแม่นยำ p(θ|y) สำหรับค่าบางส่วนของ ϕแต่ก็ง่ายพอที่จะสุ่มตัวอย่างได้ง่าย นี่เป็นเพราะการประมาณค่าความแตกต่างของ KL (วัตถุประสงค์การเพิ่มประสิทธิภาพของเรา) จำเป็นต้องมีการประมาณความคาดหวัง wrtq.

คุณอาจเลือก qϕ(θ) ที่จะแยกตัวประกอบอย่างเต็มที่เช่นผลิตภัณฑ์ของ d การแจกแจงความน่าจะเป็นแบบไม่แปร:

qϕ(θ)=i=1dqϕi(θi)

นี่คือสิ่งที่เรียกว่าค่าเฉลี่ยฟิลด์แปรผัน Bayesวิธี หนึ่งสามารถพิสูจน์ได้ (ดูเช่นบทที่ 10 ของหนังสือเล่มนี้ ) ว่าทางออกที่ดีที่สุดสำหรับแต่ละปัจจัยqϕj(θj) คือ

logqj(θj)=Eij[logp(y,θ)]+const.

ที่ไหน p(y,θ) คือการกระจายตัวร่วมของพารามิเตอร์และข้อมูล (ในกรณีของคุณมันเป็นผลิตภัณฑ์ของความเป็นไปได้ของ Gaussian และ Priors แบบ Gaussian ของคุณเหนือพารามิเตอร์) และความคาดหวังนั้นเกี่ยวกับการแจกแจงแบบแปรผันแบบแปรปรวนอื่น ๆ q1(θ1),,qj1(θj1),qj+1(θj+1),,qd(θd). แน่นอนเนื่องจากวิธีแก้ปัญหาสำหรับหนึ่งในปัจจัยขึ้นอยู่กับปัจจัยอื่น ๆ ทั้งหมดเราจะต้องใช้กระบวนการวนซ้ำเริ่มต้นการแจกแจงทั้งหมดqi(θi)เพื่อการเดาเริ่มต้นและจากนั้นค่อยอัปเดตทีละครั้งด้วยสมการข้างต้น โปรดทราบว่าแทนที่จะคำนวณความคาดหวังข้างต้นเป็น(d1)อินทิกรัลมิติซึ่งจะเป็นสิ่งต้องห้ามในกรณีของคุณที่นักบวชและโอกาสไม่ผันกันคุณสามารถใช้การประมาณค่ามอนติคาร์โลเพื่อประมาณความคาดหวัง

อัลกอริธึมแปรปรวนเบย์หมายถึงฟิลด์ไม่ใช่อัลกอริธึม VI ที่เป็นไปได้เพียงอย่างเดียวที่คุณสามารถใช้ได้: Variational Autoencoder ที่นำเสนอในKingma & Welling, 2014, "การเข้ารหัสอัตโนมัติ Bay Variations"เป็นทางเลือกที่น่าสนใจมากกว่าที่จะสมมติว่า สำหรับqแล้วรับนิพจน์แบบปิดสำหรับ qi, q สันนิษฐานว่าเป็นตัวแปรหลายตัวแบบเกาส์เซียน แต่อาจมีพารามิเตอร์ที่แตกต่างกันในแต่ละ Nจุดข้อมูล. ในการลดทอนค่าใช้จ่ายของการอนุมานเครือข่ายประสาทเทียมจะใช้ในการแมปพื้นที่อินพุตกับพื้นที่พารามิเตอร์ผันแปร ดูกระดาษสำหรับคำอธิบายโดยละเอียดของอัลกอริทึม: การใช้งาน VAE นั้นมีอยู่ในกรอบการเรียนรู้ลึกที่สำคัญทั้งหมดอีกครั้ง


แบบจำลองความเป็นอิสระของ VB นั้นอาจเป็นวิธีที่ยอดเยี่ยมสำหรับการวัดความแม่นยำ มันมักจะเป็นจำนวนประมาณประเภทของปลั๊กอินโดยไม่ต้องปรับ ตัวอย่างง่ายๆไม่ได้ใช้การปรับ "degree of freedom" ในตัวคุณs2และใช้แบบปกติแทนการแจกแจงแบบ t โดยเฉพาะอย่างยิ่งปัญหาสำหรับพารามิเตอร์ไฮเปอร์
ความน่าจะเป็นทาง

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

2

คุณอาจต้องการตรวจสอบซอฟต์แวร์ "bayesX" บางส่วนและอาจเป็นซอฟต์แวร์ "inla" ด้วย ทั้งสองอย่างมีแนวโน้มที่จะมีแนวคิดบางอย่างที่คุณสามารถลองได้ Google มัน

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

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