机器学习知识点(人工智能篇)

机器学习简史:拍拍贷AI中心数据研发负责人:王春平

一、机器学习简介

谢谢!首先今天特别荣幸能够到兴业这边来跟大家一起做这样一个简单的分享。之前听兴业的朋友讲,在机器学习这个话题方面我们应该是第一次做相关的分享。所以我会从相对广一点的角度去和大家探讨这个主题,并融入我个人在这个领域里工作和学习的一些体会。后续的“无界”论坛再推出系列专题。如果各位在某一个方面感觉特别有兴趣或者是觉得我这里漏掉了什么东西,会后我们可以进一步交流。

这是今天要讲的整体框架:首先是一个简单的介绍,然后把一些相对经典的模型串到一起,试图从中间找一些共通的地方,接下来介绍机器学习应用过程中一些比较常见的套路,还有就是讲讲我个人对人工智能未来发展趋势的看法。

我们今天主要探讨的更多的是科研这一块,也就是和模型的构建比较相关的话题。在整个机器学习概念里面,按照学习的时候有没有老师来教,可以把它分成三个大的类别。一个是就像我在课堂上听讲一样,老师会教我这个是苹果,那个是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本身的分布有方法可以学出来的话,就可以生成一个新数据集,做真实值指补充等等,这算一些好处。当然生成模型还有一些别的比较好的特性,如果大家有兴趣的话,我们以后可以展开。现在先预热一下,简单介绍一下机器学习大概的情况。

接下来呢我们可以来看一些很简单的算法,但其实也是很经典的。比如说你要做非监督模型,你要做一下聚类,那肯定Kmeans是一个逃不掉东西。它的基本思想很简单,就是说我有一堆数据想要分堆,假设我是要分成三个堆,那我就先随机的设三个点,然后通过迭代来实现每个点到它的中心的距离平方和是最小的,就是相当于找到这三个最有代表性的中心点。它是一个很典型的非监督学习,它没有对数据的分布做任何的假设,没有认为它是某种的分布,或者说,不管是什么样的分布,我都去做这件事情。优化的目标就是要使得它的这三个点是最有代表性的,所以他是把这个问题最终变成了一个做优化求解。当你要有新的数据加进来的时候,也是可以带入距离的公式,去找到哪个点是对于这个点来说最有代表性的一个中心点。

还有一个比较经典的就是用来做分类的逻辑回归(logistic regression)。它也是一个监督学习方法,这个模型的假设是基于一个概率。所以它跟线性回归其实是不太一样的,输出也是一个概率值,我们在用它的时候也是得到的这个概率。比如说我们这里关心的一个问题是这个借款人他最终会不会按时还款,然后这个模型打分出来的结果就是这个人按时还款的概率值是多少。有了这样的一个模型的函数以后,接下来就是要解决我该怎么样去求解,因为这里存在一个待定系数:β。对于一个概率问题,一般最常用的一个方式是求log后的likelihood,最终其实也是把这样一个概率形式的模型转化成一个优化损失函数(cost function)问题。那其实大家会发现所有的套路基本上都是这样子:假如说你是要做一个点估计,就是说想估计出来这个参数的一个最优的值的话,基本上套路都是会先假定这个函数形式,找到它的损失函数,去把它变成一个优化问题来解。

神经 络是一个监督学习,可以用来做回归或分类问题。它的思想就是我的一个输入有很多,然后输出只有一个。这是我的自变量X和因变量Y(见图),但是我认为中间有很多的隐藏层,这里是一层,如果它有很多层的话就是现在比较流行的深度学习(deep learning)架构。每一层其实都是下面一层的一个线性表达函数,这样一层一层垒起来最终要去优化的就是因变量Y和实际上我们观察到Y的误差,也是最小化这个误差,就可以把它的损失函数写出来,转化成优化问题。为什么大家都那么喜欢把它转成优化问题为如果它是一个凸问题的话,是已经有很好的解决方案的,相信在座的各位可能都知道,就基本上相当于是把前期的比较麻烦的东西转化到套路上面。

如果这个噪声是一个随机项,也没什么意义,所以对付这个过拟合的话有一个比较常见的套路,就是给他加这个正则约束项。比如说像刚才提到的那个线性回归,假如说我们不加任何调整项的话,它可以直接是一个闭式的解,很简单。但是同时也会出现一个问题,就是有可能系数会特别大。所以一般来说的话,会希望去加一些惩罚项,使得这些系数不会是一些太大的数,因为太大的数有很多问题,它们可能正负抵消。要去“惩罚”它,可以有很多不同的方式,现在比较流行的比如说加一个L1范数或者是在一个L2范数或者是两个结合起来,等等。这些惩罚项的选取是对于有不同特点的数据,或者真正的需求不一样的模型会有所不同。

还有一个现在特别热门的方向,这个套路是假如说我有一些弱的分类器或是弱的模型,那我们把它集成(Ensemble)起来去解决一些问题,这里面包括Bagging、Boosting、Stacking等等各种不同的方式,即分类器集成

我们首先来讲一下Bagging。这个图看起来很复杂,但是简单的来说就是我原来可能只有一千个数据,就很难去检验我这个数据,或者检验这个模型受不同数据的影响会比较大,因为我不是有十万或一百万的数据,不能做各种不同的抽样。假如我只有一千个数据,那我每次都从这1000个数据中分出来不同的数据,来做各个子集。这些数据其实都来自同一个地方,训练出来很多个模型,然后再把它组合起来,简单来说是这样。然后子集的生成都是随机的,没有什么特殊的关照。我们现在比较流行的随机森林(random forest)应该是基于这个思想。

还有一个是Stacking,这个看图的话就更要晕过啦。简单的来讲就是假如有好几个传感器,比如说有的时候做GBBoost,随机森林,等等各种分类器,我都把它用来在训练集上学习,得到一个模型并且预测出来一些结果。然后根据预测出来的结果,我再在上面用对应的方法学出来的模型,相当于是在模型上面套一层模型。这个模型的输入是上面这些模型的输出,就是相当于是看哪个模型应该有更多的权重,而不是直接把每个模型的输出平均起来,可能做的比较好的模型权重相对比较高,所以这个方式一般来说会大大提高表现。特别是当基模型之间的差异度比较大的时候。如果基模型都差不多,那无论怎么样平均结果也都差不多。这是一些简单套路,后期还有更多套路,这几个是比较通用的。

我今天大概就到这里吧,然后如果有对于某一个话题比较感兴趣的来宾的话,我们可以线下再做一些沟通。时间差不多了,谢谢大家!

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2017年6月15日
下一篇 2017年6月15日

相关推荐