softmax与sigmoid求导
softmax求导
softmax & sigmoid
再补充一下softmax与sigmoid的联系。当分类问题是二分类的时候,我们一般使用sigmoid function作为输出层,
表示输入 属于第1类的概率,然后利用概率和为1来求解 属于第2类的概率
乍一看会觉得用sigmoid做二分类跟用softmax做二分类不一样:
在用softmax时,output的维数跟类的数量一致,而用sigmoid时,output的维数比类的数量少;
在用softmax时,各类的概率表达式跟sigmoid中的表达式不相同。
但实际上,用sigmoid做二分类跟用softmax做二分类是等价的。我们可以让sigmoid的output维数跟类的数量一致,并且在形式上逼近softmax。
backpropagation
CNN求导
卷积层实际上是特殊的全连接层,只不过: 神经元中的某些w为0 神经元之间共享 w。 具体来说,如下图所示,没有连线的表示对应的w为0:
RNN 求导
max pooling求导
一般来说,函数max(x,y)是不可导的,但假如我们已经知道哪个自变量会是最大值,那么该函数就是可导的(e.g.,假如知道y是最大的,那对y的偏导为1,对其他自变量的偏导为0)。 而在train一个神经网络的时候,我们会先进行forward pass,之后再进行backward pass,因此我们在对max pooling求导的时候,已经知道哪个自变量是最大的,于是也就能够给出对应的gradient了。