参考文献: A dynamic learning neural network for remote sensing applications
网络模型
- 以 MLP 为 framework 设计的
- 可以有多个hidden layer(通常情况下小于3层)
- 第i层只能作为第i+1层的输入
符号解释:
* h 为每一层单个节点的 total net input
* S() 为 activation function; 通常用 sigm 函数
h[i] = W[i]S(h[i-1]) + B[i] (for i = 1; i < p+1 )
符号解释:
* 设有p层hidden layer
* W:每一层的权重矩阵
B: 偏置矩阵
n: 每一层节点的数量
* input = S(h[0])
output = S(h[p+1])
* input_num = n[0]
output_num = n[p+1]
Learning algorithm
- BP learning algorithm
- Polynomial basis function
- Kalman filtering technique
BP(梯度下降法)
目的
对权重进行最优化处理,使得input和output的映射关系达到最优
即:使得误差率rms小于某个特定的值
基于本参考文献,BP算法只是用于展示后续算法develop的self-contained
Process
- 计算每一层每一个节点的hij
- 计算total error(rms) = sum(1/2(target - output)^2)
- 计算每一个权重的变化对于total error的影响
即: total error 相较于每一个权重值的偏导数 - 跟新权重矩阵中的每一个权重值(包括偏置值):w' = w - (学习率*total error 相较于w的偏导数)
- 重复1~4步骤,直到total error小于预设误差率threshold
补充内容:
* 权重及偏置的初始值为小随机数;学习率为0~1之间
* 参考文献内有提供求解偏导数的recursive equations
PBF
目的
对每一层中每一个节点的S(hij)化简,将 activation function 放入单个节点表达式中
将 MLP 网络转化成 complete 网络
好处:当为 complete network 时,隐藏层的节点权重不再为必须的,只需要输出层的节点权重向量即可
Process
符号解释:
* Dij[k]: 代表误差率最优情况下的多项式系数
* P(i,j): 由relative rms计算得到,P(i,j)会随着rms的下降而增大
符号解释:
* x: (M*1)转置的矩阵
* M:0到p层每层节点的数量和+1(即:输入层节点和 + 隐藏层节点和 + 1)
实验例子中 M = 123
* C: (M*L)的相关矩阵
* X:(L*1)转置的输入参数矩阵;X = [X[0][1], X[1][1]... X[2][1], X[2][2]...]
* X[0][1] = 1
X[1][l] = xl
X[2][l] = x1^2, x2^2, x1x2, x1x3 ect
符号解释:
* W:(m*M)的输出层权重矩阵
W = [w1, w2, ..., w(p+1)]T
wk = 输出层每个节点组成的集合
wijk = 输出层的每个节点关于上一层节点连边上的权重值组成的集合
Kalman filtering
目的
预测和反馈向最小mse值的递归过程,对每一个输出节点上的权重进行filter
Process
补充及符号解释:
* 每一个输出节点对应的权重值可以独立更新
* A: (M*M)的状态转化矩阵
* B: (M*M)的对角矩阵
* uk: (1*M)的process error向量
* vk: scalar measurement error
* uk及vk为服从高斯模型的白噪声,相关关系如上图9.4
补充解释:
* 上图第一个等式右边的权重值为经过PBF预测得到的估计值;
左边的权重值为filter预测反馈而得到的估计值
* gk^j: 卡尔曼增益值; 通常使用UD分解来求卡尔曼增益值(ud文件的意义)
简化计算:
* 令Aj和Bj为单位矩阵
* rk^j为小的正数
* 令 Qk^j = φ^2 * I(单位矩阵)
φ为指定的过程误差变量
* 初始权重设置为小随机数
* 设立初始预测误差相关矩阵为图11.1
实验过程
- 预处理:
- 对输入数据到预测数据进行 sensitibity test
- 采用Monte Carlo对训练数据集进行选择,选取输出值易受输入值影响的
- 神经网络黑箱处理