• 数学之路(3)-机器学习(3)-机器学习算法-神经网络[12]


    本博客所有内容是原创,未经书面许可,严禁任何形式的转载

    http://blog.csdn.net/u010255642


    我们使用最原始的纯随机生成方法产生多层感知器网络 的权值矩阵,这个权值矩阵要保证输入项在网络中均匀分布,要保证权值矩阵本身的均匀分布

    我们修改前面的程序,不使用偏置,目标是使之更稳定,收敛效果更好,修改的基本策略是为:

    1、输出层的学习率较低,动量参数较高

    2、输入层的学习率较低,运量参数较低

    3、随机生成若干个权值矩阵,选择最优化的权值矩阵

    选择的策略是:

    1、输入项的方差尽可能靠近1

    2、权值矩阵的均值尽可能小,其方差尽可能与神经元的突触连接数成反比

    按这个策略来生成权值矩阵,一个好的权值矩阵能使网络快速收敛,使网络更稳定。

    修改运行后

    产生权值初始矩阵 . . . . . . . . . . . . . . . . . . .
    权值矩阵平均:0.000456
    权值矩阵方差:0.182555
    -------开始第1次训练---------
    # # # # # # -------开始第2次训练---------
    # # # # # # -------开始第3次训练---------
    # # # # # # -------开始第4次训练---------
    # # # # # # -------开始第5次训练---------
    # # # # # # -------开始第6次训练---------
    # # # # # # -------开始第7次训练---------
    # # # # # # -------开始第8次训练---------
    # # # # # # -------开始第9次训练---------
    # # # # # # -------开始第10次训练---------
    # # # # # # -------开始第11次训练---------
    # # # # # # -------开始第12次训练---------
    # # # # # # -------开始第13次训练---------
    # # # # # # -------开始第14次训练---------
    # # # # # # -------开始第15次训练---------
    # # # # # # -------开始第16次训练---------
    # # # # # # -------开始第17次训练---------
    # # # # # # -------开始第18次训练---------
    # # # # # # -------开始第19次训练---------
    # # # # # # -------开始第20次训练---------
    # # # # # # -------开始第21次训练---------
    # # # # # # -------开始第22次训练---------
    # # # # # # -------开始第23次训练---------
    # # # # # # -------开始第24次训练---------
    # # # # # # -------开始第25次训练---------
    # # # # # # -------开始第26次训练---------
    # # # # # # -------开始第27次训练---------
    # # # # # # -------开始第28次训练---------
    # # # # # # -------开始第29次训练---------
    # # # # # # -------开始第30次训练---------
    # # # # # # -------开始第31次训练---------
    # # # # # # -------开始第32次训练---------
    # # # # # # -------开始第33次训练---------
    # # # # # # -------开始第34次训练---------
    # # # # # # -------开始第35次训练---------
    # # # # # # -------开始第36次训练---------
    # # # # # # -------开始第37次训练---------
    # # # # # # -------开始第38次训练---------
    # # # # # # -------开始第39次训练---------
    # # # # # # -------开始第40次训练---------
    # # # # # # -------开始第41次训练---------
    # # # # # # -------开始第42次训练---------
    # # # # # # -------开始第43次训练---------
    # # # # # # 训练成功,正在进行检验
    仿真计算中
    仿真计算中
    仿真计算中
    仿真计算中
    仿真计算中
    仿真计算中
    训练成功,误差为:0.000000
    样本:4===11 => 
    仿真计算中
    [ 1.  0.]
    =====正确目标值=====
    [1, 0]
    样本:7===340 => 
    仿真计算中
    [ 0.  1.]
    =====正确目标值=====
    [0, 1]
    样本:10===95 => 
    仿真计算中
    [ 1.  0.]
    =====正确目标值=====
    [1, 0]
    样本:3===29 => 
    仿真计算中
    [ 0.  1.]
    =====正确目标值=====
    [0, 1]
    样本:7===43 => 
    仿真计算中
    [ 1.  0.]
    =====正确目标值=====
    [1, 0]
    样本:5===128 => 
    仿真计算中
    [ 0.  1.]
    =====正确目标值=====
    [0, 1]
    测试值:8.000000===70.000000 
    仿真计算中
    [ 1.  0.]
    正确目标值:[1,0]
    测试值:6.500000===272.000000 
    仿真计算中
    [ 0.  1.]
    正确目标值:[0,1]
    按回车键退出

    随机生成法是一种比较笨的方法,关于权值矩阵的生成方法可以选择:

    (1)随机初始化。

    (2)逐步搜索法。

    (3)根据Nguyen-Widrow初始化算法为层产生初始权重和偏置值,使得每层神经元的活动区域能大致平坦的分布在输入空间。

    Nguyen-Widrow初始化算法是比较好的初始化权值的经典方法,关于多层感知器网络有很多现成的较好的库,大部分神经网络库包括 matlab神经网络工具箱都使用了Nguyen-Widrow初始化算法做为默认方法。具体内容我们下节介绍

  • 相关阅读:
    28、数组中出现次数超过一半的数字
    27、字符串的排列
    26、二叉搜索树与双向链表
    21、栈的压入、弹出序列
    22、从上往下打印二叉树
    23、二叉搜索树的后序遍历序列
    24、二叉树中和为某一值的路径
    25、复杂链表的复制
    4、简单工厂模式,工厂方法模式,
    基数排序
  • 原文地址:https://www.cnblogs.com/bbsno1/p/3278193.html
Copyright © 2020-2023  润新知