JPF Overview

Document Sample
JPF Overview Powered By Docstoc
					JPF Probabilistic Frames
Masami Takikawa Information Extraction & Transport
takikawa@iet.com

February 4, 2003

JPF

1

JPF Overview
 Object-oriented Knowledge
Representation Language for Probabilistic Inference  Practical and Commercially Available  Used mostly for military R&D
 Object-classification, tracking, sensor fusion, situation assessment, decision making, etc.

 Targets real-time inference with largescale models (at least hundreds of nodes)

Layered Architecture
 ICE: GUI IDE & wizard for specific modeling task  Assessment Engine: application framework
 Provides data-driven construction mechanism

 JPF: OO modeling language
 Provides frame-based abstraction

 JSPIScript: OO scripting language
 Provides easy instantiation/access/query

 JSPI: BN inference engine
 Provides efficient exact/approximate computation

Process
OO modeling

frames

Instantiation and Connection

BN

Observation, Query, and Decision making

Prob & Decision

ICE

JPF

JSPIScript

Compiling

February 4, 2003

JPF

C++ code

Assessment Engine

JSPI

4

JPF Language
 Based on AI frame language (Precursor to    
OOPL) Frame: class with multiple inheritance Slot: instance variable Facet: variable type FrameInstance: instance

February 4, 2003

JPF

5

Example: Electrical Circuits
frame Circuit slot output facet domain = [0,1] facet distribution = [.5, .5] end; Each slot specifies a BN node.
February 4, 2003 JPF 6

Circuit
output

Inverter Frame
frame Inverter isa Circuit Input Circuit slot input facet domain = Circuit output state slot state facet domain = [OK, Stuck0] facet distribution = [.9, .1] slot output facet domain = [0,1] output facet parents = [input.output,state] facet distribution = function input,state { if state==OK then 1-input else 0 end } end;
Inverter

February 4, 2003

JPF

7

Two Inverter Instances
inp1 = Circuit->makeInstance("inp1"); inv1 = Inverter->makeInstance("inv1"); inv1->input = inp1; inv2 = Inverter->makeInstance("inv2"); inv2->input = inv1;

Frame->makeInstance(“name”) will create a new instance.
frameInstance->slot = X will connect frame instances.

February 4, 2003

JPF

8

Two Inverter BN
Inverter 1 Input Circuit output state

Inverter 2

state

output
output Prediction: P(inv2.output | inp.output) Diagnosis: P(inv1.state | inp.output, inv1.output) Decoding: P(inp.output | inv2.output)
February 4, 2003 JPF 9

Sensor Frame – Assoc Hyp
frame Sensor slot whichCircuit facet domain = Circuit facet distribution = UniformDiscreteDistribution slot observation facet domain = [0,1] facet parents = [whichCircuit.output] facet distribution = function output { if output==0 then [0.9, 0.1] else [0.2, 0.8] end } end;
February 4, 2003 JPF 10

Two Sensor Instances
s1 = Sensor->makeInstance(); s1->whichCircuit->addValueToDomain(inp1); s1->observation->observe(0); s2 = Sensor->makeInstance(); s2->whichCircuit->addValueToDomain(inv1); s2->whichCircuit->addValueToDomain(inv2); s2->observation->observe(0);
February 4, 2003 JPF 11

Two Sensor BN
Inverter 1 Input Circuit Inverter 2

output

state

Which inverter is sensor2 connected to?
output

state

output

Sensor 1 Which [inp1]

Sensor 2 Which [inv1,inv2]

Obs=0

Obs=0

February 4, 2003

JPF

12

Other Topics
          
Subtype Hypotheses Existence Hypotheses Efficient Rep/Comp of Assoc Hyp Efficient Rep/Comp of Aggregation (e.g.,MAX) Partially Dynamic BN (Markov Processes) Decision and Utility Inference (Exact/Approximation) Query Compiler & Real-time Computing Modeling Methodologies (How to debug?) Modeling Idioms (Roles, Sets, Relations, etc.) Dynamic Data-driven Construction
JPF 13

February 4, 2003


				
DOCUMENT INFO