A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

1)算法目标设定

   首先要确定一个算法目标及约束条件,比如运行时间、硬件内存限制、准确度等选择算法。





学习效果一般尽量采用单个指标进行评估,对于 N 个评价指标,选择其中一个指标作为优化指标,选择剩下的 N-1 个指标作为满足指标。



比如针对分类,有些场合关注查准率,有些场合关注查全率,而有些是用F1 score来评估。这些效果跟具体应用需求相关。





另外还应该确定应用的最后一级输出,比如除了分类外,是否还应该输出位置或者特征点,制定对应的代价函数。



2) 优化流程及确认优化方向



  深度学习时,一般可以把数据集分为Training set、Dev set、Test set。

  Training set:一般用于训练模型。

  Dev set:用于评估不同算法以及不同超参数训练出来的模型在Dev set上的效果。

  Test set: 选定模型后在测试集上评估效果。



  算法的优化流程一般如下:

Fit Training set well
Fit Dev set well
Fit Test set well
Perform well in real world


降低Training Set的错误率和降低Dev set的错误率有不同的优化方法,因此要先判断算法的优化方向。这个一般可以通过对比偏差与方差来做判断。

在自然感知上的问题,如计算机视觉、语音识别、自然语言处理,目前机器识别还很难超过人类专家水平。以图片分类为例,人类专家团队的水平可以做到0.3%,可以作为一个比较基准,以下是一种训练结果:

Base error:0.3%,

Training error :1.0%

Dev error: 1.1%

当 (Training error - Base error = 0.7%)超过(Dev error - Training error=0.1%)时,算法的优化方向应该去寻找降低训练误差的方法,比如增加迭代次数,找更多的数据,更深的网络等。

反之,算法的努力方向是降低方差,这时要采用dropout、正则化或者寻找新的网络结构等方法。





如果训练集和验证集错误率都很低,而实际场景使用时错误率比较高,可能就是开发集和真实场景数据不匹配问题,也就是他们的数据分布不同。这时就要想办法把更多真实数据引入到训练集和开发集中。



3)优化策略

错误分析
错误分析一般是人工进行的,方法是对错误分类的样本进行归类分析,然后改进算法,解决比例最高的那一类错误。



超参数种类及范围选择


超参数范围选择一般不会用线性坐标,而应该用对数坐标:

比如学习率的选择,我们需要将区间对数化来采样。例如我们将[0.0001,1]转化成四个区间[0.0001,0.001],[0.001,0.01],[0.01,0.1],[0.1,1],每个区间各取几个数,而不是直接在[0.0001,1]上平均做选择。



正交化思想应用
调节超参数,优化自己想改善的性能,而不会影响其他性能。

应用正交化的思想,我们可以独立地解决高偏差和高方差的问题。

解决高偏差问题的方法有:

训练更大的模型
训练更长时间 / 使用更好的优化算法(如使用动量、RMSprop、Adam 等)
调整神经网络结构(如调整网络层数、激活函数,使用 CNN、RNN 等)/ 进行超参数搜索
解决高方差问题的方法有:

获取更多数据
正则化(如 L2 正则化、Dropout 等)
调整神经网络结构 / 进行超参数搜索


迁移学习
当新的学习任务的训练样本数量不足时,可以采用迁移学习进行算法优化。

比如一个训练好的学习猫的网络,用于其他图片学习。可以把以下的红色部分去掉,创建一些新的网络,作为新的层,新创建层的参数进行随机初始化,使用新任务的数据集,重新进行训练。



迁移学习的前提条件如下:

任务 A 和任务 B 具有相同的输入 x
任务 A 的可用数据远远多于任务 B
任务 A 的低层特征有益于任务 B 的学习


4)网络模型简化

    精通训练算法情况下设计层数核节点更小的网络,精度下降可接受范围。





5)网络模型压缩

这个主要以深鉴为代表,针对训练后的模型进行压缩,在边缘设备部署推理功能时降低对计算和存储的需求。神经网络压缩算法,能够在保证基本不损失算法精度的前提下,将网络模型的计算量和规模压缩数倍至数十倍。

深鉴科技网络压缩算法原理:



剪枝Pruning,发现网络中对总体结果影响不大的权重,直接去掉它们。比如直接去掉权重绝对值小于0.1的连接,再进行fine-tune
第二个步骤是利用Code Book做量化。它是说把32bit长度的浮点数压缩到8bit甚至4bit。
用霍夫曼编码的形式存储数据





---------------------
【转载】
作者:拾贝壳的大男孩
原文:https://blog.csdn.net/weixin_38712697/article/details/83475022


3 个回复

倒序浏览
回复 使用道具 举报
回复 使用道具 举报
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马