def get_factors_codes_dataset(): ''' Create factors-codes dataset ''' # create factors dataset dist, dist_kwargs = DISTRIBUTION factors = get_artificial_factors_dataset(nb_examples=NB_EXAMPLES, nb_factors=NB_FACTORS, distribution=dist, dist_kwargs=dist_kwargs) # compute codes from continuous factors codes = np.concatenate((factors, factors, factors, factors), axis=1) return factors, codes
def get_factors_codes_dataset(nb_seen_factors): ''' Create factors-codes dataset :param nb_seen_factors: number of measured factors ''' # create factors dataset dist, dist_kwargs = DISTRIBUTION factors = get_artificial_factors_dataset(nb_examples=NB_EXAMPLES, nb_factors=NB_FACTORS, distribution=dist, dist_kwargs=dist_kwargs) # compute codes from continuous factors codes = factors factors = factors[:, :nb_seen_factors] return factors, codes
def get_factors_codes_dataset(noise_level): ''' Create factors-codes dataset :param noise_level: noise level to compute codes from factors ''' # create factors dataset dist, dist_kwargs = DISTRIBUTION factors = get_artificial_factors_dataset(nb_examples=NB_EXAMPLES, nb_factors=NB_FACTORS, distribution=dist, dist_kwargs=dist_kwargs) # compute codes from continuous factors noise = np.random.uniform(size=factors.shape) codes = (1 - noise_level) * factors + noise_level * noise return factors, codes
def get_factors_codes_dataset(non_linearity_strength): ''' Create factors-codes dataset :param non_linearity_strength: strength of non-linearity relation between factors and codes ''' # create factors dataset dist, dist_kwargs = DISTRIBUTION factors = get_artificial_factors_dataset(nb_examples=NB_EXAMPLES, nb_factors=NB_FACTORS, distribution=dist, dist_kwargs=dist_kwargs) # compute codes from continuous factors B, C = 1000, 0.25 omega = 2 * np.arctan(B**(non_linearity_strength - C) / 2) codes = B**(C - non_linearity_strength) * np.tan(omega * (factors - 0.5)) + 0.5 return factors, codes
def get_factors_codes_dataset(noise_level): ''' Create factors-codes dataset :param noise_level: noise level to compute codes from factors ''' # create factors dataset dist, dist_kwargs = DISTRIBUTION factors = get_artificial_factors_dataset(nb_examples=NB_EXAMPLES, nb_factors=NB_FACTORS, distribution=dist, dist_kwargs=dist_kwargs) # create projection matrix projection = (1 - noise_level) * np.eye(NB_FACTORS) + noise_level * np.eye( NB_FACTORS, k=1) projection[-1, 0] = noise_level # compute codes from continuous factors codes = np.dot(factors, projection) return factors, codes