思考 | 什么时候不要使用神经网络?

 
  

点击上方“小白学视觉”,选择加"星标"或“置顶

重磅干货,第一时间送达

编者荐语

 

所有的机器学习模型都是尽最大程度去拟合,从这个意义来说,所有的模型都是错的。但是,并不是说模型因为有错就没有价值。初学者往往把模型的准确率等同于模型的价值,但事实并非如此。

转载自丨大数据分析和挖掘


39a593aac5a402657ff557d6d4cb60e1.jpeg

五一假期下雨,而且由于疫情哪也没法去,就在家里上上网。在towards-data-science上读到一篇《When Not to Use Neural Networks》,感觉有几个观点还不错,翻译摘录如下。

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

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

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

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

扫描二维码关注公众号,回复: 15392336 查看本文章

初学者往往把模型的准确率等同于模型的价值。但事实并非如此。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、神经网络、贝叶斯方法

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

本文仅做学术分享,如有侵权,请联系删文。

下载1:OpenCV-Contrib扩展模块中文版教程

在「小白学视觉」公众号后台回复:扩展模块中文教程,即可下载全网第一份OpenCV扩展模块教程中文版,涵盖扩展模块安装、SFM算法、立体视觉、目标跟踪、生物视觉、超分辨率处理等二十多章内容。


下载2:Python视觉实战项目52讲
在「小白学视觉」公众号后台回复:Python视觉实战项目,即可下载包括图像分割、口罩检测、车道线检测、车辆计数、添加眼线、车牌识别、字符识别、情绪检测、文本内容提取、面部识别等31个视觉实战项目,助力快速学校计算机视觉。


下载3:OpenCV实战项目20讲
在「小白学视觉」公众号后台回复:OpenCV实战项目20讲,即可下载含有20个基于OpenCV实现20个实战项目,实现OpenCV学习进阶。


交流群

欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器、自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN、算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~

猜你喜欢

转载自blog.csdn.net/qq_42722197/article/details/131255767