精华内容
下载资源
问答
  • 多层感知机就是含有至少一个隐藏层的由全连接层组成的神经网络,且每个隐藏层的输出通过激活函数进行变换。(最简单的MLP只有一个隐含层如下图。) 隐藏层与输入层是全连接的,假设输入层用向量X表示,则隐藏层...
    1. 感知机模型:将线性可分的数据,利用一个线性超平面将其分类;(感知机只有输出层神经元进行激活函数处理,即只有一层功能神经元)其模型公式为:y=sign(\theta*x)其中

    感知机模型损失定义:

    其中M表示误分类结点的集合;

    1. 多层感知机就是含有至少一个隐藏层的由全连接层组成的神经网络,且每个隐藏层的输出通过激活函数进行变换。(最简单的MLP只有一个隐含层如下图。)

    • 隐藏层与输入层是全连接的,假设输入层用向量X表示,则隐藏层的输出就是 f (W1X+b1),W1是权重(也叫连接系数),b1是偏置,函数f可以是常用的sigmoid 函数或者tanh函数;
    • 多层感知机是一种多层前馈神经网络 ,常用的快速训练算法有共轭梯度法、拟牛顿法。

    由于多层感知机算法的局限性,提出了误差逆传播算法即BP算法;(其不仅被用于多层前馈神经网络,也可用于其他神经网络。)

    BP算法实现过程

    1. BP算法基于梯度下降策略,以目标的负梯度的方向对参数调整,给定学习率,控制着算法每一轮迭代中更新步长,若太大则容易振荡;若太小则收敛速度太慢)。
    2. 在BP算法训练的过程:
    • 将输入示例提供给输入神经元;
    • 对输入数据进行计算,并逐层向前传播,产生输出结果;
    • 计算输出结果的误差;
    • 将误差逆向传播至隐层神经元;
    • 根据误差,调整参数(包括连接权和阈值),从②开始反复迭代,直到满足条件。

    ★解决BP算法中过拟合问题:

    1. 早停:将数据划分为训练集和验证集,训练集用来计算梯度、更新连接权和阈值,验证集用来估计误差,若训练集误差降低,但是验证集的误差升高,则停止训练,同时返回具有最小验证集误差的连接权和阈值。
    2. 正则化:在误差目标函数中增加一个用于描述网络复杂度的部分,例如连接权与阈值的平方和;其误差目标函数
    3. 其中Ek表示第K个训练样例上的误差,ωi表示连接权和阈值;用于经验误差与网络复杂度的折中,通过交叉验证来估计。

    ★全局最小与局部极小

    ●跳出局部极小方法:(1)以多组不同参数初始化多个神经网络,训练后取其中误差最小的解作为最终参数;即从局部极小选择更可能接近全局最小的结果。(2)使用“模拟退火”技术,在每一步都以一定概率接受比当前结果更差的结果,从而跳出局部极小。(3)随机梯度下降,与标准梯度下降法精确计算梯度不同,随机梯度下降法在计算梯度时加入了随机因素。于是,即便陷入局部极小点,它计算出的梯度仍可能不为零,这样就有机会跳出局部极小继续搜索。

     

    基于Sklearn框架的MLP算法实现:

     

     

    名称

    原理

    网络核心

    训练过程

    其他

    RBF(Radial Basis Fuction--径向基函数)网络

    一种单隐层前馈神经网络,使用径向基函数作为隐层神经元激活函数,输出层是对隐藏层的线性组合。

    c,w分别为隐层神经元对应的中心和权重

    1)确定神经元中心c,常用随机采用、聚类等;

    2)利用BP算法确定参数w,b;

    RBF神经网络具有“局部映射”特性。BP神经网络是对非线性映射的全局逼近 。

    ART(Adaptive Resonance Theory)自适应谐振网络

    包含比较层、识别层、识别阈值和重置模块,以竞争学习的方式进行学习;是一种无监督学习过程;

    1. 比较层接受输入样本,并将其传递给识别层神经元;
    2. 识别层每个神经元对应一个模式类,神经元数目可在训练过程中动态增长以增加新的模式类;识别层收到输入数据,利用识别层的竞争学习产生获胜神经元;(竞争机制例如:输入神经元识别的类别与标签类别之间的距离,距离小的获胜)
    3. 获胜神经元发送信号抑制其他神经元的激活,通过输入数据与获胜神经元所对应的得向量间的相似度大于识别阈值,更新网络权重,使输入数据与神经元的模式相似度更大

    SOM(Self-Organizing Map)自组织映射网络

    一种竞争学习型的无监督神经网络,将高维输入数据映射到低维空间,保持输入数据在高位空间的拓扑(高维空间的相似样本点映射到低维空间中邻近的神经元),将距离小的个体集合划分为同一类别,而将距离大的个体集合划分为不同的类别。

    1)接受输入:首先计算本次迭代的学习率和学习半径,并且从训练集中随机选取一个样本。

    2)寻找获胜节点:计算数据集中其他样本与此样本的距离,从中找到点积最小的获胜节点。

    3)计算优胜领域:根据这两个节点计算出聚类的领域,并找出此领域中的所有节点。

    4)调整权值:根据学习率、样本数据调整权重。

    5)根据计算结果,为数据集分配类别和标签。

    6)评估结果:SOM网络属于无监督聚类,输出的结果就是聚类后的标签。如果训练集已经被分好类,即具有分类标签,那么通过新旧标签的比较就可以反映聚类结果的准确度。

    级联相关网络

    级联相关神经网络是从一个小网络开始,自动训练和添加隐含单元,最终形成一个多层的结构。

    1)候选神经元连结到所有的输入和隐含神经元(图中的虚线),并且候选神经元的输出不连结到网络上;

    2)固定住图中的实线部分,只训练候选神经元的权重(也就是图中的虚线);

    3)当权重训练好之后,就将候选神经元安装到图中空白的层上,也就是第四个区域,这时候选项的连接权就不能再改变了;

    4)将候选神经元连结到网络的输出上,这时候选神经元被激活,开始训练网络的所有输出连接权;

    Elman网络

    Elman是一种动态递归神经网络,包括输入层、隐藏层、承接层和输出层。

    1. 输入层输入信号,并将其传入隐藏层;
    2. 隐藏层采用激活函数,对t时刻的输入信号进行计算,并将其分别传递到输出层和承接层;
    3. 承接层接收信号并将其与下一时刻的输入信号结合,重新输入到隐藏层;(因此,Elman网络使t时刻的输出状态不仅与t时刻的输入有关,还与t-1时刻的网络状态有关,可以处理与时间有关的动态变化)

    Boltzmann(玻尔兹曼机)机

    是一种基于能量的模型;包括两层:显层和隐层,显层为数据的输入输出,隐层为数据的内在表达;

    通过调整网络权值使训练集中的模式在网络状态中以相同的概率再现。

    1)正向学习阶段或输入期:即向网络输入一对输入输出模式,将网络输入输出节点的状态钳制到期望的状态,而让隐节点自由活动以捕捉模式对之间的对应规律;

    2)反向学习阶段或自由活动期:对于异联想学习,钳制住输入节点而然隐含节点和输出节点自由活动;对于自联想学习,可以让其可见节点和隐节点都自由活动,已体现网络对输入输出对应规律的模拟情况。输入输出的对应规律表现为网络到达热平衡时,相连节点状态同时为一的平均概率。期望对应规律与模拟对应规律之间的差别就表现为两个学习阶段对应的平均概率的差值,此差值做为权值调整的依据。

    不同神经网络对比参考文献:

    ART:https://blog.csdn.net/u013468614/article/details/94751690

    SOM:  https://blog.csdn.net/jyh_AI/article/details/82024431

    级联相关网络: https://blog.csdn.net/xc_xc_xc/article/details/53163478

    Elman:  https://blog.csdn.net/fengzhimohan/article/details/80847979

    Boltzmann机:https://www.cnblogs.com/pythonlearing/p/9978246.html

    展开全文
  • 分类算法:One Class SVM

    千次阅读 2021-07-15 00:55:31
    安全检测常用算法有:Isolation Forest,One-Class Classification等,孤立森林参见另一篇,今天主要介绍One-Class Classification单分类算法。 一,单分类算法简介  One Class Learning 比较经典的算法是One-...

     

    安全检测常用算法有:Isolation Forest,One-Class Classification等,孤立森林参见另一篇,今天主要介绍One-Class Classification单分类算法。

    一,单分类算法简介

      One Class Learning 比较经典的算法是One-Class-SVM,这个算法的思路非常简单,就是寻找一个超平面将样本中的正例圈出来,预测就是用这个超平面做决策,在圈内的样本就认为是正样本。由于核函数计算比较耗时,在海量数据的场景用的并不多;

      另一个算法是基于神经网络的算法,在深度学习中广泛使用的自编码算法可以应用在单分类的问题上,自编码是一个BP神经网络,网络输入层和输出层是一样,中间层数可以有多层,中间层的节点个数比输出层少,最简单的情况就是中间只有一个隐藏层,如下图所示,由于中间层的节点数较少,这样中间层相当于是对数据进行了压缩和抽象,实现无监督的方式学习数据的抽象特征。

       如果我们只有正样本数据,没有负样本数据,或者说只关注学习正样本的规律,那么利用正样本训练一个自编码器,编码器就相当于单分类的模型,对全量数据进行预测时,通过比较输入层和输出层的相似度就可以判断记录是否属于正样本。由于自编码采用神经网络实现,可以用GPU来进行加速计算,因此比较适合海量数据的场景。

      最后就是Isolation Forest方法,孤立森林是一个高效的异常点检测算法。Sklearn提供了ensemble.IsolatuibForest模块。该模块在进行检测时,会随机选取一个特征,然后在所选特征的最大值和最小值随机选择一个分切面。该算法下整个训练集的训练就像一棵树一样,递归的划分。划分的次数等于根节点到叶子节点的路径距离d。所有随机树(为了增强鲁棒性,会随机选取很多树形成森林)的d的平均值,就是我们检测函数的最终结果。

      孤立森林相关笔记可以参考这里:请点击我

    One-Class SVM 算法简介

      sklearn提供了一些机器学习方法,可用于奇异(Novelty)点或者异常(Outlier)点检测,包括OneClassSVM,Isolation Forest,Local Outlier Factor(LOF)等,其中OneCLassSVM可以用于Novelty Dection,而后两者可用于Outlier Detection。

      严格来说,OneCLassSVM不是一种outlier detection,而是一种novelty detection方法:它的训练集不应该掺杂异常点,因为模型可能会去匹配这些异常点。但在数据维度很高,或者对相关数据分布没有任何假设的情况下,OneClassSVM也可以作为一种很好的outlier detection方法。

      在one-class classification中,仅仅只有一类的信息是可以用于训练,其他类别的(总称outlier)信息是缺失的,也就是区分两个类别的边界线是通过仅有的一类数据的信息学习得到的。

    名词解释

    • novelty detection:当训练数据中没有离群点,我们的目标是用训练好的模型去检测另外发现的新样本
    • outlier  dection:当训练数据中包含离群点,模型训练时要匹配训练数据的中心样本,忽视训练样本中的其他异常点。

    OneClass 与二分类,多分类的区别

      如果将分类算法进行划分,根据类别个数的不同可以分为单分类,二分类,多分类。常见的分类算法主要解决二分类和多分类问题,预测一封邮件是否是垃圾邮件是一个典型的二分类问题,手写体识别是一个典型的多分类问题,这些算法并不能很好的应用在单分类上,但是单分类问题在工业界广泛存在,由于每个企业刻画用户的数据都是有限的,很多二分类问题很难找到负样本,即使用一些排除法筛选出负样本,负样本也会不纯,不能保证负样本中没有正样本。所以在只能定义正样本不能定义负样本的场景中,使用单分类算法更合适。

      单分类算法只关注与样本的相似或者匹配程度,对于未知的部分不妄下结论。

      典型的二类问题:识别邮件是否是垃圾邮件,一类“是”,一类“不是”。

      典型的多类问题:人脸识别,每个人对应的脸就是一个类,然后把待识别的脸分到对应的类去。

      而OneClassClassification,它只有一个类,属于该类就返回结果“是”,不属于就返回结果“不是”。

      其区别就是在二分类问题中,训练集中就由两个类的样本组成,训练出的模型是一个二分类模型;而OneClassClassification中的训练样本只有一类,因此训练出的分类器将不属于该类的所有其他样本判别为“不是”即可,而不是由于属于另一类才返回“不是”的结果。

    One Class SVM算法步骤

      One Class SVM也是属于支持向量机大家族的,但是它和传统的基于监督学习的分类回归支持向量机不同,它是无监督学习的方法,也就是说,它不需要我们标记训练集的输出标签。

      那么没有类别标签,我们如何寻找划分的超平面以及寻找支持向量机呢?One Class SVM这个问题的解决思路有很多。这里只讲解一种特别的思想SVDD,对于SVDD来说,我们期望所有不是异常的样本都是正类别,同时它采用一个超球体而不是一个超平面来做划分,该算法在特征空间中获得数据周围的球形边界,期望最小化这个超球体的体积,从而最小化异常点数据的影响。

      假设产生的超球体参数为中心 o 和对应的超球体半径 r >0,超球体体积V(r) 被最小化,中心 o 是支持行了的线性组合;跟传统SVM方法相似,可以要求所有训练数据点xi到中心的距离严格小于r。但是同时构造一个惩罚系数为 C 的松弛变量 ζi ,优化问题入下所示:

    采用拉格朗日对偶求解之后,可以判断新的数据点 z 是否在内,如果 z 到中心的距离小于或者等于半径 r ,则不是异常点,如果在超球体以外,则是异常点。

      在Sklearn中,我们可以采用SVM包里面的OneClassSVM来做异常点检测。OneClassSVM也支持核函数,所以普通SVM里面的调参思路在这里也使用。

    相关SVDD参考:https://zhuanlan.zhihu.com/p/97522759

    sklearn实现:OneClasssSVM

      根据已有支持向量机的理解,算法并非对已有标签的数据进行分类判别,而是通过回答:yes  or  no 的方法去根据支持向量域(support  vector domaindescription SVDD),将样本数据训练出一个最小的超球面(大于三维特征),其中在二维中是一个曲线,将数据全部包起来,即将异常点排除。

     OneClass SVM 主要参数和方法

    class sklearn.svm.OneClassSVM(kernel=’rbf’, degree=3, gamma=’auto’, 
    coef0=0.0, tol=0.001, nu=0.5, shrinking=True, cache_size=200, verbose=False,
     max_iter=-1, random_state=None)

    参数:

    •   kernel:核函数(一般使用高斯核)
    •   nu:设定训练误差(0, 1],表示异常点比例,默认值为0.5

    属性:

    方法:

    • fit(X):训练,根据训练样本和上面两个参数探测边界。(注意是无监督)
    • predict(X):返回预测值,+1就是正常样本,-1就是异常样本。
    • decision_function(X):返回各样本点到超平面的函数距离(signed distance),正的维正常样本,负的为异常样本。
    • set_params(**params):设置这个评估器的参数,该方法适用于简单估计器以及嵌套对象(例如管道),而后者具有表单<component>_<parameter>的参数,,因此可以更新嵌套对象的每个组件。
    • get_params([deep]):获取这个评估器的参数。
    • fit_predict(X[, y]):在X上执行拟合并返回X的标签,对于异常值,返回 -1 ,对于内点,返回1。

     

    One-Class SVM with  non-linear kernel (RBF)

      下面使用OneClass SVM 进行奇异点检测。

      OneClass SVM 是一个无监督算法,它用于学习奇异点检测的决策函数:将新数据分类为与训练集相似或者不同的数据。

     sklearn实现代码如下:

    import numpy as np
    import matplotlib.pyplot as plt
    import matplotlib.font_manager
    from sklearn import svm
    
    xx, yy = np.meshgrid(np.linspace(-5, 5, 500), np.linspace(-5, 5, 500))
    # Generate train data
    X = 0.3 * np.random.randn(100, 2)
    X_train = np.r_[X + 2, X - 2]
    X_test = np.r_[X + 2, X-2]
    # Generate some abnormal novel observations
    X_outliers = np.random.uniform(low=0.1, high=4, size=(20, 2))
    # fit the model
    clf = svm.OneClassSVM(nu=0.1, kernel='rbf', gamma=0.1)
    clf.fit(X_train)
    y_pred_train = clf.predict(X_train)
    y_pred_test = clf.predict(X_test)
    y_pred_outliers = clf.predict(X_outliers)
    n_error_train = y_pred_train[y_pred_train == -1].size
    n_error_test = y_pred_test[y_pred_test == -1].size
    n_error_outlier = y_pred_outliers[y_pred_outliers == 1].size
    
    # plot the line , the points, and the nearest vectors to the plane
    Z = clf.decision_function(np.c_[xx.ravel(), yy.ravel()])
    Z = Z.reshape(xx.shape)
    
    plt.title("Novelty Detection")
    plt.contourf(xx, yy, Z, levels=np.linspace(Z.min(), 0, 7), cmap=plt.cm.PuBu)
    a = plt.contour(xx, yy, Z, levels=[0, Z.max()], colors='palevioletred')
    
    s =40
    b1 = plt.scatter(X_train[:, 0], X_train[:, 1], c='white', s=s, edgecolors='k')
    b2 = plt.scatter(X_test[:, 0], X_test[:, 1], c='blueviolet', s=s, edgecolors='k')
    c = plt.scatter(X_outliers[:, 0], X_outliers[:, 1], c='gold', s=s, edgecolors='k')
    
    plt.axis('tight')
    plt.xlim((-5, 5))
    plt.ylim((-5, 5))
    plt.legend([a.collections[0], b1, b2, c],
               ["learned frontier", 'training observations',
                "new regular observations", "new abnormal observations"],
               loc="upper left",
               prop=matplotlib.font_manager.FontProperties(size=11))
    plt.xlabel(
        "error train: %d/200; errors novel regular: %d/40; errors novel abnormal:%d/40"%(
            n_error_train, n_error_test, n_error_outlier)    )
    plt.show()

    OneClassSVM 代码二

    根据对已有支持向量机的理解,算法并非对已有标签的数据进行分类判别,而是通过回答“yes or no”的方式去根据支持向量域描述(support  vector domaindescription  SVDD),将样本数据训练出一个最小的超球面(大于三维特征),其中在二维中是一个曲线,将数据全部包起来,即将异常点排除。Sklearn包中给出的demo实验结果如上:我们可以看出在不同的数据分布下会有一些不一样的误差,其中调整参数中有一个比较重要的nu,表示异常点比例,默认值为0.5。 

    from sklearn import svm
    import matplotlib.pyplot as plt
    plt.style.use('fivethirtyeight')
    from numpy import genfromtxt
    
    def read_dataset(filePath, delimiter=','):
        return genfromtxt(filePath, delimiter=delimiter)
    
    # use the same dataset
    tr_data = read_dataset('tr_data.csv')
    
    clf = svm.OneClassSVM(nu=0.05, kernel='rbf', gamma=0.1)
    '''
    OneClassSVM(cache_size=200, coef0=0.0, degree=3, gamma=0.1, kernel='rbf',
          max_iter=-1, nu=0.05, random_state=None, shrinking=True, tol=0.001,
          verbose=False)
    '''
    clf.fit(tr_data)
    pred = clf.predict(tr_data)
    
    # inliers are labeled 1 , outliers are labeled -1
    normal = tr_data[pred == 1]
    abnormal = tr_data[pred == -1]
    
    plt.plot(normal[:, 0], normal[:, 1], 'bx)
    plt.plot(abnormal[:, 0], abnormal[:, 1], 'ro')

    因为上面的代码没有数据,我这里在网上找了一张图,可以基本说明问题,如下:


    参考:

    展开全文
  • 基于ELM的图像分类算法研究摘要:近年来,机器人科技应用越来越广泛,其核心原理就是利用计算器对外界传感器得到的图像进行内容分析。在获得相应的信息后,对数字化后的有用信息进行处理。根据处理结果,作出决策,让后续...

    基于ELM的图像分类算法研究

    摘要:近年来,机器人科技应用越来越广泛,其核心原理就是利用计算器对外界传感器得到的图像进行内容分析。在获得相应的信息后,对数字化后的有用信息进行处理。根据处理结果,作出决策,让后续计算机程序或者机械执行相应的命令。同时,互联网技术飞速发展的核心问题是海量级的视频图像数据的检索。如何从巨量的信息中快速有效的获取有用信息是成为迫切需要解决的问题。图像分类问题是这两种技术共同关注的焦点。目前,基于机器学习技术的图像分类方法应用最为广泛。总体上来说,首先针对给定的图像提取出最能代表它们的特征数据。这些数据根据一定的模式训练得到所用数学模型的关键参数,于是模型可以对未知图像信息作出判断,并完成图像的分类,即归类到预先设置的类别中。研究中常用的机器学习方法有BP神经网络算法,支持向量机算法等。本学位论文将图像分类与识别作为研究重点。从这个角度入手,在图像中引入最新的理论成果ELM,得到一些很有意义的图像分类算法,这些算法经过实验,快速有效。

    (本文共61页)

    本文目录 |

    阅读全文>>

    极速学习机(Extreme Learning Machine, ELM)是近十年前提出的一种快速机器学习算法,它最早应用于单隐层前馈神经网络的学习,由于其具有结构简单,学习速度快,以及良好的泛化性能等优点受到众多研究学者们的关注.随着ELM的发展,理论和实证研究表明, ELM适用于广义单隐层前馈神经网络(如:支持向量机、多项式网络、径向基网络、以及传统的前馈神经网络),同传统的单隐层前馈神经网络的隐层节点参数需要不断调整的原则不同, ELM学习理论表明,前馈神经网络的隐层节点参数可以随机生成,并且所有隐层节点参数可以独立于目标函数和训练数据集.正是因为隐层节点参数可以随机选取,输出层权值能够以解析解的形式求出,所以ELM能够实现非常快速的学习.特别地, ELM可以直接应用于回归和多分类应用中并且有不错的性能表现.然而ELM仍然存在着不足之处,例如:在图像分类中对噪声图像分类效果并不是较好导致其分类精度不高;在回归应用中,训练含有...

    (本文共63页)

    本文目录 |

    阅读全文>>

    在视觉研究领域,目标识别是一个很热门的研究课题,同时也是很有挑战的任务。然而人类大脑视觉皮层的独特信息处理机制,使其具备快速准确高效的目标识别能力。在过去的数十年中,很多视觉算法的提出,改善了目标识别的性能,但是现在的任何一种算法都未能超越人类大脑。因此,构建能够模拟人类大脑视觉皮层的目标识别机制,或者尽可能与人类视觉相匹敌的人工系统,一直都是具有吸引力但也很困难的目标。设计与构建鲁棒的目标识别算法,将会有益于诸多领域与应用,比如安全监控,机器人导航,医学图像理解等。本文主要围绕目标识别与图像分类算法展开研究。本文既借鉴神经生物学与认知生理学目前的研究成果,又考虑人类大脑的生物学习机制,结合HMAX (Hierarchical Model and X)模型与极限学习机,设计与构建新颖的生物记发式图像分类算法网络。本文的主要研究内容包括:第一,传统视觉与生物视觉中的目标识别问题的研究,以及目标识别与图像分类问题的数学描述与解决方案...

    (本文共95页)

    本文目录 |

    阅读全文>>

    图像分类是机器学习和计算机视觉领域中一个非常重要的研究内容,在国防安全、工业信息化、医学工程和互联网科技等方面均有广泛的应用。由于图像易受光照条件、拍摄角度、复杂背景、旋转变换或尺度放缩等因素的影响,从而对图像进行分类是一个非常具有挑战性的课题。因此,研究高效而具有鲁棒性的图像分类算法,具有重要的理论意义与实际应用价值。提取图像具有代表性的特征,是图像分类过程中的一个关键部分。为了从复杂的图像中提取有效的图像特征,以及克服训练数据不足的现实问题,本文基于神经反应模型和稀疏表示方法,着重研究了具有鲁棒性和区分性的图像分类方法,提出了一系列算法,并取得了较好的分类效果。论文的主要内容如下:首先,本文提出了一种基于稀疏表示的神经反应算法。该算法是一个多层的结构,试图模拟人类大脑皮层中的视觉处理机制,通过交替进行非负稀疏表示和最大化联合操作来构建。非负稀疏表示能够提取图像中的显著特征,而最大化联合操作使得模型对于平移等变换具有不变性。为...

    (本文共116页)

    本文目录 |

    阅读全文>>

    准确、高效的径流模拟是水文研究领域的重要课题。文章以辽宁省喀左县姚洞子小流域为例,构建基于改...

    (本文共5页)

    阅读全文>>

    航空企业在做规划运营之前,首要是要对民航客运量进行精准预测,这是航空公司在做重大科学决策和实施可行性计划的重要保障。然而,影响民航客运量的因素复杂多样,传统的预测方法难以达到日益高要求的预...

    (本文共3页)

    阅读全文>>

    为获取足够精确的短期负荷预测值作为电力系统规划和运行的依据,提出一种加权多分位鲁棒极限学习机ELM(extreme learning machine)的短期负荷预测方法。首先融合分位回归与鲁棒ELM...

    (本文共6页)

    阅读全文>>

    展开全文
  • (d)FTOTLM 是一种典型的多层特征方法,从每个残差模块中提取深度特征。 (e)Scale-specific network,一种基于多视图特征的结构,场景为中心的CNN从粗版提取深层特征,而目标为中心的CNN从精细补丁提取特征。这...

    点击上方“3D视觉工坊”,选择“星标”

    干货第一时间送达

    作者丨黄浴@知乎

    来源丨https://zhuanlan.zhihu.com/p/351351953

    编辑丨3D视觉工坊

    arXiv2021年1月26日上传的综述论文:“Deep Learning for Scene Classification: A Survey”。

    景物分类是计算机视觉中历史悠久的课题,大规模的数据集出现以及具有强大特征表征能力深度学习的复兴,给这个领域带来了巨大的进步。该综述包括了技术挑战、基准数据集、景物分类法和量化性能等方面的总结。(注:现在关心这个题目的确实不多了)

    景物分类的应用很广,包括基于内容检索、机器人导航、视频监控、AR和灾难检测等。其技术核心是景物表征,这也是深度学习的强处。不过,这个问题的挑战性在于巨大的类内变化、语义的多义和计算效率。

    回顾一下历史,如下可以看到这20年的发展:

    下图是一些开源数据集的例子:室内/室外

    数据集比较表:除了RGB图像,还有RGB-D。

    一个通用的深度学习方法流程图如下:类似于图像分类

    几个典型CNN模型做景物分类的示意图:

    Global Average Pooling (GAP) layer + Class Activation Mapping(CAM)

    Dictionary Learning CNN (DL-CNN)

    Contextual features in Appearance (CFA) based on LSTM

    spatial unstructured layer

    基于CNN的表征方法,如图列出5个典型的架构图:沙漏作为主干网络

    a)HLSTM 是一种基于CNN特征的全局方法,可从整个图像中提取深度特征。空间LSTM用于对图像区域的空间布局2D特性建模。此外,通过多个LSTM层捕获跨尺度的上下文依存关系。

    (b)SFV,一种基于空间不变特征的方法,采集密集补丁,提取局部特征。SFV的重点是加入自然的参数化模式,将语义空间转换为自然的参数空间。

    (c)WELDON,一种基于语义特征的方法,从top evidence(红色)和负样本(黄色)中提取深度特征。在WSP方案中,有使用max-层和min-层分别选择正例和负例的做法。

    (d)FTOTLM 是一种典型的多层特征方法,从每个残差模块中提取深度特征。

    (e)Scale-specific network,一种基于多视图特征的结构,场景为中心的CNN从粗版提取深层特征,而目标为中心的CNN从精细补丁提取特征。这两种类型的深层特征相互补充。

    改进景物表征的策略分为4种:encoding strategy, attention strategy, contextual strategy 和 regularization strategy。

    编码策略如下图的Fisher向量编码:

    注意机制的策略如图:

    上下文策略如图:

    最后正则化策略:稀疏、结构化、有监督和其他方法等。

    针对RGB-D数据的景物分类,会有深度有关的特征学习方法和多模式融合方法。

    性能比较,如下表:

    最后提出一些今后的工作方向:

    ·网络框架

    ·丰富的景物数据集

    ·标注数据依赖性降低 (半监督、无监督、自监督)

    ·少样本学习

    ·鲁棒性 (对抗学习)

    ·实时性

    ·非平衡 (长尾效应)

    ·连续学习

    ·多标注的学习

    ·新传感器数据:视频、点云等

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

    下载1

    在「3D视觉工坊」公众号后台回复:3D视觉即可下载 3D视觉相关资料干货,涉及相机标定、三维重建、立体视觉、SLAM、深度学习、点云后处理、多视图几何等方向。

    下载2

    在「3D视觉工坊」公众号后台回复:3D视觉github资源汇总即可下载包括结构光、标定源码、缺陷检测源码、深度估计与深度补全源码、点云处理相关源码、立体匹配源码、单目、双目3D检测、基于点云的3D检测、6D姿态估计源码汇总等。

    下载3

    在「3D视觉工坊」公众号后台回复:相机标定即可下载独家相机标定学习课件与视频网址;后台回复:立体匹配即可下载独家立体匹配学习课件与视频网址。

    重磅!3DCVer-学术论文写作投稿 交流群已成立

    扫码添加小助手微信,可申请加入3D视觉工坊-学术论文写作与投稿 微信交流群,旨在交流顶会、顶刊、SCI、EI等写作与投稿事宜。

    同时也可申请加入我们的细分方向交流群,目前主要有3D视觉CV&深度学习SLAM三维重建点云后处理自动驾驶、多传感器融合、CV入门、三维测量、VR/AR、3D人脸识别、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、视觉竞赛、车牌识别、硬件选型、学术交流、求职交流、ORB-SLAM系列源码交流、深度估计等微信群。

    一定要备注:研究方向+学校/公司+昵称,例如:”3D视觉 + 上海交大 + 静静“。请按照格式备注,可快速被通过且邀请进群。原创投稿也请联系。

    ▲长按加微信群或投稿

    ▲长按关注公众号

    3D视觉从入门到精通知识星球:针对3D视觉领域的知识点汇总、入门进阶学习路线、最新paper分享、疑问解答四个方面进行深耕,更有各类大厂的算法工程人员进行技术指导。与此同时,星球将联合知名企业发布3D视觉相关算法开发岗位以及项目对接信息,打造成集技术与就业为一体的铁杆粉丝聚集区,近3000星球成员为创造更好的AI世界共同进步,知识星球入口:

    学习3D视觉核心技术,扫描查看介绍,3天内无条件退款

     圈里有高质量教程资料、可答疑解惑、助你高效解决问题

    觉得有用,麻烦给个赞和在看~  

    展开全文
  • 实验三 分类算法实验 代码已开源:[https://github.com/LinXiaoDe/ArtificialIntelligence/tree/master/lab3](https://github.com/LinXiaoDe/ArtificialIntelligence/tree/master/lab3) 在本实验中,我手工实现了...
  • 多层感知机实现

    2021-05-16 15:52:46
    多层感知机(mutilayer preceptron)加入了隐藏层,将神经网络的层级加深,因为线性层的串联结果还是线性层,所以必须在每个隐藏层之后添加激活函数,即增加model的非线性能力,使得model的function set变大。...
  • 本文将介绍PyTorch的一个基础案例——多层感知机算法。 案例为:利用PyTorch设计神经网络拟合对Fashion-MNIST数据集进行分类。 二、代码详解 2.1 构建加载数据集函数 定义加载数据集函数: #定义加载数据集函数 def ...
  • 分类算法朴素贝叶斯、决策树、SVM、人工神经网络+汽车分类实战一、 实验目的二、 实验的硬件、软件平台三、 实验算法原理(一) 朴素贝叶斯算法(二) 决策树算法(三) 支持向量机(四) 人工神经网络四、 数据分析...
  • 智能计算系统笔记——第三章深度学习 参考:《智能计算系统》陈云霁,李玲,李威,郭崎,杜子东[著] 3.2基于卷积神经网络的图像分类算法 具有里程碑意义的一些网络模型有AlexNet、VGG、Inception系列(GoogLeNet)、...
  • 多层感知机(MLP)

    千次阅读 2021-01-26 22:00:00
    1.多层感知机(MLP)是深度神经网络(DNN)的基础算法,有时候提起DNN就是指MLP2.感知机跟SVM优化的目标一致,损失函数不同(前者分母限制为1,后者分子限制为1)3.神经网络由...
  • 很简单的一个分布,但事实上就是无法用直线进行分类,后来就出现了多层感知器,主要改变的地方是把第一层的感知器的输出作为第二层感知器的输入,即使只是简单添加一层感知器,也足以解决xor问题,
  • 理解人工神经网络,感知机模型、多层前馈神经网络、BP算法(反向传播算法)、输出层和隐含层梯度下降更新权值推导过程。(西瓜书笔记) (一)神经元模型 神经网络(neural networks): 神经网络是由具有适应性的...
  • 不是不是,matlab也有集成了许多机器学习算法,当然,都是一些非常基础的机器学习算法。深度学习还是得向python看齐。今天试用了一下matlab自带的DNN模型,封装在newff函数里,寥寥几行代码,非常简洁。 提示:...
  • 利用Keras实现神经网络多层感知机MLP解决一个二分类问题
  • 基于多个分类的算法实现中风预测(准确率96.5%)项目目的代码流程1.导入必需要的库函数2.准备数据3....利用几个分类算法进行训练数据和预测11.1 逻辑回归算法11.2 朴素贝叶斯算法11.3 随机森林算法11.4 EGB
  • 多层感知机 ​ 感知机的输入层是在模拟输入的"形状",可以通过约束条件:联立的一元方程组来描述输入在空间中定位,一层输入可以近似成用无限条直线的方程去描述任意形状,在此之外再嵌套一层可以描述任意个数的形状...
  • 机器学习基础篇(十二)——多层感知机 一、概述 多层感知机(MLP:Multi-Layer Perceptron)由感知机(PLA: Perceptron Learning Algorithm)推广而来。它最主要的特点是有多个神经元层,因此也叫深度神经网络(DNN: ...
  • 数学建模算法体系分类

    千次阅读 2021-01-25 21:49:40
    其中样本点较少时(泛指样本点小于30个)采用插值方法,主要有拉格朗日插值算法、牛顿插值、双线性内插和双三次插值 样本点较多时(大于30个)则采用拟合函数 主成分分析 主要用于多维数据的降维处理,减少数据冗余...
  • 摘要:本文进行了比较分析,研究了不同的分类算法和结构相似性指标对监督链路预测方法预测不同预测范围内技术收敛性能的影响。为此,我们确定了不同时间段内感兴趣的技术之间的关系,并计算了每个时期内未连接技术...
  • 使用pytorch搭建MLP多层感知器分类网络判断LOL比赛胜负 1. 数据集 百度网盘链接,提取码:q79p ...预测英雄联盟比赛的输赢可以理解为根据比赛信息对比赛进行分类的问题,机器学习中有很多的分类算法都可以应用到此问
  • BP(Back Propagation)网络是1986年由Rumelhart和McCelland为首的科学家小组提出,是一种按误差逆传播算法训练的多层前馈网络,是目前应用最广泛的神经网络模型之一。BP网络能学习和存贮大量的输入-输出模式映射...
  • 神经网络和多层感知机MLP 1. 感知机到神经网络,神经网络的基本结构 1.1 感知机 感知机模型是将若干输入加权求和并通过激活函数后输出的模型: 感知机可以表示为线性变换+非线性激活函数: z=∑i=1mwixi+bz=∑_{i=1...
  • SPSS教程—实现多层感知器神经网络

    千次阅读 2021-06-04 20:06:08
    神经网络模型也是近些年大火的人工智能行业基础算法,SPSS软件中支持训练出多层感知器神经网络模型,今天我们一起来看看它是如何通过该专业统计分析软件训练出来的。 一、多层感知器总体介绍 我们准备好训练集数据...
  • 多层感知器(MLP)

    2021-03-16 22:36:17
    多层感知器(神经网络) 如果逻辑回归模型是单个神经元:计算输入特征的加权和,然后使用一个激活函数(或传递函数)计算输出。 单个神经元(二分类) 多个神经元(多分类) 单层神经元的缺陷 无法拟合“异或”运算...
  • 据说多层感知机(MLP)是很难处理异或问题的,就好比下面的问题。 首先由一个问题引入,来自邱锡鹏老师的书《神经网络与深度学习》第四章的习题 4-2: 习题 4-2 试设计一个前馈神经网络来解决 XOR 问题,要求该前馈...
  • 多层感知机MLP(Multi Layer Perceptron )是一种特定的人工神经网络(Artificial Neural Networks) 在认识MLP之前,我们先回顾下前馈神经网络。 1、 前馈神经网络 前馈神经网络是最先发明也是最简单的人工神经网络...
  • 用Java实现基于标准BP算法多层前馈神经网络(学习笔记) 在进入正文之前,我们先来讨论一下人工智能。 首先,人工智能是什么?对于这个问题,一直以来就有不同的答案。 一般人认为AI是即将统治地球的机器人。(博主...
  • :解决多层继承中可能出现的一些问题。使用多继承时,一般要用此函数。 1.2 Pytorch框架语法 pytorch 中 tensor 维度顺序:C*H*W optimizer.zero_grad():每计算一次batch后,要将历史梯度清零,防止累加。 item()...
  • 感知机的求解算法等价于使用批量大小为1 的梯度下降。 多层感知机 1、学习XOR 2、单隐藏层-单分类 为什么需要非线性的激活函数? 如果不加激活函数,就是n个全连接层叠加在一起,输出还是一个最简单的线性...
  • 1、LR是MLP的一种特殊情况,即:MLP只有一层,且只有一个神经元,则是LP。 2、LR是线性模型,MLP是非线性模型。MLP拟合的更加复杂。 3、LR逻辑回归的参数数量和特征的个数是一样的,或者是特征个数加一;...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 40,124
精华内容 16,049
关键字:

多层分类算法