机器学习_机器学习python_机器学习实战

大数据文摘作品 转载具体要求见文末

作者 | Alan 选文 | Aileen

翻译 | 酒酒 校对 | 姜范波

2016旧金山/三番机器学习研讨会(The 2016 Machine Learning Conference SF, 以下简称MLconf)于2016年11月11日在旧金山的Hotel Nikko召开。这是一场机器学习行业的盛会,来自各行各业的机器学习大咖和使用者发表了演讲。

本文作者是机器学习领域的从业者,同时也是此次大会的赞助商以及亲历人,大数据文摘为您带来他在本次大会上的心得体会:深度学习已经取代了业界现有的其他方法吗?谷歌的自动回复是如何工作的?一起看看机器学习行业的一线大会给我们带来了什么。

◆◆◆

我们最近参加了三番的机器学习研讨会(MLconf),真心祝贺会议的所有演讲者、赞助者和组织者,这次会议非常成功!听了很多业界机器学习使用者的演讲,我们收益颇丰,也希望在这篇文章里分享给大家一些我们所学到的。

1. 深度学习(仍然)不是一切

众所周知深度学习已经在很多领域取得了成功,比如图像和声音识别,机器翻译和游戏等。难道深度学习已经取代了业界现有的其他方法了么?其实并不然。

经典的机器学习模型仍发挥着效力。像Gradient Boosing, 逻辑回归和SVM实际上效果都很好,并且在业界被广泛使用着。比如亚马逊的搜索结果用的就是Graident Boosting, Quara也开诚布公地展示了他们使用的算法,其中就有逻辑回归和随机森林。

在一些垂直领域,比如医疗业,因为人们需要对模型进行理解和分析,仅仅使用黑匣子的模型是不行的。我们本以为这可能阻碍了深度学习的一些应用,但是 Metis的Brian Lucena就展示了一系列方法,使得即使是黑匣子模型,我们也能对其分析。

机器学习_机器学习python_机器学习实战

大会现场照片 图片来自大会官网

2.使用正确的衡量方法,选择正确的问题

你想在公司中使用机器学习,经过了一番头脑风暴后,你想到了很多可以用到的地方。这次很多演讲者都强调了我们要选择*合适的问题*。一个工程上的挑战并不一定是合适的问题,一个合适的问题应该是能够给公司带来*最大的商业收益*的问题。

即使是大公司也难以确定怎样让机器学习带来最大收益。Elena Grewal(Airbnb的数据科学部经理)在她的演讲中清楚地表明,你的机器学习模型的衡量标准并不是准确率/查全率,而是**商业效果**。评估一下模型给业务带来的价值可以防止我们走到错误的方向上。

3. 模型调参只占了项目的5%

玩转模型的各项参数来提高1%的精确率对于工业项目来说没有意义。千万别花太多时间在调参上,有的是比调参更值得花时间的地方。

研究一下怎样才能有一个更统一的收集数据的流程,怎样更好地对数据进行预处理,对于缺省的数据该怎么办?还有算法的时间复杂度,因为现实世界的用户们对延迟可敏感了。你还得思考怎样衡量模型对产品带来的影响,评估一下模型的演进还要设置预警,当然还有如何高效地在投入产品后及时进行模型的更新。

要知道,现实世界里的机器学习可不简单呐。

4.使用集成算法几乎总比单一模型要好

集成算法是将不同模型组合起来,这样我们就有了k个学习模型,M1, M2,…, Mk,来组成一个有更高精确率的模型M*。比方说,你可以平均所有分类器的概率结果,或者使用它们的加权和。

斯坦福的卷积神机网络课程(CS231n),Andrej Karpathy就开玩笑地说过在深度学习中使用集成模型一定能让准确率提高2%。(大数据文摘已经获得了这门课程的授权,并组织团队翻译汉化,在网易云课堂上免费发布,每周二上午八点更新,点击文末阅读原文,查看网易云【斯坦福CS231n深度学习与计算机视觉】,和5000+人一起学习这门课程)

玩笑归玩笑,多个演讲均强调,业界使用多种模型事实上是集成算法。在最近Kaggle竞赛的优胜方案中也能看到这一趋势。(点击查看大数据文摘近期相关文章:)看来集成算法有立足之地。

5.个性化趋势

机器学习python_机器学习实战_机器学习

个性化可不仅仅指某一方面(比如广告推送),现在的趋势是完全的个性化:用户看到的一切(像是日常反馈,主页等)都是只为他们专门设置的。

这在好几个演讲中都有提到,比如Pinterest的Stephanie deWet就说到了用户主页的完全个性化(针对用户喜好和相似用户喜好的各种推荐),Netflix的 Guy Lebanon也讲了对于图片产品的个性化服务(推广海报和视频截图展示等)。

6.完全自动化还没有实现

如果你使用Gmail(或是Inbox),你大概已经看到过Google的智能回复功能。这个功能令人印象深刻,现在超过10%的移动端回复都在使用它。Anjuli Kannan(谷歌的研究工程师)与我们分享了这个功能是怎样工作的。

机器学习python_机器学习实战_机器学习

所有的自动回复都是从数据中学习出来的,没有任何人为规定的规则或特征。它们使用了一个序列对序列的模型(a sequence to sequence model),包括两个端对端训练的神经网络,最终的输出是可能的回复里单词的概率分布。

我们有过这样一个问题:他们怎么确定这个方法得到的回复一定能用呢?神经网络可能会学到错误的单词和语法,或者不正规的,不同于用户的表达等。仅仅限制回复里的单词正确性是不够的(比如,“your the best”的语法是不正确的,但是每个单词都是正确的)。

解决的方法是限定于一套有效的或者高质量的回复集内。。这套回复集也是从大量数据中得到的(通过半监督学习)。看来想要有一个完全自动化学习的模型来得到准确的表达还有很长一段路要走。