【AI之路】如何开始一个深度学习

1. 如何开始一个深度学习?

  1. Function with unknown parameters

    w and b are unknown parameters

    w -> weight b->bias

  2. Define loss from training data

  3. Optimization

    梯度下降,算积分,使得Loss趋近于最小

​可反复增加层数,来达到建立深度神经网络的目的,如下图所示。由图也不难看出,神经网络其实并没有我们想象的那么抽象,我们可以将其视为参数的叠加累计。

2. 模型无法训练起来?

  • model bias

    参数不够,如同大海捞针,针却不在海里

  • optimization issue

    梯度下降却无法得到最优解,如同大海捞针,方法不好捞不到针

解决方法:

  1. 比较不同的模型
  2. 从浅的网络或一些简单的模型开始优化
  3. 如果运用了深度网络,loss却不如其它简单模型来得好,那么可以归结于optimization issue,如下图所示:

3. General Guide

首先判断在训练数据上的损失,在保证小的情况下再判断测试数据的损失

4. 局部最小值与鞍点

local minima and saddle point

4.1 Hessian

海塞矩阵: 用于确定区分局部最小值与鞍点

在梯度为0的情况下,计算L(),以此判断鞍点与局部最小

求二次偏导,构成hessian matrix,若此时特征值有正有负,则这个点为鞍点

选取特征值为负所对应的特征向量u

uTHu

用这种方法可逃离鞍点,降低loss

5. 批次与动量

batch and momentum

结论:

  • small batch size has better performance
  • Noisy update is better for training

5.1 Small Batch vs Large Batch

batch size 代表将训练资料分成多少块(batch),每块的大小即为Batch Size

  • 在没有平行计算时,小的batch自然比大的batch计算的要快,这就好比计算10道数学题和计算100道数学题之间的区别

  • 有平行计算时,由于batch中的资料是同时开始计算,所花费的时间等同于计算1道数学题的时间

  • 一次epoch代表利用所有分好的batches进行训练,每个batch内的计算是基于平行计算,因此,如果batch分的小,那么计算次数就多,计算速度就慢;反之速度就快

  • Noisy的数据有利于训练

  • small batch有助于跳出局部最优解

参考资料

  1. 李宏毅2021机器学习

  2. 《统计学习方法》李航著,第2版,北京:清华大学出版社,2019

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

CodeSlogan

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值