OnlineSVR算法原理(3)
来源:互联网 发布:windows 终端仿真软件 编辑:程序博客网 时间:2024/05/16 08:34
3 伪代码算法
这一节将阐述Online SVR算法的具体过程。这是该算法的核心部分,为了能更好地理解我列出了算法所有要用到的公式。
3.1 学习算法
3.1.1 输入与输出
在一系列的数学证明和分析之后,我们终于可以用伪代码表示出来该算法,下面是一个Online SVR需要输入的部分:
INPUTS
1. TRAININGSET { xi, yi, i=1..l}
2. WHEIGHTS qi, i=1..l
3. BIAS b
4. TRAININGSET PARTITION INTO SUPPOTSET(S) , ERRORSET(E)
AND REMAININGSET(R)
5. PARAMS: e , C , KERNELTYPE AND KERNELPARAMs
6. R MATRIX
7. NEW SAMPLE C = (xc, yc)
在训练开始,TrainningSet,Coefficients,SupportSet,ErrorSet,RemainingSet以及R矩阵都是空的,而且Bias也是为零的。注意上面提到的矩阵都应该储存起来,以便在训练新样本时使用。但在常用的SVR训练算法中只用到了TrainingSet,Weights以及Bias。
OUTPUTS
1. NEW TRAININGSET { xi, yi, i=1..l+1}
2. NEW COEFFICIENTS qi, i=1..l+1
3. NEW BIAS b
4. NEW TRAININGSET PARTITION
5. NEW R MATRIX
NEW TRAINING ALGORITHM
1. ADD (xc, yc) AT THE TRAININGSET
2. SET qc = 0
3. COMPUTE f(xc) AND h(xc)
4. IF (|h(xc)| < e)
4.1 ADD NEWSAMPLE TO THE REMAININGSET AND EXIT
5. COMPUTE h(xi), i=1..l
6. WHILE (NEWSAMPLE IS NOT ADDED INTO A SET)
6.1 UPDATE THE VALUES b AND g
6.2 FIND LEAST VARIATIONS (Lc1, Lc2, Ls, Le, Lr)
6.3 FIND MIN VARIATION Dqc = min(Lc1, Lc2, Ls, Le, Lr)
6.4 LET FLAG THE CASE NUMBER THAT DETERMINATES Dqc
(Lc1=1, Lc2=2, Ls=3, Le=4, Lr=5)
6.5 LET xl THE SAMPLE THAT DETERMINES Dqc
6.6 UPDATE qc, qi, i=1..l AND b
6.7 UPDATE h(xi), i Î E ÈR
6.8 SWITCH FLAG
6.8.1 (FLAG = 1)
6.8.1.1 ADD NEWSAMPLE TO SUPPORTSET
6.8.1.2 ADD NEWSAMPLE TO R MATRIX
6.8.1.3 EXIT
6.8.2 (FLAG = 2)
6.8.2.1 ADD NEWSAMPLE TO ERRORSET
6.8.2.2 EXIT
6.8.3 (FLAG = 3)
6.8.3.1 IF (ql = 0)
6.8.3.1.1 MOVE SAMPLE l FROM SUPPORT TO REMAININGSET
6.8.3.1.2 REMOVE SAMPLE l FROM R MATRIX
6.8.3.1 ELSE [ql = |C|]
6.8.3.2.1 MOVE SAMPLE l FROM SUPPORT TO ERRORSET
6.8.3.2.2 REMOVE SAMPLE l FROM R MATRIX
6.8.4 (FLAG = 4)
6.8.4.1 MOVE SAMPLE l FROM ERROR TO SUPPORT
6.8.4.2 ADD SAMPLE l TO R MATRIX
6.8.5 (FLAG = 5)
6.8.5.1 MOVE SAMPLE l FROM REMAINING TO SUPPORTSET
6.8.5.2 ADD SAMPLE l TO R MATRIX