人工智能能力构建之路

推理采用INT8;训练采用fp32;

人工智能知识构建之路

0. 内部资料

Ai相关附能汇总帖

1. 数学基础

2. 机器学习

3. 人工智能


调参经验

数据方面

1. 数据清洗

  • 缺失值、
  • 噪声数据、
  • 数据可视化、
  • 数据增强、

2. 数据标准化

标准化(除以255), 让像素值处于0-1之间,这样loss才会处于0-1之间;构建zero-center数据,加快收敛。

至于为什么要标准化:原因可以看看PCA

模型方面

  1. 权重初始化
  2. 正则化
  3. 损失函数和优化方法

Q&A

Q1:网络的层数由什么决定的?

模型确实是依据网络数据决定的、

越多的parameters可以让网络有更强的表达能力,但会让网络的训练更慢,代价变大。
比如: Resnet 152

先说层数,看数据来决定,最简单是一个输入输出层,就好比线性模型。
当然也不能一直堆积网络层数,应该从结构上考虑,比较成功的例子是:Unet(语义分割模型,医学上用的多些)。
只要机器扛得住,合理范围内网络层数越多越好,但是每层节点的个数就不能越多越好了

另外一点,网络层数的深可以形成:直接从在任意两层中传递,梯度可以更容易实现跨层传递

结论:个人觉得:网络层数达到一定深度10-30(依据数据的类型),然后增加”任意两层中传递梯度的几率“, 这句话的意思可以参考Restnet和Unet。

Q2: 层数的确定

fangfaGorman指出隐层结点数s与模式数N的关系是:s=log2N;
Kolmogorov定理表明,隐层结点数s=2n+1(n为输入层结点数);
s=sqrt(0.43mn+0.12nn+2.54m+0.77n+0.35)+0.51
(m是输入层的个数,n是输出层的个数)。

相关资料–个人没有验证

Q3: 为什么要有多个隐含层?

MIT deep learning的书籍,中间有一部分解释的也很清楚,就是为了让线性不可分的数据变得线性可分

Q4: 批训练的原因以及批size为1的意义?

Batch_size 的基本理解(这部分说的挺明确了):
批训练可以一定程度减少单个样本的多样性对训练的影响,也就是用“数据集确定的方向” 代表样本总体,物理层面有点像RAID卡的原理。

两个极端就是: 1 <= batch_size <= sample_num;
batch =1 就是SGD随机梯度下降。

  • batch的size规则
    设置的不能太大也不能太小,因此实际工程中最常用的就是mini-batch,一般size设置为几十或者几百

  • GPU对2的幂次的batch
    可以发挥更佳的性能,因此设置成16、32、64、128…时往往要比设置为整10、整100的倍数时表现更优" batch太大容易错事最有点,太小的话又会出现在局部最小点附近剃度下降特别慢,所以很多架构都有一个decay参数,在前期使用大的batch。

  1. Batch size设置以喂饱你的硬件为主要标准。只要显卡塞得下,首先挑大的。

  2. 当感觉训练时噪音不够时,比如收敛碰到鞍点或者局部最小值时,调小batch size。(很少会碰到)

  3. 当感觉训练时噪音太大时,调大batch size到喂饱硬件(因为2很少碰到,这也很少做),再不行就调小learning rate,也可以直接调小learning rate。

  4. 对于这样的数:16,32,64…… cpu不太喜欢;
    gpu恰恰相反,gpu 上最好都是 32 倍数,可见cuda gpu的文档。

  5. batch size越大每次迭代的梯度越接近样本的真实梯度。
    小的batch size能有效避免样本中的冗余信息; 大的batch能更充分利用GPU。

知乎回答

Q5: 模型效果这么差的原因可能有

1、模型实现中的bug:比如标签错误的问题。
2、超参数选择不合适:模型对超参数很敏感,学习率太高或太低都不行。
3、数据模型不适配:比如你要训练一个自动驾驶图像识别的模型,用ImageNet数据集来训练就不合适。
4、数据集的构造问题:没有足够数据、分类不均衡、有噪声的标签、训练集合测试集分布不同。

Q6: 模型推荐的默认设置:

Adam优化器学习速率3e-4
激活函数选用ReLU或tanh
ReLU初始化推荐使用He normal,tanh初始化推荐使用Glorot normal

然后:
让模型更大(比如加入更多的层,每层中使用更多的单元);
减少正规化;错误分析;
选择另一种性能更好的模型架构;调节超参数;加入更多特征。
分析错误数据,哪些错了,后续将在训练集中加入此类数据以纠正偏差。

Q7: 超参数优化

常用的超参数优化方法有:手动优化、网格搜索、随机搜索、由粗到细、贝叶斯优化。

由粗到细的随机搜索可以缩小超高性能参数的范围,缺点是由一些手动的操作。

贝叶斯优化是优化超参数最有效一种无需手动干涉的方式,具体操作请参考这里

gan 的调参规则

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值