宽度学习学习笔记


参考论文: Broad Learning System: An Effective and Efficient
Incremental Learning System Without
the Need for Deep Architecture

随机向量函数链接网络(RVFLNN)

增强节点

RVFLNN是一个单层网络结构,只有输出层和隐藏层,此外还多余一个增强层。
在这里插入图片描述
输入层为训练样本,输入层和增强层之间随机确定一个权值矩阵和偏量,并将增强层与输入层合并作为输入层。
在这里插入图片描述

权值计算

对于单层网络来说,我们不需要通过反向传播得到权值,可以直接通过矩阵运算得到 W W W,也就是 A W = Y , W = A + Y AW=Y, W=A^{+}Y AW=Y,W=A+Y,我们只需要得到A的逆即可。

A A A可能并不一定是n*n的的矩阵,因此我们需要得到的是A的伪逆,我们用岭回归的方法求伪逆(Ridge regression),也就是 A + = lim ⁡ λ − > 0 ( λ I + A A T ) − 1 A T A^{+}=\lim\limits_{\lambda->0}(\lambda I+AA^{T})^{-1}A^{T} A+=λ>0lim(λI+AAT)1AT

然而训练样本以及增强层都有可能为了网络结构的性能增加,此时我们希望能够在之前的计算结果上迭代得到新权值,而不是重新对矩阵 A A A进行求逆操作,也就是实现增量学习。而实现增量学习的关键在于如何在已知 A n 和 A n + A_n和A_n^{+} AnAn+的情况下,得到 A n + 1 = A n ∣ a A_{n+1}={A_{n}|a} An+1=Ana a a a A A A增强层增加的节点)的伪逆 A n + 1 + A_{n+1}^+ An+1+

Greville 定理

