Dynamic Learning Neural Network 算法笔记

参考文献: A dynamic learning neural network for remote sensing applications

网络模型

  • 以 MLP 为 framework 设计的
  • 可以有多个hidden layer(通常情况下小于3层)
  • 第i层只能作为第i+1层的输入

《Dynamic Learning Neural Network 算法笔记》 1. 单个网络节点模型.PNG
《Dynamic Learning Neural Network 算法笔记》 2. 单个节点的计算公式.PNG

符号解释:
* h 为每一层单个节点的 total net input
* S() 为 activation function; 通常用 sigm 函数

《Dynamic Learning Neural Network 算法笔记》 3. 典型MLP网络整体结构.PNG

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]

《Dynamic Learning Neural Network 算法笔记》 4. 典型MLP网络结构 notation 注记.PNG

Learning algorithm

  • BP learning algorithm
  • Polynomial basis function
  • Kalman filtering technique

BP(梯度下降法)

参考网址

目的

对权重进行最优化处理,使得input和output的映射关系达到最优
即:使得误差率rms小于某个特定的值
基于本参考文献,BP算法只是用于展示后续算法develop的self-contained

Process

  1. 计算每一层每一个节点的hij
  2. 计算total error(rms) = sum(1/2(target – output)^2)
  3. 计算每一个权重的变化对于total error的影响
    即: total error 相较于每一个权重值的偏导数
  4. 跟新权重矩阵中的每一个权重值(包括偏置值):w’ = w – (学习率*total error 相较于w的偏导数)
  5. 重复1~4步骤,直到total error小于预设误差率threshold
补充内容:  
* 权重及偏置的初始值为小随机数;学习率为0~1之间
* 参考文献内有提供求解偏导数的recursive equations

PBF

目的

对每一层中每一个节点的S(hij)化简,将 activation function 放入单个节点表达式中
将 MLP 网络转化成 complete 网络
好处:当为 complete network 时,隐藏层的节点权重不再为必须的,只需要输出层的节点权重向量即可

Process

《Dynamic Learning Neural Network 算法笔记》 5. 假设S(hij)可以展开为上式.PNG

符号解释:  
* Dij[k]: 代表误差率最优情况下的多项式系数  
* P(i,j): 由relative rms计算得到,P(i,j)会随着rms的下降而增大

《Dynamic Learning Neural Network 算法笔记》 6. express the activation function within the network.PNG
《Dynamic Learning Neural Network 算法笔记》 6.1.PNG
《Dynamic Learning Neural Network 算法笔记》 6.2.PNG

符号解释:  
* 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  

《Dynamic Learning Neural Network 算法笔记》 7. output的表示方式.PNG

符号解释:  
* W:(m*M)的输出层权重矩阵  
  W = [w1, w2, ..., w(p+1)]T  
  wk = 输出层每个节点组成的集合  
  wijk = 输出层的每个节点关于上一层节点连边上的权重值组成的集合  

《Dynamic Learning Neural Network 算法笔记》 8. 最终简化而成的每一个输出y的表达式.PNG

Kalman filtering

目的

预测和反馈向最小mse值的递归过程,对每一个输出节点上的权重进行filter

Process

《Dynamic Learning Neural Network 算法笔记》 9. 神经网络系统的状态差分方程.PNG
《Dynamic Learning Neural Network 算法笔记》 9.2.PNG
《Dynamic Learning Neural Network 算法笔记》 9.3.PNG
《Dynamic Learning Neural Network 算法笔记》 9.4 噪声的相关关系.PNG

补充及符号解释:  
* 每一个输出节点对应的权重值可以独立更新  
* A: (M*M)的状态转化矩阵  
* B: (M*M)的对角矩阵  
* uk: (1*M)的process error向量  
* vk: scalar measurement error  
* uk及vk为服从高斯模型的白噪声,相关关系如上图9.4  

《Dynamic Learning Neural Network 算法笔记》 10. 神经网络中权重矩阵利用卡尔曼滤波进行反馈和预测的过程.PNG

补充解释:  
* 上图第一个等式右边的权重值为经过PBF预测得到的估计值;
  左边的权重值为filter预测反馈而得到的估计值
* gk^j: 卡尔曼增益值; 通常使用UD分解来求卡尔曼增益值(ud文件的意义)

《Dynamic Learning Neural Network 算法笔记》 11. 卡尔曼增益值计算公式.PNG

简化计算:  
* 令Aj和Bj为单位矩阵  
* rk^j为小的正数  
* 令 Qk^j = φ^2 * I(单位矩阵)
  φ为指定的过程误差变量
* 初始权重设置为小随机数  
* 设立初始预测误差相关矩阵为图11.1

《Dynamic Learning Neural Network 算法笔记》 11.1.PNG

实验过程

  1. 预处理:
  • 对输入数据到预测数据进行 sensitibity test
  • 采用Monte Carlo对训练数据集进行选择,选取输出值易受输入值影响的
  1. 神经网络黑箱处理
    原文作者:lisaljy
    原文地址: https://www.jianshu.com/p/9e67094e75e8
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