(3)机器学习任务攻略(Saddle Point v.s. Local Minima)

Critical Point

Training Fails because

常常在做Optimization的时候,会发现随著参数不断的update,training的loss不会再下降,但是这个loss仍然不好(可以把deep network跟linear model或shallow network 比较,发现deep network效果没有更好)所以Optimization显然是有问题的

​ 因为用gradient descent会卡在某个参数对loss的微分为零的地方,所以gradient descent不继续工作导致deep learning不再有效果。

​往往认为gradient descent某个参数对loss的微分为零的地方就是local minima,但不是只有local minima的gradient是零,还有其他可能会让gradient是零比如saddle point,所谓的saddle point其实就是gradient是零但是不是local minima也不是local maxima的地方,在右边这个例子里红色的这个点,它在左右这个方向比较高,前后这个方向比较低,就像是一个马鞍的形状,所以叫做saddle point中文为鞍点。

那像这种gradient为零的点统称为critical point,所以loss没有办法再下降也许是因为卡在了critical point

​判断到底是卡在local minima,还是卡在saddle point呢

  • 如果卡在local minima那可能就没有路可以走了
  • 但saddle point就没有这个问题,只要逃离saddle point就有可能让loss更低

在这个知识点需要的数学基础(可skip)

Tayler Series Approximation 泰勒级数展开

​ 如果给定某一组参数蓝色的这个θ′,在θ′附近的loss function是有办法被写出来的,这个式子是Tayler Series Appoximation泰勒级数展开

  • g是一个向量也就是我们的gradient会来弥补θ′跟θ之间的差距

       第三项跟Hessian有关,hessian就是里面有二次微分的项目

Hession

​那如果我们今天走到了一个critical point意味着gradient为零,也就是绿色的这一项不见了,所以当在critical point的时候loss function可以被近似认为是L(θ′)加上红色这一项

​ 我们可以根据红色的这一项来判断,在θ′附近的error surface是什么样子

为了符号方便起见,把(θ−θ′)用v这个向量来表示

  • 如果对任何可能的v,vTHv都大于零,也就是说现在θ不管代任何值,v可以是任何的v,红色框框都大于零,那意味 L(θ)>L(θ′)。L(θ)不管代多少 只要在θ′附近L(θ)都大于L(θ′),代表L(θ′)是附近的一个最低点,所以它是local minima
  • 如果反过来对所有的v而言vTHv都小于零,也就是红色框永远都小于零意味着L(θ)<L(θ′),代表L(θ′)是附近最高的一个点,所以它是local maxima
  • 第三个假设vTHv有时候大于零 有时候小于零,代不同的v和θ进去,红色框里有时候大于零有时候小于零,证明在θ'附近有时候L(θ)>L(θ') 有时候L(θ)<L(θ'),即在L(θ')附近有些地方高 有些地方低,证明这是一个saddle point

线性代数理论上如果对所有的v而言vTHv都大于零,那这种矩阵叫做positive definite 正定矩阵它所有的eigen value特征值都是正的

​ 所以算出一个hessian不需要把它跟所有的v都乘,只要去直接看这个H的eigen value:

  • 所有eigen value都是正的就证明是一个local minima
  • 如果eigen value都是负的就保证是local maxima
  • 那如果eigen value有正有负就代表是saddle point

​ 但是在实际的implementation里面,几乎不会真的把Hessian算出来,因为需要的运算量非常的大,更别提要把它的eigen value跟 eigen vector找出来。

Saddle Point v.s. Local Minima

那到底saddle point跟local minima谁比较常见呢?

从三维的空间来看是没有路可以走的东西,在高维的空间中是有路可以走的,error surface会不会也一样呢

在一维的空间中一个参数的error surface,会让人觉得好像到处都是local minima,但是会不会在二维空间来看它就只是一个saddle point呢,或者这个local minima只是在二维的空间中看起来是一个local minima,在更高维的空间中它看起来就是saddle point。又或者在二维的空间中我们没有路可以走,因为更高的维度我们没办法可视化,会不会在更高维的空间中其实有路可以走的。训练一个network的时候参数往往动辄百万千万以上,所以error surface其实是在一个非常高的维度中,参数有多少error surface的维度就有多少,会不会其实根本就有非常多的路可以走呢,那既然有非常多的路可以走,会不会其实local minima根本就很少呢

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值