zoukankan      html  css  js  c++  java
  • 神经网络(总代码)

    首先,选择一个网络体系结构;选择你的神经网络的布局,包括每个层有多少隐藏单元,以及你想要拥有多少层。

     1.输入层的节点数=x(i)的维度

    2.输出层的节点数=分类的数量

    3.每层隐藏单位数=通常更好(必须与计算成本相平衡,因为它增加了隐藏单位)

    4.默认值:1隐藏层。如果你有超过1个隐藏层,那么建议你在每个隐藏层有相同数量的单位。

    训练一个神经网络:

    1.随机初始化权重

    2.实现了传播得到HΘ(x(i))对任意的x(i)

    3.实现成本函数

    4.实施反向传播计算偏导数

    5.使用梯度检查,以确认您的反向传播工程。然后禁用梯度检测。

    6.使用梯度下降或内建优化函数来最小化θθ中的权重函数的代价函数。

    当我们执行正向和反向传播(BP)的,我们在每一个循环训练的例子:

    for i = 1:m,
       Perform forward propagation and backpropagation using example (x(i),y(i))
       (Get activations a(l) and delta terms d(l) for l = 2,...,L

    下面的图片让我们直观地了解正在发生的事情,因为我们正在实现我们的神经网络:

    理想的,你得到的hΘ(x(i))  y(i).

    这将减少我们的成本函数。但是,请记住,J(Θ)不是凸的,因此我们可以结束在一个局部最小值。

  • 相关阅读:
    bzoj3427:[POI2013]BAJ-Bytecomputer
    bzoj3417:[POI2013]MOR-Tales of seafaring
    bzoj1100:[POI2007]对称轴osi
    bzoj3295:[CQOI2011]动态逆序对
    bzoj2286:[SDOI2011]消耗战
    CF1110F Nearest Leaf
    CF1110E Magic Stones
    CF1110D Jongmah
    matlab基础向9:动画
    CF1102D-Balanced Ternary String-(贪心)
  • 原文地址:https://www.cnblogs.com/zhengzhe/p/7326861.html
Copyright © 2011-2022 走看看