◆ ◆ ◆
不要从理论开始
传统的方法教机器学习是自下而上的——
step1:努力学习数学。
step2:努力学习机器学习理论。
step3:努力从头开始实现算法。
stepX???(等等等等,自行脑补。。。)
终于,开始使用机器学习(你的目标在此!)
这条路漫长,艰难。
然而,这是为想要摘金夺银的学术界大神们设计的。
你,只想要一个结果的吃瓜群众,凑什么热闹!
陷阱
如果你有以下想法或者说法,你已不幸落井——
我得先完成这门线性代数的课才行。
我得回学校先读个博士学位。
我得先啃完这本教科书。
出路
耗费4年在数学或者深奥的算法上,能将你带到目标么?
更大的可能是然并卵。你停步不前。或者知难而退。反正离你的目标不会越来越近。
出路是——立正,稍息,向后转!
如果机器学习的价值在于准确的预测,那么要学的就是如何将问题模式化并做出准确的预测。就从这开始。
然后把这件事儿弄好,好得不要不要的!
在你需要的时候,去阅读、截取、武装理论知识,但仅限于为你的目标服务,仅限于这样做会使你传递出更大价值。
◆ ◆ ◆
不要去学所有的机器学习
机器学习浩瀚无边啊。
它是计算机的自动学习过程,与人工智能多有交集。
从机器人的深奥学习理论算起,这个领域真的很大。
大得你无法一一收入囊中。
陷阱
如果你有下面的想法,你已不幸落井——
我得学会某个网页上提到的所有新技术。
我得学会计算机视觉,自然语言处理,语音处理,等。
首先。我得学会所有的所有。
出路
找个小旮旯,集中于此。
进一步缩小范围。
机器学习最有价值的部分是预测性建模。从数据创建模型进行预测。
从这里开始。
接下来,集中在某种与你最相关,或者你最感兴趣的模型。
然后死缠烂打。
也许你选择了某种技术,比如深度学习。也许你选择了某种问题,比如推荐系统。
也许你还没拿定主意,那么就选一个先。学好它。或者基本精通。
然后,转战到另一个领域。
◆ ◆ ◆
不要在算法上虚度光阴
机器学习确实关乎算法。
好多好多好多算法。
每个算法都是一个复杂的系统
是一个学习的小宇宙,有它自己的生态系统。
在算法的世界里你会迷路。所有人都会。
那些人叫做学术界。
陷阱
如果你有下面的说法,那么你已不幸落井——
我得弄明白它怎么工作的,在我使用它之前。
我得深入理解超参数先。
我调参的时候得解释清楚因果关系。
出路
算法不是结果。它们是得到结果的方法。
实际上,机器学习算法只是一堆商品。换掉它们。试用几十个。拿一些出来调调参数。接着换。一个更好的结果会让你对算法更有感觉,但是要知道什么时候止步。系统化这个过程。设计调参实验,让它们自动执行和分析。
机器学习无外乎算法的正确应用。但是应用机器学习不只是在算法里虚度光阴。集中火力在每个项目要得到的结果,即一系列的预测,或者一个可以得到这些预测的模型。
◆ ◆ ◆
不要从头开始实现一切
从头开始实现算法,你可以学到很多。
有时候你甚至需要去实现一项技术
因为没有合适的,
或者找不到现成的实现方案。
但是,一般来说,你不必如此,你也不该如此。
你的实现可能糟透了。抱歉——
它可能有小错误。
它可能很慢。
它可能太占内存。
它可能处理不好边界情形。
它甚至可能压根儿就错了。
陷阱
如果有以下情形,不幸你已落井——
你在写代码导入CSV文件(到底怎么回事!)
你在写代码做一个标准的算法,比如线性回归
你在写代码做交叉验证或者超参数调节。
出路
停下来!
使用一个通用的,已知是正确的,成千上万的程序猿都在用的库来处理边界情形。
使用一个高度优化的库,哪怕最后一个循环,最后一个字节都已经挤干净,最小限度占用内存。
使用图形化的用户界面,避免不必要的编程。
每次你想要用的时候都实现所有一切,对机器学习菜鸟而言,是一个非常慢的方法。
如果你想学习实现,那么,诚实一点,把它和学习利用应用机器学习来传递价值区分开来。
◆ ◆ ◆
不要总是换工具
有很多非常伟大的机器学习工具。
实际上,伟大的工具,连同数据和高性能硬件,
是机器学习得以复兴的原因。
但是,当你遇到接踵而至的新工具时
你就掉进流连忘返的坑里了。
陷阱
如果你有如下情形,不幸你已落井——
使用你听说过的新工具。
发现你每周或每月都在学习新的工具或者语言。
学一个库,见新思迁,半途而废。
出路
学习和使用新工具。
但是要有策略。
把新工具整合到解决问题的系统过程里。
如果你选好一个主打平台并坚守不移,你会高效得多。至少坚持到你能擅长或者精通一个。
推荐3个平台:
· Weka Workbench
· Python Ecosystem
· R platform
你的领域内还会有其它的平台和专业工具,坚持到底是爱好者与专业人士的区别。
原文发布时间为:2016-10-11
本文来自云栖社区合作伙伴“大数据文摘”,了解相关信息可以关注“BigDataDigest”微信公众号