Beispiel #1
0
    def __init__(self, **hyper_params):
        super(NADE, self).__init__()

        self.register_hyper_param('n_X', help='no. observed binary variables')
        self.register_hyper_param('n_Y',
                                  help='no. conditioning binary variables')
        self.register_hyper_param('n_hid', help='no. latent binary variables')
        self.register_hyper_param('unroll_scan', default=1)

        self.register_model_param('b',
                                  help='visible bias',
                                  default=lambda: np.zeros(self.n_X))
        self.register_model_param('c',
                                  help='hidden bias',
                                  default=lambda: np.zeros(self.n_hid))
        self.register_model_param(
            'Ub',
            help='cond. weights Ub',
            default=lambda: default_weights(self.n_Y, self.n_X))
        self.register_model_param(
            'Uc',
            help='cond. weights Uc',
            default=lambda: default_weights(self.n_Y, self.n_hid))
        self.register_model_param(
            'W',
            help='encoder weights',
            default=lambda: default_weights(self.n_X, self.n_hid))
        self.register_model_param(
            'V',
            help='decoder weights',
            default=lambda: default_weights(self.n_hid, self.n_X))

        self.set_hyper_params(hyper_params)
Beispiel #2
0
    def __init__(self, **hyper_params):
        super(DSBN, self).__init__()

        self.register_hyper_param('n_X',
                                  help='no. lower-layer binary variables')
        self.register_hyper_param('n_Y',
                                  help='no. upper-layer binary variables')

        self.register_hyper_param('n_D', help='no. deterministic units')
        self.register_hyper_param('non_lin',
                                  default='sigmoid',
                                  help="nonlinearity for deterministic layer")

        # Sigmoid Belief Layer
        self.register_model_param('a',
                                  help='deterministic bias',
                                  default=lambda: -np.ones(self.n_D))
        self.register_model_param(
            'U',
            help='deterministic weights',
            default=lambda: default_weights(self.n_Y, self.n_D))

        self.register_model_param('b',
                                  help='stochastic bias',
                                  default=lambda: -np.ones(self.n_X))
        self.register_model_param(
            'W',
            help='stochastic weights',
            default=lambda: default_weights(self.n_D, self.n_X))

        self.set_hyper_params(hyper_params)
Beispiel #3
0
    def __init__(self, **hyper_params):
        super(NADETop, self).__init__()

        self.register_hyper_param('n_X', help='no. observed binary variables')
        self.register_hyper_param('n_hid', help='no. latent binary variables')
        self.register_hyper_param('unroll_scan', default=1)

        self.register_model_param('b',  help='visible bias', default=lambda: np.zeros(self.n_X))
        self.register_model_param('c',  help='hidden bias' , default=lambda: np.zeros(self.n_hid))
        self.register_model_param('W',  help='encoder weights', default=lambda: default_weights(self.n_X, self.n_hid) )
        self.register_model_param('V',  help='decoder weights', default=lambda: default_weights(self.n_hid, self.n_X) )
        
        self.set_hyper_params(hyper_params)
Beispiel #4
0
    def __init__(self, **hyper_params):
        super(DARN, self).__init__()

        # Hyper parameters
        self.register_hyper_param('n_X', help='no. binary variables')
        self.register_hyper_param('n_Y', help='no. conditioning binary variables')        
        self.register_hyper_param('unroll_scan', default=1)        

        # Model parameters
        self.register_model_param('b', help='sigmoid(b)-bias ', default=lambda: np.zeros(self.n_X))
        self.register_model_param('W', help='weights (triangular)', default=lambda: default_weights(self.n_X, self.n_X) )
        self.register_model_param('U', help='cond. weights U', default=lambda: default_weights(self.n_Y, self.n_X) )

        self.set_hyper_params(hyper_params)
