导图社区 ML策略2
这是一篇关于ML算法策略2系统快速优化经验总结脑图。深度学习算法对随机错误健壮,系统性错误没那么健壮。具体问题人工统计分析。
编辑于2021-08-26 10:32:46这是一篇关于DPIA流程和模板的思维导图,主要内容包括:DPIA模版,DPIA概述和范围,如何执行DPIA,可接受的DPIA标准,DPIA解决什么问题,DPIA执行标准。
本文翻译了GDPR并且添加了解析,深入剖析GDPR的各个方面,可以更好地理解这一法规的重要性,并为企业和个人在数据保护方面提供有益的指导和建议。非常有价值。
这是一篇关于信息安全技术 、数据安全能力成熟度模型Informatio的思维导图,主要内容包括:附 录 C (资料性附录) 能力成熟度等级评估流程和模型使用方法,附 录 B (资料性附录) 能力成熟度等级评估参考方法,DSMM架构,附 录 A(资料性附录) 能力成熟度等级描述与 GP,DSMM-数据安全过程维度,DSMM-安全能力维度。
社区模板帮助中心,点此进入>>
这是一篇关于DPIA流程和模板的思维导图,主要内容包括:DPIA模版,DPIA概述和范围,如何执行DPIA,可接受的DPIA标准,DPIA解决什么问题,DPIA执行标准。
本文翻译了GDPR并且添加了解析,深入剖析GDPR的各个方面,可以更好地理解这一法规的重要性,并为企业和个人在数据保护方面提供有益的指导和建议。非常有价值。
这是一篇关于信息安全技术 、数据安全能力成熟度模型Informatio的思维导图,主要内容包括:附 录 C (资料性附录) 能力成熟度等级评估流程和模型使用方法,附 录 B (资料性附录) 能力成熟度等级评估参考方法,DSMM架构,附 录 A(资料性附录) 能力成熟度等级描述与 GP,DSMM-数据安全过程维度,DSMM-安全能力维度。
ML策略2
1.误差分析:手工统计工作可提高效率, 快速定位优化方向。
例1:猫识别10%误差,取100错误dev样本
5%(5个)错误识别为狗,优化狗识别, 全对提升5%,整体提升到9.5%, 努力上限低
50%(50)错误识别为狗,优化可提升50%, 整体提升到5%,可优先尝试,上限高
例2:猫识别错误中有狗、豹子、模糊图片,建统计表格
统计各类错误数量,每个错误加comment
统计中发现新的错误类,添加列,重新浏览图片
确定错误占比高的方向作为优先优化方向
可并行优化多个错误高方向
总结:找一组开发集或测试集的错误例子,观察错误标记的假阳性和假阴性,统计不同错误类型和错误数量,统计过程中可能出现新的错误类型,通过错误统计构建优化灵感。
2.清除标注错误数据:深度学习算法对随机错误健壮, 系统性错误没那么健壮。具体问题人工统计分析。
例:猫识别错误统计图表,添加错误标记列(Incorrectly labeled),分析同上
整体错误10%,错误标记占比6%, 全部修正标记提升到9.4%,影响小
整体错误2%,错误标记占比60%, 全部修正提升到1.4%,考虑修正
修正开发/测试集样本
同时修正开发/测试集,保证数据分布相同
同时检查算法判断出错和对的例子,防止只纠正错误,导致算法偏斜。 纠正正确例子比较难,准确率高,正确数据占比高
训练集数据修正可以适当放弃,训练集可以和开发/测试集分布稍有不同
经验总结:构造实际应用系统时,通常需要更多的人工错误分析,用几个小时分析错误找到优化方向。
3.快速建立第一个系统并迭代:别想太多(确定方向,经验多了也可以根据文献直接搭建复杂系统)。目的是算法应用于系统,不是创建新算法
建立目标(对错无所谓)
马上搭建机器学习原型(建立开发测试集,看表现)
用到之前讲的bias/variance和错误分析
4.在不同分布上进行训练和测试:深度学习需要大量训练数据
例1:app猫识别。从web下载大量数据200k,app获取少量数据10k,建议是training set是web的200k+app的5k,dev和test set是app个2.5k数据。这样训练和开发测试集分布不同。不用按比例分配原因-->
目标是识别app图片
按比例导致web图片在dev中占比太高 影响实际应用的目标
5.不匹配数据分布的偏差和方差:训练和开发测试集分布不同,偏差和方差分析也可能不同(例如:训练误差1%、开发集误差8%,不能确定是方差大,还是数据分布不匹配引起的。数据不匹配没有通用方法,下节讲)
解决方法是构建training-dev数据集——就是从训练集拿一部分数据。右侧从上到下不同数据集之间的误差表示不同的问题。Training set和Training-dev之间误差差别很大,说明方差大。Train set和Training-dev误差接近,Training-dev和Dev之间误差大,说明数据不匹配
Human level 4% ——>avoidable bias Training set error 7% ——>variance Training-dev set error 10% ——>data mismatch Dev error 12% ——>degree of overfittng Test error 12%
通用方法,图片是课件语音识别例子,右侧给出通用解释
General speed recognition:收集到的数据(web下载、购买的等等)
Rearview mirror speech data:实际应用采集数据
Human level:人识别误差
Error on examples trained on:训练集误差
Error on examples not trained on:非训练集误差
红色L行框分析通用流程,如上面的分析
第二列3个6%,说明开发测试集与人识别相当,结果已经不错了
右侧圈圈,偏差/方差分析,解决方案在前面已经讲过
6.定位数据不匹配
人工分析训练集、开发/测试集不同,主要检查开发集数据
使训练集数据更像开发/测试集(人工合成数据:可能产生过拟合,小部分数据用于大量合成)
7.迁移学习:(应用频率高) 神经网络从一个任务重学到知识,应用到另一个任务中
例:训练好的网络A,应用到其它任务B。B数据少只训练最后一层。数据收集的足够多,再进行整个网络训练。这就是有些文献提到的,A是预训练、B是微调
迁移学习何时有意义
任务A和任务B有相同的输入x
迁移来源A有很多数据,目标问题B没那么多数据
A低层次特征对任务B有帮助
8.多任务学习:(应用频率低,案例物体检测) 试图让单个神经网络同事做几件事,每个任务能帮助其它任务
例:一个图片同时识别图片中4个物体,损失函数修改为如下 cost=1m∑i=1m∑j=14loss(y^j(i),yj(i))cost = \frac{1}{m} {\displaystyle \sum_{i=1}^{m}} {\displaystyle \sum_{j=1}^{4}{loss(\widehat{y}_{j}^{(i)},{y}_{j}^{(i)})}} cost=m1i=1∑mj=1∑4loss(y j(i),yj(i)) 也可以用多个二分类,上面方法会比多个二分类效率高
多任务何时有意义
训练的一组任务可以共用低层次特征
每个任务数据量很接近(这个条件不那么绝对,经验之谈)
训练足够大的神经网络,同时做好所有任务
9.什么是端到端的深度学习: 简而言之,以前到一些数据处理系统或者学习系统,它们需要多个阶段的处理。端到端的学习就是忽略所有这些不同的阶段,用单个神经网络来替代它。(需要大量数据训练才可能有好的效果,超过传统方法)
例1:语音识别(输入声音x输出文本y),传统上需要多阶段处理(音频提取特征、音频片段中找到音位、串联音位串联起来构成词)。端到端的学习是训练一个巨大的神经网络输入一段音频,直接输出文本
例2:人脸识别,当前比较好的方式先检测人脸,再判断人脸是谁的。
例:翻译......
10.是否使用端到端的学习: 通过优缺点来判断准则
优点
只让数据说话:数据够多,训练大的网络,不用被迫引入人类偏见。
手工设计的组件少
缺点
需要大量的数据
忽略掉潜在的有用的手工组件
应用端到端的关键:大量数据去训练学习x到y的复杂的函数