Tensorflow 高斯投影与高斯噪声

Tensorflow 高斯投影与高斯噪声,tensorflow,keras,tf.keras,Tensorflow,Keras,Tf.keras,我在keras的以下层面临困难: gaussian_projection = 64 gaussian_scale = 20 initializer = tf.keras.initializers.TruncatedNormal(mean=0.0, stddev=gauss_scale) proj_kernel = tf.keras.layers.Dense(gaussian_projection, use_bias=False, trainable=False,

我在keras的以下层面临困难:

gaussian_projection = 64
gaussian_scale = 20

initializer = tf.keras.initializers.TruncatedNormal(mean=0.0, stddev=gauss_scale)

proj_kernel = tf.keras.layers.Dense(gaussian_projection, use_bias=False, trainable=False,
                                                    kernel_initializer=initializer)
上面的层打算做什么?它是一个添加高斯噪声的层还是其他的层

我希望有人知道这件事

#####################另一个第二版本的图层##########


两个版本的层(第一层和第二层)是否打算做相同的事情,即添加高斯噪声?

我认为上面两个不同,如下所示:

  • 第一个代码块基本上创建了一个
    密集的
    层,其中
    高斯投影
    变量是单位数,
    初始值设定项
    是初始化层的一种方法。这种初始化通常是为了提高层和网络的收敛性;但总的来说,第一个代码块是典型的
    密集层。我认为在第一段代码中没有添加任何噪声
  • 另一方面,第二个代码块在稠密层之后创建一个
    高斯噪声
    层,这通常用于调整网络并减少过拟合。根据,该层仅在训练期间激活

好的,让我们只关注第一块代码。实际上,我采用了它的代码,你能给我解释一下,使用
高斯投影
层的目的是什么吗?如果它不是高斯噪声,那么它只是一个稠密的层。但是,
初始值设定项中也使用了高斯尺度。因此,这一层打算通过
初始值设定项
高斯尺度
来做什么?在你的第一个代码块中,高斯投影是一个变量,而不是一个层,所以我真的不明白你指的是什么?我指的是密集层,它使用高斯投影和高斯尺度作为变量。我检查了你上面提供的链接以及原始论文;然而,很抱歉,我对论文中讨论的主题不熟悉。然而,我在arvix的原始论文第3页中看到,“让f是一个完全连接的深度网络,其权重θ由高斯分布初始化……函数f(x;θ)在训练过程中收敛到使用神经切线核(NTK)的核回归解。”在检查了您提供的repo链接后,我认为作者使用高斯分布初始化稠密权重(第一个版本),以便更好地近似其后续傅里叶变换步骤(例如sin/cos)的内核回归解。这将不同于第二个版本类型,在第二个版本类型中,您只需使用具有“标识”初始化的密集层,而不尝试近似内核回归。再说一次,这只是我的想法,很抱歉我不能帮你更多,因为我不太了解这个话题。
input_dim = 3

new_layer = tf.keras.layers.Dense(input_dim, use_bias=False, trainable=False,
                                                        kernel_initializer='identity')

tf.keras.layers.GaussianNoise(stddev=gaussian_scale)