精华内容
下载资源
问答
  • 模型的分类与对比

    千次阅读 2018-08-23 22:00:38
    缺点:简单模型有时不能充分体现出复杂作用机制 ❺ 算法模型 代表:随机森林 优点:可描绘复杂的数据,精确度高 缺点:可解释性弱 从学习对象角度进行划分 ❻ 生成模型 vs 判别模型:联合分布 ...

    这里写图片描述

    从学习方法角度进行划分

    参数模型 vs 非参数模型:全局普适性 vs 局部适用性

    ❶ 参数模型

    “新闻总是抄袭历史,模式在深处等待发掘。“

    当我们对问题有认知,有了「定性」的判断,然后我们便可以用「定量」的方式将它们刻画出来。所谓“参数模型”。

    优点:简单,只需付出较小的计算代价就可以从假设空间中习得一个较好的模型

    缺点:其可用性却严重依赖于先验知识的可信度,但若先验分布错误,则无法学出好的结果。

    ❷ 非参数模型

    “知之为知之,不知为不知,是知也。”

    当我们对问题知之甚少,最好的办法反而是避免对潜在模型做出过多的假设,所谓“非参数模型。”

    优点:当训练数据趋于无穷多时,非参数模型可以逼近任意复杂的真实模型。

    缺点:和参数相比,非参数模型的时空复杂度都会比参数模型大得多。

    误区:“非参数模型”不是“无参数模型”,恰恰相反,非参数模型意味着模型参数的数目是不固定的,并且极有可能是无穷大,这决定了非参数模型不可能像参数模型那样用固定且有限数目的参数来完全刻画。

    ❸ 参数模型 vs 非参数模型

    例子: 假定一个训练集中有 99 个数据,其均值为 100,方差为 1。那么对于第 100 个数据来说,它会以 99% 的概率小于哪一个数值呢?

    核心区别:数据分布特征的整体性与局部性。

    参数模型具有全局的特性,所有数据都满足统一的全局分布,如履至尊而制六合得到的扁平化结构。

    非参数模型是种局部模型,每个局部都有支配特性的参数,如战国时代每个诸侯国都有自己的国君一样。

    数据模型 vs 算法模型:可解释性 vs 精确性

    ❹ 数据模型

    代表:线性回归

    优点:可解释性强

    缺点:简单模型有时不能充分体现出复杂作用机制

    ❺ 算法模型

    代表:随机森林

    优点:可描绘复杂的数据,精确度高

    缺点:可解释性弱

    从学习对象角度进行划分

    ❻ 生成模型 vs 判别模型:联合分布 vs 条件分布

    生成模型(generative model)学习的对象是输入 x 和输出 y 的联合分布 p(x,y)

    判别模型学习的则是已知输入 x 的条件下,输出 y 的条件分布 p(y|x)

    区分的例子:以判断某种语言是什么?前者输出学完所有语言。后者是学会不同语言的区别。

    参数模型是主流,大数据出现后,非参数模型的应用前景如何?

    有没有参数,并不是参数模型和非参数模型的区别。其区别主要在于总体的分布形式是否已知。而为何强调“参数”与“非参数”,主要原因在于参数模型的分布可以有参数直接确定。

    参数模型:线形回归

    非参模型:决策树 -> 随机森林;核SVM;

    半参数模型:神经网络(层数和神经元 → 参数模型) /(深度学习中dropout → 非参数)

    非参数应用挺广泛,如Kaggle火热模型,XGBOOST,效果就十分好。

    展开全文
  • 土地分类标准对比

    2013-03-29 09:03:43
    土地资源分类标准对比,方便工作人员整合两类数据,充分发挥数据的作用
  • 机器学习的分类与主要算法对比

    万次阅读 多人点赞 2017-05-31 23:22:21
    机器学习的分类与主要算法对比重要引用:Andrew Ng Courera Machine Learning;从机器学习谈起;关于机器学习的讨论;机器学习常见算法分类汇总;LeNet Homepage;pluskid svm 首先让我们瞻仰一下当今机器学习领域...

    机器学习的分类与主要算法对比

    重要引用:Andrew Ng Courera Machine Learning从机器学习谈起关于机器学习的讨论机器学习常见算法分类汇总LeNet Homepagepluskid svm

      首先让我们瞻仰一下当今机器学习领域的执牛耳者:

    这里写图片描述

      这幅图上的三人是当今机器学习界的执牛耳者。中间的是Geoffrey Hinton, 加拿大多伦多大学的教授,如今被聘为“Google大脑”的负责人。右边的是Yann LeCun, 纽约大学教授,如今是Facebook人工智能实验室的主任。而左边的大家都很熟悉,Andrew Ng,中文名吴恩达,斯坦福大学副教授,如今也是“百度大脑”的负责人与百度首席科学家。这三位都是目前业界炙手可热的大牛,被互联网界大鳄求贤若渴的聘请,足见他们的重要性。而他们的研究方向,则全部都是机器学习的子类–深度学习。

      从广义上来说,机器学习是一种能够赋予机器学习的能力以此让它完成直接编程无法完成的功能的方法。但从实践的意义上来说,机器学习是一种通过利用数据,训练出模型,然后使用模型预测的一种方法。

    这里写图片描述

      机器学习无疑是当前数据分析领域的一个热点内容。很多人在平时的工作中都或多或少会用到机器学习的算法。从范围上来说,机器学习跟模式识别,统计学习,数据挖掘是类似的,同时,机器学习与其他领域的处理技术的结合,形成了计算机视觉、语音识别、自然语言处理等交叉学科。因此,一般说数据挖掘时,可以等同于说机器学习。同时,我们平常所说的机器学习应用,应该是通用的,不仅仅局限在结构化数据,还有图像,音频等应用。

      机器学习的算法很多。很多时候困惑人们都是,很多算法是一类算法,而有些算法又是从其他算法中延伸出来的。这里,我们从两个方面来给大家介绍,第一个方面是学习的方式,第二个方面是算法的类似性。

    一、机器学习方式

      根据数据类型的不同,对一个问题的建模有不同的方式。在机器学习或者人工智能领域,人们首先会考虑算法的学习方式。在机器学习领域,有几种主要的学习方式。将算法按照学习方式分类是一个不错的想法,这样可以让人们在建模和算法选择的时候考虑能根据输入数据来选择最合适的算法来获得最好的结果。

    1.1 监督学习

    这里写图片描述

      在监督式学习下,输入数据被称为“训练数据”,每组训练数据有一个明确的标识或结果,如对防垃圾邮件系统中“垃圾邮件”“非垃圾邮件”,对手写数字识别中的“1“,”2“,”3“,”4“等。在建立预测模型的时候,监督式学习建立一个学习过程,将预测结果与“训练数据”的实际结果进行比较,不断的调整预测模型,直到模型的预测结果达到一个预期的准确率。监督式学习的常见应用场景如分类问题和回归问题。常见算法有逻辑回归(Logistic Regression)和反向传递神经网络(Back Propagation Neural Network)

    1.2 无监督学习

    这里写图片描述

      在非监督式学习中,数据并不被特别标识,学习模型是为了推断出数据的一些内在结构。常见的应用场景包括关联规则的学习以及聚类等。常见算法包括Apriori算法以及k-Means算法。

    1.3 半监督学习

    这里写图片描述

      在此学习方式下,输入数据部分被标识,部分没有被标识,这种学习模型可以用来进行预测,但是模型首先需要学习数据的内在结构以便合理的组织数据来进行预测。应用场景包括分类和回归,算法包括一些对常用监督式学习算法的延伸,这些算法首先试图对未标识数据进行建模,在此基础上再对标识的数据进行预测。如图论推理算法(Graph Inference)或者拉普拉斯支持向量机(Laplacian SVM.)等。

    1.4 强化学习

    这里写图片描述

      在这种学习模式下,输入数据作为对模型的反馈,不像监督模型那样,输入数据仅仅是作为一个检查模型对错的方式,在强化学习下,输入数据直接反馈到模型,模型必须对此立刻作出调整。常见的应用场景包括动态系统以及机器人控制等。常见算法包括Q-Learning以及时间差学习(Temporal difference learning)


    二、机器学习常用算法

      根据算法的功能和形式的类似性,我们可以把算法分类,比如说基于树的算法,基于神经网络的算法等等。当然,机器学习的范围非常庞大,有些算法很难明确归类到某一类。而对于有些分类来说,同一分类的算法可以针对不同类型的问题。这里,我们尽量把常用的算法按照最容易理解的方式进行分类。

    2.1 回归算法(有监督学习)

    这里写图片描述

      在大部分机器学习课程中,回归算法都是介绍的第一个算法。原因有两个:一.回归算法比较简单,介绍它可以让人平滑地从统计学迁移到机器学习中。二.回归算法是后面若干强大算法的基石,如果不理解回归算法,无法学习那些强大的算法。回归算法有两个重要的子类:即线性回归和逻辑回归。

      回归算法是试图采用对误差的衡量来探索变量之间的关系的一类算法。回归算法是统计机器学习的利器。在机器学习领域,人们说起回归,有时候是指一类问题,有时候是指一类算法,这一点常常会使初学者有所困惑。常见的回归算法包括:最小二乘法(Ordinary Least Square),逻辑回归(Logistic Regression),逐步式回归(Stepwise Regression),多元自适应回归样条(Multivariate Adaptive Regression Splines)以及本地散点平滑估计(Locally Estimated Scatterplot Smoothing)

    • 线性回归就是如何拟合出一条直线最佳匹配我所有的数据?一般使用“最小二乘法”来求解。“最小二乘法”的思想是这样的,假设我们拟合出的直线代表数据的真实值,而观测到的数据代表拥有误差的值。为了尽可能减小误差的影响,需要求解一条直线使所有误差的平方和最小。最小二乘法将最优问题转化为求函数极值问题。函数极值在数学上我们一般会采用求导数为0的方法。但这种做法并不适合计算机,可能求解不出来,也可能计算量太大。

    • 逻辑回归是一种与线性回归非常类似的算法,但是,从本质上讲,线型回归处理的问题类型与逻辑回归不一致。线性回归处理的是数值问题,也就是最后预测出的结果是数字,例如房价。而逻辑回归属于分类算法,也就是说,逻辑回归预测结果是离散的分类,例如判断这封邮件是否是垃圾邮件,以及用户是否会点击此广告等等。

      实现方面的话,逻辑回归只是对对线性回归的计算结果加上了一个Sigmoid函数,将数值结果转化为了0到1之间的概率(Sigmoid函数的图像一般来说并不直观,你只需要理解对数值越大,函数越逼近1,数值越小,函数越逼近0),接着我们根据这个概率可以做预测,例如概率大于0.5,则这封邮件就是垃圾邮件,或者肿瘤是否是恶性的等等。从直观上来说,逻辑回归是画出了一条分类线,逻辑回归算法划出的分类线基本都是线性的(也有划出非线性分类线的逻辑回归,不过那样的模型在处理数据量较大的时候效率会很低)。

    2.2 正则化方法

    这里写图片描述

      正则化方法是其他算法(通常是回归算法)的延伸,根据算法的复杂度对算法进行调整。正则化方法通常对简单模型予以奖励而对复杂算法予以惩罚。常见的算法包括:Ridge Regression, Least Absolute Shrinkage and Selection Operator(LASSO),以及弹性网络(Elastic Net)。

    2.3 基于实例的算法

    这里写图片描述

      基于实例的算法常常用来对决策问题建立模型,这样的模型常常先选取一批样本数据,然后根据某些近似性把新数据与样本数据进行比较。通过这种方式来寻找最佳的匹配。因此,基于实例的算法常常也被称为“赢家通吃”学习或者“基于记忆的学习”。常见的算法包括 k-Nearest Neighbor(KNN), 学习矢量量化(Learning Vector Quantization, LVQ),以及自组织映射算法(Self-Organizing Map , SOM)

    2.4 决策树算法

      决策树算法根据数据的属性采用树状结构建立决策模型, 决策树模型常常用来解决分类和回归问题。常见的算法包括:分类及回归树(Classification And Regression Tree, CART), ID3 (Iterative Dichotomiser 3), C4.5, Chi-squared Automatic Interaction Detection(CHAID), Decision Stump, 随机森林(Random Forest), 多元自适应回归样条(MARS)以及梯度推进机(Gradient Boosting Machine, GBM)

      一般的机器学习模型至少考虑两个量:一个是因变量,也就是我们希望预测的结果,在这个例子里就是小Y迟到与否的判断。另一个是自变量,也就是用来预测小Y是否迟到的量。假设我把时间作为自变量,譬如我发现小Y所有迟到的日子基本都是星期五,而在非星期五情况下他基本不迟到。于是我可以建立一个模型,来模拟小Y迟到与否跟日子是否是星期五的概率。见下图:

    这里写图片描述

      这样的图就是一个最简单的机器学习模型,称之为决策树。

      当我们考虑的自变量只有一个时,情况较为简单。如果把我们的自变量再增加一个。例如小Y迟到的部分情况时是在他开车过来的时候(你可以理解为他开车水平较臭,或者路较堵)。于是我可以关联考虑这些信息。建立一个更复杂的模型,这个模型包含两个自变量与一个因变量。再更复杂一点,小Y的迟到跟天气也有一定的原因,例如下雨的时候,这时候我需要考虑三个自变量。

      如果我希望能够预测小Y迟到的具体时间,我可以把他每次迟到的时间跟雨量的大小以及前面考虑的自变量统一建立一个模型。于是我的模型可以预测值,例如他大概会迟到几分钟。这样可以帮助我更好的规划我出门的时间。在这样的情况下,决策树就无法很好地支撑了,因为决策树只能预测离散值。我们可以用线型回归方法建立这个模型。

      如果我把这些建立模型的过程交给电脑。比如把所有的自变量和因变量输入,然后让计算机帮我生成一个模型,同时让计算机根据我当前的情况,给出我是否需要迟出门,需要迟几分钟的建议。那么计算机执行这些辅助决策的过程就是机器学习的过程。

    2.5 贝叶斯方法

    这里写图片描述

      贝叶斯方法算法是基于贝叶斯定理的一类算法,主要用来解决分类和回归问题。常见算法包括:朴素贝叶斯算法,平均单依赖估计(Averaged One-Dependence Estimators, AODE),以及Bayesian Belief Network(BBN)。

    2.6 基于核的算法(有监督学习)

    这里写图片描述

      基于核的算法中最著名的莫过于支持向量机(SVM)了。 基于核的算法把输入数据映射到一个高阶的向量空间, 在这些高阶向量空间里, 有些分类或者回归问题能够更容易的解决。 常见的基于核的算法包括:支持向量机(Support Vector Machine, SVM), 径向基函数(Radial Basis Function ,RBF), 以及线性判别分析(Linear Discriminate Analysis ,LDA)等。接下来将重点介绍一下SVM

    · 支持向量机 SVM

      支持向量机算法是诞生于统计学习界,同时在机器学习界大放光彩的经典算法。

      支持向量机算法从某种意义上来说是逻辑回归算法的强化:通过给予逻辑回归算法更严格的优化条件,支持向量机算法可以获得比逻辑回归更好的分类界线。但是如果没有某类函数技术,则支持向量机算法最多算是一种更好的线性分类技术。

      但是,通过跟高斯“核”的结合,支持向量机可以表达出非常复杂的分类界线,从而达成很好的的分类效果。“核”事实上就是一种特殊的函数,最典型的特征就是可以将低维的空间映射到高维的空间。

      SVM方法是通过一个非线性映射p,把样本空间映射到一个高维乃至无穷维的特征空间中(Hilber空间),使得在原来的样本空间中非线性可分的问题转化为在特征空间中的线性可分的问题。升维,就是把样本向高维空间做映射,一般情况下这会增加计算的复杂性,甚至会引起“维数灾难”,因而人们很少问津。但是作为分类、回归等问题来说,很可能在低维样本空间无法线性处理的样本集,在高维特征空间中却可以通过一个线性超平面实现线性划分(或回归)。一般的升维都会带来计算的复杂化,SVM方法巧妙地解决了这个难题:应用核函数的展开定理,就不需要知道非线性映射的显式表达式;由于是在高维特征 空间中建立线性学习机,所以与线性模型相比,不但几乎不增加计算的复杂性,而且在某种程度上避免了“维数灾难”.这一切要归功于核函数的展开和计算理论。

      选择不同的核函数,可以生成不同的SVM,常用的核函数有以下4种:
      - 性核函数K(x,y)=x·y
      - 多项式核函数K(x,y)=[(x·y)+1]d
      - 向基函数K(x,y)=exp(-|x-y|^2/d^2)
      - 层神经网络核函数K(x,y)=tanh(a(x·y)+b)

      如下图所示,我们如何在二维平面划分出一个圆形的分类界线?在二维平面可能会很困难,但是通过“核”可以将二维空间映射到三维空间,然后使用一个线性平面就可以达成类似效果。也就是说,二维平面划分出的非线性分类界线可以等价于三维平面的线性分类界线。于是,我们可以通过在三维空间中进行简单的线性划分就可以达到在二维平面中的非线性划分效果。

    待分类数据

    已分类数据

      支持向量机是一种数学成分很浓的机器学习算法(相对的,神经网络则有生物科学成分)。在算法的核心步骤中,有一步证明,即将数据从低维映射到高维不会带来最后计算复杂性的提升。于是,通过支持向量机算法,既可以保持计算效率,又可以获得非常好的分类效果。因此支持向量机在90年代后期一直占据着机器学习中最核心的地位,基本取代了神经网络算法。直到现在神经网络借着深度学习重新兴起,两者之间才又发生了微妙的平衡转变。

    2.7 聚类算法(无监督学习)

    这里写图片描述

      聚类,就像回归一样,有时候人们描述的是一类问题,有时候描述的是一类算法。聚类算法通常按照中心点或者分层的方式对输入数据进行归并。简单来说,聚类算法就是计算种群中的距离,根据距离的远近将数据划分为多个族群,所以的聚类算法都试图找到数据的内在结构,以便按照最大的共同点将数据进行归类。常见的聚类算法包括 k-Means算法以及期望最大化算法(Expectation Maximization, EM)。

    2.8 关联规则学习

    这里写图片描述

      关联规则学习通过寻找最能够解释数据变量之间关系的规则,来找出大量多元数据集中有用的关联规则。常见算法包括 Apriori算法和Eclat算法等。

    2.9 人工神经网络 ANN(有监督学习)

      神经网络(也称之为人工神经网络,ANN)算法是80年代机器学习界非常流行的算法,不过在90年代中途衰落。现在,携着“深度学习”之势,神经网络重装归来,重新成为最强大的机器学习算法之一。

      神经网络的诞生起源于对大脑工作机理的研究。早期生物界学者们使用神经网络来模拟大脑。机器学习的学者们使用神经网络进行机器学习的实验,发现在视觉与语音的识别上效果都相当好。在BP算法(加速神经网络训练过程的数值算法)诞生以后,神经网络的发展进入了一个热潮。BP算法的发明人之一是前面介绍的机器学习大牛Geoffrey Hinton。

      人工神经网络是机器学习的一个庞大的分支,有几百种不同的算法,通常用于解决分类和回归问题。(其中深度学习就是其中的一类算法,我们会单独讨论),重要的人工神经网络算法包括:感知器神经网络(Perceptron Neural Network), 反向传递(Back Propagation),Hopfield网络,自组织映射(Self-Organizing Map, SOM)。学习矢量量化(Learning Vector Quantization, LVQ)

      具体说来,神经网络的学习机理是什么?简单来说,就是分解与整合。在著名的Hubel-Wiesel试验中,学者们研究猫的视觉分析机理是这样的。

    这里写图片描述

      比方说,一个正方形,分解为四个折线进入视觉处理的下一层中。四个神经元分别处理一个折线。每个折线再继续被分解为两条直线,每条直线再被分解为黑白两个面。于是,一个复杂的图像变成了大量的细节进入神经元,神经元处理以后再进行整合,最后得出了看到的是正方形的结论。这就是大脑视觉识别的机理,也是神经网络工作的机理。

      让我们看一个简单的神经网络的逻辑架构。在这个网络中,分成输入层,隐藏层,和输出层。输入层负责接收信号,隐藏层负责对数据的分解与处理,最后的结果被整合到输出层。每层中的一个圆代表一个处理单元,可以认为是模拟了一个神经元,若干个处理单元组成了一个层,若干个层再组成了一个网络,也就是”神经网络”。

    这里写图片描述

      上图描述的是一个目前研究最为成熟Shallow 结构的神经网络(只含有单层隐藏层神经元的结构)。第一层为输入层 (input layer ),第二层称为隐藏层 ( hidden layer ),最后一层为输出层( output layer )。神经元之间都是由低层出发,终止于高层神经元的一条有向边进行连接,每条边都有自己的权重。每个神经元都是一个计算单元,如在Feed-forward neural network 中,除输入层神经元外,每个神经元为一个计算单元,可以通过一个计算函数 f() 来表示,函数的具体形式可以自己定义,现在用的较多的是 感知器计算神经元,如果你对感知器有所了解的话,理解起来会容易很多。 可以计算此时神经元所具有的能量值,当该值超过一定阀值的时候神经元的状态就会发生改变,神经元只有两种状态,激活或未激活。在实际的人工神经网络中,一般是用一种概率的方式去表示神经元是否处于激活状态,可以用 h(f) 来表示,f 代表神经元的能量值,h(f) 代表该能量值使得神经元的状态发生改变的概率有多大,能量值越大,处于激活状态的概率就越高。到这部分你已经接触到了关于神经网络的几个基本术语,下面用更加规范的符号来表示,神经元的激活值(activations) f() ,表示计算神经元的能量值, 神经元的激活状态 h(f) ,h 表示激活函数。


    在神经网络中,每个处理单元事实上就是一个逻辑回归模型,逻辑回归模型接收上层的输入,把模型的预测结果作为输出传输到下一个层次。通过这样的过程,神经网络可以完成非常复杂的非线性分类。

      下图会演示神经网络在图像识别领域的一个著名应用,这个程序叫做LeNet,是一个基于多个隐层构建的神经网络。通过LeNet可以识别多种手写数字,并且达到很高的识别精度与拥有较好的鲁棒性。

    这里写图片描述

      右下方的方形中显示的是输入计算机的图像,方形上方的红色字样“answer”后面显示的是计算机的输出。左边的三条竖直的图像列显示的是神经网络中三个隐藏层的输出,可以看出,随着层次的不断深入,越深的层次处理的细节越低,例如层3基本处理的都已经是线的细节了。LeNet的发明人就是前文介绍过的机器学习的大牛Yann LeCun。

      大约二三十年前,Neural Network曾经是ML领域特别火热的一个方向,但是后来确慢慢淡出了,进入90年代,神经网络的发展进入了一个瓶颈期。其主要原因是尽管有BP算法的加速,神经网络的训练过程仍然很困难。因此90年代后期支持向量机(SVM)算法取代了神经网络的地位。
      
      原因包括以下几个方面:
      1. 比较容易过训练,参数比较难确定;
      2. 训练速度比较慢,在层次比较少(小于等于3)的情况下效果并不比其它方法更优;

      所以中间有大约20多年的时间,神经网络被关注很少,这段时间基本上由SVM和Boosting算法主导。但是,Hinton坚持下来并最终(和Bengio、Yann.lecun等)提成了一个实际可行的Deep Learning框架。

    2.10 深度学习

    这里写图片描述

      虽然深度学习这四字听起来颇为高大上,但其理念却非常简单,就是传统的神经网络发展到了多隐藏层的情况。

      在上文介绍过,自从90年代以后,神经网络已经消寂了一段时间。但是BP算法的发明人Geoffrey Hinton一直没有放弃对神经网络的研究。由于神经网络在隐藏层扩大到两个以上,其训练速度就会非常慢,因此实用性一直低于支持向量机。2006年,Geoffrey Hinton在科学杂志《Science》上发表了一篇文章,论证了两个观点:

      1.多隐层的神经网络具有优异的特征学习能力,学习得到的特征对数据有更本质的刻画,从而有利于可视化或分类;
      2.深度神经网络在训练上的难度,可以通过“逐层初始化” 来有效克服。

      通过这样的发现,不仅解决了神经网络在计算上的难度,同时也说明了深层神经网络在学习上的优异性。从此,神经网络重新成为了机器学习界中的主流强大学习技术。同时,具有多个隐藏层的神经网络被称为深度神经网络,基于深度神经网络的学习研究称之为深度学习。

      由于深度学习的重要性质,在各方面都取得极大的关注,按照时间轴排序,有以下四个标志性事件值得一说:

      1. 2012年6月,《纽约时报》披露了Google Brain项目,这个项目是由Andrew Ng和Map-Reduce发明人Jeff Dean共同主导,用16000个CPU Core的并行计算平台训练一种称为“深层神经网络”的机器学习模型,在语音识别和图像识别等领域获得了巨大的成功。Andrew Ng就是文章开始所介绍的机器学习的大牛。
      2. 2012年11月,微软在中国天津的一次活动上公开演示了一个全自动的同声传译系统,讲演者用英文演讲,后台的计算机一气呵成自动完成语音识别、英中机器翻译,以及中文语音合成,效果非常流畅,其中支撑的关键技术是深度学习;
      3. 2013年1月,在百度的年会上,创始人兼CEO李彦宏高调宣布要成立百度研究院,其中第一个重点方向就是深度学习,并为此而成立深度学习研究院(IDL)。
      4. 2013年4月,《麻省理工学院技术评论》杂志将深度学习列为2013年十大突破性技术(Breakthrough Technology)之首。

    深度学习的发展热潮

      神经网络研究领域领军者Hinton在2006年提出了神经网络Deep Learning算法,使神经网络的能力大大提高,向支持向量机发出挑战。Deep Learning假设神经网络是多层的,首先用RestrictedBoltzmann Machine(非监督学习)学习网络的结构,然后再通过Back Propagation(监督学习)学习网络的权值。

      深度学习算法是对人工神经网络的发展。 在近期赢得了很多关注, 深度学习试图建立大得多也复杂得多的神经网络。很多深度学习的算法是半监督式学习算法,用来处理存在少量未标识数据的大数据集。常见的深度学习算法包括:受限波尔兹曼机(Restricted Boltzmann Machine, RBN), Deep Belief Networks(DBN),卷积网络(Convolutional Network), 堆栈式自动编码器(Stacked Auto-encoders)。

      总之,deep learning能够得到更好地表示数据的feature,同时由于模型的层次、参数很多,capacity足够,因此,模型有能力表示大规模数据,所以对于图像、语音这种特征不明显(需要手工设计且很多没有直观物理含义)的问题,能够在大规模训练数据上取得更好的效果。此外,从模式识别特征和分类器的角 度,deep learning框架将feature和分类器结合到一个框架中,用数据去学习feature,在使用中减少了手工设计feature的巨大工作量(这是目前工业界工程师付出努力最多的方面),因此,不仅仅效果可以更好,而且,使用起来也有很多方便之处。


    Deep Learning与传统的神经网络异同:

    • 相同点: Deep Learning采用了神经网络相似的分层结构,系统由包括输入层、隐层(多层)、输出层组成的多层网络,只有相邻层节点之间有连接,同一层以及跨层节点之间相互无连接,每一层可以看作是一个Logistic Regression模型;这种分层结构,是比较接近人类大脑的结构的。

    • 不同点:而为了克服神经网络训练中的问题,DL采用了与神经网络很不同的训练机制。传统神经网络中,采用的是Back Propagation的方式进行,简单来讲就是采用迭代的算法来训练整个网络,随机设定初值,计算当前网络的输出,然后根据当前输出和label之间的 差去改变前面各层的参数,直到收敛(整体是一个梯度下降法)。而DeepLearning整体上是一个Layer-Wise的训练机制。这样做的原因是因为,如果采用Back Propagation的机制,对于一个Deep Network(7层以上),残差传播到最前面的层已经变得太小,出现所谓的Gradient Diffusion。

    2.11 降低维度算法(无监督学习)

    这里写图片描述

      像聚类算法一样,降低维度算法试图分析数据的内在结构,不过降低维度算法是以非监督学习的方式试图利用较少的信息来归纳或者解释数据。这类算法可以用于高维数据的可视化或者用来简化数据以便监督式学习使用。常见的算法包括:主成份分析(Principle Component Analysis, PCA),偏最小二乘回归(Partial Least Square Regression,PLS), Sammon映射,多维尺度(Multi-Dimensional Scaling, MDS), 投影追踪(Projection Pursuit)等。

      其主要特征是将数据从高维降低到低维层次。在这里,维度其实表示的是数据的特征量的大小,例如,房价包含房子的长、宽、面积与房间数量四个特征,也就是维度为4维的数据。可以看出来,长与宽事实上与面积表示的信息重叠了,例如面积=长 × 宽。通过降维算法我们就可以去除冗余信息,将特征减少为面积与房间数量两个特征,即从4维的数据压缩到2维。于是我们将数据从高维降低到低维,不仅利于表示,同时在计算上也能带来加速。

      刚才说的降维过程中减少的维度属于肉眼可视的层次,同时压缩也不会带来信息的损失(因为信息冗余了)。如果肉眼不可视,或者没有冗余的特征,降维算法也能工作,不过这样会带来一些信息的损失。但是,降维算法可以从数学上证明,从高维压缩到的低维中最大程度地保留了数据的信息。因此,使用降维算法仍然有很多的好处。

      降维算法的主要作用是压缩数据与提升机器学习其他算法的效率。通过降维算法,可以将具有几千个特征的数据压缩至若干个特征。另外,降维算法的另一个好处是数据的可视化,例如将5维的数据压缩至2维,然后可以用二维平面来可视。降维算法的主要代表是PCA算法(即主成分分析算法)。

    2.12 集成算法

    这里写图片描述

      集成算法用一些相对较弱的学习模型独立地就同样的样本进行训练,然后把结果整合起来进行整体预测。集成算法的主要难点在于究竟集成哪些独立的较弱的学习模型以及如何把学习结果整合起来。这是一类非常强大的算法,同时也非常流行。常见的算法包括:Boosting, Bootstrapped Aggregation(Bagging), AdaBoost,堆叠泛化(Stacked Generalization, Blending),梯度推进机(Gradient Boosting Machine, GBM),随机森林(Random Forest)。

    展开全文
  • 讲述新老土地利用分类对比及地类认定依据。土地利用现状分类即土地综合分类,在土地资源管理中应用最为广泛。掌握土地利用现状是国家制定国民经济计划和有关政策,发挥土地宏观调控作用,加强土地管理,合理利用土地...
  • 数据库分类及主流数据库对比

    千次阅读 2019-11-11 09:52:54
    2 数据库对比 1 数据库分类 数据库根据数据结构可分为关系型数据库和非关系型数据库。非关系型数据库中根据应用场景又可分为键值(Key-Value)数据库、列存储数据库、面向文档数据库、搜索引擎数据库等。 1.1 ...

    数据库使用系列专栏:数据库使用系列文章


    目录

    1 数据库分类

    1.1 关系型数据库

    1.2 非关系型数据库

    2 数据库对比


    1 数据库分类

    数据库根据数据结构可分为关系型数据库和非关系型数据库。非关系型数据库中根据应用场景又可分为键值(Key-Value)数据库、列存储数据库、面向文档数据库、搜索引擎数据库等。

    1.1 关系型数据库

    这种类型的数据库是最古老的数据库类型,关系型数据库模型是把复杂的数据结构归结为简单的二元关系(即二维表格形式), 如图2是一个二维表的实例。通常该表第一行为字段名称,描述该字段的作用,下面是具体的数据。在定义该表时需要指定字段的名称及类型。

    图一 数据库表实例

    在关系型数据库中,对数据的操作几乎全部建立在一个或多个关系表格上。在大型系统中通常有多个表,且表之间有各种关系。实际使用就是通过对这些关联的表格分类、合并、连接或选取等运算来实现数据库的管理。

    典型产品:MySQL、SqlServer、Oracle、PostgreSQL、SQLite等。

    1.2 非关系型数据库

    键值存储数据库

    键值数据库是一种非关系数据库,它使用简单的键值方法来存储数据。键值数据库将数据存储为键值对集合,其中键作为唯一标识符。

    图2 键值存储数据示意图

    如图2是某公有云的键值存储示意图,其中键包含分区键和排序键,而值包含更多的实际信息。比如实际使用是可以以学号为键,姓名、性别、年龄和班级等信息为值进行存储。实际存储形式很灵活,是业务需求自行定义即可。

    典型产品:Redis、Memcached等。

    列存储数据库

    列式存储(column-based)是相对于传统关系型数据库的行式存储(Row-basedstorage)来说的。简单来说两者的区别就是对表中数据的存储形式的差异。

    图3 列存储数据

    如图3是传统行数据库和列数据库表中数据在磁盘上的存储形式的差异对比。对于行存储数据库,表中的数据是以行为单位逐行存储在磁盘上的;而对于列存储数据库,表中的数据则是以列为单位逐列存储在磁盘中。

    列存储解决的主要问题是数据查询问题。我们知道,平时的查询大部分都是条件查询,通常是返回某些字段(列)的数据。对于行存储数据,数据读取时通常将一行数据完全读出,如果只需要其中几列数据的情况,就会存在冗余列,出于缩短处理时间的考量,消除冗余列的过程通常是在内存中进行的。而列存储,每次读取的数据是集合的一段或者全部,不存在冗余性问题。这样,通过这种存储方式的调整,使得查询性能得到极大的提升。

    典型产品:HBase等。

    面向文档数据库

    此类数据库可存放并获取文档,可以是XML、JSON、BSON等格式,这些文档具备可述性(self-describing),呈现分层的树状结构(hierarchical tree data structure),可以包含映射表、集合和纯量值。数据库中的文档彼此相似,但不必完全相同。文档数据库所存放的文档,就相当于键值数据库所存放的“值”。文档数据库可视为其值可查的键值数据库。

    典型产品:MongDB、CouchDB等。

    图形数据库

    图形数据库顾名思义,就是一种存储图形关系的数据库。图形数据库是NoSQL数据库的一种类型,它应用图形理论存储实体之间的关系信息。关系型数据用于存储明确关系的数据,但对于复杂关系的数据存储却有些力不从心。如图4这种人物之间的关系,如果用关系型数据库则非常复杂,用图形数据库将非常简单。

    图4 图形数据库示例

    典型产品:Neo4J、InfoGr id等。

    搜索引擎存储

    搜索引擎数据库是应用在搜索引擎领域的数据存储形式,由于搜索引擎会爬取大量的数据,并以特定的格式进行存储,这样在检索的时候才能保证性能最优。

    典型产品:Solr、Elasticsearch等。

    2 数据库对比

    几种主流关系型数据库对比:

    数据库优势缺点
    MySQL1)MySQL性能卓越,服务稳定,很少出现异常宕机。
    2)MySQL开放源代码且无版权制约,自主性及使用成本低,版本更新较快。
    3)MySQL软件体积小,安装使用简单,并且易于维护,安装及维护成本低。
    4)MySQL支持多种操作系统,提供多种API接口,支持多种开发语言,特别对流行的PHP语言有很好的支持。
    数据量大时处理性能不及Oracle
    SqlServer1)真正的客户机/服务器体系结构
    2)图形化的用户界面,使系统管理和数据库管理更加直观、简单
    3)丰富的编程接口工具,为用户进行程序设计提供了更大的选择余地
    4)与WinNT完全集成,利用了NT的许多功能,如发送和接受消息,管理登录安全性等,SQL Server也可以很好地与Microsoft  BackOffice产品集成。
    5)提供数据仓库功能,这个功能只在Oracle和其他昂贵的DBMS中才有。
    只能在Windows系统下运行
    Oracle

    1)Oracle 能在所有主流平台上运行 

    2)Oracle 性能高,保持开放平台下TPC-D和TPC-C世界记录   

    3)获得最高认证级别的ISO标准认证

    价格昂贵
    PostgreSQL1)PostgreSQL 的稳定性极强, Innodb 等引擎在崩溃、断电之类的灾难场景下抗打击能力有了长足进步。
    2)PG 性能高速度快。任何系统都有它的性能极限,在高并发读写,负载逼近极限下,PG的性能指标仍可以维持双曲线甚至对数曲线,到顶峰之后不再下降。
    3)PG 多年来在 GIS 领域处于优势地位,因为它有丰富的几何类型,实际上不止几何类型,PG有大量字典、数组、bitmap 等数据类型。
    4)PostgreSQL 是唯一支持事务、子查询、多版本并行控制系统、数据完整性检查等特性的唯一的一种自由软件的数据库管理系统
    5)PG对数据量大的文本以及SQL处理较快
     
    SQLite

    1)零配置,SQlite3不用安装,不用配置,不用启动,关闭或者配置数据库实例。当系统崩溃后不用做任何恢复操作,再下次使用数据库的时候自动恢复 

    2SQLite是被设计成轻量级,自包含的,不依赖服务进程                  

    3)采用无数据类型,所以可以保存任何类型的数据,SQLite采用的是动态数据类型,会根据存入值自动判断                                                       

    4)可移植,可运行在不同操作系统上

    数据量不宜过大,sql语句执行相比其他数据库效率较低

    几种主流非关系型数据库对比:

    数据库优势缺点
    Redis1)支持内存缓存,这个功能相当于Memcached
    2)支持持久化存储,这个功能相当于MemcacheDb,ttserver
    3)数据类型更丰富。比其他key-value库功能更强
    4)支持主从集群,分布式
    5)支持队列等特殊功能
     
    Memcached开源的、高性能的、具有分布式内存对象的纯缓存系统不支持持久化
    HBase

    1)适合存储半结构化或非结构化数据

    2)高可用和海量数据以及很大的瞬间写入量

    3)记录很稀疏,RDBMS的行有多少列是固定的,为null的列浪费了存储空间。HBase为null的Column不会被存储,这样既节省了空间又提高了读性能。

    1)不适合于大范围扫描查询
    2)不直接支持 SQL 的语句查询
    MongoDB

    1)弱一致性(最终一致),更能保证用户的访问速度

    2)查询与索引方式灵活,是最像SQL的Nosql

    3)内置GridFS,支持大容量的存储

    4)内置Sharding,支持复制集、主备、互为主备、自动分片等特性

    5)第三方支持丰富 6)性能优越

    1)单机可靠性比较差 2)磁盘空间占用比较大

    3)大数据量持续插入,写入性能有较大波动

    架构设计有一句流行语:不以业务模型为基础的架构设计都是耍流氓。同样数据库选型也应该根据自己业务需求选择最适合自己的数据库

    展开全文
  • 下游的传统分类手段3.Bert原生的分类器 写在前面: 自2018年来,Bert在多个NLP领域都取得了颠覆性的成绩,诸如词性标注、问答系统等等。它本身采用的依然是Transform的机制,但是对于文本它是双向编码表示,,也就是...


    写在前面: 自2018年来,Bert在多个NLP领域都取得了颠覆性的成绩,诸如词性标注、问答系统等等。它本身采用的依然是Transform的机制,但是对于文本它是双向编码表示,,也就是Bert的全称: Bidirectional Encoder Representations from Transformers。现在对于Bert的使用和衍生变种很多很多,比如 Bert as service(可部署到服务器上,方便快捷版的Bert)、 Bert-NER(用来做实体识别)、 Bert-utils(句向量的引入)等等。实际上,针对很多人来说,我们仅仅是使用者、而不需要发费过多的时间在这上面去研究原理, 实用至上
    本文介绍的是文本的多分类问题,旨在为大家提供一种快速上手复杂神经模型的思路,其他可以类比。

    一、从无到有第一步

    假设现在你需要解决一个文本的多分类问题,如新闻文章划分(军事?体育?财经?)或者网上政务留言文本分类后交给各个部门(环境保护部门?民政部门?工商管理部门?),列举这些例子就是为了说明文本分类在很多领域都很重要,我们常说:“聚类、分类、关联能解决99%的数据挖掘问题”,灵活转化问题才是最重要的。扯远了哈,你已经明确你有一个文本多分类的问题,第一步就是收集分类的手段,而不要考虑文本,这样做的好处一会再说。把问题拆解开来,分类手段有啥?(百度即可),哦!决策树、朴素贝叶斯、SVM、高级点的LightGBM、神经网络等都可以,把它们记录下来,熟悉它们的使用方法(输入输出很重要),适应的范围和优缺点,原理的话,学有余力你可以学习。最快的方法是找代码直接看直接调通。
    加入文本二字,你自然就会想到,文本是字符,上述这些方法的输入都是数值(向量)。好了,恭喜你,你已经在走那些大神走过的路了。文本编码有啥方法呀?问问度娘(或者来CSDN也可~ _~),词袋模型,one-hot模型,TF-IDF方法,word2vec(2 = to,英文中的通假字了解一下)等等,映入眼帘,当然,你肯定还会看到Bert的身影,别着急,一步一步来。同样的方法,你把每种方法的实现、优缺点等搞懂,你就知道适合你的任务的编码方式是啥了。
    总结一下,第一步你需要做的就是不停的查、不停的下载代码、调代码。很简单对吧,但是并非如此哦,你可能一步一步陷入某个理论中不能自拔,查完这个发现不懂就去查另一个,套娃既视感,做正确的选择很重要。

    二、搭配起来作比较

    很神奇吧,你现在知道文本的编码有那么多、分类的方法有那么多,即便筛选掉那些你觉得肯定对你任务不合适的方法,这样排列组合的形式还是有很多。那么对任务上下游方法进行搭配就很重要了。谁也不会知道那个效果好,那就多搭配搭配试一试,比较各个模型组合起来的效果。对于分类问题比较好的衡量标准就是F-Score和准确率,一般来说准确率用的可能要多一些。但是在竞赛中F-Score是更为常见的。
    这里可以回答为啥我们要把问题分开考虑了,因为想要你的模型比别人效果好,必须要有创新,而直接关联的去查找文本多分类的资料,你得到的只能是别人用过的。你可能会说,你只追求效果好,那也行,但是如果你要写论文的化,你就知道这个有多重要了。
    针对那些需要写论文等文字资料的童鞋,推荐一下几个绘制图标的好工具:

    1. processon:在线绘制流程图,在每一章的开头给一幅“本章架构图”,很加分;
    2. echarts:不想循规蹈矩的用excel绘制统计图表,echarts这款很适合你,简单JavaScript语法很容易上手,而且官网上给出了许多实例,改改数据就能用。
    三、言归正传扯代码

    前面说的都是铺垫,在很多你不熟悉的领域都是很好的思路,技术更新那么快,快速上手你需要技巧的~
    下面我就来介绍我在某一次文本分类任务中的使用的bert-util+传统分类模型,并且我也会在接下来介绍一些Bert原生分类器的原理和方法。

    1.Bert-util详解

    这里插几句,说下我为啥选择Bert-util。在最开始我使用的也是Bert-master(就是谷歌给的那一款),天啊!我发现Bert只能截断指定长度的文本,比如一个文本1000个汉字,受限于max_position_embeddings
    注意这个是直接截断的!直接截断的!万一信息量文档后面集中分布,那该咋办,(╯▽╰),我也不知道。我在网上找到这个Bert-util,标题说的是“一行代码生成句向量”,但是实际使用的过程中发现还是不行,这个弊端并没有被作者修正。我不知道用“ 弊端”这个词对不对,因为它本身可能并不适合文档级别的文本在这里插入图片描述
    那我为啥还选择Bert-util呢?
    很显然的是,Bert-util能够很好完成输入一个文本序列给出一个向量。你会问Bert-master不行吗?也可以,但是他是通过【CLS】实现的,说白了他是给每一个字一个向量,但是【CLS】作为一个特殊字符,本身不具有语义的特征,通过Bert内在机制,【CLS】对应的向量本身是可以作为这个序列特征的文本表示。你可以理解为Bert将序列的全部信息给了【CLS】,万千宠爱集于一身,O(∩_∩)O~
    选择了Bert-util是一种偶然,为了解决Bert的弊端却没有解决,但是Bert-util代码很容易理解,易于与下面的传统分类方法结合。
    下面怼代码了,做好准备:
    A:下载Bert-util代码(上面给了链接),下载Bert的中文模型(谷歌给咱跑的不用白不用,高性能机器上也要一周):https://storage.googleapis.com/bert_models/2018_11_03/chinese_L-12_H-768_A-12.zip
    添加到Bert-util的目录中。(下图展示了位置,请自行忽略我自己产生的垃圾数据)
    在这里插入图片描述
    切记不要修改中文模型的任何文件,包括文件名。
    B:把中文模型的文件路径添加进去,在args.py文件中。
    在这里插入图片描述
    C:新建一个run.py文件,写入以下内容:

    from bert.extrac_feature import BertVector
    bv = BertVector()
    print(bv.encode(['我爱你中国!'])

    注意输入格式是列表,尤其是在你批量传入的时候。
    D:批量的时候要保存向量以便于后续的下游的传统分类任务,在extract_feature.py中修改如下:
    在这里插入图片描述
    这里我是保存到一个txt里,其实就是要遍历prediction,你想咋保存就咋保存吧。
    E:这里你就可以跑你新建的run.py了,注意第一次运行时会新建一个tmp/result/graph文本,它保存了模型的一些参数等信息。注意如果你不调整参数的话,第二次就可以直接使用这个了。但是,一旦调整了参数就必须把tem文件夹直接删除,或者重命名也可以。
    F:调参是一个很玄学的事情。bert-util的调参在args.py和modeling.py中,每个参数的具体含义都是很显而易见的。这个模型运行代价不是很大,一般的笔记本就能跑,调参就自己试一试吧,一般batch_size设为32比较好,学习率尽可能低,一般到十万分位。温馨提示,调参时注意记录,无论是写论文还是指导下一步调参都很重要。
    在这里插入图片描述
    (args.py)
    在这里插入图片描述
    (modeling.py)

    2.下游的传统分类手段

    (1)基于概率模型的朴素贝叶斯分类器:朴素贝叶斯分类器是一系列以假设特征之间强(朴素)独立下运用贝叶斯定理为基础的简单概率分类器。优点在于数据集较小的情况下的仍旧可以处理多类别问题使用于标称数据。面对Bert生成的序列向量,朴素贝叶斯并没有很好的处理能力,主要原因是:其一,Bert生成向量的各维度是连续属性;其二,Bert生成向量各个维度并不是完全独立的。因此这种分类方法在原理上来讲不会具有很好的分类效果;
    (2)基于网络结构的SVM分类方法:支持向量机的思想来源于感知机,是一种简单的浅层神经网络。但SVM较一般的神经网络具有更好的解释性和更完美的数学理论支撑。SVM的目的在于寻求划分各类的超平面。当然,支持向量机可实现非线性分类,利用核函数将数据抽象到更高维的空间,进而将非线性问题转换为线性问题;
    (3)基于树模型的LightGBM分类器:LightGBM是对一般决策树模型和梯度提升决策树模型XGBoost的一种改进。内部使用Histogram的决策树算法和带有深度限制的Leaf-wise的叶子生长策略,主要优势在于更快的训练效率、低内存占用以及适用大规模并行化数据处理。(来自我的某篇小论文)

    代码实现我都不好意思说,为啥呢?因为Sklearn里封装的太棒了,当然LightGBM要单独安装使用。
    分享以下Sklearn的中文文档,你想做的它都有:https://www.cntofu.com/book/170/index.html
    传统分类器也有调参的过程,祝君好运!O(∩_∩)O

    3.Bert原生的分类器

    bert本身就具有很好的分类器,也就是基于【CLS】进行分类,“CLS”本身就是classify的缩写。如何使用一查一大堆。不再赘述了。一般来说,Bert原生的分类器分类的准确性比较高,其实他就是在网络后通过Fine-Tuning机制添加少量的神经网络层,一般都有softmax层,这个大家可以了解一下。

    好了,这篇扯得有点多,也有点乱,不过大家按照这个来,你完全可以完成一个文本的(多)分类任务,并且你可以按照这个思路完成任何你不熟悉的领域。

    关于我的代码就不给了,需要私我,我常在哦!有问题也可以留言评论,欢迎交流,一起进步!
    ————————END——————————

    展开全文
  • OCR图片相似度对比分类算法

    千次阅读 2018-11-26 19:20:28
    (图1:二值化后的图片) (图二:转换为01矩阵后的图片) 一、像素点对比 我们将标准图匹配图的每个像素点进行比对,如果相等,则相似点加一。这样扫描两张完图片,我们可以得到二者之间相似点的多少,再用相似...
  • 词的分类自然是语法中非常重要的一部分. 语言的起源 我们知道像英语,汉语这样的自然语言可不是 为了好玩而发明的.而是为了便于人类更好的认识世界,互相交流,传承人类知识和文明而出现的.并在随着历史的发展而不断...
  • Caffe是典型的功能(过程)计算方式,它首先按照每一个大功能(可视化、损失函数、非线性激励、数据层)将功能分类并针对部分功能实现相应的父类,再将具体的功能实现成子类,或者直接继承Layer类,从而形成了...
  • 1. 线性分类器在深度学习计算机视觉系列(2)我们提到了图像识别的问题,同时提出了一种简单的解决方法——KNN。然后我们也看到了KNN在解决这个问题的时候,虽然实现起来非常简单,但是有很大的弊端:分类器必须记住...
  • 我们知道名词分为很多类,那动词也同样会分类. 如果按功能分的话动词可分为四类,分别是: 实义动词(Notional Verb)、系动词(Link Verb)、助动词(Auxiliary Verb)、情态动词(Modal Verb) 其中只有实义动词...
  • 之前在决策树系列中写了一篇博客,是利用决策树建立了一个银行借贷模型,鉴于都是分类,今天就来对比下贝叶斯和决策树的分类效果。 一、数据集 下载:https://pan.baidu.com/s/1AtFKXSMYdD_G3M5UhTC1-w 提取码: ...
  • 关于BYOBScratch的对比与反思

    千次阅读 2012-08-23 16:54:35
    这几天,听到一些老师在介绍BYOB,于是下载安装来玩玩,并Scratch进行对比学习,以下是我的一些学习收获体会,收集整理大家分享交流,如不当之处,敬请博友们批评指正。 一 一、 BYOBScratch的姻缘
  • caffe tensorflow对比

    万次阅读 2018-05-21 17:00:38
    Caffe是典型的功能(过程)计算方式,它首先按照每一个大功能(可视化、损失函数、非线性激励、数据层)将功能分类并针对部分功能实现相应的父类,再将具体的功能实现成子类,或者直接继承Layer类,从而形成了...
  • 对比了中欧抗震标准中有关钢结构抗震设计的若干条文,包括抗震设防目标、场地分类、抗震设计反应谱及抗弯框架结构的设计地震作用。结果表明:在对场地条件以及地震作用的计算方法进行一定换算的基础上,对于D类场地下不...
  • 一、问题上篇文章中我们已经搞明白了逻辑回归的问题中,xgboost的train(),fit()方法已经不同参数的objective的对应的输出结果和关系,这篇文章我们就来研究下xgboost再做多分类时,train(),fit()建模后输出的...
  • bagging的偏差和方差boosting的偏差和方差模型的独立性算法对比 k邻近(KNN) 基础算法 KNN是通过测量不同特征值之间的距离进行分类。它的的思路是: 如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样 本...
  • 基于ArcMap的回归克里格普通克里格方法插值结果对比分析1 背景知识准备2 回归克里格实现2.1 采样点环境变量提取2.2 子集要素划分2.3 异常值提取2.4 土壤有机质含量经典统计学分析2.5 回归方程求取2.6 残差提取...
  • 微服务、SOA 和 API对比与分析

    千次阅读 2016-07-02 14:53:25
    摘要 对比微服务架构和面向服务的架构(SOA)是一个敏感的话题,常常引起激烈的争论。本文将介绍这些争论的起源,并分析如何...深入浅出SOA思想微服务、SOA 和 API对比与分析 1 简介 在对比微服务架构和面向服务
  • StormSpark、Hadoop三种框架对比

    万次阅读 2018-08-24 16:30:06
    个人分类: 大数据云计算 常见面试题 一、StormSpark、Hadoop三种框架对比 StormSpark、Hadoop这三种框架,各有各的优点,每个框架都有自己的最佳应用场景。所以,在不同的应用场景下,应该选择不同的框架...
  • 感知器SVM分类

    2018-08-18 12:37:26
    分别运用感知器和支持向量机实现了对数据集的分类,可以帮助初学者了解入门。
  • 重入锁ReentranLockSynchronized对比

    千次阅读 2017-10-15 14:14:08
    重入锁ReentranLockSynchronized对比 1. ReentranLock相关介绍: (1)Lock接口介绍: Lock接口不是Java语言内置的,不像synchronized是Java语言的关键字,是内置属性。而Lock是一个接口,通过这个接口可以...
  • 各种优化器的对比3.1三种梯度下降法的对比3.2 SGD(梯度下降)3.3 Momentum3.4 NAG(Nesterov accelerated gradient)3.5 Adagrad3.6 RMSprop3.7 Adadelta3.8 Adam4.优化器的选择5.演示示例 1.优化器的作用 优化器是...
  • 互联网分类与标签

    千次阅读 2018-06-20 09:40:27
    分类分类是一个将思想或事物进行识别、差异化和理性化的过程。也通常是出于某一目的,进行分门别类(分组)。最初的博客页面自带了分类功能;文章和类别是一一对应的。后来对分类进行了延伸,允许子类的存在,允许一...
  • 这几年react、vue的快速发展,越来越多的前端开始讲es6的代码运用在项目中,因为我们可以通过babel进行转译为低版本的js以便于运行在所有浏览器中,import、export、let、箭头函数等等,对于node端,当然我们也希望...
  • LR、决策树、SVM的选择与对比

    千次阅读 2019-03-05 00:38:24
    分类问题是我们在各个行业的商业业务...本文将逻辑回归(Logistic Regression)、决策树(Decision Trees)和支持向量机(Support Vector Machine,SVM)进行对比找出每个算法的优缺点以及适合的数据形式。 上面列...
  • Worktile Teambition 的优劣对比

    千次阅读 2017-02-11 10:33:17
    任务编号还有一个神作用,就是和Github的commit相关联,从而实现任务代码的无缝整合,超级福利研发团队。子任务如果遇到复杂的任务,需要做进一步的二级分解。这时,我们的子任务功能就可以很好的满足这个需求。...
  • 写在开头:本节其实在学习了上一节的MNIST手写体分类后,自己又按照VGG的迷你版搭建了一遍网络,再运行的时候突然想到可以用GPU来跑,于是本节就GPUCPU运算速度进行一个对比。 内容安排 今天主要是简单介绍一下...
  • 二、CNNRNN对比 1、CNN卷积神经网络RNN递归神经网络直观图 2、相同点: 2.1. 传统神经网络的扩展。 2.2. 前向计算产生结果,反向计算模型更新。 2.3. 每层神经网络横向可以多个神经元共存,纵向可以有多层...
  • skfuzzy.cmeanssklearn.KMeans聚类效果对比以及使用方法

    万次阅读 热门讨论 2018-03-16 18:42:36
    因为实验中要用到聚类效果的对比,没有时间自己来实现算法,所以Kmeans就用到了sklearn中的Kmeans类,FCM用到了skfuzzy.cmeans。   几个概念 1、Kmeans Kmeans是聚类算法中较为经典的算法之一,由于其效率高,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 93,891
精华内容 37,556
关键字:

对比的分类与作用