来源:知乎

不抖机灵,想从接触过机器学习学术圈但已投身工业界的角度来回答。

我认为:大部分机器学习从业者不需要过度的把时间精力放在数学上,而该用于熟悉不同算法的应用场景和掌握一些调参技巧。好的数学基础可以使你的模型简洁高效,但绝非必要的先决条件。

原因如下:

1. 即使你有了一定的数学功底,还是不知道怎么调参或者进行优化。

这话说的虽然有点自暴自弃,但扪心自问在座的各位,当你发现 accuracy 不好、loss 很高、模型已经 overfitting 了,你唰唰唰列列公式玩玩矩阵就知道问题出在哪里了吗?不一定。诚然,懂得更多的统计原理可以帮助推测问题出在了哪里,你可能换了一个 loss function 或者加了新的 regularizer,但结果不一定会更好 :( 数学基础之于机器学习从业者很像 debugger 之于码农,它给了你方向,但不能保证你一定可以解决问题。那怎么能解决问题?只有经验经验经验,别无他法,有时候甚至靠的是直觉。数学基础是好的内功基础,但你调包调多了,其实也慢慢能抓到一些感觉,不必看不起 “调包侠”。

2. 工业界可以应用的模型是很有限的,可调的参数也是有限的。

工业界选择模型非常看重可解释性,效率,以及和整个系统的整合能力。举例,在我的工作中,大部分时间都在使用 Regression 和 Decision Tree 相关的算法(如 Random Forests)。是因为这两个算法最好么?不,恰恰是因为这两个算法稳定及高效,而且容易解释。对于这样的模型,你即使数学能力很强,能调整的参数也是有限的。根据网上的例子和经验,大量的工程师可以在数学基础稍弱的情况下做到很好的效果。

3. 数学 / 统计知识已经成了既得利益者刻意为外来者建立的一道壁垒。

不知道大家有多少人是从事过 ML 研究的。我个人的观察是做出成绩的 ML 研究人员是有限的,科班出身的 researcher 更是远远无法工业界的空缺。所以大家没有必要担心会被转行者抢了饭碗,也没有必要刻意鼓吹一定要懂矩阵,凸优化,等数学知识才配做机器学习。大家都是出来卖的,不必互相为难。说来惭愧,在工作中我常常跟老板说这个人不能用,你要用我这种科班出身的人,但我内心是不赞同的。

每当我看到知乎上有人问机器学习怎么入门,结果大家立马推荐第一本就看 PRML 和 Statitical Learning 以及一大堆公开课和数学课的时候,我的内心是崩溃的。各位答主的目标是把所有人都吓回去还是秀一下优越感?

4. 理论模型和实际应用分的是两块不同的蛋糕。

承接第 2,3 点,做理论研究的发力于突破,提出新的模型或者优化方法,做应用的致力于把模型应用于数据上,攫取商业价值。这两者不存在利益冲突,做理论的人有自带正统光环的优势,所以更该显得大度一些。只有 “调包” 的人越来越多,这个行业才会繁荣,因为证明技术落了地,可以带来实际价值。

5. 行业的发展趋势是降低工具的使用难度,这让我们不必反复造轮子。

亚马、逊谷歌、微软等各大平台都开放了他们的机器学习工具。以前人们还需要自己写各种模型,好一些的调一下 sklearn,但现在 Azure ML Studio 已经方便到零代码了。年初的时候,我试了一下 ML studio,简直方便的可怕,完全是图形拖动连接就可以建立模型,那一刻我仿似看到了自己即将失业。

**6. 文艺一点说,我们需要更包容