网站性能检测评分
注:本网站页面html检测工具扫描网站中存在的基本问题,仅供参考。
机器学习
机器学习之确定最佳聚类数目的10种方法 - iDoNews 企业视频课程
原标题:机器学习之确定最佳聚类数目的10种方法雷锋网AI科技评论按,本文作者贝尔塔,原文载于知乎专栏数据分析与可视化,雷锋网AI科技评论获其授权发布。在聚类分析的时候确定最佳聚类数目是一个很重要的问题,比如kmeans函数就要你提供聚类数目这个参数,总不能两眼一抹黑乱填一个吧。之前也被这个问题困扰过,看了很多博客,大多泛泛带过。今天把看到的这么多方法进行汇总以及代码实现并尽量弄清每个方法的原理。数据集选用比较出名的wine数据集进行分析因为我们要找一个数据集进行聚类分析,所以不需要第一列的种类标签信息,因此去掉第一列。同时注意到每一列的值差别很大,从1到100多都有,这样会造成误差,所以需要归一化,用scale函数去掉标签之后就可以开始对数据集进行聚类分析了,下面就一一介绍各种确定最佳聚类数目的方法判定方法1.mclust包mclust包是聚类分析非常强大的一个包,也是上课时老师给我们介绍的一个包,每次导入时有一种科技感:)帮助文档非常详尽,可以进行聚类、分类、密度分析Mclust包方法有点“暴力”,聚类数目自定义,比如我选取的从1到20,然后一共14种模型,每一种模型都计算聚类数目从1到20的BIC值,最终确定最佳聚类数目,这种方法的思想很直接了当,但是弊端也就显然易见了——时间复杂度太高,效率低。635164可见该函数已经把数据集聚类为3种类型了。数目分别为63、51、64。再画出14个指标随着聚类数目变化的走势图下表是这些模型的意义它们应该分别代表着相关性(完全正负相关——对角线、稍强正负相关——椭圆、无关——圆)等参数的改变对应的模型,研究清楚这些又是非常复杂的问题了,先按下表,知道BIC值越大则说明所选取的变量集合拟合效果越好。上图中除了两个模型一直递增,其他的12模型数基本上都是在聚类数目为3的时候达到峰值,所以该算法由此得出最佳聚类数目为3的结论。mclust包还可以用于分类、密度估计等,这个包值得好好把玩。注意:此BIC并不是贝叶斯信息准则!!!最近上课老师讲金融模型时提到了BIC值,说BIC值越小模型效果越好,顿时想起这里是在图中BIC极大值为最佳聚类数目,然后和老师探讨了这个问题,之前这里误导大家了,Mclust包里面的BIC并不是贝叶斯信息准则。1.维基上的贝叶斯信息准则定义与log(likelihood)成反比,极大似然估计是值越大越好,那么BIC值确实是越小模型效果越好2.Mclust包中的BIC定义[3]这是Mclust包里面作者定义的“BIC值”,此BIC非彼BIC,这里是作者自己定义的BIC,可以看到,这里的BIC与极大似然估计是成正比的,所以这里是BIC值越大越好,与贝叶斯信息准则值越小模型越好的结论并不冲突2.Nbclust包Nbclust包是我在《R语言实战》上看到的一个包,思想和mclust包比较相近,也是定义了几十个评估指标,然后聚类数目从2遍历到15(自己设定),然后通过这些指标看分别在聚类数为多少时达到最优,最后选择指标支持数最多的聚类数目就是最佳聚类数目。可以看到有16个指标支持最佳聚类数目为3,5个指标支持聚类数为2,所以该方法推荐的最佳聚类数目为3.3.组内平方误差和——拐点图想必之前动辄几十个指标,这里就用一个最简单的指标——sumofsquarederror(SSE)组内平方误差和来确定最佳聚类数目。这个方法也是出于《R语言实战》,自定义的一个求组内误差平方和的函数。随着聚类数目增多,每一个类别中数量越来越少,距离越来越近,因此WSS值肯定是随着聚类数目增多而减少的,所以关注的是斜率的变化,但WWS减少得很缓慢时,就认为进一步增大聚类数效果也并不能增强,存在得这个“肘点”就是最佳聚类数目,从一类到三类下降得很快,之后下降得很慢,所以最佳聚类个数选为三另外也有现成的包(factoextra)可以调用选定为3类为最佳聚类数目用该包下的fviz_cluster函数可视化一下聚类结果4.PAM(PartitioningAroundMedoids)围绕中心点的分割算法k-means算法取得是均值,那么对于异常点其实对其的影响非常大,很可能这种孤立的点就聚为一类,一个改进的方法就是PAM算法,也叫k-medoidsclustering首先通过fpc包中的pamk函数得到最佳聚类数目3pamk函数不需要提供聚类数目,也会直接自动计算出最佳聚类数,这里也得到为3得到聚类数提供给cluster包下的pam函数并进行可视化5.Calinskycriterion这个评估标准定义[5]如下:其中,k是聚类数,N是样本数,SSw是我们之前提到过的组内平方和误差,SSb是组与组之间的平方和误差,SSw越小,SSb越大聚类效果越好,所以Calinskycriterion值一般来说是越大,聚类效果越好可以看到该函数把组内平方和误差和Calinsky都计算出来了,可以看到calinski在聚类数为3时达到最大值。3画图出来观察一下注意到那个红点就是对应的最大值,自带的绘图横轴纵轴取的可能不符合我们的直觉,把数据取出来自己单独画一下这个看上去直观多了。这就很清晰的可以看到在聚类数目为3时,calinski指标达到了最大值,所以最佳数目为36.Affinitypropagation(AP)clustering这个本质上是类似kmeans或者层次聚类一样,是一种聚类方法,因为不需要像kmeans一样提供聚类数,会自动算出最佳聚类数,因此也放到这里作为一种计算最佳聚类数目的方法。AP算法的基本思想是将全部样本看作网络的节点,然后通过网络中各条边的消息传递计算出各样本的聚类中心。聚类过程中,共有两种消息在各节点间传递,分别是吸引度(responsibility)和归属度(availability)。AP算法通过迭代过程不断更新每一个点的吸引度和归属度值,直到产生m个高质量的Exemplar(类似于质心),同时将其余的数据点分配到相应的聚类中[7]15该聚类方法推荐的最佳聚类数目为15,再用热力图可视化一下选x或者y方向看(对称),可以数出来“叶子节点”一共15个7.轮廓系数Averagesilhouettemethod轮廓系数是类的密集与分散程度的评价指标。a(i)是测量组内的相似度,b(i)是测量组间的相似度,s(i)范围从-1到1,值越大说明组内吻合越高,组间距离越远——也就是说,轮廓系数值越大,聚类效果越好[9]可以看到也是在聚类数为3时轮廓系数达到了峰值,所以最佳聚类数为38.GapStatistic之前我们提到了WSSE组内平方和误差,该种方法是通过找“肘点”来找到最佳聚类数,肘点的选择并不是那么清晰,因此斯坦福大学的Robert等教授提出了GapStatistic方法,定义的Gap值为[9]取对数的原因是因为Wk的值可能很大通过这个式子来找出Wk跌落最快的点,Gap最大值对应的k值就是最佳聚类数可以看到也是在聚类数为3的时候gap值取到了最大值,所以最佳聚类数为39.层次聚类层次聚类是通过可视化然后人为去判断大致聚为几类,很明显在共同父节点的一颗子树可以被聚类为一个类10.clustergram最后一种算法是TalGalili[10]大牛自己定义的一种聚类可视化的展示,绘制随着聚类数目的增加,所有成员是如何分配到各个类别的。该代码没有被制作成R包,可以去Galili介绍页面)里面的github地址找到源代码跑一遍然后就可以用这个函数了,因为源代码有点长我就不放博客里面了,直接放出运行代码的截图。随着K的增加,从最开始的两类到最后的八类,图肯定是越到后面越密集。通过这个图判断最佳聚类数目的方法应该是看随着K每增加1,分出来的线越少说明在该k值下越稳定。比如k=7到k=8,假设k=7是很好的聚类数,那分成8类时应该可能只是某一类分成了两类,其他6类都每怎么变。反应到图中应该是有6簇平行线,有一簇分成了两股,而现在可以看到从7到8,线完全乱了,说明k=7时效果并不好。按照这个分析,k=3到k=4时,第一股和第三股几本没变,就第二股拆成了2类,所以k=3是最佳聚类数目方法汇总与比较wine数据集我们知道其实是分为3类的,以上10种判定方法中:可见上述方法中有的因为数据太大不能运行,有的结果很明显不对,一个可能是数据集的本身的原因(缺失值太多等),但是也告诉了我们在确定最佳聚类数目的时候需要多尝试几种方法,并没有固定的套路,然后选择一种可信度较高的聚类数目。最后再把这10种方法总结一下:
数据科学家必备的10种机器学习算法 - iDoNews 互联网视频课程
原文来源:towardsdatascience作者:ShashankGupta「雷克世界」编译:嗯~是阿童木呀、KABUDA、EVA可以说,机器学习从业者都是个性迥异的。虽然其中一些人会说“我是X方面的专家,X可以在任何类型的数据上进行训练”,其中,X=某种算法;而其他一些人则是“能够在适合的工作中施展其才华”。他们中的很多人认可“涉猎所有行业,而是其中一个领域的专家”策略,即他们在一个领域内拥有一个深厚的专业知识,并且对机器学习的不同领域有所了解。也就是说,没有人能否认这样的事实:作为数据科学家的实践者,我们必须了解一些通用机器学习的基础知识算法,这将帮助我们解决所遇到的新领域问题。本文对通用机器学习算法进行了简要的阐述,并列举了它们的相关资源,从而帮助你能够快速掌握其中的奥妙。1.主成分分析(PCA)/SVDPCA是一种无监督的方法,用于对由向量组成的数据集的全局属性进行理解。本文分析了数据点的协方差矩阵,以了解哪些维度(大部分情况)/数据点(少数情况)更为重要,即它们之间具有很多的变化,但与其他变量之间的协变性较低)。考虑一个矩阵顶级主成分(PC)的一种方式是考虑它的具有最高特征值的特征向量。奇异值分解(SVD)本质上也是计算有序组件的一种方法,但你在没有获得点的协方差矩阵的情况下也可以得到它。该算法通过获取维度缩小的数据点的方式来帮助人们克服维度难题。库:https://docs.scipy.org/doc/scipy/reference/generated/scipy.linalg.svd.htmlhttp://scikitlearn.org/stable/modules/generated/sklearn.decomposition.PCA.html入门教程:https://arxiv.org/pdf/1404.1100.pdf2a.最小二乘法和多项式拟合还记得你在大学时所学的数值分析(NumericalAnalysis)代码吗?其中,你使用直线和曲线连接点从而得到一个等式方程。在机器学习中,你可以将它们用于拟合具有低维度的小型数据集的曲线。(而对于具有多个维度的大型数据或数据集来说,实验的结果可能总是过度拟合,所以不必麻烦)。OLS有一个封闭形式的解决方案,所以你不需要使用复杂的优化技术。如上图所示,很明显,使用这种算法对简单的曲线/回归进行拟合是非常方便的。库:https://docs.scipy.org/doc/numpy/reference/generated/numpy.linalg.lstsq.htmlhttps://docs.scipy.org/doc/numpy-1.10.0/reference/generated/numpy.polyJt.html入门教程:https://lagunita.stanford.edu/c4x/HumanitiesScience/StatLearning/asset/linear_regression.pdf2b.约束线性回归最小二乘法可能会与异常值(outliers)、假字段(spuriousfields)和数据中的噪声相混淆。因此,我们需要约束以减少数据集上所进行拟合的线的方差。正确的方法是使用一个线性回归模型,以确保权重不会出错。模型可以有L1范数(LASSO)或L2(岭回归,RidgeRegression)或兼具两者(弹性回归)。均方损失得到优化。将这些算法用于拟合带有约束的回归线,避免过度拟合并对模型中噪声维度进行掩码。库:http://scikit-learn.org/stable/modules/linear_model.html入门教程:https://www.youtube.com/watch?v=5asL5Eq2x0Ahttps://www.youtube.com/watch?v=jbwSCwoT51M3.K均值聚类这是大家最喜欢的无监督聚类算法。给定一组向量形式的数据点,我们可以根据它们之间的距离制作点集群。这是一个期望最大化算法,它迭代地移动集群中心,然后架构每集群中心点聚焦在一起。该算法所采用的输入是将要生成的集群的数量,以及它将尝试聚集集群的迭代次数。顾名思义,你可以使用此算法在数据集中创建K个集群。库:http://scikit-learn.org/stable/modules/generated/sklearn.cluster.KMeans.html入门教程:https://www.youtube.com/watch?v=hDmNF9JG3lohttps://www.datascience.com/blog/k-means-clustering4.Logistic回归Logistic回归是有限线性回归,在应用权重后带有非线性(大多数使用sigmoid函数,或者你也可以使用tanh函数)应用,因此把输出限制到接近+/-类(在sigmoid的情况下是1和0)。利用梯度下降法对交叉熵损失函数(Cross-EntropyLossfunctions)进行优化。初学者需要注意的是:Logistic回归用于分类,而不是回归。你也可以把logistic回归看成是一层神经网络。Logistic回归使用诸如梯度下降或LBFGS等最优化方法进行训练。从事自然语言处理的的人员通常会称它为最大熵分类器(MaximumEntropyClassifier)。Sigmoid函数是这个样子的:使用LR对简单但具有鲁棒性的分类器进行训练。库:http://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html入门教程:https://www.youtube.com/watch?v=-la3q9d7AKQ5.支持向量机(SupportVectorMachines,SVM)支持向量机是线性模型,就像线性/Logistic回归一样,不同之处在于它们有不同的基于边缘的损失函数(支持向量机的推导是我见过的最漂亮的数学结果和特征值计算之一)。你可以使用诸如L-BFGS甚至SGD这样的最优化方法来优化损失函数。支持向量机中的另一个创新是将内核用于数据,以体现工程师的特色。如果你有很好的领域洞察力,你可以用更聪明的方法来替代优秀但是老旧的RBF内核并从中获利。支持向量机能做一件独特的事情:学习一类分类器。可以使用支持向量机来训练分类器(甚至是回归量)。库:http://scikit-learn.org/stable/modules/generated/sklearn.svm.SVC.html入门教程:https://www.youtube.com/watch?v=eHsErlPJWUU6.前馈神经网络(FeedforwardNeuralNetworks,FFNN)这些基本上都是多层的logistic回归分类器。许多权重的层被非线性函数(sigmoid、tanh、relu+softmax和炫酷的selu)分隔了。它们另一个流行的名字是多层感知器(Multi-LayeredPerceptron)。可以将FFNN作为自动编码器用于分类和非监督的特征学习。多层感知器(Multi-Layeredperceptron)FFNN作为自动编码器可以使用FFNN作为自动编码器来训练分类器或提取特征。库:http://scikit-learn.org/stable/modules/generated/sklearn.neural_network.MLPClassifier.html#sklearn.neural_network.MLPClassifierhttp://scikit-learn.org/stable/modules/generated/sklearn.neural_network.MLPRegressor.htmlhttps://github.com/keras-team/keras/blob/master/examples/reuters_mlp_relu_vs_selu.py入门教程:http://www.deeplearningbook.org/contents/mlp.htmlhttp://www.deeplearningbook.org/contents/autoencoders.htmlhttp://www.deeplearningbook.org/contents/representation.html7.卷积神经网络(Convents)目前,世界上近乎所有基于视觉的机器学习结果都是使用卷积神经网络实现的。它们可用于图像分类、目标检测及图像分割。YannLecun于80年代末90年代初提出卷积神经网络,其特征是卷积层,它起着提取分层特征的作用。你可以在文本(甚至图形)中使用它们。利用卷积神经网络对图像和文本进行分类,并进行目标检测和图像分割。库:https://developer.nvidia.com/digitshttps://github.com/kuangliu/torchcvhttps://github.com/chainer/chainercvhttps://keras.io/applications/入门教程:http://cs231n.github.io/https://adeshpande3.github.io/A-Beginner%27s-Guide-To-Understanding-Convolutional-Neural-Networks/8.循环神经网络(RNNs)RNNs模型序列通过在时间t递归地对聚集器状态施加相同的权重集,并且在时间t输入(给定一个序列,在时间0..t..T处有输入,并且在每个时间t具有隐藏状态,来自RNN的t-1步骤的输出)。现在很少使用纯RNN(pureRNN),但是像LSTM和GRU这类旗鼓相当的算法在大多数序列建模任务中仍是最先进的。RNN(如果这里是密集连接的单元与非线性,那么现在f一般是LSTM或GRU)。LSTM单元用于替代纯RNN中的简单致密层。使用RNN进行人物序列建模任务,特别是文本分类、机器翻译及语言建模。库:https://github.com/tensorqow/modelshttps://github.com/wabyking/TextClassiJcationBenchmarkhttp://opennmt.net/入门教程:http://cs224d.stanford.edu/http://www.wildml.com/category/neural-networks/recurrent-neural-networks/http://colah.github.io/posts/2015-08-Understanding-LSTMs/9.条件随机场(CRFs)CRFs或许是概率图形模型(PGMs)中使用频率最高的模型。它们可用于类似于RNN的序列建模,也可与RNN结合使用。在神经机器翻译系统出现之前,CRF是最先进的技术,在许多具有小数据集的序列标注任务中,它们仍然会比那些需要大量数据才能推广的RNN表现得更好。它们也可被用于其他结构化的预测任务,如图像分割等。CRF对序列中的每个元素(例如句子)进行建模,这样近邻会影响序列中某个组件的标签,而不是所有的标签相互独立。使用CRFs标记序列(如文本、图像、时间序列及DNA等)。库:https://sklearn-crfsuite.readthedocs.io/en/latest/入门教程:http://blog.echen.me/2012/01/03/introduction-to-conditional-random-Jelds/HugoLarochelle在Youtube上的系列讲座:https://www.youtube.com/watch?v=GF3iSJkgPbA10.决策树例如我有一张有关各种水果数据的Excel工作表,我必须标明哪些是苹果。我们需要做的是提出一个问题“哪些水果是红的,哪些水果是圆的?”然后根据答案,将“是”与“否”的水果区分开。然后,我们得到的红色和圆形的水果并不一定都是苹果,所有苹果也不一定都是红色和圆形的。因此,我会面向红色和圆形的水果提出一个问题,“哪些水果上有红色或黄色的标记”?向不是红色和圆形的水果提出一个问题,“哪些水果是绿色和圆形的”。基于这些问题,我可以非常准确的分辨出哪些是苹果。这一系列的问题展示了什么是决策树。然而,这是基于我个人直觉的决策树。直觉并不能处理高维度和复杂的问题。我们必须通过查看标记的数据来自动得出问题的级联,这就是基于机器学习的决策树所做的工作。早期的CART树曾被用于简单的数据,但随着数据集的不断扩大,偏差-方差的权衡需要用更好地算法来解决。目前常用的两种决策树算法是随机森林(RandomForests)(在属性的随机子集上建立不同的分类器,并将它们结合起来输出)和提升树(Boostingtrees)(在其他树的基础上对树的级联进行训练,纠正它们下面的错误)决策树可以用于分类数据点(甚至回归)。库:http://scikitlearn.org/stable/modules/generated/sklearn.ensemble.RandomForestClassiJer.htmlhttp://scikitlearn.org/stable/modules/generated/sklearn.ensemble.GradientBoostingClassiJer.htmlhttp://xgboost.readthedocs.io/en/latest/https://catboost.yandex/入门教程:http://xgboost.readthedocs.io/en/latest/model.htmlhttps://arxiv.org/abs/1511.05741https://arxiv.org/abs/1407.7502http://education.parrotprediction.teachable.com/p/practical-xgboost-in-pythonTD算法你不必思考上述哪种算法能够像DeepMind那样击败围棋世界冠军,因为它们都不能做到这一点。我们之前谈及的10种算法都是模式识别,而非策略学习者。为了学习能够解决多步骤问题的策略,比如赢得一盘棋或玩Atari游戏机,我们需要让一个空白的智能体在这世界上根据其自身面临的奖惩进行学习。这种类型的机器学习被称为强化学习。近期,在这个领域内所取得的很多(并非全部)成果都是通过将convnet或LSTM的感知能力与一组名为时间差分学习算法(TemporalDifferenceLearning)的算法组合而得来的。这其中包括Q-Learning、SARSA及其他算法。这些算法是对贝尔曼方程的巧妙应用,从而得到一个可以利用智能体从环境中得到的奖励来训练的损失函数。这些算法主要用于自动运行游戏中,并在其他语言生成和目标检测项目中予以应用。库:https://github.com/keras-rl/keras-rlhttps://github.com/tensorqow/minigo入门教程:Sutton与Barto的免费书籍:https://web2.qatar.cmu.edu/~gdicaro/15381/additional/SuttonBarto-RL-5Nov17.pdf观看DavidSilver的课程:https://www.youtube.com/watch?v=2pWv7GOvuf0我们介绍了可以助你成为数据科学家的10中机器学习算法。你可以在这里浏览机器学习库:https://blog.paralleldots.com/data-science/lesser-known-machine-learning-libraries-part-ii/原文链接:https://towardsdatascience.com/ten-machine-learning-algorithms-you-should-know-to-become-a-data-scientist-8dc93d8ca52e?source=userActivityShare-dc302bd40f88-1521164030
第四范式陈雨强:提高机器学习维度的两大法宝 流量视频课程
2017年5月27日,由人工智能顶尖媒体“机器之心”主办的2017全球机器智能峰会(GMIS2017)在京正式召开。大会邀请了来自中、美、欧等众多顶级专家参会,以专业化及全球化的视角为该领域的从业者及爱好者奉上了一场人工智能盛宴。第四范式联合创始人、首席研究科学家陈雨强受邀出席,并发表了主题演讲、分享了机器学习在工业界应用发展的新思考。 第四范式联合创始人、首席研究科学家陈雨强于全球机器智能峰会(GMIS2017)发表演讲陈雨强认为,过去五年,人工智能在工业界的火热程度正以指数的方式增长,而“VC维”便是衡量人工智能应用水平的关键。VC维理论是由Vapnik和Chervonenkis于1960年代至1990年代建立的统计学习理论,它反映了函数集的学习能力——VC维越大则模型或函数越复杂,学习能力就越强。举个例子,如果人类的智商水平可以用大脑的脑细胞数来衡量,那么机器的智商水平就可以用VC维来衡量,即超高智商的人工智能,需要超高维度的机器学习模型来实现。陈雨强表示,第四范式在提高模型维度方面可谓下足了功夫,高维度模型在实际应用中的效果亦十分出众。以第四范式与某银行信用卡中心的合作案例为例,该银行需要通过数据精准识别出所有客户当中的信用卡账单分期客户。在短短两个月内,经过第四范式和卡中心的共同努力,该信用卡账单分期模型从此前的两百多维,提升至“五千万维”,使账单分期推荐短信的响应率提升了68%,卡中心的账单分期手续费提升61%。取得如此显著的效果,陈雨强为与会者解密了第四范式的机器学习产品前瞻的研发思路。第四范式联合创始人、首席研究科学家陈雨强于全球机器智能峰会(GMIS2017)发表演讲
打造深度稀疏网络(DSN),兼顾“宽”与“深”的算法众所周知,机器学习包含数据、特征、模型三个方面。特征分为宏观(描述的统计类特征)、微观(如个性化ID特征)两类,模型也分为简单、复杂两类。在数据足够充足的情况下,沿着模型优化和特征优化的两条路径切入,可以有效地提高机器学习的模型维度。沿着模型优化——即走“深”的路径是由学术界主导,优化模型的科学家们为了方便实验,降低了工程实现能力的要求,大部分模型可单机加载。工业界在按照该思路优化时,往往采用观察数据、找到规律、根据规律做模型假设、对模型假设中的参数用数据拟合、将拟合的结果上线测试等步骤。这条路径需要解决数据分布式以及通讯overhead等问题。沿着特征优化——即走“宽”的路径是由工业界主导,无论是模型还是算法,均采取分布式的策略,在保证高效分布式的同时兼顾快速收敛。针对具体问题,采用较为成熟的线性模型,将观察到的所有微观特征进行建模。该优化路径的模型简单粗暴,且对工程挑战极大。两种路径在工业界都有非常成功的应用案例,但双方的劣势同样明显。崇尚“宽”路径的阵营认为深度模型在某些问题上从来没有发挥出数据的全部价值,离真正的个性化尚有差距;而宽度模型则在推理能力上略逊一筹。 Wide&DeepModel与DSN对比近年来,宽与深的结合已经逐渐成为一个研究热点。2016年6月,Google研究院发表论文称,正在研发Wide&DeepModel,并表示其在搜索、广告与推荐等领域均十分有效。同年7月,第四范式发布了新一代的模型算法——深度稀疏网络DSN(DeepSparseNetwork)。Wide&DeepModel利用深度窄网络刻画宏观特征之间的关系,利用宽度浅层网络记忆微观特征,但无法刻画微观特征之间的复杂关系,由于Wide&DeepModel将“宽”和“深”分离,导致微观和宏观特征之间的关系也无法刻画。与Wide&DeepModel不同,第四范式的DSN将“宽”和“深”做了更全面的融合,算法底层是上千亿大小的宽度网络,上层是一个全连接的网络,这样既可以记住更多信息,又能刻画所有特征(包括宏观特征和微观特征)之间更复杂的关系。在参数规模上,Wide&DeepModel支持的参数规模为十亿级,DSN支持的参数规模已达到十万亿级,模型“VC维”更高,这意味着随着数据量的增大,模型效果有更大的提升空间。重塑大规模分布式机器学习系统架构,兼顾开发和执行的效率在工业界应用中,由于模型维度的增加,对机器学习的系统架构提出了更高的要求。第一,由于功率墙(PowerWall,即芯片密度不能无限增长)和延迟墙(LatencyWall,即受光速限制,芯片规模和时钟频率不能无限增长)的限制,摩尔定律正在慢慢失效。目前,提升计算能力的方式主要是依靠并行计算,从早期的以降低执行延迟为主到现在的以提升吞吐量为主。在模型训练的高性能计算要求下,单机在I/O、存储、计算等方面显得力不从心。因此,第四范式针对此问题设计了分布式并行化的机器学习模型训练系统。PowerWall,功耗随着集成电路密度指数提升第二,在机器学习的领域中,一个著名的定理叫NoFreeLunch(Wolpert和Macready于1997年提出),是指任意算法(包括随机算法)在所有问题上的期望性能一样,不存在通用的算法,因此需要针对不同的实际问题,研发出不同的机器学习算法。这对于机器学习计算框架的开发效率要求极高。 典型的机器学习建模过程第三,在面对实际问题时,需要对数据、特征表达、模型、模型参数等进行多种尝试,且每一次尝试,都需要单独做模型训练。所以,模型训练是整个机器学习建模过程中被重复执行最多的模块,执行效率也就成为了重中之重。 机器学习核心系统对计算资源的需求对比除此之外,由于对计算问题、计算模式和计算资源的需求都有所不同,因此在所有问题上,没有最好的架构,只有最适合实际问题的架构。针对机器学习任务的特性进行框架设计才能更有效地解决大规模机器学习模型训练的计算问题。第四范式的机器学习系统兼顾了开发效率和执行效率,具备高效、智能、易开发、易部署、易运维、易扩展、覆盖场景广泛等优势,且随着计算能力的提升,该架构使模型的复杂度与投入的计算资源呈线性增长,与以往的架构相比,节省了大量的计算资源。在通过技术层面提高模型维度的同时,第四范式也在积极降低机器学习的使用门槛,让更多的技术、业务等非专业建模人员能够使用机器学习,建立适合各个业务的高维模型。陈雨强介绍说,2017年初,第四范式内部举行了全球首个面向非专业人士的机器学习建模比赛——“一颗赛艇建模大赛”。所有参赛选手均由第四范式内部行政、人事、市场、商务等非机器学习专业的员工构成。比赛结果按照参赛选手所建模型的AUC(笔者注:AUC是衡量模型准确度的专业指标,取值在0到1之间)指标衡量。以往,专业数据科学家的建模AUC在0.8以上。通过两周的简单培训,有70%的“业余”参赛选手的模型AUC达到了0.8以上的优异成绩。值得一提的是,在内部建模比赛之后,第四范式创立了“范式大学”人才培养计划,通过培养非专业人士利用“先知”建模,“批量生产”数据科学家,进一步解决AI人才高门槛的问题。关于陈雨强陈雨强,第四范式联合创始人、首席研究科学家,世界级深度学习、迁移学习专家。在百度凤巢期间主持了世界首个商用深度学习系统,大幅度提升广告点击率的同时,提升用户满意度和企业收入,加入今日头条后主持了中国用户量最多的新媒体人工智能推荐系统,完成全新的信息流推荐与广告系统的设计。作为第四范式首席研究科学家,带领团队打造专为机器学习而生的计算框架,实现人工智能产品化的关键技术突破,推出的人工智能产品“第四范式·先知”2016年荣获中国智能科技最高奖-吴文俊人工智能科学技术奖一等奖。陈雨强曾在NIPS,AAAI,ACL,SIGKDD等顶会上发表论文,获APWeb2010BestPaperAward,KDDCup2011名列前三,其学术工作在2010年作被全球著名科技杂志MITTechnologyReview报道。他和第四范式创始团队开创的“迁移学习”被业界认为是“下一代人工智能技术”。
打造深度稀疏网络(DSN),兼顾“宽”与“深”的算法众所周知,机器学习包含数据、特征、模型三个方面。特征分为宏观(描述的统计类特征)、微观(如个性化ID特征)两类,模型也分为简单、复杂两类。在数据足够充足的情况下,沿着模型优化和特征优化的两条路径切入,可以有效地提高机器学习的模型维度。沿着模型优化——即走“深”的路径是由学术界主导,优化模型的科学家们为了方便实验,降低了工程实现能力的要求,大部分模型可单机加载。工业界在按照该思路优化时,往往采用观察数据、找到规律、根据规律做模型假设、对模型假设中的参数用数据拟合、将拟合的结果上线测试等步骤。这条路径需要解决数据分布式以及通讯overhead等问题。沿着特征优化——即走“宽”的路径是由工业界主导,无论是模型还是算法,均采取分布式的策略,在保证高效分布式的同时兼顾快速收敛。针对具体问题,采用较为成熟的线性模型,将观察到的所有微观特征进行建模。该优化路径的模型简单粗暴,且对工程挑战极大。两种路径在工业界都有非常成功的应用案例,但双方的劣势同样明显。崇尚“宽”路径的阵营认为深度模型在某些问题上从来没有发挥出数据的全部价值,离真正的个性化尚有差距;而宽度模型则在推理能力上略逊一筹。 Wide&DeepModel与DSN对比近年来,宽与深的结合已经逐渐成为一个研究热点。2016年6月,Google研究院发表论文称,正在研发Wide&DeepModel,并表示其在搜索、广告与推荐等领域均十分有效。同年7月,第四范式发布了新一代的模型算法——深度稀疏网络DSN(DeepSparseNetwork)。Wide&DeepModel利用深度窄网络刻画宏观特征之间的关系,利用宽度浅层网络记忆微观特征,但无法刻画微观特征之间的复杂关系,由于Wide&DeepModel将“宽”和“深”分离,导致微观和宏观特征之间的关系也无法刻画。与Wide&DeepModel不同,第四范式的DSN将“宽”和“深”做了更全面的融合,算法底层是上千亿大小的宽度网络,上层是一个全连接的网络,这样既可以记住更多信息,又能刻画所有特征(包括宏观特征和微观特征)之间更复杂的关系。在参数规模上,Wide&DeepModel支持的参数规模为十亿级,DSN支持的参数规模已达到十万亿级,模型“VC维”更高,这意味着随着数据量的增大,模型效果有更大的提升空间。重塑大规模分布式机器学习系统架构,兼顾开发和执行的效率在工业界应用中,由于模型维度的增加,对机器学习的系统架构提出了更高的要求。第一,由于功率墙(PowerWall,即芯片密度不能无限增长)和延迟墙(LatencyWall,即受光速限制,芯片规模和时钟频率不能无限增长)的限制,摩尔定律正在慢慢失效。目前,提升计算能力的方式主要是依靠并行计算,从早期的以降低执行延迟为主到现在的以提升吞吐量为主。在模型训练的高性能计算要求下,单机在I/O、存储、计算等方面显得力不从心。因此,第四范式针对此问题设计了分布式并行化的机器学习模型训练系统。PowerWall,功耗随着集成电路密度指数提升第二,在机器学习的领域中,一个著名的定理叫NoFreeLunch(Wolpert和Macready于1997年提出),是指任意算法(包括随机算法)在所有问题上的期望性能一样,不存在通用的算法,因此需要针对不同的实际问题,研发出不同的机器学习算法。这对于机器学习计算框架的开发效率要求极高。 典型的机器学习建模过程第三,在面对实际问题时,需要对数据、特征表达、模型、模型参数等进行多种尝试,且每一次尝试,都需要单独做模型训练。所以,模型训练是整个机器学习建模过程中被重复执行最多的模块,执行效率也就成为了重中之重。 机器学习核心系统对计算资源的需求对比除此之外,由于对计算问题、计算模式和计算资源的需求都有所不同,因此在所有问题上,没有最好的架构,只有最适合实际问题的架构。针对机器学习任务的特性进行框架设计才能更有效地解决大规模机器学习模型训练的计算问题。第四范式的机器学习系统兼顾了开发效率和执行效率,具备高效、智能、易开发、易部署、易运维、易扩展、覆盖场景广泛等优势,且随着计算能力的提升,该架构使模型的复杂度与投入的计算资源呈线性增长,与以往的架构相比,节省了大量的计算资源。在通过技术层面提高模型维度的同时,第四范式也在积极降低机器学习的使用门槛,让更多的技术、业务等非专业建模人员能够使用机器学习,建立适合各个业务的高维模型。陈雨强介绍说,2017年初,第四范式内部举行了全球首个面向非专业人士的机器学习建模比赛——“一颗赛艇建模大赛”。所有参赛选手均由第四范式内部行政、人事、市场、商务等非机器学习专业的员工构成。比赛结果按照参赛选手所建模型的AUC(笔者注:AUC是衡量模型准确度的专业指标,取值在0到1之间)指标衡量。以往,专业数据科学家的建模AUC在0.8以上。通过两周的简单培训,有70%的“业余”参赛选手的模型AUC达到了0.8以上的优异成绩。值得一提的是,在内部建模比赛之后,第四范式创立了“范式大学”人才培养计划,通过培养非专业人士利用“先知”建模,“批量生产”数据科学家,进一步解决AI人才高门槛的问题。关于陈雨强陈雨强,第四范式联合创始人、首席研究科学家,世界级深度学习、迁移学习专家。在百度凤巢期间主持了世界首个商用深度学习系统,大幅度提升广告点击率的同时,提升用户满意度和企业收入,加入今日头条后主持了中国用户量最多的新媒体人工智能推荐系统,完成全新的信息流推荐与广告系统的设计。作为第四范式首席研究科学家,带领团队打造专为机器学习而生的计算框架,实现人工智能产品化的关键技术突破,推出的人工智能产品“第四范式·先知”2016年荣获中国智能科技最高奖-吴文俊人工智能科学技术奖一等奖。陈雨强曾在NIPS,AAAI,ACL,SIGKDD等顶会上发表论文,获APWeb2010BestPaperAward,KDDCup2011名列前三,其学术工作在2010年作被全球著名科技杂志MITTechnologyReview报道。他和第四范式创始团队开创的“迁移学习”被业界认为是“下一代人工智能技术”。