正在加载图片...
第3期 张钢,等:面向大数据流的半监督在线多核学习算法 ·359· (∑,W,-W)',k关于D的Gam矩阵记为kn, 算M和k。的时间复杂度为O(N2)。 W,=RBF(x,x),x:,x∈D。则可以通过式(4)的 一个重要问题是LRU和FIFO中对输入样本的 方式对核函数k进行修改,使其等距线沿D进行分 时间属性记录,对LRU还有聚类意义下最近被使用 布: 样本的判断。本文首先用聚类的方式产生数据集D kp(a,b)=k(a,b)-ki (I+MKp)Mk (4) 的r个簇,应用在线聚类的方式更新这r个簇,替换 其中a和b为任意2个训练样本,M是一个在原点 样本时每次从最久没有被更新过的簇中随机选取一 对称的距离矩阵,按文献[12]的方法用图拉普拉斯 个样本进行替换,使用一个长度为r优先队列记录 矩阵计算得到。整个过程中并没有考虑数据的标 每个簇最近被访问的情况。对于FIFO策略,不需 签,仅是通过考虑数据的密度分布,对原有核函数的 要优先队列,每次把新加入的样本放在最下行和最 值进行修改。 右列,然后去掉第1行第1列即可。算法2和算法3 式(4)的计算需要离线批量进行,且计算的时 分别描述了静态大数据集和流数据集2种情况下的 间复杂度较高,具体而言,式(4)在修改数据样本α 数据依赖核的在线学习过程。 和b的核函数值时要计算k。和k。,即a和b与当前 算法2使用一个优先队列记录样本簇最近被访 可见数据集的核函数k值。当可见数据不变时,M 问的情况,认为一个簇中的样本被访问过一次,则该 和k。这两项只需计算一次,但对数据流而言,M和 簇最近被访问过,核矩阵的更新从第7至10行,需 k。是在不断变化的。但可以肯定的一点是,对于大 要对所有样本扫描一次,时间复杂度是0(W2),优 规模数据集和数据流,直接计算整个数据集的M和 先队列的操作需要O(),其中r为簇的个数,判断 k。在计算资源上并不现实。 x。属于哪个簇的粗糙算法需要O()时间,整体的 因此考虑M和k。的在线更新策略,采用限制 时间复杂度为0(N2)。 M和k。的规模为N×N,则必须有D中的数据样本 算法2大数据集的数据依赖核在线学习 替换策略。借鉴操作系统中内存页面的调度算法, 输入: 对静态的大数据集应用类似近期最少使用(least re- 数据样本集:D={x1,x2,…,xx} cently used,LRU)的样本更新策略),而对于高速 当前输入样本:x。 数据流应用先进先出(first in first out,FIFO)更新策 核函数Gram矩阵和距离矩阵:K、M 略[3],其中LRU是替换最近一段时间没有被使用 样本空间聚类分布:Lc 过的样本,由于样本各不相同,本文采用聚类意义下 记录簇最近访问的优先队列:Q 的样本使用统计。这两种策略的合理性基于以下分 输出:更新后的核矩阵:K 析。对于静态大数据集,虽然数据是顺序地输入到 1)r=clus(Lc,xo)/查找样本xo的簇号 学习器中,但其数据到达顺序和时序不相关,因此不 2)根据r更新优先队列Q 能使用与时间密切相关的FIFO策略,而采用LRU 3)把x。加到簇r中 策略较为合理:对于数据流,其数据生成规律有可能 4)在优先队列Q的队尾所示的簇中随机去掉 随时间变化而变化,因此替换存在时间最长样本的 一个样本 FIFO策略是合理的。同时,数据依赖核是通过对数 5)初始化k。 据的分布估计对核函数进行修改,计算这种分布需 6)令k1=(k(x0,x1),…,k(x0,xx)) 要对一定规模的数据点进行分析,因此维持一个工 7)forj=1,…,Ndo 作集M是必须的,它可被看作一个缓存,反映近一 8)k2=K(G,·) 段时间的数据分布规律。这种限制工作集大小的更 9)kko=k:-kI (I+MK)-Mk, 新策略有一定的局部性,但在有限的计算和存储资 10)end for 源下是折衷的策略。 11)用k,更新矩阵K中关于x的一行和一列 算法维持一个不考虑标签的样本集D并进行 12)return K 在线更新。k。和k6的计算步聚是先查表k。,若不命 算法3流数据集的数据依赖核在线学习 中再计算,时间复杂度为O(N)。对于M和k。,替 输入: 换样本之后需要重新计算一行,然后更新一行和一 数据样本集D={x1,xw 列,因此其时间复杂度也为O(N)。算法初始时计 当前输入样本:xo(∑i Wij - W) p , k 关于 D 的 Gram 矩阵记为 kD , Wij = RBF(xi,xj) , xi,xj ∈ D 。 则可以通过式(4)的 方式对核函数 k 进行修改,使其等距线沿 D 进行分 布: kD(a,b) = k(a,b) - k T a (I + MKD) -1Mkb (4) 其中 a 和 b 为任意 2 个训练样本, Μ 是一个在原点 对称的距离矩阵,按文献[12]的方法用图拉普拉斯 矩阵计算得到。 整个过程中并没有考虑数据的标 签,仅是通过考虑数据的密度分布,对原有核函数的 值进行修改。 式(4)的计算需要离线批量进行,且计算的时 间复杂度较高,具体而言,式(4)在修改数据样本 a 和 b 的核函数值时要计算 ka 和 kb ,即 a 和 b 与当前 可见数据集的核函数 k 值。 当可见数据不变时, M 和 kD 这两项只需计算一次,但对数据流而言, M 和 kD 是在不断变化的。 但可以肯定的一点是,对于大 规模数据集和数据流,直接计算整个数据集的 M 和 kD 在计算资源上并不现实。 因此考虑 M 和 kD 的在线更新策略,采用限制 M 和 kD 的规模为 N × N ,则必须有 D 中的数据样本 替换策略。 借鉴操作系统中内存页面的调度算法, 对静态的大数据集应用类似近期最少使用(least re⁃ cently used, LRU)的样本更新策略[13] ,而对于高速 数据流应用先进先出(first in first out, FIFO)更新策 略[13] ,其中 LRU 是替换最近一段时间没有被使用 过的样本,由于样本各不相同,本文采用聚类意义下 的样本使用统计。 这两种策略的合理性基于以下分 析。 对于静态大数据集,虽然数据是顺序地输入到 学习器中,但其数据到达顺序和时序不相关,因此不 能使用与时间密切相关的 FIFO 策略,而采用 LRU 策略较为合理;对于数据流,其数据生成规律有可能 随时间变化而变化,因此替换存在时间最长样本的 FIFO 策略是合理的。 同时,数据依赖核是通过对数 据的分布估计对核函数进行修改,计算这种分布需 要对一定规模的数据点进行分析,因此维持一个工 作集 M 是必须的,它可被看作一个缓存,反映近一 段时间的数据分布规律。 这种限制工作集大小的更 新策略有一定的局部性,但在有限的计算和存储资 源下是折衷的策略。 算法维持一个不考虑标签的样本集 D 并进行 在线更新。 ka 和 kb 的计算步聚是先查表 kD ,若不命 中再计算,时间复杂度为 O(N) 。 对于 M 和 kD ,替 换样本之后需要重新计算一行,然后更新一行和一 列,因此其时间复杂度也为 O(N) 。 算法初始时计 算 M 和 kD 的时间复杂度为 O(N 2 ) 。 一个重要问题是 LRU 和 FIFO 中对输入样本的 时间属性记录,对 LRU 还有聚类意义下最近被使用 样本的判断。 本文首先用聚类的方式产生数据集 D 的 r 个簇,应用在线聚类的方式更新这 r 个簇,替换 样本时每次从最久没有被更新过的簇中随机选取一 个样本进行替换,使用一个长度为 r 优先队列记录 每个簇最近被访问的情况。 对于 FIFO 策略,不需 要优先队列,每次把新加入的样本放在最下行和最 右列,然后去掉第 1 行第 1 列即可。 算法 2 和算法 3 分别描述了静态大数据集和流数据集 2 种情况下的 数据依赖核的在线学习过程。 算法 2 使用一个优先队列记录样本簇最近被访 问的情况,认为一个簇中的样本被访问过一次,则该 簇最近被访问过,核矩阵的更新从第 7 至 10 行,需 要对所有样本扫描一次,时间复杂度是 O(N 2 ) ,优 先队列的操作需要 O(r) ,其中 r 为簇的个数,判断 x0 属于哪个簇的粗糙算法需要 O(r) 时间,整体的 时间复杂度为 O(N 2 ) 。 算法 2 大数据集的数据依赖核在线学习 输入: 数据样本集: D = {x1 ,x2 ,…,xN} 当前输入样本: x0 核函数 Gram 矩阵和距离矩阵: K、Μ 样本空间聚类分布: LC 记录簇最近访问的优先队列: Q 输出: 更新后的核矩阵: K 1) r = clus(LC ,x0 ) / / 查找样本 x0 的簇号 2) 根据 r 更新优先队列 Q 3) 把 x0 加到簇 r 中 4) 在优先队列 Q 的队尾所示的簇中随机去掉 一个样本 5) 初始化 kx0 6) 令 k1 = (k(x0 ,x1 ),…,k(x0 ,xN)) 7) for j = 1,…,N do 8) k2 = K(j,·) 9) kk0 = k1 - k T 1 (I + ΜK) -1Μk2 10)end for 11) 用 kx0 更新矩阵 K 中关于 x0 的一行和一列 12) return K 算法 3 流数据集的数据依赖核在线学习 输入: 数据样本集 D = {x1 ,…xN} 当前输入样本: x0 第 3 期 张钢,等:面向大数据流的半监督在线多核学习算法 ·359·
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有