此定理用于解决分块矩阵求伪逆

  1. 定理内容
    A ∈ C m ∗ n A \in C^{m*n} ACmn,记 a k ( k = 1 , 2... n ) a_k(k=1,2...n) ak(k=1,2...n) A A A的第 k k k列, A k A_k Ak A A A的前 k k k列构成的子矩阵,又记 d k = A k − 1 + a k d_k=A_{k-1}^+a_k dk=Ak1+ak c k = a k − A k − 1 d k = a k − A k − 1 A k − 1 + a k c_k=a_k-A_{k-1}d_k=a_k-A_{k-1}A_{k-1}^+a_k ck=akAk1dk=akAk1Ak1+ak

    A k + = [ A k − 1 + − d k b T b T ] A_k^+= \begin{bmatrix} A_{k-1}^+ -d_kb^{T} \\ b^T \end{bmatrix} Ak+=[Ak1+dkbTbT]
    b T = { c k + ( c k ≠ 0 ) ( 1 + d T d ) − 1 d T A k − 1 + ( c k = 0 ) b^T= \begin{cases} c_k^+(c_k\not= 0)\\(1+d^{T}d)^{-1}d^TA_{k-1}^+(c_k=0) \end{cases} bT={ck+(ck=0)(1+dTd)1dTAk1+(ck=0)

  2. 定理证明

宽度学习系统(Broad Learning System)

数据处理

  1. 稀疏自动编码器
    在这里插入图片描述
    我们希望能够提取原先一堆输入中的特征,也就是对原先数据参数进行降维的操作。例如原先输入参数有785个,我们通过sparse autoencoder来使得输入参数降维10个。方法就是构建一个只有一个隐藏层的网络,输入层和输出层都是训练样本。我们只需要得到从输入层到隐藏层的权值矩阵即可。

简单BLS

首先考虑无增量学习的BLS,我们只需要输入参数和特征节点全部放在输入层即可,然后通过岭回归计算得到的权值。

这里唯一需要注意的是特征节点(增强层)权值的设置有两种方法,也就是对于每个节点对应的权值相同或者不同,如下图:
在这里插入图片描述
在这里插入图片描述
实际上这两种随机权值的设置方法对后面的结果均无影响
在这里插入图片描述

增强节点的增量学习

网络结构不可能永远一成不变,我们在得到一个并不满意的结构后,希望能够增加增强层的节点数量来优化我们的网络结构。
在这里插入图片描述
由前面增量学习的知识可知,我们不需要重新计算一遍权值的伪逆,只需要在前面的结果上面迭代得到新的伪逆。
对于 A m = [ Z n ∣ H m ] A^m=[Z^n|H^m] Am=[ZnHm],我们有新的 A m + 1 = [ A m ∣ a ] A^{m+1}=[A^m|a] Am+1=[Ama],由Greville定理可得
( A m + 1 ) + = [ A m − d b T b T ] (A^{m+1})^+= \begin{bmatrix} A^m - db^T \\ b^T \end{bmatrix} (Am+1)+=[AmdbTbT]
其中
d = ( A m ) + a d=(A^m)^+a d=(Am)+a
c = a − A m d c=a-A^md c=aAmd
b T = { c + ( c ≠ 0 ) ( 1 + d T d ) − 1 d T A k − 1 + ( c = 0 ) b^T= \begin{cases} c^+(c\not= 0)\\(1+d^{T}d)^{-1}d^TA_{k-1}^+(c=0) \end{cases} bT={c+(c=0)(1+dTd)1dTAk1+(c=0)
在这里插入图片描述

特征节点的增量学习

除了单独增加增强层节点,我们还有可能需要增加特征值的维度,在这种情况下相当于在mapped feature里增加了一个特征节点
在这里插入图片描述
而对于增强层来说,因为mapped feature发生了改变,所以我们不仅仅需要在原先的增强层基础上增加由新的 Z n + 1 Z_{n+1} Zn+1产生的新节点
并且要增加由 n + 1 n+1 n+1个mapped feature组成的增强节点。所以一共增加了三个部分: Z n + 1 Z_{n+1} Zn+1,为 Z n + 1 Z_{n+1} Zn+1单独增加的增强节点,将 Z n + 1 Z_{n+1} Zn+1与原节点合并后的增强节点
在这里插入图片描述

输入的增量学习

改变网络结构还有可能是因为输入参数变多了,我们也不希望重新计算一遍权值。在这种情况下与之前的增量学习情况类似,但不同的是我们这次是在矩阵的纵向增加,而非横向。也就是在
A n + x m = [ A n m A x T ] A_{n+x}^m= \begin{bmatrix} A^m_n\\ A^T_x \end{bmatrix} An+xm=[AnmAxT]

( A n + x m ) + = [ ( A n m ) + − B D T ∣ B ] (A_{n+x}^m)^+=[(A_n^m)^+-BD^T|B] (An+xm)+=[(Anm)+BDTB]
其中 D T = A x T ( A n m ) + D^T=A_x^T (A_n^m)^+ DT=AxT(Anm)+
B T = { C ( C ≠ 0 ) ( 1 + D T D ) − 1 ( A n m ) D ( C = 0 ) B^T= \begin{cases} C^(C\not=0)\\ (1+D^TD)^-1(A_n^m)D (C=0) \end{cases} BT={C(C=0)(1+DTD)1(Anm)D(C=0)
其中 C = A x T − D T A n m C=A^T_x-D^TA^m_n C=AxTDTAnm

SVD

首先我们知道对于方阵 A A A来说,我们可以将 A A A分解为 A = W ∑ W T A=W\sum W^T A=WWT,其中 W W W A A A对应特征向量的矩阵, ∑ \sum 是特征值构成对角线的矩阵。

对于非方阵 A m ∗ n A_{m*n} Amn而言,我们也希望它有这样的分解,显然有 A T A A^TA ATA A A T AA^T AAT为方阵,我们想把 A A A分解为 A = U Σ V T A=U\Sigma V^T A=UΣVT,则显然有
A A T = U Σ 1 U T A T A = V Σ 2 V T AA^T=U\Sigma_1U^T\\ A^TA=V\Sigma_2V^T AAT=UΣ1UTATA=VΣ2VT
且能够发现 Σ 1 = Σ Σ T , Σ 2 = Σ T Σ \Sigma_1=\Sigma\Sigma^T, \Sigma_2=\Sigma^T\Sigma Σ1=ΣΣT,Σ2=ΣTΣ
因此我们能够通过计算方阵 A T A A^TA ATA A A T AA^T AAT的特征值和特征向量来得到A的奇异值分解

因此,我们可以在 Σ \Sigma Σ中选取k个最大的特征值进行 A A A的近似处理。注意这里选取的 U k U_k Uk V k T V_k^T VkT分别对应的第k个特征值的特征向量
在这里插入图片描述
除此之外,左奇异矩阵U可以用于压缩X的行数,右奇异矩阵V可以用于X的降维,也就是PCA主成分分析。

而在BLS中,我们也同样可以采用SVD进行数据的降维简化,论文中分别对mapped feature、enhanced nodes和增量学习中的节点用SVD右矩阵V进行降维处理,简化数据。

  • 1
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值