在深度前馈网络中假设有数据集{ (x(1),y(1)),...,(x(m),y(m))}\left \{ (x^{(1)},y^{(1)}),...,(x^{(m)},y^{(m)}) \right \}{ (x(1),y(1)),...,(x(m),y(m))}
构建代价函数,其中sls_{l}sl表示第lll层的节点数 J(W,b)=1m∑i=1mJ(W,b;x(i),y(i))+λ2∑l=1N∑i=1sl−1∑j=1sl(Wji(l))2J(W,b)=\frac{1}{m}\sum_{i=1}^{m}J(W,b;x^{(i)},y^{(i)})+\frac{\lambda}{2}\sum_{l=1}^{N}\sum_{i=1}^{s_{l-1}}\sum_{j=1}^{s_{l}}(W_{ji}^{(l)})^{2}J(W,b)=m1i=1∑mJ(W,b;x(i),y(i))+2λl=1∑Ni=1∑sl−1j=1∑sl(Wji(l))2
在前向神经网络中,假设第lll层的参数为W(l)W^{(l)}W(l)和b(l)b^{(l)}b(l),每一层的线性变换为z(l)=W(l)x(l)+b(l)z^{(l)}=W^{(l)}x^{(l)}+b^{(l)}z(l)=W(l)x(l)+b(l),非线性变换后输出为a(l)=f(z(l))a^{(l)}=f(z^{(l)})a(l)=f(z(l)),这也就是下一层的输入即x(l+1)=a(l)x^{(l+1)}=a^{(l)}x(l+1)=a(l)。我们利用批量梯度下降法来更新参数,我们先计算代价函数对隐含层的偏导∂J(W,b)∂zj(l)=∑k=1sl+1∂J(W,b)∂zk(l+1)∂zk(l+1)∂zj(l)\frac{\partial J(W,b)}{\partial z_{j}^{(l)}}=\sum_{k=1}^{s_{l+1}}\frac{\partial J(W,b)}{\partial z_{k}^{(l+1)}}\frac{\partial z_{k}^{(l+1)}}{\partial z_{j}^{(l)}}∂zj(l)