精华内容
下载资源
问答
  • 无标度网络生成模型

    万次阅读 多人点赞 2018-10-08 11:55:51
    本文采用由 Barabási 和 Albert 于 1999 年提出的增长网络网络模型(BA 模型)。在该模型中,网络初始时具有 m0 个节点,两两互连。 之后每过一个时间单位增加一个新节点。新节点从当前网络中选择m(m ≤ m0)个节点...

    在这里插入图片描述

    1999 年 Barabási 和 Albert 提出了无标度网络模型(简称 BA 模型)。无标度网络的重要特征为: 无标度网络的节点度分布服从幂律分布。

    无标度网络的度分布 p(d)p(d) 满足p(d)dαp(d)\sim d^{-\alpha},其中 dd 代表度的大小, α\alpha 为度分布的幂律指数。 真实网络 α\alpha 值一般介于 2~3之间。

    近年来越来越多的研究表明, 真实世界网络既不是规则网络, 也不是随机网络, 而是兼具小世界和无标度特性的复杂网络, 具有与规则网络和随机网络截然不同的统计特性。

    本文采用的无标度网络生成模型是由 Barabási 和 Albert 于 1999 年提出的增长网络网络模型(BA 模型)。在该模型中,网络初始时具有 m0m_0 个节点,两两互连。 之后每过一个时间单位增加一个新节点。新节点从当前网络中选择m(mm0)m(m ≤ m_0) 个节点与之连接, 某节点 viv_i 被选中的概率 p(vi)p(v_i) 与其节点度 did_i 的大小成正比,即p(vi)=dijdjp(v_i) = \frac{d_i}{\sum_j d_j}经过 t 个时间单位后,网络中含有 m0+tm_0+t 个节点,m0(m01)/2+mtm_0(m_0-1)/2+mt条边。可以证明当 t 足够大时, 按此规律增长的网络的度分布为幂指数等于 3 的幂律分布。

    依据新节点的连接规律,建立节点度演化的动力学模型:
    在这里插入图片描述
    其中最后一个等式在 tt 足够大时近似成立。 将节点 ii 加入网络的时间记为 tit_i
    则有初始条件 di(ti)=md_i(t_i) = m。解得
    在这里插入图片描述
    tt 足够大, 对任意节点 ii, 其度的大小满足
    在这里插入图片描述
    在这里插入图片描述
    其中第三个等式成立的原因是加入节点的时间是等间隔的。上式正是网络节点度的概率分布函数, 可以求出节点度的概率密度函数 p(d)p(d)
    在这里插入图片描述
    可知所生成网络的幂律分布的指数为 3。下面的matlab程序模拟了BA网络的演化过程:

    function scale_free(N,m0,m)
    %
    %param  N: num of vertices 期望节点数
    %param m0: num of initial vertices 初始边数
    %param  m: num of vertices a new node try to connect 新节点连接的边数
    %
    tic;
    
    I = 2 ;    %生成的网络个数,只为统计需要
    
    realization_of_distribution = sparse( I , N ) ;  
    for J = 1 : I   
        format long;
        
     	%初始化邻接矩阵,前m0个节点两两互连
        adjacent_matrix = sparse( m0 , m0 ) ;   
        parfor i = 1 : m0
            for j = 1 : m0
                if j ~= i
                    adjacent_matrix( i , j ) = 1 ;
                end
            end
        end
        adjacent_matrix = sparse( adjacent_matrix ) ;  
    
    	% 计算当前节点度分布
        node_degree = sparse( 1 , m0 ) ; 
        for p = 1 : m0
            node_degree( p ) = sum( adjacent_matrix( 1 : m0 , p ) ) ;
        end
    	
    	% 开始演化
        for iteration = m0 + 1 : N
            total_degree = 2 * m * ( iteration - m0 -1 ) + m0*(m0-1) ; % m*2
            degree_frequency = node_degree / total_degree ;  
            cum_distribution = cumsum( degree_frequency ) ;  
    
            choose = zeros( 1 , m ) ;  
            for new_edge = 1:m
                r = rand(1) ;   
                choose_edge = find( cum_distribution >= r ,1) ;
                while any(choose == choose_edge)
                    r = rand(1) ;
                    choose_edge = find(  cum_distribution >= r,1) ;
                end
                choose(new_edge) = choose_edge;
            end
    
            for k = 1 : m
                adjacent_matrix( iteration , choose(k) ) = 1 ;
                adjacent_matrix( choose(k) , iteration ) = 1 ;
            end
    
            for p = 1 : iteration
                node_degree(p) = sum( adjacent_matrix( 1 : iteration , p ) ) ;  
            end
        end  
    
        number_of_nodes_with_equal_degree = zeros( 1 , N ) ;   
    
        parfor i = 1 : N
            number_of_nodes_with_equal_degree(i) = length( find( node_degree == i ) ) ;  
        end
        realization_of_distribution( J , : ) = number_of_nodes_with_equal_degree ;
    
        save(['adj_',num2str(J)],'adjacent_matrix');
    end  
    
    %{ 
    %plot degree distribution 在双对数坐标下画图
    
    average = sum( realization_of_distribution )/ ( I * N );
    loglog( 1:N , average , '*' )  
    axis([1 N 0.0000001 0.9])
    hold on;
    x = 1:N;
    y = 2 * m^2 * x .^ ( -3 ) ;
    loglog( x , y , 'r' ) ;  %  p(k)=2*m^2*k^(-3)
    
    %}
    toc;
    
    end
    

    人工生成网络的概率质量函数(网络节点数 NN 分别为 50、 100、 200、 400)
    在这里插入图片描述
    图中直线为理论结果: p(d)=2m2d3p(d)=2\frac{m^2}{d^3}

    在这里插入图片描述

    展开全文
  • 复杂网络模型总结

    千次阅读 2020-10-27 16:09:31
    分类 均匀性分类 均匀网络(如WS小世界模型) 度数分布较均匀 非均匀网络(如BA无标度网络) 度数分布极度不均匀 ...局域世界演化网络模型:优先连接不是整个网络而是局域,如找导师时想获取本校的

    本文主要针对数模美赛中复杂网络模型的相关知识进行了总结,此外,其余需要使用复杂网络的情况也可以参考本文

    目录

    分类

    均匀性分类

    关联性分类

    一些基础

    复杂网络上的传播机理与动力学分析

    免疫网络

    免疫模型

    免疫类型

    复杂网络的传播动力学

    复杂网络上的相继故障

    复杂网络中的搜索:(搜索需要的数据)

    复杂网络中的社团结构(可区分层次)

    分裂模型

    凝聚算法

    复杂网络中的同步

    无标度网络的完全同步

    局域世界演化网络模型的完全同步

    应用

    各因子与完全同步的关系

    改进复杂网络同步的方法

    相位同步

    复杂动态网络的控制

    应用

    描述节点间相互作用

    各种模型

    路网可达性

    节点重要性

    度中心性(degree)

    接近中心性(Closeness Centrality)

    中介中心性/中间中心性(Between Centrality)  

    特征向量中心性(Eigenvector Centrality)

    度的分布(常为幂律分布)

    复杂网络的性质分析

    衡量影响度

    排名算法汇总

    PageRank

    Hits Algorithm

    TrustRank


    分类

    均匀性分类

    均匀网络(如WS小世界模型) 度数分布较均匀

    非均匀网络(如BA无标度网络) 度数分布极度不均匀

    关联性分类

    无关联网络:任何一个节点的度与它的邻居节点的度是相互独立的

    关联网络:节点的度与它的邻居节点的度不是相互独立的


    一些基础

    1. WS、NW小世界模型:描述朋友关系
    2. BA无标度网络:描述持续的社会连接,如发表论文总会优先找已经写过论文的人。

    鲁棒性和脆弱性并存。有限支撑、无限支撑“赢者通吃”。

    1. 局域世界演化网络模型:优先连接不是整个网络而是局域,如找导师时想获取本校的学位只能找本校的导师,而不是外国知名导师。
    2. 等级网络:模块以某种迭代的方式生成一个等级网络。
    3. 超家族:自相似。
    4. 运用自相似性质来粗粒化。
    5. AS层面Internet拓扑:多层次连接
    6. 技术网络一般是异配的,而社会网络通常是同配的
    7. PFP模型:富人俱乐部,少量节点具有大量的边(富节点),它们倾向于彼此之间相互连接。
    8. DP模型:消费者-供应商关系或者对等关系,连接度低的为消费者,连接度较高的为供应商;消费者决定将要接到哪些供应商上,即由消费者来选择供应商。
    9. 多局域网模型:当一个新节点加入到一个区域网络时,它对其他局域网中的节点影响非常小,而它反过来主要受本区域网中的节点的影响。

    复杂网络上的传播机理与动力学分析

    免疫网络

    免疫模型

    1. SIR模型  易感染群众被感染,然后恢复健康并具有免疫性。(新闻传播等,知道某条新闻后对此事后不再感兴趣;娱乐信息传播与之对比,知道信息后部分人会变得更感兴趣,容易受感染)
    2. SIS模型  易感染群体被感染后,又返回到易染状态

    免疫类型

    1. 随机免疫
    2. 目标免疫:选取少量度最大的节点进行免疫
    3. 熟人免疫:从很多节点中随机选出一定比例的节点,再从每一个被选出的节点中随机选择一个邻居节点进行免疫

    复杂网络的传播动力学

    病毒、灾难、火灾、通信网络中的堵塞都可作为对象。

    1. 红色代码蠕虫的随机常数传播模型 假设:一是忽略了系统可能被打补丁、关闭或切断连接;二是认为易被攻击的目标数在这一模型中是常数;三是把Internet看作一个无向完全连接图。
    2. 电子邮件病毒的传播模型 对朋友寄来的邮件都予以(充分)信任,以一定概率打开邮件
    3. 谣言在复杂网络中的传播 可类似的用SIR模型来描述

    复杂网络上的相继故障

    1. 负荷—容量模型 由于某种原因某个节点的负荷超过其容量从而产生故障
    2. 二值影响模型 应用于随机网络相继故障分析
    3. 沙堆模型 随着沙堆的逐渐变大,它的坡面变陡,这时新添加的沙子引发沙崩的可能性也越来越大。
    4. OPA模型 由初始状态向自组织临界状态转化,各种小型故障的防护性工程反应,是导致电网状态向自组织临界状态发展的一个不可缺少的动因。对小型事故的防护和避免实际上是在为一次大规模相继故障作累积
      慢动态 负荷缓慢增长
      快动态 描述相继故障发生和传播,速度很快
    5. CASCADE模型 相继故障频率和故障规模的概率分布,其假设
      网络中具有很多类似的节点,并且各自具有随机的初始负荷及初始扰动
      某一结点过载后会失效并将一个固定大小的负荷传给其他节点

      复杂网络中的搜索:(搜索需要的数据)

    应用 社会网络中两个人之间的最短关系链寻找最短关系链寻找、WWW中网页的搜索和P2P网络结构及其搜索技术。

    1. 层次树结构网络模型 个体根据职业、地理位置、兴趣等聚集成一些比较小的群,这些群又根据它们共同的特性聚集成规模更大的群,这样一层一层向上聚集,最高的一层代表整个网络,从而产生一个树状的层次结构。如某大学研究生组成的网络,某实验中的个体属于实验室,然后又属于某个系,然后又都属于某个学院,最后都属于这个大学。
    2. 全局 广度优先搜索策略:可用来寻找任意两点之间的最短路径
    3. 局部 随机游走搜索策略:
    4. P2P网络中的搜索:在个人计算机之间直接进行资源和服务的共享,而不像传统的客户端/服务器结构那样需要经过服务器的介入和服务。
    5. Gnutella网络中的广播搜索:采用广度优先搜索。这样的搜索方法是十分高效的,用户可以在很短的时间内找到所需的目标文件。但是,这样的处理方式会在网络中产生大量查询数据流量,很容易形成网络流量堵塞。

    改进方法:1、迭代加深     2、有向广度优先搜索    4、K遍历器随机游走   

    1. 基于Gnutella网络中节点的度分布的改进搜索算法
    2. 同时研究复杂网络中的搜索和拥堵的模型

    复杂网络中的社团结构(可区分层次)

    分裂模型

    1. Kernighan-Lin算法:要求必须事先知道该网络的两个社团大小,否则,很可能不会得到正确的结果。这个缺陷使得它在实际网络分析中难以应用
    2. 谱平分法:最大的缺陷就是它每次只能将网络平分,如果要将一个网络分成两个以上的社团,就必须对子社团多次重复该算法。
    3. 线性时间的物理方法:不仅可以求出网络的社团结构,还可以在不考虑整个网络的社团结构的情况下,寻找一个已知节点所在的整个社团。
    4. 基于Normal矩阵的谱平分法:克服需要事先知道社团个数的缺陷,使对于社团结构不是十分明显的网络也能取得较好的效果。
    5. GN算法:GN算法弥补了一些传统算法的不足,近几年来已成为社团结构分析的一种标准算法。GN算法存在一个缺陷,即它对于网络的社团结构并没有一个量的定义。不能直接从网络拓扑结构判断它所求的社团是否是实际网络中的社团结构,从而需要一些附加的关于网络意义。在不知道社团数目的情况下,GN算法也不知道这种分解要进行到哪一步终止。
    6. 采用节点集的GN算法:和GN算法相比,显著地提高计算速度,但也降级了计算的准确度。
    7. 自包含GN算法:克服了GN算法的两个缺陷。与GN算法的效果相当,计算速度却有了较大的提高。
    8. 快速分裂算法:仅需要计算一些局部变量,因此大大减小了运算量。
    9. 基于相异性的算法:可将网络划分为一系列具有等级性的社团。其中,每一个社团都由一个相异性的上下阈值来表征,可表示出不同社团之间的差异程度。可以运用于无权网络和加权网络。
    10. 基于信息中心度的算法
    11. 极值优化算法:基本思想是通过调整局部极值来优化全局的变量,从而提高运算效率。

    凝聚算法

    1. Newman快速算法:相比GN算法,可以用于分析节点数高达100万的复杂网络。
    2. 堆结构的贪婪算法(CNM算法):复杂度低,已接近线性复杂度。
    3. 结合谱分析的凝聚算法:结合了谱分析和凝聚算法两者特点的算法。

    派系过滤算法:

    一个社团从某种意义上可以看成是一些互相连通的“小的全耦合网络”的集合,这些“全耦合网络”成为“派系”。


    复杂网络中的同步

    大量的看似巧合的同步行为可以用数学来给出解释,每个个体是一个动力学系统,而诸多的动力学个体之间存在着某种特定的耦合关系。

    Lyapunov指数

    类型1、2、3网络需要判断为哪一种网络

    假设网络是连通的,那么只要网络的耦合强度充分大,类型1网络就一定可以实现同步;

    而只有当耦合强度属于一定范围时的类型2网络才会同步,也就是说,太弱或太强的耦合强度都会使类型2网络无法实现同步。

    无标度网络的完全同步

    同步最优网络: 同步化性能要比BA无标度网络的同步化性能强,但由于存在极少量的‘hub’点,这样在恶意攻击下它要比BA无标度网络更容易奔溃

    同步优先网络:对于随机去除节点和恶意攻击都很鲁棒的同步优先网络模型。

    局域世界演化网络模型的完全同步

    一般来说,与无标度网络相比,局域世界演化网络能够在保持鲁棒性的同时,还能提高网络对恶意攻击的抗脆弱性。

    应用

    1. 规则网络:星形耦合网络
    2. 平均模型:网络中的每个节点都与其他节点相连,对于平均模型而言,耦合强度只需很小就能大幅降低同步阈值,从而提高网络的同步化性能。
    3. 闪烁小世界网络:前面的小世界模型都是长程边固定的模型,即随机选中一条长程边后,这条边就永远存在。此模型最初始最近邻耦合网络基础上,随机选中的长程边只会在一段时间内存在,而在下一段时间内,该长程边会消失,再重新选择一条长程边出现。更确切的说,在时间间隔内每条长程边都以概率连接。这与其他长程边是否连接无关,也与它本身在上一时间段内是否已经连接无关。
    4. 具有耦合时滞的连续时间网络完全同步判据: 复杂网络在传输和相应过程中常常会由于传播速度的物理限制和网络拥塞的存在而产生时滞现象
    5. 离散时间耦合网络完全同步依据

    各因子与完全同步的关系

    最近邻耦合网络在N趋近∞时不可能达到同步,但通过加入少量的长程边将网络的平均路径明显缩短,它的同步化能力便会有明显提高。

    对于小世界网络,当加边或重连概念不断变化时,会对应产生多个具有不同网络基本特性的小世界网络模型;随着概率的增加,网络变得更加非均匀,无论是新加入长程边(NW小世界)或是重新连接长程边(WS小世界),网络中度的最大值都会增加。

    对于无标度网络,当幂律指数不断变化时,也会得到多个不同的无标度网络模型;随着幂律指数的增大网络度分布变得比较均匀,因此网络的平均路径就会增加,同时平均度变小。

    单纯用度的大小、度分布或平均路径长度等指标都无法统一表征复杂网络的同步化能力。

    想要提高网络的同步化能力应该降低节点的最大介数。

    改进复杂网络同步的方法

    1. 无序扰动改进同步特性:通过小波变换来提高同步
    2. 通过时滞提高网络同步特性:在有明显时滞时,网络达到为稳定同步流形时所需要的耦合强度,要比无时滞网络达到同样的同步流形所需要的耦合强度小很多。
    3. 加权耦合提高网络同步特性:可用于耦合不对称,并且网络是有向、加权时参数对同步性能的影响。

    相位同步

    如果两个耦合节点的相位之间以一定的比率锁定,那么就称这两个节点达到相位同步。相位同步是一类同步化程度比较弱的同步现象,发生相位同步时,各节点的相位可能已经锁定,但幅值却会完全不同


    复杂动态网络的控制

    牵制控制利用无标度网络结构的非均匀行,有针对地对网络中的少数关键节点施加反馈控制,由此牵一发而动全身,从而能够将规模庞大的复杂动态网络稳定到平衡点,获得很高的控制效率。

    规则网络时空混沌的牵制控制

    可将时空混沌控制到周期轨道和非混沌状态,可控制达到混沌状态或强混沌状态。

    应用

    社团检测:潜在客户挖掘、关联群体风险分析等;

    网络中心性分析:网页排名(PageRank),供应链核心企业识别,信息传播枢纽节点识别等;(PageRank无法解决悬空节点问题)

    网络传播预测:流行病传播,金融风险传播,舆论传播;

    网络关系渗透:节点之间的关系(三度影响);

    关联交易分析及投融资黑洞:虚假交易,担保圈分析等。


    描述节点间相互作用

    各种模型

    1. 微分方程模型
    2. 神经网络
    3. 离散动力系统
    4. 线性时变系统,信号与系统

    这些模型都具有预测能力

    也可以用显式的网络结构来确定网络的局部和全局性质,或者忽略任何一种网络结构,用经典的数据挖掘和元素聚类来标识属性。

    路网可达性

    路网可达性是城市小区或路网节点相互之间居民出行或车辆行驶平均时间的倒数。表示交通难易程度的一项技术指标,计算值愈大,则可达性愈好。1959年,汉森首次提出了交通可达性的概念,这被定义为接受道路网络中节点之间相互作用的机会。


    节点重要性

    Freeman’s research[1979] 详见2014C—25318 P6

    度中心性(degree)

    度中心性(Degree Centrality)是在网络分析中刻画节点中心性(Centrality)的最直接度量指标。网络中与该节点直接相连的节点个数,一个节点的节点度越大就意味着这个节点的度中心性越高,该节点在网络中就越重要。

    接近中心性(Closeness Centrality)

    反映在网络中某一节点与其他节点之间的接近程度。某点到网络中其他点的距离总和。将一个节点到所有其他节点的最短路径距离的累加起来的倒数表示接近性中心性。即对于一个节点,它距离其他节点越近,那么它的接近性中心性越大

    中介中心性/中间中心性(Between Centrality)  

    主要描述某个节点在整个网络中的中心程度,说明整个网络的集中程度,即整个网络围绕某一结点或一组节点来运行的程度。以经过某个节点的最短路径数目来刻画节点重要性的指标。中介中心性指的是一个结点担任其它两个结点之间最短路的桥梁的次数。一个结点充当“中介”的次数越高,它的中介中心度就越大。如果要考虑标准化的问题,可以用一个结点承担最短路桥梁的次数除以所有的路径数量

    特征向量中心性(Eigenvector Centrality)

    一个节点的重要性既取决于其邻居节点的数量(即该节点的度),也取决于其邻居节点的重要性。

    用中心度的时候最好都把这几种中心度进行说明,然后说明我们为什么选择这一种中心度

    选择中心度的时候都说明了这几者的对比,表明了选择某一项的理由

    信息流网络考虑重要性时需考虑度数大的点,“桥”的作用的点,非流网络考虑度数大的点


    度的分布(常为幂律分布)

    Newman提出的模块度具有两方面的意义:

    1. 模块度的提出成为了社区检测评价一种常用指标,它是度量网络社区划分优劣的量化指标;
    2. 模块度的提出极大地促进了各种优化算法应用于社区检测领域的发展。在模块度的基础之上,许多优化算法以模块度为优化的目标方程进行优化,从而使得目标函数达到最大时得到不错的社区划分结果。

    当然,模块度的概念不是绝对合理的,它也有弊端,比如分辨率限制问题等,后期国内学者在模块度的基础上提出了模块度密度的概念,可以很好的解决模块度的弊端,这里就不详细介绍了。

      常用的社区检测方法主要有如下几种:

    1. 基于图分割的方法,如Kernighan-Lin算法,谱平分法等;
    2. 基于层次聚类的方法,如GN算法、Newman快速算法等;
    3. 基于模块度优化的方法,如贪婪算法、模拟退火算法、Memetic算法、PSO算法、进化多目标优化算法等。

    复杂网络的性质分析

    “小世界”网络在信息传递和处理的过程中具有相对高的局部效率和全局效率; 而无标度网络中节点的重要性具有极端的两极分化, 表明网络中存在超级重要的核心节点, 这些核心节点在维持整个网络的完整性和连通性中发挥着不可估量的作用。 这两大重要发现引发了复杂网络研究的热潮。 越来越多的研究表明来自不同领域的网络, 包括社会网络、经济网络、生物网络等都具有“小世界”性和无标度性。 这使得人们认识到, 真实网络既不同于规则网络, 也不同于随机网络, 而是介于规则网络和随机网络之间, 具有与两者不同的统计特征的复杂网络。

    实际上小世界和 random network 的度分布相似,点与点之间的连接是随机的,所以都是钟形正态分布,但是小世界的点点之间路径最短。

    无标度网络有巨集团和剩余度的涌现,也就是说巨集团基本代表网络的连接密度,少数的点有大量的连线,大多数点有少量或没有连线。无标度的度分布也引发了相关的对自组织临界和熵厥的讨论,是当今研究主要课题。

    分析完是否是小世界/无标度之后,写出其性质。还有一些基本性质,比如有向无向,有权无权,有环无环


    ​​​​

    衡量影响度

    1. 行为对网络的影响分为两类:自己对自己的影响和自己对别人的影响
    2. 影响分为广度和深度(2014C--25318),广度用度中心度来反映,深度用特征向量中心度来度量,这两个加上中介中心度可以反映对整张复杂网络的影响PageRank或者Hits Algorithm, 然而,它们都涉及矩阵乘法和重复迭代过程,这是不太有效的。 由于网络满足有向无环图(DAG)的特性,我们借鉴拓扑排序的思想来设计更有效的算法。 在该引文网络中,存在共同作者网络中不存在的传递关系。(2014C--27688
    3. 影响的传递可以与食物链中的能量转移进行类比,还可以找到模型的推广(2014C--27688

    排名算法汇总

    GOOGLE PageRank最为广泛使用

    Hilltop 算法

    ExpertRank

    HITS

    TrustRank

    PageRank

    可计算,特征向量中心性(Eigenvector Centrality):一个节点的重要性既取决于其邻居节点的数量(即该节点的度),也取决于其邻居节点的重要性。

    PageRank无法解决出度为零的节点(悬空节点)的问题

    传统的PageRank只适用于点有权值的图。对于加权边的图,可以根据边的权值制定一套规则转化为点的权值进行修正,然后PageRank可以适用于(可以参考2014C--25318

    Hits Algorithm

    HITS算法通过两个评价权值——内容权威度(Authority)和链接权威度(Hub)来对网页质量进行评估。其基本思想是利用页面之间的引用链来挖掘隐含在其中的有用信息(如权威性),具有计算简单且效率高的特点。HITS算法认为对每一个网页应该将其内容权威度和链接权威度分开来考虑,在对网页内容权威度做出评价的基础上再对页面的链接权威度进行评价,然后给出该页面的综合评价。内容权威度与网页自身直接提供内容信息的质量相关,被越多网页所引用的网页,其内容权威度越高;链接权威度与网页提供的超链接页面的质量相关,引用越多高质量页面的网页,其链接权威度越高。

    HITS算法也有其明显的不足。首先是权威性的确定因为权威页面必须针对某一主题或关键词而言。例如某一页面对一确定主题具有较大权威性,但这并不意味在其他与其无关的主题方面同样具有权威性。其次是非正常目的的引用。

    TrustRank

    以前依靠链接和相关性来决定排名的方式,已遭到了各种各样作弊行为的挑衅,Spam的横行,直接导致了Google必须找到一种新的反作弊机制,以确保高质量的站点来获得搜索引擎的青睐。这种情况下SandboxTrustRank被提了出来。意图确保好的站点能获得更高的搜索表现,并加强对站点的审核。Google自己关于TrustRank的最初论述也提到了这些。

    1. 域名注册时间在五年或五年以上;
    2. 网站托管在专用服务器上;
    3. 网站加载时间快;
    4. 网站内容是原创的;
    5. 访客在每个网页的停留时间超过90秒;
    6. 网站被多个国际IP段引用;
    7. 网站在其所属行业中拥有权威性。

    这些都是商业网站和博客所应有的素质,而不是那些利用垃圾内容和虚假入站链接赚些快钱的网站所具备的

    展开全文
  • 生成对抗网络系列(0)——生成模型

    千次阅读 2018-06-20 10:20:49
    本小节算是GAN的预备篇,主要介绍目前几个主流的生成模型,以及他们各自的优势。现有的使用较多的生成模型主要有以下5个,他们的源代码如下: https://github.com/wiseodd/generative-models 这里给出的代码主要是...

    1. 前言

    本小节算是GAN的预备篇,主要介绍目前几个主流的生成模型,以及他们各自的优势。现有的使用较多的生成模型主要有以下5个,他们的源代码如下:

    https://github.com/wiseodd/generative-models

    这里给出的代码主要是CPU实现。不太适合我们现在要处理的任务,基于他们的代码,我改编出了GPU版,目前只实现了AE、VAE和部分GAN,代码会持续更新中…

    https://github.com/Cuiyirui/Generative-Model-with-pytorch-GPU

    2.1 Auto-encoder

    这里写图片描述

    先来看Auto-Encoder也就是我们说的AE,它的主要思路是把输入的vector编码成code,再把code解码成vector. 其中的编码器和解码器部分一般是Neural Network,可以是简单的线型神经元,也可以是CNN。为了训练函数用p-范数做损失函数:

    L=∥xG(z)p

    p取1就是我们熟悉的L1 loss,p取2就是L2 loss.
    把NN换成简单的3层神经网络:
    这里写图片描述

    这里的图像编码是3位。用到的数据集主要是MNIST和我们自己的服装数据集。
    我们先看MNIST上的例子

    这里写图片描述

    这里写图片描述

    从上边的结果发现,随着训练次数的增加,生成的图像在逐渐变清晰。但我们随机给一个长度为3的变量作为编码时,就会生成一些不是特别合理的结果。其实AE更像是一种非线性插值,输入训练集中的图片就会得到比较好的结果,如果我们输入随机编码,则得到的是一些过度的结果。再来个图能更说明AE产生的主要是训练数据的中间结果:
    这里写图片描述

    固定其中的一个值,变化另外两个,我们就能看出数字的变化规律,如果随机选取点的编码值是已有编码的中间值,就会生成一些不合理的结果。我们再来看服装的结果:

    这里写图片描述

    第一个epoch的时候,所有的图像都会出现相同的轮廓,之后到50个epoch的时候逐渐出现了颜色信息,最后随着epoch的增加,生成的服装图像会出现一些个性化的特征,如已经可以出现了长袖、短袖。从某个角度看服装图像的生成,有点像胚胎的演化,所有动物的胚胎在初期都是很相似的,之后才慢慢分化出自己的形态。
    把NN换成复杂的convNet

    这里写图片描述

    得到以下的服装生成效果:

    这里写图片描述

    任意给一组编码得到以下结果:

    这里写图片描述

    可以发现,跟线型神经元不同,用CNN做encoder和decoder的AE在1个epoch的时候就能还原出服装的形态,随着训练次数的增加,服装重建的结果也在慢慢变好。但也许是我自己设计的网络结构不太合理,生成的图像颗粒化很严重,能看到明显的像素块!,最后,我用随机输入的一串编码做测试,发现效果很差,这是因为服装之间的过渡关系远没有数字那么明显!为了能给随机输入的结果一个合理的结果,我们接着介绍VAE

    2.2 Variational auto-encoder(VAE)

    在GAN没出现之前,VAE是最popular的无监督学习方法。举个简单的例子,
    这里写图片描述

    真实的数据分布是大圆,我们的训练集是随机获取的真实数据一部分,因此只能反映真实分布中的侧面。因此用AE时,如果我们输入一张真实的图片,并得到它的编码能得到很好的结果,因为产生的编码属于小圆。但我们在小圆外随机选取1点,得到的就是一下不存在的结果。这个问题会随着特征向量维度增加而变得更糟,VAE的基本思想则是,我们假设是原始数据是一个很复杂的分布,我们高斯分布来逼近这个分布。这样一来,真实数据中的点就跟高斯分布上的点对应起来了!我们只需要利用现有的训练集去找出这个高斯分布的参数μ,σ。这里要注意一下用已知分布逼近未知分布的思想,这个也是GAN的理论基础!除了原始的VAE,目前还有一些VAE的变种,包括:
    conditional VAE, Denoising VAE,
    Adversarial VAE,
    Adversarial Variational Bayes

    我们只介绍原始的VAE。与AE不同,VAE中编码器不再产生图片的编码,而是产生两个向量,一个表示均值,一个表示方差。如图
    这里写图片描述

    利用图中公式,就可以计算出code。整个网络的训练是要让生成器生成的分布与随机噪声分布(一般选标准高斯分布)接近,同时保证输入的图片与输出的图片越接近越好。因此训练网络时的loss为:

    L=∥XG(z)p+KL(ΠPiN(μ,Σ))

    我们知道,如果随机变量是独立同分布的,则联合分布就是由每个变量分布的乘积。在图像生成中,我们可以随机变量是服从高斯分布的,编码器产生的是均值和方差,利用均值和方差可以构造联合高斯分布,这个联合分布与标准高斯分布越接近越好。我们的code是从任意噪声结合的均值和方差生成的,因此我们输入任意噪声作为code,都能产生出一种图片。同样的,设计简单的线型网络结构:

    vae

    也用服装数据集做生成:

    这里写图片描述

    实验结果如图所示,用VAE产生的图片相比于VE有一些模糊,因为VAE拟合的是分布。但给一些随机噪声作为编码,输入到网络后并不会出现不合理的结果,基本上也还保留着服装的形态

    这里写图片描述

    3 小结

    上边介绍了auto-encoder跟variational auto-encoder,我们发现,生成的图片是在比较模糊。这有一部分原因是使用基于pixel-wise的是L2 loss造成的。举个很简单的例子:

    这里写图片描述

    ground truth是手写字符2,上边两幅图中都是有1个pixel的错误,用L2 loss
    都是1,下边两幅图都是多出来6个像素,用L2 loss是36.下边的loss大,但我们从直觉上看下边的图更真一点!
    其实,我们发现,AE和VAE这两个模型的生成器都是静态的,就是定义好loss,用训练数据让loss最小从而求出参数,用这些参数来描述generator。而我们接下来要讲的GAN则是动态的过程,generator是动态更新的,GAN更像是提出一种全新的loss,而这种loss则更符合人们的认知!

    展开全文
  • 复杂网络是一个非常庞大的研究领域,有众多研究方法与研究对象,社交网络、科学家网络、生物网络、交通网络、生物网络等等。在进行仿真时候,有的网络过于庞大无法用实际的数据进行仿真,例如社交网络。而有一些网络...

    复杂网络是一个非常庞大的研究领域,有众多研究方法与研究对象,社交网络、科学家网络、生物网络、交通网络、生物网络等等。在进行仿真时候,有的网络过于庞大无法用实际的数据进行仿真,例如社交网络。而有一些网络规模较小,就需要用实际的数据进行仿真了,例如交通网络。

    那么无论网络规模大小,对这些网络进行研究的时候,第一步往往是建模,只有模型建好了后续的研究、仿真才好进行下去。建模后,可以对网络指标进行分析,可以分析网络的抗毁性等等。总之,建模总是第一步的。

    下面我就分享一下,自己对于复杂网络中实体网络建模的一些经验,以地铁网络为例:

    建模方法,一般有Space L、Space P、Space B、Space C法,比较常用的建模规则是Space L法。

    地铁网络,一般都有三四百个节点,线路十几条左右,看地铁图的是一个眼花缭乱。若是人工统计出来数据也是一项大工程。看着就想放弃,但其实掌握一定的方法并没有那么的费劲。

    1. 按线路进行节点的统计,先编号,然后去除掉重合的节点
    2. 统计连接关系时有一定的规则:比如从左往右统计、从上往下统计,这样可以避免重复统计
    3. 不要直接列出邻接矩阵,先统计出连接关系生成邻接表,然后再转成邻接矩阵
    4. 关于邻接表,最好再检查一遍
    5. 以上工作最好分成数天进行,否则负荷工作效率低且出错率较高

    下面给出 邻接表 转成 邻接矩阵 的Matlab函数代码:

    function b  = ainc2adj( x )
    %AINC2ADJ   x为邻接表(可在工作区中新建数据),输出的b为邻接矩阵
    %   此函数是通过邻接表生成临接矩阵的
    if min(x(:))==0;
       x=x+1;
    end
     d=length(x);
     a=max(max(x));
     b=zeros(a,a);
     
    for i=1:d
        if x(i,1)==x(i,2);
           b(x(i,1),x(i,2))=0;
        else
           b(x(i,1),x(i,2))=1;
            b(x(i,2),x(i,1))=1;
        end
    end
    

    一般来讲生成邻接矩阵,我们就得到了实体网络的节点连接情况。但我们都知道,人工统计的难免会有一些错漏,而这个时候需要用Gephi软件帮助我们进行进一步的检验。关于Gephi如何导入数据,可以参考这一篇文章。导入之后,你会得到一张拓扑图,如下图所示:
    在这里插入图片描述

    但是这样的图,我们没有办法看出网络可能存有什么问题,需要进一步的操作。
    在这里插入图片描述
    点击布局中的,选择一个布局。选择Force Atlas,选择运行,图会发生变化:
    在这里插入图片描述
    我们会发现红圈部分的点与整体网络没有任何联系,而交通网络是一个整体,那就说明这几个节点的连接关系一定都有问题。那么如何查看这几个点是哪几个点呢?点击预览,然后打开显示标签,最后点下方的刷新,就显示出来了节点标号。

    然后可以用鼠标滚轮放大,调节左侧的节点编号显示的颜色,就可以大概看出来是那些节点出现问题了。然后回去对着连接图和节点编号去找就可以了
    在这里插入图片描述
    这个软件生成的图也是非常漂亮的,大家可以试一试,节点颜色、大小,边的颜色、大小,都可以自己调节,还有很多计算网络指标的功能。那么这次的分享就到这里,感谢大家的时间。

    给大家推荐一个非常好的科研网站可以使用免费Web of Science、zhi网、IEEE、EI等账号。亲测好用。这个网站拥有众多的数据库,法律的、医学的、工科的,等等。
    感谢大家的时间,并希望以上的内容会对大家有所帮助。

    欢迎大家与我交流。

    展开全文
  • · 生成模型和生成对抗网络(GANs)是计算机视觉应用最新进展的核心。本文将介绍GANs及其不同的组件。有一些激动人心的GANs用例,快来探索! 引言 你能辨别出下列图片中的奇怪之处吗? 这幅图片呢? ...
  • pytorch 生成模型Detailed instructions for constructing generative adversarial neural networks (GANs) using the example of two models implemented using the PyTorch deep learning framework. 使用通过...
  • 复杂网络与大数据》第二章:复杂网络模型的学习笔记 目录 1动态演化网络 1.1以网络演化的部件划分 1.2以是否考虑权重划分 1.3以演化网络采用的演化机制划分 1.4以演化网络是否动态变化划分 2社区网络 2.1...
  • 生成式对抗网络(GAN,Generative Adversarial Networks)   无监督深度学习,...  它由两个成对的网络协同运作,即生成模型(Generative Model)和判别模型(Discriminative Model),两者的的互相博弈学习产生...
  • 复杂的深层结构可能是一个混合模型,既包含生成模型成份,又包含判别模型成份(成分与成份没有区别)。 生成模型主要包括受限玻尔兹曼机(RBM)、自编码器(AE)、深层信念网络(DBN)、深层玻尔兹曼机(DBM)以及...
  • 一文读懂复杂网络(应用、模型和研究历史)

    万次阅读 多人点赞 2018-05-02 09:40:05
    摘要:随着近几年关于复杂网络(Complex network)理论及其应用研究的不断深入,已有大量关于复杂网络的文章发表在Science,Nature,RL,NAS等国际一流的刊物上,侧面反映了复杂网络已经成为物理界的一个新兴的研究...
  • 近日需要用到无标度网络与小世界网络,早上用matlab写了这两种网络的matlab程序,放在这,有用者可以拿去用,请自己验证正确性后使用。... sfnet.m 是无标度网络BA模型  scalefree.m 是BA模型的子程序,放在和s
  • python 复杂网络中的 SIR 模型

    千次阅读 2020-11-26 00:58:19
    python 实现 复杂网络(小世界网络)中的 SIR 传染病模型
  • 本文首先介绍在NetworkX生成这些网络模型的方法,然后以BA无标度网络的建模为例,分析利用 NetworkX进行复杂网络演化模型设计的基本思路,以便将来开发出我们自己的模型。同时这篇文章里还涉及到一点复杂网络可视化...
  • 复杂网络

    千次阅读 2018-10-28 16:31:28
    文章目录复杂网络复杂网络基本概念平均路径长度聚类系数度与度分布网络拓扑基本模型及其性质规则网络全局耦合网络最近邻耦合网络星型耦合网络随机图(ER随机图)小世界网络模型WS小世界模型NW小世界模型小世界网络的...
  • 复杂网络实验3:BA模型(matlab)

    千次阅读 多人点赞 2019-04-04 23:45:18
    m_add:每次引入新节点时新生成的边数 m_after_growth:增长后的网络规模 pp:初始网络节点的连接选择 pp=1 节点均孤立 pp=2 节点间构成完全图 pp=3 随机连接一些边(随机图) 代码中这些参数都在最前面给出,可以...
  • 第五章:深度生成模型

    万次阅读 2020-03-31 11:48:22
    常见的深度生成模型的结构图如下:深度玻尔兹曼机和深度信念网络都是以受限的玻尔兹曼机为基本单元,区别就是深度信念网络的最高层的两层是无向图的连接,下面的两层是采用有向图的连接;深度自编码网络可以看做由...
  • python代码 edges格式如下: edges={} edges[node1]={} edges[node2]={} edges[node1][node2]=1 def gen_gml_file(edges,filename):  """  生成gml格式文件  """  fp_out=open(filename,'w')
  • Networkx的四种网络模型一. Networkx的下载安装二. 规则图三、ER随机图四、WS小世界网络五、BA无标度网络 NetworkX提供了4种常见网络的建模方法,分别是:规则图,ER随机图,WS小世界网络和BA无标度网络。 一. ...
  • 复杂网络实验2:WS小世界模型(matlab)

    千次阅读 多人点赞 2019-03-28 22:49:56
    复杂网络实验2:WS小世界模型(matlab) 一.思路 1.小世界模型3个参数,N为点的数目,K表示每个点左边K/2个邻居,右边K/2个邻居,一共K个邻居,P代表每条边以多少概率重连 2.首先给定这三个参数(源码是人工输入...
  • 2018-03-31更新:生成模型与判别模型参数模型:根据预先设计的规则,例如方差损失最小,进行学习,参数模型例子:回归(线性回归、逻辑回归)模型;最好可以看一下或者直接进行一下相关的推导;根据规则,拥有少部分...
  • 生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络最最直接的应用是数据的生成,而数据质量的好坏则是评判GAN成功与否的关键...
  • 生成模型就属于无监督学习的一种 生成模型 生成模型的目标是给定训练数据,希望能获得与训练数据相同的新数据样本。我们的目标是找到训练数据的分布函数 生成模型在很多场景有非常好的应用 ...
  • 学习记录 复杂网络模型的matlab实现

    千次阅读 2017-04-12 20:07:42
    function [DeD,aver_DeD]=Degree_Distribution(A) %% 求网络图中各节点的度及度的分布曲线  %% 求解算法:求解每个节点的度,再按发生频率即为概率,求P(k) %A————————网络图的邻接矩阵  %DeD——————...
  • 基于流的生成模型

    千次阅读 2018-11-12 10:18:58
    来自韩国首尔大学的研究者近期发布了一篇利用基于流的生成模型进行实时的语音合成的研究 FloWaveNet。但奇怪的是,他们的论文中并没有语音合成中典型的人类评估 MOS(平均意见分数)指标,甚至一个实验图标都没有。...
  • 1. 序列数据的生成步骤 Deep learning 产生序列数据的方法一般是用 RNN 来预测下一个或者多个 token,比如说给定输入 “the cat is on the ma...token 的概率建模,我们将这个网络训练出来的模型称为 “语言模型”...
  • 生成对抗网络理论模型和应用综述

    千次阅读 2018-10-23 16:28:42
     生成对抗网络GANs已经成为非监督学习中重要的方法之一,其相对于自动编码器和自回归模型等非监督学习方法具有能充分拟合数据、速度较快、生成样本更锐利等优点。  原始GANs模型通过MinMax最优化进行模型训练;...
  • 生成式对抗网络模型综述

    万次阅读 2018-07-10 14:02:01
    其它机器学习、深度学习算法的全面系统讲解可以阅读《机器学习-原理、...一般而言,深度学习模型可以分为判别式模型生成模型。由于反向传播(Back propagation, BP)、Dropout等算法的发明,判别式模型得到了迅...
  • 文献整理   题目 主要内容                             GAN综述 ...5)图像自动生成 ...2. 生成对抗网络博弈论中的零和博弈 3. 将GAN用
  • 复杂网络的研究

    千次阅读 2018-11-04 21:53:53
    1. 复杂网络定义 : 复杂网络概念最开始的时候是相对于规则网络和随机网络提出来的,即介于规则网络和随机网络之间的网络都可以称之为复杂网络。—狭义的复杂网络 从广义上说,任何网络都可以称之为复杂网络,...
  • 机器学习与深度学习里生成模型和判别模型的理解

    万次阅读 多人点赞 2018-05-10 15:20:51
    这篇博客是自己在学习生成模型与判别模型过程中的一些记录,整理了相关的文章后写成,感谢前辈们的辛苦总结转载自:...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 200,724
精华内容 80,289
关键字:

复杂网络生成模型