首先,选择一个网络体系结构;选择你的神经网络的布局,包括每个层有多少隐藏单元,以及你想要拥有多少层。
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(Θ)不是凸的,因此我们可以结束在一个局部最小值。