Beispiel #5
0
    def __init__(self, **hyper_params):
        super(DiagonalGaussian, self).__init__()

        self.register_hyper_param('n_X',
                                  help='no. lower-layer binary variables')
        self.register_hyper_param('n_Y',
                                  help='no. upper-layer binary variables')
        self.register_hyper_param('n_hid', help='no. hidden variables')
        self.register_hyper_param('log_sigma2_min',
                                  help='log(sigma**2) cutoff',
                                  default=-np.inf)
        self.register_hyper_param('final_tanh', help='', default=False)
        self.register_hyper_param('initial_tanh', help='', default=False)

        self.set_hyper_params(hyper_params)

        # sanitize hyper params
        if isinstance(self.n_hid, int):
            self.n_hid = (self.n_hid, )
        if isinstance(self.n_hid, list):
            self.n_hid = tuple(self.n_hid)
        self.n_layers = len(self.n_hid)

        hidden_size = self.n_hid + (self.n_Y, )
        for i in reversed(xrange(self.n_layers)):
            W_name = "W%d" % i
            b_name = "b%d" % i

            n_upper = hidden_size[i + 1]
            n_lower = hidden_size[i]

            def create_W_init(n_upper, n_lower):
                return lambda: default_weights(n_upper, n_lower)

            def create_b_init(n_lower):
                return lambda: np.zeros(n_lower)

            self.register_model_param(W_name,
                                      default=create_W_init(n_upper, n_lower))
            self.register_model_param(b_name, default=create_b_init(n_lower))

        # lowers layer parametrization... higher layers will be parameterized in self.setup()
        self.register_model_param(
            'W_mu', default=lambda: default_weights(hidden_size[0], self.n_X))
        self.register_model_param(
            'W_ls', default=lambda: default_weights(hidden_size[0], self.n_X))
        self.register_model_param('b_mu', default=lambda: np.zeros(self.n_X))
        self.register_model_param('b_ls', default=lambda: np.zeros(self.n_X))
Beispiel #6
0
    def __init__(self, **hyper_params):
        super(DSBN, self).__init__()

        self.register_hyper_param('n_X', help='no. lower-layer binary variables')
        self.register_hyper_param('n_Y', help='no. upper-layer binary variables')

        self.register_hyper_param('n_D', help='no. deterministic units')
        self.register_hyper_param('non_lin', default='sigmoid', help="nonlinearity for deterministic layer")

        # Sigmoid Belief Layer
        self.register_model_param('a', help='deterministic bias', default=lambda: -np.ones(self.n_D))
        self.register_model_param('U', help='deterministic weights', default=lambda: default_weights(self.n_Y, self.n_D) )

        self.register_model_param('b', help='stochastic bias', default=lambda: -np.ones(self.n_X))
        self.register_model_param('W', help='stochastic weights', default=lambda: default_weights(self.n_D, self.n_X) )

        self.set_hyper_params(hyper_params)
Beispiel #7
0
    def __init__(self, **hyper_params):
        super(SBN, self).__init__()

        self.register_hyper_param('n_X', help='no. lower-layer binary variables')
        self.register_hyper_param('n_Y', help='no. upper-layer binary variables')

        # Sigmoid Belief Layer
        self.register_model_param('b', help='P lower-layer bias', default=lambda: -np.ones(self.n_X))
        self.register_model_param('W', help='P weights', default=lambda: default_weights(self.n_Y, self.n_X) )

        self.set_hyper_params(hyper_params)
Beispiel #8
0
    def __init__(self, **hyper_params):
        super(DARN, self).__init__()

        # Hyper parameters
        self.register_hyper_param('n_X', help='no. binary variables')
        self.register_hyper_param('n_Y',
                                  help='no. conditioning binary variables')
        self.register_hyper_param('unroll_scan', default=1)

        # Model parameters
        self.register_model_param('b',
                                  help='sigmoid(b)-bias ',
                                  default=lambda: np.zeros(self.n_X))
        self.register_model_param(
            'W',
            help='weights (triangular)',
            default=lambda: default_weights(self.n_X, self.n_X))
        self.register_model_param(
            'U',
            help='cond. weights U',
            default=lambda: default_weights(self.n_Y, self.n_X))

        self.set_hyper_params(hyper_params)
    def __init__(self, **hyper_params):
        super(GibbsSBN, self).__init__()

        # Hyper parameters
        self.register_hyper_param('n_X',
                                  help='no. lower-layer binary variables')
        self.register_hyper_param('n_Y',
                                  help='no. upper-layer binary variables')
        self.register_hyper_param('unroll_scan', default=1)

        # Model parameters
        self.register_model_param('b',
                                  help='P lower-layer bias',
                                  default=lambda: -np.ones(self.n_X))
        self.register_model_param(
            'W',
            help='P weights',
            default=lambda: default_weights(self.n_Y, self.n_X))

        self.set_hyper_params(hyper_params)
Beispiel #10
0
 def create_W_init(n_upper, n_lower):
     return lambda: default_weights(n_upper, n_lower)