【机器学习-学习笔记】神经网络(前向传播算法、反向传播算法)
基本架构
神经网络分类示例:
前向传播:计算神经网络预测结果,从第一层开始正向一层一层进行计算,直到最后一层的
反向传播:计算代价函数的偏导数,首先计算最后一层(输出层)的误差,然后再一层一层反向求出各层的误差,知道倒数第二层(不计算输入层,输入层没有误差)。
前向传播算法:
神经网络用于分类场景:
神经网络代价函数:
反向传播算法:
小结一下使用神经网络时的步骤:
1、网络结构:第一件要做的事是选择网络结构,即决定选择多少层以及决定每层分别有多少个单元。
2、第一层的单元数即我们训练集的特征数量。
3、后一层的单元数是我们训练集的结果的类的数量。
4、如果隐藏层数大于 1,确保每个隐藏层的单元个数相同,通常情况下隐藏层单元的个数越多越好。
5、我们真正要决定的是隐藏层的层数和每个中间层的单元数。
训练神经网络步骤:
1、参数的随机初始化
2、利用正向传播方法计算所有的
3、编写计算代价函数J的代码
4、利用反向传播方法计算所有偏导数
5、利用数值检验方法检验这些偏导数 (梯度检查完毕后需停用,因为该计算量很大,非常慢)
6、使用优化算法来最小化代价函数
J(θ)是一个非凸函数,使用正向和反向传播算法得出的是局部极小值点,但结果一般足够满足日常计算需求。