Two Simple Examples
softmax classifier
后,我们介绍两个简单的例子,一个是线性分类器,一个是神经网络。由于网上的讲义给出的都是代码,我们这里用公式来进行推导。首先看softmax classifier 的例子。给定输入
X∈RN×D
,权值
W∈RD×K
,偏移量
b∈R1×K
,我们可以得到分类器对每个样本的预测分数:
f=XW+b
,我们可以用softmax 函数将预测分数转为概率:
pi=efi∑jefj
,
pi
表示样本属于第
i
类的概率,
我们可以建立如下的loss function:
下面我们推导loss对 W,b 的偏导数,我们可以先计算loss对 f 的偏导数,利用链式法则,我们可以得到:
进一步,由 f=XW+b ,可知 ∂f∂W=XT,∂f∂b=1 ,我们可以得到:
Neural Networks
上面介绍的是softmax 分类器,下面我们介绍神经网络。神经网络与softmax分类器类似,只是多了一个隐含层。我们先考虑其前向传递。
下面我们看如何利用BP对网络中的参数进行更新:
上面的表达式忽略了矩阵运算里的一些转置,实际编写代码的时候需要注意这一点,最后,我们可以得到如下的参数更新表达式:
还有一点,上式的N表示训练集里的样本总数,如果我们要用batch模型,那么可以将整个训练集分成若干个batch,那么此时的N就是每个batch的样本数。