十一、神经网络的成本函数和误差反向传播算法

1、Cost Function

\qquad 对于逻辑回归来说,归一化之后的成本函数形式如下所示:
在这里插入图片描述
\qquad 神经网络的成本函数是上述逻辑回归成本函数的一般泛化,其形式如下所示:
在这里插入图片描述
\qquad 其中 L L L表示神经网络的层数, s l s_l sl表示第 l l l层中的神经元的个数, K K K表示输出层神经元的个数,即分类的数量。注意归一化项中不包含偏置项的归一化处理。

2、反向传播算法-Backward Algorithm

\qquad 目标是寻找成本函数的最小值,反向传播算法的目的是通过误差反向传播的方式来求解需要成本函数 J ( θ ) J(\theta) J(θ)关于预测参数 θ \theta θ的导数。误差反向传播的步骤如下所示:
在这里插入图片描述
\qquad δ ( L ) \delta^{(L)} δ(L)的计算方式如下所示:
在这里插入图片描述
\qquad 最终近似求解偏导数的方式如下所示:
在这里插入图片描述
\qquad 其中, D D D即为成本函数 J ( Θ ) J{(\Theta)} J(Θ)关于参数 Θ \Theta Θ的近似偏导数:
在这里插入图片描述

3、反向传播在实践中的应用

\qquad 在进行正向传播求激活值或者反向传播求误差值时,权重矩阵一般采用矩阵的形式;但是在进行参数优化时,一般采用长向量的形式,所以在计算时需要灵活转换。反向传播机制下参数学习算法的流程如下所示:
在这里插入图片描述

3.1 梯度检验-Gradient Checking

\qquad 为了保证梯度计算的正确性,通常使用梯度检验来测试算法。使用割线的斜率代替导数的值时近似计算导数的常规思路:
在这里插入图片描述
\qquad 使用割线斜率检测误差反向传播计算的梯度的准确性:
在这里插入图片描述
\qquad 当检验完反向传播计算的梯度没有问题之后,在训练模型参数时,需要将检验梯度正确性与否的代码屏蔽掉,否则训练的过程将非常缓慢,因为误差反向传播的计算速度远高于通过割线计算梯度的速度。

3.2 随机初始化-Random Initialization

\qquad 若将参数 Θ \Theta Θ开始全部设置为0,则在每一次迭代之后,由同一个神经元连接的不同子神经元的输入结果 z z z全部相同,则使得神经网络探索的特征数量下降,会降低神经网络的性能。
\qquad 为了使神经网络更加有效,通常采用随机初始化参数 Θ \Theta Θ的方式,将 Θ i j ( l ) \Theta_{ij}^{(l)} Θij(l)取值为 [ − ϵ , ϵ ] [-\epsilon,\epsilon] [ϵ,ϵ]中的任意值。随机初始化也叫作打破对称性-Symmetry Breaking。

4、神经网络算法整体流程

\qquad 1、选择一个神经网络结构-神经元之间的连接方式

在这里插入图片描述
\qquad 输入单元的数量即为:特征数量 x ( i ) x^{(i)} x(i),输出单元的数量即为:分类的个数;隐藏层若多于一层,则每一层应该含有相同数量的神经元,同时通常来说,层数越多,模型效果越好,但是相对的计算时间会加长。对于每一个隐藏层的神经元个数,其通常为输入特征数量的2-3倍。
\qquad 2、训练一个神经网络,包含以下六步:
\qquad\qquad 2.1 随机初始化权重,通常初始化为接近0的数;
\qquad\qquad 2.2 执行前向传播,对于每一个输入 x ( i ) x(i) x(i)获得其输出结果 h Θ ( x ( i ) ) h_{\Theta}(x^{(i)}) hΘ(x(i))
\qquad\qquad 2.3 求解成本 J ( Θ ) J(\Theta) J(Θ)
\qquad\qquad 2.4 执行误差反向传播来计算偏导数 ∂ ∂ Θ ( j k ) ( l ) J ( Θ ) \frac{\partial}{\partial \Theta_{(jk)}^{(l)}}J(\Theta) Θ(jk)(l)J(Θ)
在这里插入图片描述
\qquad\qquad 2.5 使用梯度检验来检查通过误差反向传播计算的梯度和通过数值估计计算的梯度是否近似相同,若相同,则将这部分代码注释掉,在训练模型参数时不进行使用
\qquad\qquad 2.6 使用梯度下降或者高级优化方法来由于以 Θ \Theta Θ为参数的成本函数 J ( Θ ) J(\Theta) J(Θ)

THE END

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Dragon Fly

多谢老板赏钱[抱拳抱拳抱拳]

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值