之前在进行梯度下降时,通常我们让Θ等参数为0,这样的做法在逻辑回归中还是可行的,但是在神经网络中,如果你让所有的参数都初始化为0,这将意味着第二层的所有的激活单元都会有相同的值,同理,如果我们初始化所有的参数都是一个非0的数,结果也是一样的。
例如在设置初始化参数Θ时,可以用如下方法:
Theta1 = rand(10,11) * (2 *INIT_EPSILON)-INIT_EPSILON
小结一下使用神经网络时的步骤:
网络结构:第一件要做的事是选择网络结构,即决定选择多少层以及决定每层分别有多
少个单元。
第一层的单元数即我们训练集的特征数量。
最后一层的单元数是我们训练集的结果的类的数量。
如果隐藏层数大于 1,确保每个隐藏层的单元个数相同,通常情况下隐藏层单元的个数
越多越好。
我们真正要决定的是隐藏层的层数和每个中间层的单元数。
训练神经网络:
1. 参数的随机初始化
2. 利用正向传播方法计算所有的 h θ (x)
3. 编写计算代价函数 J 的代码
4. 利用反向传播方法计算所有偏导数
5. 利用数值检验方法检验这些偏导数
6. 使用优化算法来最小化代价函数
时间: 2024-11-09 09:37:16