6.5.2. OSELM 原理
下面介绍 在线极速学习机 (Oniline Sequential Extreme Learning Machine, OS-ELM) 原理.
考虑如下ELM问题
Hβ=T
其最小二乘解为
β^=(HTH)−1HTT
如果 HTH 趋于奇异, 可以选择较小的隐层神经元节点数 L , 或者增加样本数量.
给定初始训练集 S0={(xi,ti)}i=1N0 , 其中, N0 为样本数, 且 N0>L . 从而有初始解
β0=K0−1H0TT0,K0=H0TH0
假如又可以获得训练集 S1={(xi,ti)}i=N0+1N0+N1 , 其中 N1 为新样本数目, 问题变为最小化
∥∥∥∥∥[H0H1]β−[T0T1]∥∥∥∥∥
其解为:
β1=K1−1[H0H1]T[T0T1],K1=[H0H1]T[H0H1]
又因为
K1=[H0TH1T][H0H1]=K0+H1TH1
且
[H0H1]T[T0T1]=H0TT0+H1TT1=K0K0−1H0TT0+H1TT1=K0β0+H1TT1=(K1−H1TH1)β0+H1TT1=K1β0−H1TH1β0+H1TT1
所以, β1 可以表示成 β0 的函数
β1=K1−1[H0H1]T[T0T1]=K1−1(K1β0−H1TH1β0+H1TT1)=β0+K1−1H1T(T1−H1β0)
其中, K1=K0+H1TH1 . 依次类推, 可以得到权重 β 的迭代更新公式
(6.6)Kk+1βk+1=Kk+Hk+1THk+1=βk+Kk+1−1Hk+1T(Tk+1−Hk+1βk),
其中, Kk−1∈RL×L , Hk∈RNk×L , βk∈RL×m , Tk∈RNk×m k=1,2,⋯ . 根据输出权重的迭代更新公 式.6.6 可知, 每次更新权重都需要计算一次一个 Kk+1−1∈RL×L 的逆.
由 Sherman-Morrison-Woodbury 等 式.7.2 (参见 矩阵论 之 常用总结 小结) 知
Kk+1−1=(Kk+Hk+1THk+1)−1=Kk−1−Kk−1Hk+1T(I+Hk+1Kk−1Hk+1T)−1Hk+1Kk−1.
若记 Pk+1=Kk+1−1 , 则有如下迭代公式
(6.7)Pk+1βk+1=Pk−PkHk+1T(I+Hk+1PkHk+1T)−1Hk+1Pk=βk+Pk+1Hk+1T(Tk+1−Hk+1βk)
其中, I∈RNk×Nk 为单位矩阵, 当 Nk<L 时, 式.6.7 可以减小计算量.
若样本以 one-by-one 的形式输入 OSELM, 则更新公 式.6.7 简化为
(6.8)Pk+1=Pk−1+hk+1TPkhk+1Pkhk+1hk+1TPkβk+1=βk+Pk+1hk+1(tk+1T−hk+1Tβk).
上述在线训练算法总结如下:
小技巧
输入: 样本序列 S0={(xi,ti)}i=1N0 , S1={(xi,ti)}i=N0+1N0+N1 , ⋯ , Sk+1={(xi,ti)}i=∑j=1kNj+1∑j=1k+1Nj , k=1,2,⋯,K .
输出: 更新输出层权重 βK
初始训练(k=0, N0>L):
计算初始样本集 S0 的隐藏层输出 H0 , 估计初始权重 β0=P0H0TT0 , 其中 P0=(H0TH0)−1 , T0=[t1,…,tN0]T .
序列学习(k=1,2,⋯,K, Nk 为样本数):
若 Nk>1 , 计算第 k+1 个样本集 Sk+1 的隐藏层输出 Hk+1, 并根据 式.6.7 更新权重;
若 Nk=1 , 计算第 k+1 个样本集 Sk+1 的隐藏层输出 hk+1, 则根据 式.6.11 更新权重;
当 k=K 时停止训练, 并输出权重 βK .