机器学习(ML)在过去几年中变得非常流行。为什么?因为它在很多的方面已经取得有效的成果,最新的研究也取得了创纪录的成绩,甚至在某些任务上还超越了人类的表现。当然,很多人都急于进入这个领域,资金充足的情况下,对于技术人来说这是一件令人兴奋和有趣的事情,说不定还会有很大的发展空间。
在正规教育方面,学习机器学习有两条主要途径:学校(大学/学院)或MOOC(海量开放式在线课程)。经过正规的学校教育,如果你获得硕士或博士学位,那么学校可以给你非常深入的技术和理论知识,当然这也意味着相当昂贵的费用。 而MOOCs是免费的,您绝对可以学习如何从他们中去实际使用许多ML算法,当然这种方法不会像从大学中走出来的人一样,可以获得相应的文凭、学位等官方凭证。当然,这两种方法都可以有效地用于获取在机器学习领域工作所需的技术知识。
但是...还是有一些缺失,那就是机器学习算法需要真正应用于现实世界的业务问题。机器学习是用来为客户创造价值的工具,与课堂上通常单独完成作业并且几乎没有任何商业目标的教室完全不同。不仅ML模型的准确性很重要,而且它的可解释性、速度、内存消耗以及如何将该模型嵌入产品中以创造真正的价值对于完成商业目标来说,可能更为重要。
在这篇文章中,将与大家分享4种机器学习技巧,这些技巧你不会在学校或MOOCs中学习到。这些技能可以通过现实世界的经验学习领悟从而使用ML解决现实世界的问题,创造真正的价值。希望这篇文章能让你深入了解机器学习如何被实际使用,成为你所在领域的专家。
一块儿开始吧!
将机器学习与商业目标相结合
当你在涉及软件的任何领域(包括机器学习)工作时,理解的部分可能会从两个主要方面出发:技术角度和业务角度。这两方面的知识将会成为你所在领域的专家的关键。
你在课堂上一定已经学习了很多技术部分。如何在Python中进行编码、机器学习和数据科学算法、技术报告撰写等。在课堂上,这些东西通常会与业务隔离。但是当你开始在现场工作时,你就会发现工作中的每一个技术方面都与业务目标相关。你的老板为了增加当前系统的准确性,很可能是因为更好的准确性意味着更多的价值,更多的价值意味着更好的产品,更好的产品意味着更多的客户和金钱。
能够连接这些点很重要,因此你可以找到解决技术问题的最佳方法。你会知道重要的部分是什么,你应该关注什么。随着你在现场工作中获得经验和资历,你可能需要将业务目标转化为技术目标,以找到完成工作的最佳方式。技术已经并且仍然是一种用于完成更多事情的工具。我们需要始终考虑如何将技术技能与业务目标联系起来以创造真正的价值。
模型选择
在课堂上,你可以了解所有不同的ML模型。线性回归、支持向量机、决策树、神经网络......感觉有一百万个需要了解!所以最大的问题是......你会使用哪一个?您可能以前使用过所有这些算法,从头开始编码或使用TensorFlow和Scikit Learn等库。很多人现在都在使用深度学习,所以我们应该默认就使用这一种么?
所有的方法都会有折衷,这就是科学和工程的本质!将这些折衷与您的业务目标联系起来以确定模型的最重要属性是非常重要的。
机器学习中有一个叫做“没有免费午餐”的理论。定理基本上表明没有一个ML算法对所有问题都是最好的解决方案。不同ML算法的性能在很大程度上取决于数据的大小和结构。因此,除非我们直接通过简单的尝试和错误来测试我们的算法,否则正确的算法选择可能不清楚。
但是,对于我们可以用作指导的每个ML算法都有一些优点和缺点。尽管一种算法并不总是优于另一种算法,但是我们可以使用每种算法的一些属性作为快速选择最佳算法并调整超参数的指导。
例如,神经网络(和深度学习)通常可以达到非常高的精度,但根本不能解释。当你需要确切知道你的结果来自哪里时,使用它们可能不是一个好主意;但如果你只关心最终输出,那么它们是完美的!另一方面,决策树非常易于理解,因为它们的设计非常直观。它们可能达不到深度网络所能达到的精确度,但当您想要准确理解您的结果来自何处时,它们就非常棒。
模型部署
机器学习教育倾向于深入到ML算法本身,教你如何在技术层面上工作。一旦您的模型得到充分的训练,通常的做法是在一个不可见的测试数据集上进行测试,以便对模型性能进行基准测试。一旦我们验证了我们的模型适合我们的任务,它就必须部署到您创建模型的完整软件产品中。
从高层次来看,部署本质上涉及到将你的算法插入到系统的其他部分。您的模型的作用仅仅是获取输入并使用它来进行某种对系统有用的预测。因此,从系统级别的更高级别来了解您的软件非常重要。
到目前为止,我们已经讨论过在学校如何学习非常低层次的技术问题,而业务目标是定义产品价值交付的非常高层次的目标。把你的软件理解为一个连接组件的系统来部署你的模型就在中间。您必须了解系统的架构,连接块的管道。然后,您可以将您的模型视为另一个组件或模块以插入系统。
获得最大的回报
当我们在学校或参加在线课程时,所有人都是处于世界各地去实验的。我们可以永远花费在研究上,尝试使用最新最好的算法,甚至只是试验所有这些算法以找到最好的算法!在现实世界中,这可能不是最有效的做事方式。
企业拥有有限的时间和资源。他们不可能花一整天的时间尝试每一种可能的方法,看看哪一种最好。他们需要找到有效的方式做事(阅读:无需燃烧时间和现金)。
你需要从获得最佳效果的角度来看待事物。所以也许有一种新的最先进的回归算法,但它在技术上颇具挑战性,并且可能需要耗费时间来实施。
但反过来说,你可能会因为要获得更多的数据来训练当前的算法从而把你的准确性提高几个点。你的算法的某些方面可能会增加大量的价值,而其他方面则不会。没关系,这样你的算法会比现在更准确,但是如果超快的话,产品会有更多的价值!
在课堂上,我们很容易忽视这样的事情,并且始终都会瞄准最佳表演模型,忘记我们采取的所有路径都会有他们的权衡。关键是找出哪些权衡是值得的,哪些权衡可以让你获得最大的回报。而且,你通常会注意到的是,最重要的事情是需要与业务目标相关。
机器学习和所有软件通常只是一套工具;在这种情况下获得最大的回报意味着要知道如何最好地使用这些工具来完成工作。
结论
谢谢阅读!希望你学到了一些新的和有用的关于你不会在学校或MOOC中学习不到的机器学习技巧!