public double logValue (AssignmentIterator it) { return logValue (it.assignment ()); }
public double logValue (AssignmentIterator it) { return logValue (it.assignment ()); }
public double value (AssignmentIterator it) { return value (it.assignment ()); }
public double value (AssignmentIterator it) { Assignment assn = it.assignment(); Factor tbl = sliceForAlpha (assn); return tbl.value (assn); }
public double value (AssignmentIterator it) { Assignment assn = it.assignment(); Factor tbl = sliceForAlpha (assn); return tbl.value (assn); }
public double value (AssignmentIterator it) { Assignment assn = it.assignment(); Factor tbl = sliceForAlpha (assn); return tbl.value (assn); }
public double value (AssignmentIterator it) { Assignment assn = it.assignment(); Factor tbl = sliceForAlpha (assn); return tbl.value (assn); }
public double value (AssignmentIterator it) { Assignment assn = it.assignment(); Factor tbl = sliceForAlpha (assn); return tbl.value (assn); }
public double value (AssignmentIterator it) { Assignment assn = it.assignment(); Factor tbl = sliceForAlpha (assn); return tbl.value (assn); }
public double sumGradLog (Factor q, Variable param, Assignment theta) { if (param != alpha) throw new IllegalArgumentException (); Factor q_xs = q.marginalize (xs); double qDiff = 0.0; for (AssignmentIterator it = xs.assignmentIterator (); it.hasNext(); it.advance()) { Assignment assn = it.assignment (); if (!isAllEqual (assn)) { qDiff += -q_xs.value (it); } } return qDiff; }
public double sumGradLog (Factor q, Variable param, Assignment theta) { if (param != alpha) throw new IllegalArgumentException (); Factor q_xs = q.marginalize (xs); double qDiff = 0.0; for (AssignmentIterator it = xs.assignmentIterator (); it.hasNext(); it.advance()) { Assignment assn = it.assignment (); if (!isAllEqual (assn)) { qDiff += -q_xs.value (it); } } return qDiff; }
public double sumGradLog (Factor q, Variable param, Assignment theta) { if (param != alpha) throw new IllegalArgumentException (); Factor q_xs = q.marginalize (xs); double qDiff = 0.0; for (AssignmentIterator it = xs.assignmentIterator (); it.hasNext(); it.advance()) { Assignment assn = it.assignment (); if (!isAllEqual (assn)) { qDiff += -q_xs.value (it); } } return qDiff; }
public double secondDerivative (Factor q, Variable param, Assignment theta) { double e_x = sumGradLog (q, param, theta); Factor q_xs = q.marginalize (xs); double e_x2 = 0.0; for (AssignmentIterator it = xs.assignmentIterator (); it.hasNext(); it.advance()) { Assignment assn = it.assignment (); if (!isAllEqual (assn)) { e_x2 += q_xs.value (it); } } return e_x2 - (e_x * e_x); }
public double secondDerivative (Factor q, Variable param, Assignment theta) { double e_x = sumGradLog (q, param, theta); Factor q_xs = q.marginalize (xs); double e_x2 = 0.0; for (AssignmentIterator it = xs.assignmentIterator (); it.hasNext(); it.advance()) { Assignment assn = it.assignment (); if (!isAllEqual (assn)) { e_x2 += q_xs.value (it); } } return e_x2 - (e_x * e_x); }
private DiscreteFactor constructConditionalCpt (FactorGraph mdl, Variable var, Assignment fullAssn) { List ptlList = mdl.allFactorsContaining (var); LogTableFactor ptl = new LogTableFactor (var); for (AssignmentIterator it = ptl.assignmentIterator (); it.hasNext(); it.advance ()) { Assignment varAssn = it.assignment (); fullAssn.setValue (var, varAssn.get (var)); ptl.setRawValue (varAssn, sumValues (ptlList, fullAssn)); } ptl.normalize (); return ptl; }
private DiscreteFactor constructConditionalCpt (FactorGraph mdl, Variable var, Assignment fullAssn) { List ptlList = mdl.allFactorsContaining (var); LogTableFactor ptl = new LogTableFactor (var); for (AssignmentIterator it = ptl.assignmentIterator (); it.hasNext(); it.advance ()) { Assignment varAssn = it.assignment (); fullAssn.setValue (var, varAssn.get (var)); ptl.setRawValue (varAssn, sumValues (ptlList, fullAssn)); } ptl.normalize (); return ptl; }
private DiscreteFactor constructConditionalCpt (FactorGraph mdl, Variable var, Assignment fullAssn) { List ptlList = mdl.allFactorsContaining (var); LogTableFactor ptl = new LogTableFactor (var); for (AssignmentIterator it = ptl.assignmentIterator (); it.hasNext(); it.advance ()) { Assignment varAssn = it.assignment (); fullAssn.setValue (var, varAssn.get (var)); ptl.setRawValue (varAssn, sumValues (ptlList, fullAssn)); } ptl.normalize (); return ptl; }
protected Factor slice_general (Variable[] vars, Assignment observed) { VarSet toKeep = new HashVarSet (vars); toKeep.removeAll (observed.varSet ()); double[] vals = new double [toKeep.weight ()]; AssignmentIterator it = toKeep.assignmentIterator (); while (it.hasNext ()) { Assignment union = Assignment.union (observed, it.assignment ()); vals[it.indexOfCurrentAssn ()] = value (union); it.advance (); } return new TableFactor (toKeep, vals); }
protected Factor slice_general (Variable[] vars, Assignment observed) { VarSet toKeep = new HashVarSet (vars); toKeep.removeAll (observed.varSet ()); double[] vals = new double [toKeep.weight ()]; AssignmentIterator it = toKeep.assignmentIterator (); while (it.hasNext ()) { Assignment union = Assignment.union (observed, it.assignment ()); vals[it.indexOfCurrentAssn ()] = logValue (union); it.advance (); } return LogTableFactor.makeFromLogValues (toKeep.toVariableArray (), vals); }
protected Factor slice_general (Variable[] vars, Assignment observed) { VarSet toKeep = new HashVarSet (vars); toKeep.removeAll (observed.varSet ()); double[] vals = new double [toKeep.weight ()]; AssignmentIterator it = toKeep.assignmentIterator (); while (it.hasNext ()) { Assignment union = Assignment.union (observed, it.assignment ()); vals[it.indexOfCurrentAssn ()] = logValue (union); it.advance (); } return LogTableFactor.makeFromLogValues (toKeep.toVariableArray (), vals); }