def _create_ladder_prior(self, ladder_len): param = np.zeros((2, ladder_len, ladder_len)) mean, var = param lateral_mean = logit(1e-4) var[:,0] = 1e-3 for i in xrange(1, ladder_len): mean[i,1:i+1] = lateral_mean var[i,1:i+1] = 1e-3 return param
def _create_top_prior(self, layer_len, ladder_len): param = np.zeros((2, layer_len, ladder_len)) mean, var = param # Make top-level units mutually exclusive and equally probable. probs = np.reciprocal(np.arange(layer_len, 0, -1, dtype=float)) probs[-1] -= 1e-3 bias_mean = logit(probs) lateral_mean = logit(1e-6) # Make mutual exclusivity high probable but individual probabilities # fairly variable. mean[:,0] = bias_mean var[:,0] = 1e-3 for i in xrange(1, layer_len): mean[i,1:i+1] = lateral_mean var[i,1:i+1] = 1e-3 return param