翻译:什么时候不要使用神经网络

来源:towards-data-science《When Not to Use Neural Networks》
作者:KevinVIP
翻译:大数据分析和挖掘(BigDataML)


不久之前,一个朋友问我关于如何选择ML/AI模型的问题。那个时候,他接受的大部分的ML/AI方面的模型知识都是神经网络或者是他们的变种,在他的认知里,神经网络足以强大到可以解决任何问题,无论何时,选择神经网络总是正确的选择。

1、所有模型都是错的,但是有一些有用

建模的先驱物理学家安德森在1977年诺贝尔奖授奖仪式上讲的一段话:建模的艺术就是去除实在中与问题无关的部分,建模者和使用者都面临一定的风险。建模者有可能会遗漏至关重要的因素;使用者则有可能无视模型只是概略性的,意在揭示某种可能性,而太过生硬地理解和使用实验或计算的具体结果样本。

所有的机器学习模型都是尽最大程度去拟合,从这个意义来说,所有的模型都是错的。但是,并不是说模型因为有错就没有价值。

初学者往往把模型的准确率等同于模型的价值。但事实并非如此。towards-data-science每天给我推荐20多篇文章,其中只有一两篇可能是我真正感兴趣的我会去读的。准确率相当于只有10%。但是这足够了,这10%能够保证我每天对网站的访问,推荐已经保证了商业上的流量价值。准确率只是模型价值的其中一部分的评估。

2、模型的价值

一个模型的价值,与这四个方面密切相关。

(1)Interpretability:能解释模型是怎么一步步解决问题的

(2)Explainability:能解释模型输出背后的物理意义

(3)Flexibility:模型描述复杂事物的能力

(4)Complexity:模型训练和推理的成本

一个决策树模型,我们很容易理解它是怎么推理得到最后的结果的(Interpretability),我们很容易根据模型的输出做出业务决策(Explainability),决策树越深,描述复杂事物的能力越好(Flexibility),但是成本就越高(Complexity)

一个神经网络模型,在Interpretability和Explainability都比较弱,Flexibility很强,通常Complexity也不低。

一个模型的价值,是要针对具体问题而言的。有些问题直觉上显而易见,但很难建模,如人脸识别。解决问题的模型要侧重于Flexibility和Complexity。这时神经网络就比较合适,不需要提供太强的Interpretability和 Explainability(这两项都是神经网络模型的弱点)

另外一些问题,不那么符合直觉,但符合逻辑推理,譬如信贷审批。解决问题的模型要侧重于Interpretability和Explainability。

3、简单模型解决复杂问题,复杂模型解决简单问题

(1)简单模型:简单模型包括一些非常传统的机器学习的模型,譬如线性分类器、决策树、K近邻。即使自己写代码实现也不需要太高深的数学知识。

(2)复杂问题:复杂问题是人类需要受过专业的培训和训练,需要人类付出思考才能解决的问题。譬如信贷审批

(3)复杂模型:复杂模型包括一些需要复杂的数值计算和数学理论证明的模型,譬如SVM、神经网络、核方法和梯度提升方法。自己写代码实现一般比较困难。

(4)简单问题:简单问题是那种符合人类直觉,我们每天都很自然在做的事情。譬如区分一只猫和一只狗,识别一个人,对一段文字念出来。

人类擅长做的机器往往不擅长。反过来机器擅长做的人类不一定擅长。这个很容易理解了。所以,让简单的模型解决复杂的问题,让复杂的模型解决简单的问题。

4、模型复杂度 VS 可解释性

模型越复杂,可解释性越差。

(1)低级复杂度模型:线性回归、逻辑回归、决策树、K近邻。

(2)中等复杂度模型:提升树和森林、朴素贝叶斯、高斯过程

(3)高级复杂度模型:SVM、神经网络、贝叶斯方法

在实际应用中,要看是准确度优先还是可解释性优先。


声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有,如涉及侵权,请联系小编邮箱 demi@eetrend.com 进行处理。

最新文章