文档开发者中心
我的

让你少走弯路:这有一份开展机器学习的简短指南

这是一份关于开展机器学习的简短指南,以下为译文。

简单任务:

假设你有一个问题,并且你喜欢用机器学习来解决它,然后在现实项目中使用该系统。我喜欢简单分享下我的方法,目的是给初学者提供基本的指导并记录这些东西来提醒自己。

当遇到任何问题,首先有很多的学习算法,建立的大数据知识应用在针对某些特定问题的模型上,所有的这些想法都遵循以下三个阶段:

1 定义基于度量的目标

2 建立系统

3 用更多的数据优化系统

下面查看这些步骤的更多细节

定义目标和指标

人类水平 VS 可接受

第一件事情,是需要从系统性能中调整预期质量。我们所期望的人类水平的表现,如果它是医疗诊断系统,或者它是一个简单的移动应用程序,我们可能更喜欢成本较低的。这一决定定义了系统的成本(时间,金钱和工程)。当我们增加期望时,也需要投入更多的成本。

什么指标用于度量

针对面临的相关问题,定义合适的指标衡量系统性能。它应该匹配问题的性质。可能的选择是以下这些;

l 精确 - 目标分类


l 复查 - 医疗诊断


l 大量错误 - 房屋租赁价格预测


l F评分 - 文献分类分类


定义合适的指标会造成巨大的特性差异。它涉及在你开发解决方案的人工环境中了解用户(或客户)和找到用户的选择的匹配标准过程。

建立系统

创建基线ASAP

不要试图设计出没有时钟的时间机器。首先设计有着任何工具和算法、易于使用和实现的最小可行的系统。将这个定义为基线。基线对于显示你的增益什么而言是有用的,无论它是显著性、随机性或者其它。

改善基线

当基线系统完成后,就可以开始向里添加内容。遵循一些渐近的步骤会使得事情更容易跟随,那么当一些事情不像预期那样工作,也容易进行备份。不要浪费时间在最先进的空间技术水平,如果数据有需求,那么就竭力获得更高级的方法。

例如,针对你的问题,并不总是直接使用ImageNet胜利者的初始网络就是正确的选择。基于对数据的观察后再定义你的模型结构。在一般情况下,如果噪声和数据是易于分离的,那么可以使用较浅的模型。噪声减小并且数据结构增加就需要去采取更深更宽的模型。

更深与更宽模型之间的差别在于:更深层次的模型更好地捕捉到更高层的抽象特征,这些对于区分特别不同的类别(汽车 VS 马)而言是非常重要;更宽的模型更好地处理精细的问题,比如处理类别之间非常接近、只有轻微的共性区分(猫的种类)。

模型的种类

基于你的问题,有更好的机器学习模型的子集,这些模型也可能用于其它问题,但最好始终保持模型的性质和问题的性质相一致。

l 原始数据 ——> 全连接网络(MLP)


l 空间数据(图像)——>卷积网络


l 时间、序列数据——>递归神经网络(LSTM,RNN,GRU)


提炼数据

假设你完成你的系统后并取得了很好的结果,但这不是结束,仍然有相关工作需要做:

不要相信数字

虽然之前总是基于受控环境中的度量值来衡量成功。但这些值可能不是现实世界中的指标,因为数据可能会改变或者用户可能会改变。因此,在初始应用后要经常检查系统的性能。做A / B测试,用实时数据检查指标值,并使用实际值验证你的假说。

更新最新的数据

如果能够及时获得更多的数据并总用它来更新和调整模型,更多的数据一定会提高性能。不要跳过这一过程,因为随着越来越多的数据更新系统,你甚至可以达到难以想象的结果。这也是像谷歌这样一类大公司的技巧。他们真的熟练使用并运行数据以提高他们的产品。

最后一句话

这篇文章中,跳过了很多内容,比如训练模型,发现其缺陷并进行修改,重复这一过程以提升性能,你可以看另外一篇文章查看具体的细节。


本文由北邮@爱可可-爱生活 老师推荐,阿里云云栖社区组织翻译。


点赞
2
收藏
2
回复
3
分享
举报
浏览1612 发布于2019-07-30 05:36未知归属地
全部评论
最多点赞
最新发布
最早发布

起步中,希望自己能为开发者论坛添砖加瓦


3楼回复于2019-08-02 17:46 未知归属地

顶上去大家都看到


2楼回复于2019-08-02 17:29 未知归属地

感谢分享

1楼回复于2019-07-30 07:12 未知归属地
写回答
新增插入模板功能
一键使用模板,快速填写内容,轻松发帖~
知道了
  • 为了保障您的信息安全,请勿上传您的敏感个人信息(如您的密码等信息)和您的敏感资产信息(如关键源代码、签名私钥、调试安装包、业务日志等信息),且您需自行承担由此产生的信息泄露等安全风险。
  • 如您发布的内容为转载内容,请注明内容来源。

我要发帖子

目录 收起
简单任务:
了解社区公约,与您携手共创和谐专业的开发者社区。