BP神经网络

来源:互联网 发布:后台数据集 js调用 编辑:程序博客网 时间:2024/06/01 10:25

神经网络

NN

                                                                                      多层前向神经网络

输入层(特征向量值):神经元数量由特征值确定,特征值有多少就有多少

隐藏层(可以有很多层):层数和每层神经元数量不定

输出层(标记分类):神经元数量由目标集确定

每个神经元存的数字由上一个神经元传的值,自己的值和偏置值决定

权重(w)

偏置(b):除了输入层,每一层神经元都有偏置

激励函数activation function

隐藏层足够多,训练集足够大,可以模拟任何问题

NN算法(BP=Back Propagation后项传播)

1.特征向量标准化normalize(通过算法,特征值转化为0-1之间的值,即输入值在0-1之间)

比如毛色:输入层四个输入值  黑1000 蓝0100 就是选到谁谁就设1

2.随机初始化权重和偏置(-1-1之间)

3.传入样例

比如:输入层四个输入传为0.1,0.2,0.3,0.4

4.计算神经元的值

   1.对上层输入加权求和:上层的每个特征值乘以自己和该神经元的权重的值再相加

   2.加上偏置值

   3.用激励函数产生最后结果(sigmoid function)

        f(x)=1/(1+e^(-x))

5.根据误差反向传送

6.误差计算

    1.输出层 Err =(结果)*(1-结果)*(预期值-结果)

    2.隐藏层 Err = ( 结果 )*(1-结果)*(后一层Err加权求和)

    3.权重更新

        Δwij = (learning rate)*Err*Oi      learning grate: 学习率

        wij = wij + Δwij

    4.偏置更新

      Δbj=(learning rate)*Errj

      bj = bj+Δbj

训练NN

  不断通过样例调整权重和偏置的过程

  训练好的神经网络可以用于预测新的样例


训练终止

 1.训练一定次数(epoch)

 2.既定错误率

 3.权重更新低于某个Threhold(阈值)

 自己定


激励函数

  如双曲函数,逻辑函数(上面例子),阶跃函数。。。

learning rate

  学习的步长





原创粉丝点击