神经网络与梯度下降算法之一

神经网络与梯度下降算法

前言

从很大程度上来说,深度学习实际上是非常复杂的函数,包含数百万个参数,这些参数代表的是一个问题的数学解答。梯度下降算法是深度学习算法框架,主要作用是用以寻找最优参数,从而解决大量烦人的优化问题。学习过《高等数学》,尤其是《数值分析》的同学,掌握起来并不算困难。
有关梯度算法,资料汗牛充栋,这儿就不再赘述了,只是把自已学习中疑惑的地方记录下来,帮助自已学习的同时,希望也能给同行者以帮助。

梯度与代价函数

学习梯度时我们常看到下面这幅图。
在这里插入图片描述这幅图是二维图。图中的曲线代表的是代价函数,W是所求的参数。当代价函数取得最小值时,此时的W值也就是代价函数的最优解,为我们所求结果。此时的梯度是一阶导数。在这里插入图片描述上图为三维图,图中的曲面为代价函数,此时需要优化的参数是X和Y,Z轴是代价函数。此时曲面的梯度可以看成是一个切面。
此时我产生了第一个疑问,什么是代价函数?

代价函数

假设二维平面内有一些散乱的点,如下表所示。

XY
14
25
35
42
54
67
78
88
912
1011

我们用一次函数来进行拟合,这个一次函数就是预测函数,每一个输入x,根据Θ 计算得到预测的y值。
h Θ ( x ( i ) ) = Θ 0 ∔ Θ 1 x 1 ( i ) h_{\Theta}\left ( x^{\left ( i \right )} \right )= \Theta _{0}\dotplus \Theta _{1}x_{1}^{\left ( i \right )} hΘ(x(i))=Θ0Θ1x1(i)

构造代价函数,此处选用均方误差代价函数。均方误差代价函数是代价函数的一种。
J ( Θ ) = 1 2 m ∑ i = 1 m ( h Θ ( x ( i ) ) − y ( i ) ) 2 J\left ( \Theta \right )= \frac{1}{2m}\sum_{i= 1}^{m}\left ( h\Theta \left ( x^{\left ( i \right )} \right )-y^{\left ( i \right )} \right )^{2} J(Θ)=2m1i=1m(hΘ(x(i))y(i))2
展开后:
J ( Θ ) = 1 2 m ∑ i = 1 m ( Θ 0 + Θ 1 ( x ( i ) ) − y ( i ) ) 2 J\left ( \Theta \right )= \frac{1}{2m}\sum_{i= 1}^{m}\left ( \Theta _{0}+\Theta_{1} \left ( x^{\left ( i \right )} \right )-y^{\left ( i \right )} \right )^{2} J(Θ)=2m1i=1m(Θ0+Θ1(x(i))y(i))2
此公式中:

  • m是数据集中点的个数,在此处,也就是我们构造的数集,是10。
  • ½是一个常量,这样是为了在求梯度的时候,二次方求导正好有个2,就和这里的½抵消了,自然就没有多余的常数系数,方便后续的计算,同时对结果不会有影响
  • y 是数据集中每个点的真实y坐标的值

从上面的式子可以看:均方误差代价函数就是由所有数据点的预测值和实际值差的平方的平均值的一半构成的。在这个函数中有两个变量一个是Θ0和Θ1,x(i)和y(i) 是数据集中的,具有实际具体的值。

Θ0和Θ1取不同的值,预测函数预测值和真实值之间的误差就不同,代价函数的值也就不同,我们希望的当然是预测值和真实值两者之间误差最小了,此时也就是代价函数的取得最小值时。
从而这个问题就变:Θ0和Θ1取什么值时,代价函数取得极小值,从而获得最优预测函数。这个问题就变寻优问题,解决方法就是梯度下降算法。

梯度上升下降与凹函数和凸函数

有关梯度下降法的资料很多了,就不再赘述。这儿只讲让我迷惑的地方。
在这里插入图片描述过观察上图我们得到如下结论:

  • 不管是凹函数还是凸函数,一维函数中梯度增加的方向就是函数增加的方向,反方向就是减小的方向就是函数减小的方向,同样也可以推广到多维函数。
  • 求函数极大值时就选梯度增加的方向,极小值时就选梯度减小的方向。
  • 当梯度等于0时,并不能确定是极小值还是极小值,要结合二阶梯度。但是当迭代计算确定了是梯度的方向时,不用计算二阶梯度也可以确定是极小值还是极大值。
  • 当梯度变化够小时就可以了,变化足够小,也就是梯度足够小。
    ##梯度下降算法实现将在第二节一起学习
相关链接

https://www.jianshu.com/p/c7e642877b0e

https://mp.weixin.qq.com/s?__biz=MzU0NjgzMDIxMQ==&mid=2247601043&idx=4&sn=eb9b147e6f538a9f91b4d8008629d40d&chksm=fb54a97fcc2320698c846421da5c429dc279dc9e03d4f724afd9df4a828c746fd5fd3ac4f92e&scene=27

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值