未训练全连接层能否对输入向量形成有效表征的技术问询
未训练全连接层的输出表征性解析
核心结论
固定未训练的全连接层后,输出不是无意义的随机值,而是输入向量的一种线性变换表征,但这种表征没有针对任何任务优化,不具备任务导向的语义价值。
具体分析
- 固定层后的输出逻辑:当你复用同一个
Dense层实例(不重新初始化)时,它的权重矩阵和偏置参数就固定了。此时输出本质是输入向量经过线性变换:
其中output = x @ kernel + biaskernel是用glorot_uniform初始化的随机权重矩阵,bias为默认初始化的偏置。这种变换是确定的一对一映射:相同输入必然得到相同输出,不同输入的输出差异完全由输入本身的线性特征差异决定。 - 表征的局限性:由于层未经过训练,权重是随机初始化的,这种线性变换没有针对分类、聚类等下游任务优化,所以输出的表征只是输入的一个随机线性投影,没有任务相关的语义意义。
- 重新定义层输出不同的原因:每次执行
dense = tf.keras.layers.Dense(units=8, kernel_initializer='glorot_uniform'),都会生成新的随机权重矩阵,因此不同层实例的变换规则不同,输出自然不同。
直观示例
假设输入二维向量x1=[1,2]和x2=[3,4],固定一个Dense(units=8)层后:
- 计算得到的
output1和output2的差异完全对应x1与x2的线性差异,不会随机变动; - 若重新定义一个新的
Dense层,再输入相同的x1和x2,得到的结果会和之前不同,因为权重已经重新初始化。
内容的提问来源于stack exchange,提问作者chapatigod
相关产品推荐
相关产品推荐

