深度学习
前言
网上相关讲解主要是针对单输出,但是实际中,往往是多输出且损失函数对输出的偏导不同(由于ground truth不同),所以把自己的分析记录一下。
结论
这个问题可以泛化到神经网络的每一层初始化一个定值,但每一层定值不同(如第一层权重全为1,第二层权重全为2等等)
虽然输入是不同的,输出的label也是不同的,但不管更新几次,隐含层的输出都相同,此时隐含层退化到n个串联的神经元。更可怕的是,权重为0且经过**函数输出为0,整个网络都将不更新,隐含层退化为一个神经元。
分析
前向传播:输入不同,但是针对当层的连接权重都相同,所以每一层的输出都相同。
反向传播:
1)分析后两层:输出label不同,所以损失对输出层的偏导不同,此时,最后两层之间权重更新是不同的,但第i个输出与倒数第二层所有神经元的权重更新相同,所以各个输出的偏导加权求和后,损失函数对倒数第二层的偏导仍相同。
2)分析前两层:损失对第二层的偏导都相同,但输入不同,所以前两层之间权重更新是不同的,但第i个输入与第二层所有神经元的更新相同,这就导致前向传播时,输入加权求和后,第二层所有输出仍相同。
所以不管更新几次,所有隐含层输出都相同,故网络退化,其中隐含层之间所有权重更新都相同,而前二层和后两层权重虽然不同,但有规律可循,对结果不影响。
所以对于无隐含层的模型(如而线性回归和逻辑回归),随便初始化。