转载请标明出处: http://blog.csdn.net/djy1992/article/details/75257551
本文出自:【奥特曼超人的博客】
机器学习简史:拍拍贷AI中心数据研发负责人:王春平
一、机器学习简介
谢谢!首先今天特别荣幸能够到兴业这边来跟大家一起做这样一个简单的分享。之前听兴业的朋友讲,在机器学习这个话题方面我们应该是第一次做相关的分享。所以我会从相对广一点的角度去和大家探讨这个主题,并融入我个人在这个领域里工作和学习的一些体会。后续的“无界”论坛再推出系列专题。如果各位在某一个方面感觉特别有兴趣或者是觉得我这里漏掉了什么东西,会后我们可以进一步交流。
这是今天要讲的整体框架:首先是一个简单的介绍,然后把一些相对经典的模型串到一起,试图从中间找一些共通的地方,接下来介绍机器学习应用过程中一些比较常见的套路,还有就是讲讲我个人对人工智能未来发展趋势的看法。
在简介这块,我其实是想做这样一件事情:把机器学习这样一个名词放到一个相对比较大一点的背景来看,它在用数据来驱动业务、在金融方面的数据挖掘或者选股等等这样一些事情中间,是处于一种什么样的位置?我们所说的用数据来驱动业务,其实这个业务可以是任何东西,比如说今天大家关注的可能是金融业务,我所在的拍拍贷是互联网金融业务。从咱们在前两年就开始兴起的一个很热的概念——大数据,到现在热的一个概念——人工智能,然后到我们真正关注的业务,这三者之间其实有很强烈的关系,也可以说大数据和人工智能先后成为热点也是有一定内在联系的。
我们认为首先你需要在业务过程中去积累大量的数据,因为当你的数据量足够大,我们才可以用它去做一些事情。现在人工智能其实可以更多的看作是工具类的东西,利用大数据这样一个原料,回归到我们所关注的这个业务问题,解决一些实际的问题。这个人工智能领域呢,它是一个相对比较宽的概念,最近这一两年人工智能再次火爆可能是因为AlphaGo引起了热潮。AlphaGo更多的是和深度学习有关系,但其实人工智能相对来说是一个比较广义的概念,任何可以用机器来代替人做事情我们都可以把它认为是人工智能。它可以包括你写的一些简单的规则引擎,做一些预警和监控等等,也包括今天我们要关注的机器学习这样一个话题。在机器学习里边的一个类别就是现在很热的深度学习。
从我个人理解,机器学习跟广义的人工智能的区别在于它是需要从大量的数据里面去学出来一些东西,然后再去运用,而不仅仅是应用一些专家的经验。这是它在整个业务和人工智能中的一个定位,然后我们可以再看一下在整个流程里面它是什么样的状态。当我们想用数据驱动的方式去解决一个业务问题的时候,一般会要走过这样几个大的步骤:首先我们需要关注这个问题本身是什么,比如我现在看一个金融上的问题,我需要去预测一个股票它在明天是涨还是跌,这是一个比较明确的问题。但是很多时候这个问题没有那么清晰明确,所以你可能先要去看这个问题种类。要预测的是什么,关注的人群或者样本集是什么。然后最终希望这个问题带来的输出是什么,等等。这个其实是商业和技术的一个结合,需要两拨人去共同探讨的事情,中间会经过若干个比较偏科研的步骤。你真的需要知道要解决什么问题以后,然后要建模,学出来一些我们可以应用到业务上的一些规律或者模型。最终会涉及到一个比较偏电子工程的事情是要把学出来这些东西真正部署到线上的系统。假如说我这个系统是一个高频交易系统,那我学出来的这个交易的逻辑,我就要把它应用过去。假如说是拍拍贷,我学出来的是一个评价借款人信用状况的模型,那我需要把它应用到整个借款流程,比如说我们APP里面有一个环节里需要做的打分这件事情。
我们今天主要探讨的更多的是科研这一块,也就是和模型的构建比较相关的话题。在整个机器学习概念里面,按照学习的时候有没有老师来教,可以把它分成三个大的类别。一个是就像我在课堂上听讲一样,老师会教我这个是苹果,那个是iPhone,那个是桔子等等,对出现的每个样本都有一个明确的标签,这个叫做监督学习(Supervised Learning)。假如说有一些问题是完全没有老师,要靠自己去探索的,叫非监督式学习(Unsupervised Learning)。然后还有一种在一般做数据分析的时候用的不是很多,但是在比如说机器人或者是AlphaGo里面会涉及的比较多的是增强学习(Reinforcement Learning)。这其实是跟小孩子学东西的过程比较相近,它是一开始没有老师告诉你任何措施,让你在实践中做对的事情得到奖励,做错的事情去得到惩罚。通过环境对它的反馈让它来不断增强自己对环境的认识。
这三类问题之下,我们最常用,大家用起来感觉最得心应手的应该是第一个:监督学习。监督学习的好处是它对一般问题定义是比较清楚的,然后你有一个明确的要预测的一个目标。比如说它是一个分类问题:你要知道这个人是一个未来预期的用户,或者是一个会有良好信用的用户。或者你要知道这些股票明天是会跌或者涨。这些都是有明确的标签,这种叫分类问题(Classification)。如果是有明确的预测目标,但是这个目标是一个连续的数,比如说你想预测的是股票的价格,那它可以是一个回归问题(Regression)。
像后面提及的非监督学习,它之所以叫非监督,一是这个数据本身的理解不是那么清楚,还有就是有些情况下它的标签获取很困难就。就这种问题本身没有那么的明确,所以它是一个非监督的。我可能拿到这个数据以后先做一些分析来看一看它是什么样的,它里头其实是比较包罗万象的,不像监督学习,有比较清晰的一个方向。所以非监督学习可以根据学习的目的分成几类。比如说如果我只是想知道现在的这个人群大概是分成几个群体,但是其实我也不知道应该分成几个群体,不知道什么是对的,这个就是分群(clustering)。分段(segmentation)有点像是切分成几个集合。然后还有一个很重要的也是做降维(dimensional regression),因为现在是一个数据爆炸时代,对于很多人来说,其实数据不是太少而是太多,有可能有成千上万甚至10万级这样的数据维度,特别是在图像数据、自然语音数据这样一些比较复杂的数据类型或者是网络的一些访问日志等等这样的数据,维度相当高。如果让它直接做一些前面的监督的话其实是需要特别含量的数据才有可能去决出一个可以用的模型。所以降维这件事情是机器学习方面的一个蛮大的工作。然后下面这个是文本方面的主题模型(topic modeling):一篇文章你可以把它降低到一些主题或者是一些主题的混合。然后还可以做的事情是:有一堆的照片或者视频,但是我不知道这些照片中会发生什么比较异常的行为,但是我想知道哪些是异常的,如果全部靠人看的话这就太不经济了,所以异常发现(abnormal detection)也是一个很大的一个类别,而且在安保这些方面使用的是比较多。
这些具体的方法我们就不会再仔细的讲了,如果有兴趣的话我们可以在以后的分享里面再讨论。稍微回顾一下,简单概括一下刚才的各种纷繁复杂的方法或者分支。首先我们考虑,它是监督学习还是非监督的。下面是一个简单的展示图,左边是表示一个用来测试一个分类的问题,然后右边是我有一堆的数据,但是完全不知道应该分几类,只是稍微去分一下,看一下每一类是不是有相对比较特别一点。这就是监督学习和非监督学习的区别和直观体验。
这里还有一个简单的,和前面有点不一样的分类方式,前面始终在说问题是怎么分类的,这是在定义要解决的问题的时候就已经决定了,而不是我们一定要选择的。但是判别模型(Discriminative model)和生成模型(generative model)这两个分类更多的指选择怎么建模型。这是对于有监督的情况下,可以从这两方面去考虑。当你有一个学习目标的时候,假如说我只想了解一个条件概率的话,也就是给出自变量X,我想知道Y是什么样的情况,这个就是叫判别模型。有些时候我同时也关心X自己的分布情况,所以我们可能关心的是X和Y的联合分布,这时用的是生成模型。一般来说判别模型直接做条件概率效果会比较好,特别是当训练集和预测集比较一致的情况下。但是对一些比较特殊情况,比如说X里面有一些变量缺失,如果你有一个联合分布,对X本身的分布有方法可以学出来的话,就可以生成一个新数据集,做真实值指补充等等,这算一些好处。当然生成模型还有一些别的比较好的特性,如果大家有兴趣的话,我们以后可以展开。现在先预热一下,简单介绍一下机器学习大概的情况。
二、机器学习经典模型
下面我们就来讲一下模型框架以及经典的机器学习模型。
模型框架不是从大家在实际用的时候调用程序包的场景来讲,而是说如果我真的要去理解这个模型的话,我们从什么方面考虑会有利于比较不同模型。所以先来讲机器学习模型会包括什么东西。
首先我们需要对这个模型做一些假设:要把模型假定成一个概率问题呢,还是优化问题呢?即模型假设(Model Assumption)。
当你已经假设好这个模型的条件以后,接下来的工作就是该怎么样去解出来这中间的一些参数或者是这个结果,利用已知的数据去推演必需的东西,这里就会涉及到比较多的大家经常听见的名词,比如说EM算法、贝叶斯推断、Gibbs采样等等,我们称之为模型推演(Model Inference)。
如果已经学出来这个模型,下一步就是模型应用层面(Model Application)。因为我们做所有的机器学习的目的都是为了把它用到新的样本上面去,所以如何把它应用到新的样本集以及在新的样本上的适应能力就是大家特别关注的问题,这里就涉及到这个模型本身是归纳的(inductive)还是传导的(transductive)。归纳是指可以从已知的这些数据里面去推出来一个函数表达式,然后带入相关数据,那就可以算出最新的数据。在选模型或者是做模型的设置的时候,这是一个需要考虑的点,大概会是三大步骤。
接下来呢我们可以来看一些很简单的算法,但其实也是很经典的。比如说你要做非监督模型,你要做一下聚类,那肯定Kmeans是一个逃不掉东西。它的基本思想很简单,就是说我有一堆数据想要分堆,假设我是要分成三个堆,那我就先随机的设三个点,然后通过迭代来实现每个点到它的中心的距离平方和是最小的,就是相当于找到这三个最有代表性的中心点。它是一个很典型的非监督学习,它没有对数据的分布做任何的假设,没有认为它是某种的分布,或者说,不管是什么样的分布,我都去做这件事情。优化的目标就是要使得它的这三个点是最有代表性的,所以他是把这个问题最终变成了一个做优化求解。当你要有新的数据加进来的时候,也是可以带入距离的公式,去找到哪个点是对于这个点来说最有代表性的一个中心点。
还有一个大家也是很熟悉的,就是线性回归(linear regression)问题,它是监督学习,是有明确的目标的。假如说是一个比较一般的回归的话, Y就是X的一个很一般的函数,f(x)就会变成一个简单的线性加和的关系,这就是我们的模型假设。其实这里头你还可以有不同的假设,比如说我现在是假设它有个函数,是有噪声的,然后我可以进一步假设这个噪声的分布,比如说是高斯,接下来的话我要怎么去解这个问题就是我们刚才讲的第二步,要去做这个模型的迭代升级的工作。一般来说,对线性回归最常见的一个求解的方式就是把它的目标函数写成误差的平方和。这样做的好处是可以得到一个闭式解,可以最终写出来,并不需要用迭代的方式去求。后面当我们讲到一些套路的时候,其实就比如说对于这个线性回归,我也可以通过一些方式在后面在做一些小小的变种,使它具有一些更好的性质。
还有一个比较经典的就是用来做分类的逻辑回归(logistic regression)。它也是一个监督学习方法,这个模型的假设是基于一个概率。所以它跟线性回归其实是不太一样的,输出也是一个概率值,我们在用它的时候也是得到的这个概率。比如说我们这里关心的一个问题是这个借款人他最终会不会按时还款,然后这个模型打分出来的结果就是这个人按时还款的概率值是多少。有了这样的一个模型的函数以后,接下来就是要解决我该怎么样去求解,因为这里存在一个待定系数:β。对于一个概率问题,一般最常用的一个方式是求log后的likelihood,最终其实也是把这样一个概率形式的模型转化成一个优化损失函数(cost function)问题。那其实大家会发现所有的套路基本上都是这样子:假如说你是要做一个点估计,就是说想估计出来这个参数的一个最优的值的话,基本上套路都是会先假定这个函数形式,找到它的损失函数,去把它变成一个优化问题来解。
接下来是支持向量机(support Vector Machine),它也是一个分类问题,但是它跟逻辑回归不太一样的是它没有做任何概率上的假设,它本身就上来就是一个优化问题:要在这个平面上面要去找一条线,能够把我这两个类别给它分开,使得它的边缘(margin)最大,边缘就是这个离的最近的这个点到这条线之间的距离。这个是一个完全可以分开成两类的案例,实际中应用过程之中,它可能过拟合。它也是一个优化问题,优化的目标是最大化这个边缘。
神经网络是一个监督学习,可以用来做回归或分类问题。它的思想就是我的一个输入有很多,然后输出只有一个。这是我的自变量X和因变量Y(见图),但是我认为中间有很多的隐藏层,这里是一层,如果它有很多层的话就是现在比较流行的深度学习(deep learning)架构。每一层其实都是下面一层的一个线性表达函数,这样一层一层垒起来最终要去优化的就是因变量Y和实际上我们观察到Y的误差,也是最小化这个误差,就可以把它的损失函数写出来,转化成优化问题。为什么大家都那么喜欢把它转成优化问题?因为如果它是一个凸问题的话,是已经有很好的解决方案的,相信在座的各位可能都知道,就基本上相当于是把前期的比较麻烦的东西转化到套路上面。
还有一类套路不太一样的模型——贝叶斯思想,前面我们讲的基本上都是点估计。就是我要认为我有一个未知的参数,那我就去估计它的最好值。然后贝叶斯其实是有点不太一样,是我开始有一个想法,比如说现在想估计的是某一个系数,我一开始什么都不知道,它可能是等于0.1,可能等于0.9且中间的概率都差不多。但是当我看见了一些数据以后,我的看法就会越来越集中在某一个值上。当我看了一百万个数据以后基本上就确定它是在我这点上面,但是它其实还是一个很窄的分布。贝叶斯认为没有什么东西是确定的,所有能确定的就是它有一个概率,然后有一个分布,但是你看了更多的数据以后,你对这个东西的认识就会变得越来越清晰。大概是这样一个想法,所以贝叶斯的学习的框架就不再是一个点估计了,它会认为我再怎么学我学出来的使用还是关于这个变量的一个分布,所以它的最终输出都会是一个分布。
三、机器学习的一些常见讨论
接下来给大家简单介绍一下机器学习的一些常见的套路,这些套路对于大多数的模型都是可以用到的,而且是很可能会碰到的一些问题。一个最常见的问题就是过拟合(overfitting)。所谓过拟合是说我过度信任了看见的这些数据,认为看见的数据就是我所有的真实,而且我可能用一个特别复杂的模型去拟合它。当模型足够复杂的时候,数据量如果相对较少,你可以找到一个函数特别好,可以完美地把它组合出来,但是这个对于后面再用新的数据就完全没有用,因为他把噪声给完美的学下来了。
如果这个噪声是一个随机项,也没什么意义,所以对付这个过拟合的话有一个比较常见的套路,就是给他加这个正则约束项。比如说像刚才提到的那个线性回归,假如说我们不加任何调整项的话,它可以直接是一个闭式的解,很简单。但是同时也会出现一个问题,就是有可能系数会特别大。所以一般来说的话,会希望去加一些惩罚项,使得这些系数不会是一些太大的数,因为太大的数有很多问题,它们可能正负抵消。要去“惩罚”它,可以有很多不同的方式,现在比较流行的比如说加一个L1范数或者是在一个L2范数或者是两个结合起来,等等。这些惩罚项的选取是对于有不同特点的数据,或者真正的需求不一样的模型会有所不同。
还有一个很常见的方法就是交叉验证(cross validation)。因为我们很多的模型里面都会有一些参数需要选择,其实选参数的时候如果自己手动拍进去不是特别有道理。现在也有一些可能比较好的选参方法,但是绝对可行的,而且比较万能的,就是这个交叉验证。把所有的训练集分成很多组,然后每次把每一个组用来做验证集,其他组做训练集。比如说一共有五个的话就有五个测试集,有五组结果,去不停地调参数。比如说这个案例里面它就是把这个叫做M的变量调来调去的,就会发现在训练集上误差是越来越小,在测试集上误差有可能先小后大。在这个测试集的跳变点附近,一般来说就是比较优化的选择。
还有一个现在特别热门的方向,这个套路是假如说我有一些弱的分类器或是弱的模型,那我们把它集成(Ensemble)起来去解决一些问题,这里面包括Bagging、Boosting、Stacking等等各种不同的方式,即分类器集成。
我们首先来讲一下Bagging。这个图看起来很复杂,但是简单的来说就是我原来可能只有一千个数据,就很难去检验我这个数据,或者检验这个模型受不同数据的影响会比较大,因为我不是有十万或一百万的数据,不能做各种不同的抽样。假如我只有一千个数据,那我每次都从这1000个数据中分出来不同的数据,来做各个子集。这些数据其实都来自同一个地方,训练出来很多个模型,然后再把它组合起来,简单来说是这样。然后子集的生成都是随机的,没有什么特殊的关照。我们现在比较流行的随机森林(random forest)应该是基于这个思想。
然后还有一个方法是Boosting,Boosting和Bagging主要的区别是,Bagging是随机的分很多类再结合起来,Boosting其实是从每一次都是弱分类器分好以后,原来很不好的结果权重加重,再继续分。它也是做很多很多次,最后也是结合起来。
还有一个是Stacking,这个看图的话就更要晕过啦。简单的来讲就是假如有好几个传感器,比如说有的时候做GBBoost,随机森林,等等各种分类器,我都把它用来在训练集上学习,得到一个模型并且预测出来一些结果。然后根据预测出来的结果,我再在上面用对应的方法学出来的模型,相当于是在模型上面套一层模型。这个模型的输入是上面这些模型的输出,就是相当于是看哪个模型应该有更多的权重,而不是直接把每个模型的输出平均起来,可能做的比较好的模型权重相对比较高,所以这个方式一般来说会大大提高表现。特别是当基模型之间的差异度比较大的时候。如果基模型都差不多,那无论怎么样平均结果也都差不多。这是一些简单套路,后期还有更多套路,这几个是比较通用的。
四、机器学习未来发展趋势
最后简单说一下我个人对机器学习发展趋势的理解。其实我在准备PPT的时候在网上搜了一下,发现搜出来的结果可以说是五花八门的。有的人可能是学者型的,他完全讲的就是学术上的趋势。有的可能是属于那种偏社会学的,他讲的趋势可能是更多的对未来社会方方面面的影响。我这边是想作为一个在这个行业里面,自己本身是在做这方面事情的人来谈谈这方面的体验。
其中一个趋势便是通用化越来越强。像以前做机器学习的人,基本上做文本的人专门做文本,做图像的专门做图像,做声音的人专门做声音,做结构化数据的人专门做结构化数据。然后每一种方法对应的数据源本上都是有很特殊的提取,预测的方法。但是现在随着深度学习不断的变热起来,被大家所理解。其实有很多不同数据源,它的算法框架上很接近,就越来越通用化。
还有一个趋势是工具化。越来越多的开源的工具性的产品使得机器学习这件事情的成本大大降低。以前可能都需要写代码,甚至是最开始可能需要自己去推导我刚才讲到的那些模型的假设,根据模型的假设具体做优化。发展到后面可以写一些代码来调包。现在像TPOT这种软件,甚至是可以完全窗口化,拖拖拽拽就可以训练模型,或者是你什么都不干,它自己自动用很多种模型都跑一遍,所有的参数都调一遍。所以整体上来说是有一个用户门槛降低的趋势。
还有一个就是随着机器计算的成本变得越来越低,现在有点往暴力化的方向发展。以前可能更多的是专家的经验建一些变量,调参可能也需要有一些技术。但是未来的话,感觉哪怕对于不太懂的人,假如说他有足够的时间,足够强的机器去算的话,也可以通过暴力的方式,做出一些比较好的模型。这些趋势当然并不是说就不需要一些比较多的人去真正做一些模型的选择,或者是变量的选择。只是很多人群其实可以用到机器学习的很多的工具,去解决很多日常生活中比较基本的问题。
我今天大概就到这里吧,然后如果有对于某一个话题比较感兴趣的话,欢迎大家在本文下进行评论沟通,谢谢大家!
机器学习模型的“可解释性”到底有多重要?
今日聚焦
我们知道,近年来机器学习,特别是深度学习在各个领域取得了骄人的成绩,其受追捧的程度可谓是舍我其谁,但是有很多机器学习模型(深度学习首当其冲)的可解释性不强,这也导致了很多论战,那么模型的可解释性到底有多重要?本文从各方面介绍了机器学习模型的“可解释性”的重要性,说明我们为什么要追求可解释性,并在几种典型的模型中,如广义线性模型、随机森林和深度学习,说明其重要性。
Interpreting machine learning models
无论您的解决方案的最终目标是什么,终端用户都需要可解释、可关联或可理解的解决方案。此外,作为一名数据科学家,您将总能从模型的可解释性中受益,从而验证并改进您的工作。在这篇博客文章中,我试图说明机器学习中可解释性的重要性,并讨论一些可以自己尝试的简单实验和框架。
https://xkcd.com/1838/
为什么机器学习中的可解释性很重要?
在传统统计中,我们通过调查大量的数据来构造和验证假设。我们建立模型来构建规则,我们可以将其纳入我们的模型中。例如,营销公司可以建立一个模型,将营销活动数据与财务数据相关联,以确定构成有效营销活动的是什么。这是一种自上而下的数据科学方法,可解释性是关键,因为它是所定义规则和过程的基石。由于相关性往往不等于因果关系,所以在进行决策和解释时,需要对模型进行很强的理解。
在自下而上的数据科学方法中,我们将部分业务流程委托给机器学习模型。此外,全新的商业创意可通过机器学习实现。自下而上的数据科学通常将手动和部分困难任务自动化。例如制造公司可以将传感器放在他们的机器上并进行预测维护。因此,维护工程师可以更高效地工作,而无需执行昂贵的定期检查。模型可解释性对于验证模型的行为是否符合您的期望是很有必要的,并且它可以与用户建立信任关系,并且可以简化从手动过程到自动化过程的过渡。
上图显示在一个自上而下的过程中,您迭代地构造和验证一组假设。在自底向上的方法中,您试图自动化过程从自底向上解决问题。
作为一名数据科学家,您经常关心微调模型以获得最佳性能。数据科学通常被定义为:'给出具有X标签的数据,并以最小误差找到模型'。尽管训练高性能模型的能力对于数据科学家来说是一项关键技能,但能够从更大的角度来看是很重要的。数据和机器学习模型的可解释性是在数据科学的“有用性”中至关重要的方面之一,它确保模型与您想要解决的问题保持一致。尽管在构建模型时尝试最前沿的技术可能会有很多挑战,但能够正确地解释您的发现是数据科学过程的重要组成部分。
为什么深入分析模型至关重要?
作为数据科学家,关注模型可解释性有几个原因。虽然它们之间存在重叠,但能捕捉到可解释性的不同动机:
1.判别并减轻偏差
Identify and mitigate bias
偏差可能存在于任何数据集中,数据科学家需要确定并尝试修正偏差。数据集的规模可能有限,并且不能代表所有数据,或者数据捕获过程可能没有考虑到潜在的偏差。在彻底进行数据分析后,或者分析模型预测与模型输入之间的关系时,偏差往往会变得明显。请注意,解决偏差问题没有唯一的解决方案,但是可解释性的关键一步是意识到潜在的偏差。
class="video_iframe" data-vidtype="2" allowfullscreen="" frameborder="0" data-ratio="1.7647058823529411" data-w="480" scrolling="no" data-src="http://v.qq.com/iframe/player.html?vid=c0558sq0ucp&width=670&height=376.875&auto=0" style="display: block; width: 670px !important; height: 376.875px !important;" width="670" height="376.875" data-vh="376.875" data-vw="670" src="http://v.qq.com/iframe/player.html?vid=c0558sq0ucp&width=670&height=376.875&auto=0"/>
其他偏差的例子如下:
例如word2vec向量包含性别偏差(http://wordbias.umiacs.umd.edu/),这是由于他们受过训练的语料库中存在的内在偏差。当你使用这些词向量进行训练模型时,招聘人员搜索“技术简介”将使女性履历保留在最下面。
例如当您在小型数据集上训练目标检测模型时,通常情况下图像的宽度太有限。为了避免只适用于数据中噪音和不重要元素的模型,需要在不同环境,不同光照条件和不同角度下的各种物体图像。
2.考虑问题的上下文
Accounting for the context of the problem
在大多数问题中,您正在使用的数据集仅仅是您正试图解决的问题的粗略表示,而机器学习模型无法捕捉到真实任务的完整复杂性。可解释模型可帮助您了解并解释模型中包含和未包含的因素,并根据模型预测采取行动时考虑问题的上下文情境。
3.改进泛化能力和性能
Improving generalisation and performance
高解释性模型通常有更好的泛化能力。可解释性不是要了解所有数据点的模型的每个细节。必须将可靠的数据,模型和问题理解结合起来才能获得性能更好的解决方案。
4.道德和法律原因
Ethical and legal reasons
在财务和医疗保健这样的行业,审计决策过程并确保它是没有歧视或违反任何法律。随着数据和隐私保护法规(如GDPR)的发展,可解释性变得更加重要。此外,在医疗应用或自动驾驶汽车中,单一不正确的预测会产生重大影响,能够“验证”模型至关重要。因此,系统应该能够解释它是如何达到给定的要求的。
解释你的模型
关于模型可解释性的通常引用是,随着模型复杂性的增加,模型可解释性按照同样的速度降低。特征重要性是解释模型的一种基本方法。即使对于深度学习等黑盒模型,也存在提高可解释性的技术。最后,将讨论LIME框架,该框架可作为模型分析的工具箱。
特征重要性(Feature importance)
• 广义线性模型
广义线性模型(GLM's)都基于以下原则:如果将特征与模型权重进行线性组合,并通过一个函数 f得到结果,则可以用它来预测各种各样的响应变量。 GLM最常见的应用是回归(线性回归),分类(logistic回归)或建模泊松过程(泊松回归)。训练后得到的权重能直接表示特征重要性,它们提供了内部模型非常具体的解释。
例如在构建文本分类器时,可以绘制最重要的特征,并验证模型是否过拟合。如果最重要的单词不符合您的直觉(例如名称或停用词),则意味着该模型拟合了数据集中的噪音,将在新数据中表现不佳。
从TidyTextMining的文本解释能力的一个可视化的示例。
https://www.tidytextmining.com/02-sentiment-analysis_files/figure-html/pipetoplot-1.png
· 随机森林和SVM(Random forest and SVM's)
即使是非线性模型(如基于树的模型(例如随机森林))也能够获取关于特征重要性的信息。基于核的方法(如SVM)中的权重通常不是特征重要性的很好的代表。核方法的优点在于,通过将特征投影到内核空间中,您可以捕获变量之间的非线性关系。另一方面,仅将权重视为一个特征,与交互无关。
上图显示一个使用特征重要性可视化出的例子,图中您可以确定模型在学习什么。由于这个模型中很多重要的特征都是指这一天day的信息,所以可能需要添加额外的基于时间的特征会使其效果更好。(Kaggle)
https://www.kaggle.com/general/13285
· 深度学习(Deep learning)
深度学习模型由于参数的数量以及提取和组合特征的复杂方法而导致其不可解释性。作为一类模型,它能够在许多任务中获得最好的性能,许多研究集中在将模型预测与输入相关联。
可解释机器学习的研究论文的数量正在迅速增长(MIT)。
http://people.csail.mit.edu/beenkim/papers/BeenK_FinaleDV_ICML2017_tutorial.pdf
特别是在面向更复杂地文本和图像处理的系统时,很难解释模型实际学到的是什么。研究的主要焦点目前主要是将输出或预测与输入数据关联。虽然在线性模型下这相当容易,但对于深度学习网络来说,它仍然是一个未解决的问题。两种主要方法是基于梯度或基于注意力机制的。
在基于梯度的方法中,使用反向传播计算目标概念的梯度用于生成一个映射,以突出显示输入中用于预测目标概念的重要区域。这通常应用于计算机视觉领域。
Grad-CAM,一个基于梯度的方法被使用于视觉描述生成。基于输出的文字,方法能够判别出输入图像的那个区域是重要的
基于注意力机制的方法通常与序列数据(例如文本数据)一起使用。除了网络的正常权重之外,注意力权重被训练成 ‘input gates’。这些注意力权重决定最终网络输出中每个不同元素的数量。除了可解释性之外,在基于文本的“问答系统”中也可以带来更好的结果,因为网络能够“关注”其注意力。
在基于注意力机制的自动问答中,可以可视化出文本中哪个单词对于这个问题的答案是最最重要的。
LIME
LIME是一个更通用的框架,旨在使“任何”机器学习模型的预测更加可解释。
代码链接:https://github.com/marcotcr/lime
为了保持模型独立性,LIME通过修改本地模型的输入来工作。因此,它不是试图同时理解整个模型,而是修改特定的输入实例,并监控对预测的影响。在文本分类的情况下,这意味着一些词被取代,以确定哪些元素的输入影响了预测。
参考文献:
https://towardsdatascience.com/interpretability-in-machine-learning-70c30694a05f
人工智能赛博物理操作系统
AI-CPS OS
“人工智能赛博物理操作系统”(新一代技术+商业操作系统“AI-CPS OS”:云计算+大数据+物联网+区块链+人工智能)分支用来的今天,企业领导者必须了解如何将“技术”全面渗入整个公司、产品等“商业”场景中,利用AI-CPS OS形成数字化+智能化力量,实现行业的重新布局、企业的重新构建和自我的焕然新生。
AI-CPS OS的真正价值并不来自构成技术或功能,而是要以一种传递独特竞争优势的方式将自动化+信息化、智造+产品+服务和数据+分析一体化,这种整合方式能够释放新的业务和运营模式。如果不能实现跨功能的更大规模融合,没有颠覆现状的意愿,这些将不可能实现。
领导者无法依靠某种单一战略方法来应对多维度的数字化变革。面对新一代技术+商业操作系统AI-CPS OS颠覆性的数字化+智能化力量,领导者必须在行业、企业与个人这三个层面都保持领先地位:
重新行业布局:你的世界观要怎样改变才算足够?你必须对行业典范进行怎样的反思?
重新构建企业:你的企业需要做出什么样的变化?你准备如何重新定义你的公司?
重新打造自己:你需要成为怎样的人?要重塑自己并在数字化+智能化时代保有领先地位,你必须如何去做?
AI-CPS OS是数字化智能化创新平台,设计思路是将大数据、物联网、区块链和人工智能等无缝整合在云端,可以帮助企业将创新成果融入自身业务体系,实现各个前沿技术在云端的优势协同。AI-CPS OS形成的数字化+智能化力量与行业、企业及个人三个层面的交叉,形成了领导力模式,使数字化融入到领导者所在企业与领导方式的核心位置:
精细:这种力量能够使人在更加真实、细致的层面观察与感知现实世界和数字化世界正在发生的一切,进而理解和更加精细地进行产品个性化控制、微观业务场景事件和结果控制。
智能:模型随着时间(数据)的变化而变化,整个系统就具备了智能(自学习)的能力。
高效:企业需要建立实时或者准实时的数据采集传输、模型预测和响应决策能力,这样智能就从批量性、阶段性的行为变成一个可以实时触达的行为。
不确定性:数字化变更颠覆和改变了领导者曾经仰仗的思维方式、结构和实践经验,其结果就是形成了复合不确定性这种颠覆性力量。主要的不确定性蕴含于三个领域:技术、文化、制度。
边界模糊:数字世界与现实世界的不断融合成CPS不仅让人们所知行业的核心产品、经济学定理和可能性都产生了变化,还模糊了不同行业间的界限。这种效应正在向生态系统、企业、客户、产品快速蔓延。
AI-CPS OS形成的数字化+智能化力量通过三个方式激发经济增长:
创造虚拟劳动力,承担需要适应性和敏捷性的复杂任务,即“智能自动化”,以区别于传统的自动化解决方案;
对现有劳动力和实物资产进行有利的补充和提升,提高资本效率;
人工智能的普及,将推动多行业的相关创新,开辟崭新的经济增长空间。
给决策制定者和商业领袖的建议:
超越自动化,开启新创新模式:利用具有自主学习和自我控制能力的动态机器智能,为企业创造新商机;
迎接新一代信息技术,迎接人工智能:无缝整合人类智慧与机器智能,重新
评估未来的知识和技能类型;
制定道德规范:切实为人工智能生态系统制定道德准则,并在智能机器的开
发过程中确定更加明晰的标准和最佳实践;
重视再分配效应:对人工智能可能带来的冲击做好准备,制定战略帮助面临
较高失业风险的人群;
开发数字化+智能化企业所需新能力:员工团队需要积极掌握判断、沟通及想象力和创造力等人类所特有的重要能力。对于中国企业来说,创造兼具包容性和多样性的文化也非常重要。
子曰:“君子和而不同,小人同而不和。” 《论语·子路》云计算、大数据、物联网、区块链和 人工智能,像君子一般融合,一起体现科技就是生产力。
如果说上一次哥伦布地理大发现,拓展的是人类的物理空间。那么这一次地理大发现,拓展的就是人们的数字空间。在数学空间,建立新的商业文明,从而发现新的创富模式,为人类社会带来新的财富空间。云计算,大数据、物联网和区块链,是进入这个数字空间的船,而人工智能就是那船上的帆,哥伦布之帆!
新一代技术+商业的人工智能赛博物理操作系统AI-CPS OS作为新一轮产业变革的核心驱动力,将进一步释放历次科技革命和产业变革积蓄的巨大能量,并创造新的强大引擎。重构生产、分配、交换、消费等经济活动各环节,形成从宏观到微观各领域的智能化新需求,催生新技术、新产品、新产业、新业态、新模式。引发经济结构重大变革,深刻改变人类生产生活方式和思维模式,实现社会生产力的整体跃升。
产业智能官 AI-CPS
用“人工智能赛博物理操作系统”(新一代技术+商业操作系统“AI-CPS OS”:云计算+大数据+物联网+区块链+人工智能),在场景中构建状态感知-实时分析-自主决策-精准执行-学习提升的认知计算和机器智能;实现产业转型升级、DT驱动业务、价值创新创造的产业互联生态链。
长按上方二维码关注微信公众号: AI-CPS,更多信息回复:
新技术:“云计算”、“大数据”、“物联网”、“区块链”、“人工智能”;新产业:“智能制造”、“智能金融”、“智能零售”、“智能驾驶”、“智能城市”;新模式:“财富空间”、“工业互联网”、“数据科学家”、“赛博物理系统CPS”、“供应链金融”。
官方网站:AI-CPS.NET
本文系“产业智能官”(公众号ID:AI-CPS)收集整理,转载请注明出处!
版权声明:由产业智能官(公众号ID:AI-CPS)推荐的文章,除非确实无法确认,我们都会注明作者和来源。部分文章推送时未能与原作者取得联系。若涉及版权问题,烦请原作者联系我们,与您共同协商解决。联系、投稿邮箱:erp_vip@hotmail.com