Exemplo n.º 1
0
    def __init__(self, imgs, lbls, lbda_0=None, proba_0=None):
        self.imgs = binarize_imgs(imgs)
        self.lbls = lbls

        self.n_classes = 10
        self.n_imgs = self.lbls.shape[0]
        self.img_x = 28
        self.img_y = 28

        self.rng = UnivariateRNG()

        if proba_0 is not None:
            assert (proba_0.shape == (self.img_x, self.img_y, self.n_classes))
        else:
            proba_0 = np.array([
                self.rng.rand_uniform(0.25, 0.75)
                for i in range(self.img_x * self.img_y * self.n_classes)
            ]).reshape((self.img_x, self.img_y, self.n_classes))

            proba_0[:, :] = proba_0[:, :] / np.sum(proba_0, axis=(0, 1))
            # print(np.sum(proba_0, axis=(0,1)))

            # proba_0 = np.ones((self.img_x, self.img_y, self.n_classes))
            # proba_0 *= 0.4
        self.proba = proba_0

        if lbda_0 is not None:
            assert (lbda_0.shape[0] == self.n_classes)
        else:
            lbda_0 = [1. / self.n_classes for i in range(self.n_classes)]
            # lbda_0 = np.random.random(self.n_classes)
        self.lbda = lbda_0
Exemplo n.º 2
0
	def __init__(self, initial_prior_precision, basis, noise_amplitude, model_parameters): 
		assert(isinstance(initial_prior_precision, np.ndarray)) 

		self.rng = UnivariateRNG()

		self.n = basis

		self.initial_precision = initial_prior_precision

		self.a = np.max(initial_prior_precision) * 1e3 / noise_amplitude
		self.y_mean = 0 
		self.step = 0
		
		self.m_prior = 0
		self.b_prior = initial_prior_precision

		self.Y_c = []
		self.X_c = []

		self.W_mean = np.zeros((n, 1))
		self.W_var = np.zeros((3, 3))

		self.W_s = np.zeros((3, 3))
		self.W_mu = np.zeros(n)

		self.Y_s = 0
		self.Y_mu = 0

		self.linear_model = PolyBasisLinearModelRNG(basis, noise_amplitude, model_parameters)
Exemplo n.º 3
0
	def __init__(self, basis, noise_amplitude, model_parameters):
		assert(isinstance(model_parameters, np.ndarray)) 
		assert(len(model_parameters.shape) == 1 and model_parameters.shape[0] >= basis)

		self.n = basis
		self.a = noise_amplitude 
		self.w = model_parameters

		self.r = UnivariateRNG()
Exemplo n.º 4
0
    def __init__(self, mean, var):
        self.mean = mean
        self.var = var

        self.mean_est = 0
        self.var_est = 0

        self.n = 0

        self.M2 = 0

        self.r = UnivariateRNG()
	def __init__(self, n, mx1, vx1, mx2, vx2, my1, vy1, my2, vy2, basis=3, learning_rate=1e-2): 
		self.n = n
		self.rng = UnivariateRNG()
		self.basis = basis 
		self.params = basis * 2
		self.lr = learning_rate

		rand_points = lambda nb, m, v : \
			np.array([self.rng.rand_normal(m, v) for i in range(nb)])
		
		self.x1 = rand_points(n, mx1, vx1)
		self.y1 = rand_points(n, my1, vy1)

		self.x2 = rand_points(n, mx2, vx2)
		self.y2 = rand_points(n, my2, vy2)

		self.phi = self.make_poly_design_matrix((self.x1, self.y1), (self.x2, self.y2))
		self.w = np.array([self.rng.rand_normal(0., 0.1) for i in range(self.params)])
		self.d = np.array([0. for i in range(n)] + [1. for i in range(n)])
		shuf = np.append(self.phi, np.vstack(self.d), axis=1)
		np.random.shuffle(shuf)
		self.phi = shuf[:, :self.params]
		self.y = shuf[:, self.params]
Exemplo n.º 6
0
    def __init__(self, imgs, lbls):
        self.imgs = imgs
        self.lbls = lbls
        self.rng = UnivariateRNG()

        self.n_classes = int(np.amax(lbls) - np.amin(lbls)) + 1
        self.n_imgs = self.imgs.shape[2]
        self.img_l = self.imgs.shape[0]

        self.mu = np.reshape([
            self.rng.rand_uniform(0.25, 0.75)
            for i in range(self.img_l**2 * self.n_classes)
        ], (self.img_l, self.img_l, self.n_classes))
        self.mu[:, :] /= np.sum(self.mu, axis=(0, 1))
        for i in range(10):
            print("min %f, max %f, mean %f" %
                  (np.min(self.mu[:, :, i]), np.max(
                      self.mu[:, :, i]), np.mean(self.mu[:, :, i])))
            plt.imshow(self.mu[:, :, i])
            plt.colorbar()
            plt.show()

        self.pi = np.array([1 / self.n_classes for i in range(self.n_classes)])
Exemplo n.º 7
0
	for i in range(x.shape[0]):
		s = 0 
		for j in range(w.shape[0]): 
			s += w[j] * x[i] ** j
		y.append(s)
	return np.array(y)

if __name__ == "__main__": 
	n = 4
	nsteps = 750
	param_range = 10
	
	plot_interval = 1
	blocking = False

	rng = UnivariateRNG()

	initial_prior_precision = 1e12 * np.eye(n)
	noise_amplitude = 1e1
	model_parameters = np.array([rng.rand_uniform(-param_range, param_range) for i in range(n)])

	b = BayesianLinearRegression(initial_prior_precision, n, noise_amplitude, model_parameters)


	wmu_acc = []
	pred_acc = []

	mean_error = []
	mse = []

	plotting = True