跟我学神经网络2-反向传播


公众号
欢迎关注《汽车软件技术》公众号,回复关键字获取资料。

1. 关键词

梯度下降链式法则反向传播

2. 导读

本文介绍了反向传播的数学基础,及其过程。

3. 数学基础

3.1 梯度下降

神经网络求解的目的,是使输出值更接近于真实值,这就转化成一个求最优解或最小值的过程,最常用的就是梯度下降法。从山顶沿负梯度方向(导数的反方向),一步步走到山底。
Gradient-Descent
上图也演示了梯度下降受到起点的影响,得到的是局部最优解,并不一定是全局最优解。

3.2 链式法则

求解梯度就是求导数,但复杂的函数,不能一次性求出。因此需要引入链式法则。
∂ z ∂ x = ∂ z ∂ y ∂ y ∂ x ∂ ( z + y ) ∂ x = ∂ z ∂ x + ∂ y ∂ x \frac{\partial z}{\partial x}=\frac{\partial z}{\partial y}\frac{\partial y}{\partial x}\\ \frac{\partial(z+y)}{\partial x}=\frac{\partial z}{\partial x}+\frac{\partial y}{\partial x} xz=yzxyx(z+y)=xz+xy

3.3 学习率

在得到梯度后,需要选择合适的步长,称作学习率。学习率不是越大,收敛的越快。如下图,左边的学习率大,反而不收敛;右边的学习率小,反而收敛。
Learning-Rate
学习率一般取一个小的数,或者多尝试几个,选择结果最好的。

4. 代价函数

在机器学习中,寻找最优解的目标函数,通常成为代价函数,表示输出值和真实值的误差。神经网络代价函数很复杂,公式如下:
J ( Θ ) = − 1 m [ ∑ i = 1 m ∑ k = 1 K y k ( i ) log ⁡ ( h Θ ( x ( i ) ) ) k + ( 1 − y k ( i ) ) log ⁡ ( 1 − ( h Θ ( x ( i ) ) ) k ) ] J(\Theta)=-\frac1{m}\left[\sum\limits_{i=1}^{m}\sum\limits_{k=1}^{K}y_k^{(i)}\log\left(h_{\Theta}(x^{(i)})\right)_k+(1-y_k^{(i)})\log\left(1-\left(h_{\Theta}(x^{(i)})\right)_k\right)\right] J(Θ)=m1[i=1mk=1Kyk(i)log(hΘ(x(i)))k+(1yk(i))log(1(hΘ(x(i)))k)]
其中:

  • m m m,输入数据的数量;
  • i i i,第 i i i 次输入, i ∈ [ 1 , m ] i\in[1,m] i[1,m]
  • k k k,第 k k k 个输出单元, k ∈ [ 1 , K ] k\in[1,K] k[1,K]
  • K K K,输出单元数量;
  • j j j,第 L + 1 L+1 L+1 层第 j j j 个神经元
  • l l l,第 l l l 层, l ∈ [ 1 , L ] l\in[1,L] l[1,L]
  • L L L,总层数;
  • s l s_l sl,第 l l l 层神经元数量。

因为逻辑回归也使用了 sigmod 函数,所以代价函数有相似之处,注意区分:
J ( θ ) = − 1 m [ ∑ i = 1 m y ( i ) log ⁡ ( h θ ( x ( i ) ) ) + ( 1 − y ( i ) ) log ⁡ ( 1 − ( h θ ( x ( i ) ) ) ) ] J(\theta)=-\frac1{m}\left[\sum\limits_{i=1}^{m}y^{(i)}\log\left(h_{\theta}(x^{(i)})\right)+(1-y^{(i)})\log\left(1-\left(h_{\theta}(x^{(i)})\right)\right)\right] J(θ)=m1[i

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值