Presentation is loading. Please wait.

Presentation is loading. Please wait.

Automatic Inference in BLOG Nimar S. Arora University of California, Berkeley Stuart Russell University of California, Berkeley Erik Sudderth Brown University.

Similar presentations


Presentation on theme: "Automatic Inference in BLOG Nimar S. Arora University of California, Berkeley Stuart Russell University of California, Berkeley Erik Sudderth Brown University."— Presentation transcript:

1 Automatic Inference in BLOG Nimar S. Arora University of California, Berkeley Stuart Russell University of California, Berkeley Erik Sudderth Brown University

2 Open Universe Probability Models (OUPMs) OUPMs extend Bayes Nets with first-order expressive power, effectively infinitely many variables  Edges may be contingent on predicates over ancestor variables OUPMs can express important real-world problems  Seismic event localization for enforcing Comprehensive Nuclear Test Ban Treaty (CTBT) OUPM model using data from the International Monitoring System (IMS) with vanilla probabilistic inference was able to produce better results than specialized algorithms developed over 100 years by seismologists!  Multi-target tracking  Citation matching / Record linkage OUPMs can be expressed by Contingent Bayes Nets (CBNs) or stochastic languages like BLOG

3 # SeismicEvents ~ Poisson[TIME_DURATION*EVENT_RATE]; IsEarthQuake(e) ~ Bernoulli(.999); EventLocation(e) ~ If IsEarthQuake(e) then EarthQuakeDistribution() Else UniformEarthDistribution(); Magnitude(e) ~ Exponential(log(10)) + MIN_MAG; Distance(e,s) = GeographicalDistance(EventLocation(e), SiteLocation(s)); IsDetected(e,s) ~ Logistic[SITE_COEFFS(s)](Magnitude(e), Distance(e,s) ; #Arrivals(site = s) ~ Poisson[TIME_DURATION*FALSE_RATE(s)]; #Arrivals(event=e, site) = If IsDetected(e,s) then 1 else 0; Time(a) ~ If (event(a) = null) then Uniform(0,TIME_DURATION) else IASPEI-TIME(EventLocation(event(a),SiteLocation(site(a)) + TimeRes(a); TimeRes(a) ~ Laplace(TIMLOC(site(a)), TIMSCALE(site(a))); Azimuth(a) ~ If (event(a) = null) then Uniform(0, 360) else GeoAzimuth(EventLocation(event(a)),SiteLocation(site(a)) + AzRes(a); AzRes(a) ~ Laplace(0, AZSCALE(site(a))); Slow(a) ~ If (event(a) = null) then Uniform(0,20) else IASPEI-SLOW(EventLocation(event(a)),SiteLocation(site(a)) + SlowRes(site(a)); BLOG model for CTBT monitoring

4 Recent Improvements in automatic inference for BLOG Gibbs sampling for all finite-domain variables including switching variables, which change the structure of the partial world Birth–Death moves for number variables Model analysis to pre-compute parent-child dependencies, variables which need to be instantiated/uninstantiated, etc. C code generation Available: http://code.google.com/p/blogc

5 Gibbs Sampling Over Partial Worlds : Main Idea Problem: When sampling a switching variable, different values lead to different network structures that may require additional variables to be instantiated. How to construct a valid Gibbs sampler? Solution: Reduce the partial world to the core  Core is roughly the intersection of all possible partial worlds reachable by modifying the switching variable Assign the following weight to each world and pick one:

6 Contingent Bayes Net (CBN) Wing Type Rotor Length Blade Flash Wing Type = Helicopter or TiltRotor Wing Type is one of Helicopter, FixedWing, or TiltRotor Radar signal Blade Flash

7 Example: Step 1, modify variable WingType =Helicopter Blade Flash RotorLength = Long WingType =TiltRotor Blade Flash RotorLength = Long WingType =FixedWing Blade Flash RotorLength = Long Initial World

8 Example: Step 2, Reduce to core WingType =Helicopter Blade Flash RotorLength = Long WingType =TiltRotor Blade Flash WingType =FixedWing Blade Flash Keep original world intact RotorLength not in core

9 Example: Step 3, make worlds self- supporting. Finally, pick a world. WingType =Helicopter Blade Flash RotorLength = Long WingType =TiltRotor Blade Flash WingType =FixedWing Blade Flash RotorLength = Short RotorLength may have a new value

10 BLOG model: Unknown number of aircraft generating radar blips #Aircraft(WingType = w) if w = Helicopter then ~ Poisson [1.0] else ~ Poisson [4.0]; #Blip(Source = a) ~ Poisson[1.0] #Blip ~ Poisson[2.0]; BladeFlash(b) if Source(b) = null then ~ Bernoulli [.01] elseif WingType(Source(b)) = Helicopter then ~ TabularCPD [[.9,.1], [.6,.4]] (RotorLength(Source(b))) else ~ Bernoulli [.1] RotorLength(a) if WingType(a) = Helicopter then ~ TabularCPD [[0.4, 0.6]] Aircraft can be either helicopter or fixed wing planes Only helicopters have a rotor length Blade flash is an artifact of a rotor interacting with the radar beam False Blips True blips

11 Model Analysis Example Compile-time analysis of model enables efficient graph manipulations and probability calculations RotorLength(a) is always a child of WingType(a)  RotorLength variables prelinked to WingType variables Whenever Source(b)=a, BladeFlash(b) is a child of WingType(a) (and possibly of RotorLength(a), for helicopters and tilt-rotors)  Each aircraft keeps a list of blips pointing to it via the Source variable. This simplifies bookkeeping of parent-child relationships  The above list is updated whenever Source(b) is changed Moves that modify WingType(a) need to uninstantiate RotorLength(a) (which is not in the core for this move)

12 Posterior WingType of blip with blade flash given 5 other blips Gibbs MH 0.3 seconds 0.2 seconds

13 BLOG model: blip location depends on aircraft location, number of blips depends on aircraft type #Aircraft(WingType = w) if w = Helicopter then ~ Poisson [1.0] else ~ Poisson [4.0]; #Blip(Source = a) if WingType(a) = Helicopter then ~ Poisson[1.0] else ~ Poisson[2.0] #Blip ~ Poisson[2.0]; BlipLocation(b) if Source(b) != null then ~ UnivarGaussian[10.0] (Location(Source(b))) else ~ UniformReal [50.0, 1050.0] BladeFlash(b) if Source(b) = null then ~ Bernoulli [.01] elseif WingType(Source(b)) = Helicopter then ~ TabularCPD [[.9,.1], [.6,.4]] (RotorLength(Source(b))) else ~ Bernoulli [.1] Location(a) ~ UniformReal [100.0, 1000.0]; RotorLength(a) if WingType(a) = Helicopter then ~ TabularCPD [[0.4, 0.6]]

14 Posterior WingType Blip with Blade FlashBlip Gibbs (5 seconds) MH (3 seconds)

15 Comparative performance Model (variance threshold) BLOG-MH (java impl.) blogc (Gibbs)blogc-MH Alarm Bayes Net (1e-4) 16001133 Aircraft (1e-6) _212.1 Aircraft with location (1e-4) _2.814 Time in seconds


Download ppt "Automatic Inference in BLOG Nimar S. Arora University of California, Berkeley Stuart Russell University of California, Berkeley Erik Sudderth Brown University."

Similar presentations


Ads by Google