8.神经网络的学习(Neural Networks: Learning)
文章目录
本章编程作业及代码实现部分见:多类分类和神经网络 神经网络中的反向传播
8.1 代价函数
首先引入一些便于稍后讨论的新标记方法:
假设神经网络的训练样本有 m m m个,每个包含一组输入 x x x和一组输出信号 y y y, L L L表示神经网络层数, S I S_I SI表示每层的neuron个数( S l S_l Sl表示输出层神经元个数), S L S_L SL代表最后一层中处理单元的个数。
将神经网络的分类定义为两种情况:二类分类和多类分类,
二类分类: S L = 0 , y = 0   o r   1 S_L=0, y=0\, or\, 1 SL=0,y=0or1表示哪一类;
K K K类分类: S L = k , y i = 1 S_L=k, y_i = 1 SL=k,yi=1表示分到第 i i i类; ( k > 2 ) (k>2) (k>2)
我们回顾逻辑回归问题中我们的代价函数为:
J ( θ ) = 1 m ∑ i = 1 m [ − y ( i ) log ( h θ ( x ( i ) ) ) − ( 1 − y ( i ) ) log ( 1 − h θ ( x ( i ) ) ) ] + λ 2 m ∑ j = 1 n θ j 2 J\left( \theta \right)=\frac{1}{m}\sum\limits_{i=1}^{m}{[-{
{y}^{(i)}}\log \left( {h_\theta}\left( {
{x}^{(i)}} \right) \right)-\left( 1-{
{y}^{(i)}} \right)\log \left( 1-{h_\theta}\left( {
{x}^{(i)}} \right) \right)]}+\frac{\lambda }{2m}\sum\limits_{j=1}^{n}{\theta _{j}^{2}} J(θ)=m1i=1∑m[−y(i)log(hθ(x(i)))−(1−y(i))log(1−hθ(x(i)))]+2mλj=1∑nθ