神经网络(总代码)

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

 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(Θ)不是凸的,因此我们可以结束在一个局部最小值。

原文地址:https://www.cnblogs.com/zhengzhe/p/7326861.html