1. 选择一种网络结构
即选择神经元之间的连通模式
-
输入层与输出层单元个数由具体特征决定
-
隐藏层通常默认为1层;若为多层,则每个隐藏层单元个数应相等。通常隐藏层单元数越多越好
-
隐藏层单元数应与输入特征数相匹配
2. 随机初始化权重
通常把权重值初始化为接近0的很小的数
3. 执行前向传播FP算法
获得对应于每一个 xi
的 h_theta(xi)
4. 通过代码计算出代价函数 J(theta)
5. 执行反向传播算法
获得 J(theta) 对于 theta 的偏导,即
步骤 3-5
6. 进行梯度检查
-
比较
通过反向传播得到的偏导数
与通过数值计算得到的估计值
-
确保两种方法得到基本接近的两个值
-
注意在检查完毕后关闭梯度检查
7. 利用最优化算法与反向传播算法最小化 J(theta)
比如,使用最小梯度法