Datawhale X 李宏毅苹果书 AI夏令营(进阶)

深度学习进阶

Task1.1      局部最小值 local minima 与 鞍点 saddle point

如何得知走到critical point时,这个点是local minima / local maxima / saddle point?

泰勒展开-Tayler Series Approximation

Error Surface 在sita附近可以写成这个样子。

g 次微分; H 里面有二次微分项;

当没有g这一项时,意味着走到 critical point ,再通过红色H这项来判断状态。

这里我们可以看到,只要我们判断出 Hessian 的正负 那么我们就可以判断到底是 local minima / local maxima / saddle point 了

从图中去判断 local minima / local maxima / saddle point

原点肯定是一个 critical point

-----> 算出 Hessian(有正有负)--> saddle point

(学会去算,忘光了都!)

(以下的方式计算量很大,以后会有更好的方法)

卡在 saddle point 并不可怕

沿着eigenvector的方向更新参数,可以告诉你下一步向哪个方向移动。

local minima V.S. saddle point

谁更常见呢?

二维空间中,local minima 相当的多;但在更高维的空间中,它会有更多路可以走时,它是不是就是saddle point了呢?

维度越高,走的路就越多呢?

local minima并没有那么常见;

当你的参数不再更新,其实往往是卡在了一个saddle point上。

小悬念

卡住了,那么如何解决呢?

Task1.2    批量 batch 和 动量 Momentum

在把所有资料分成一个一个batch的时候,第一个epoch会分成一种batch,下一个epoch会分成另一种batch;

那么哪些资料在同一个batch中 ----> 每一个epoch不一样 =====> Shuffle

为什么用batch?

左边是全batch(就相当于没用batch),右边是用了一个batch。

运用Batch的话,相比较而言,冷却时间短,但噪点多(预计不准)。(不准确的说法)

GPU平行运算,对于batch size在1000以内来说,其实用不用batch,时间都是相似的;但当batch size来到1000以上时,时间会越来越长(但也不过10s)

考虑平行运算时,一个epoch中大的batch花的时间反而比较少。

走noisy的方式,反而对training的结果是有帮助的。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值