代价函数
逻辑回归代价函数:
神经网络代价函数:
反向传播算法(back propagation algorithm)
δ(l)j 第l层第j个单元的误差
eg. Layer L=4
δ(4)j =a(4)j -yi
δ(3) =(θ(3))Tδ(4),*g’(z(3)) (θ是权重)
δ(2) =(θ(2))Tδ(3),*g’(z(2))
反向传播算法过程:
训练集:{(x(1),y(1)),…(x(m),y(m))}
set Δ(l)ij =0
梯度检测
- 使用反向传播计算DVec(展开D(1),D(2),D(3))
- 计算gradApprox
- 确保DVec与gradApprox之间只有几位小数的差距
- 关掉梯度检验,使用反向传播算法
组合到一起
训练一个神经网络:
- 输入单元:特征x的维度
- 输出单元:类的个数
- 合理的设置:一个隐藏层,如果大于1,在每一个隐藏层有相同数量的隐藏单元(通常越多越好)
训练神经网络的步骤
- 构建一个神经网络,随机初始化权重
- 执行前向传播算法,任意输入x(i),得到hθ(x(i))
- 通过代码计算出代价函数J(θ)
- 执行反向传播算法算出编导数项(J(θ)关于参数θ的偏导数)
- 梯度检查
- 使用梯度下降算法或更高级算法和反向传播算法去最小化代价函数