def __init__( self, var_v, p_s ): self.A = np.matrix([[1,0,1,0],[0,1,0,1],[0,0,1,0],[0,0,0,1]]) self.Q = var_v * np.matrix([ [ 1.0/3, 0 ,1.0/2,0 ] ,[ 0 , 1.0/3, 0 ,1.0/2 ] ,[ 1.0/2, 0 , 1 ,0 ] ,[ 0 , 1.0/2, 0 ,1 ] ]) self.rv = mv_normal( np.array([0,0,0,0]), self.Q) self.p_s = p_s
def __init__(self, system, var_z, p_d): self.u_z = np.array([0, 0]) self.C_z = var_z * np.identity(2) self.r_z = mv_normal(self.u_z, self.C_z) self.r_d = uniform() self.system = system #detection probability self.p_d = p_d
def __init__(self, var_v, p_s): self.A = np.matrix([[1, 0, 1, 0], [0, 1, 0, 1], [0, 0, 1, 0], [0, 0, 0, 1]]) self.Q = var_v * np.matrix([[1.0 / 3, 0, 1.0 / 2, 0], [0, 1.0 / 3, 0, 1.0 / 2], [1.0 / 2, 0, 1, 0], [0, 1.0 / 2, 0, 1]]) self.rv = mv_normal(np.array([0, 0, 0, 0]), self.Q) self.p_s = p_s
def __init__( self, system, var_z, p_d ): self.u_z = np.array( [ 0, 0 ] ) self.C_z = var_z * np.identity( 2 ) self.r_z = mv_normal( self.u_z, self.C_z ) self.r_d = uniform() self.system = system #detection probability self.p_d = p_d
def compute_loss(self, X): m = X.shape[0] self.loss = np.zeros((m, self.no_clusters)) for c in range(self.no_clusters): dist = mv_normal(self.mu[c], self.cv[c], allow_singular=True) self.loss[:, c] = self.probs[:, c] * (np.log(self.ak[c] + 1e-8) + dist.logpdf(X) - np.log(self.probs[:, c] + 1e-8)) self.loss = np.sum(self.loss)