【机器学习-学习笔记】神经网络(前向传播算法、反向传播算法)

基本架构

神经网络分类示例:

【机器学习-学习笔记】神经网络(前向传播算法、反向传播算法)_第1张图片

前向传播:计算神经网络预测结果,从第一层开始正向一层一层进行计算,直到最后一层的h_{\theta }(x)

反向传播:计算代价函数的偏导数\frac{\partial }{\partial \theta_{ij}^{l} }J(\theta ),首先计算最后一层(输出层)的误差,然后再一层一层反向求出各层的误差,知道倒数第二层(不计算输入层,输入层没有误差)。

前向传播算法:

【机器学习-学习笔记】神经网络(前向传播算法、反向传播算法)_第2张图片

【机器学习-学习笔记】神经网络(前向传播算法、反向传播算法)_第3张图片

神经网络用于分类场景:

【机器学习-学习笔记】神经网络(前向传播算法、反向传播算法)_第4张图片

【机器学习-学习笔记】神经网络(前向传播算法、反向传播算法)_第5张图片

【机器学习-学习笔记】神经网络(前向传播算法、反向传播算法)_第6张图片

神经网络代价函数:

【机器学习-学习笔记】神经网络(前向传播算法、反向传播算法)_第7张图片

反向传播算法:

【机器学习-学习笔记】神经网络(前向传播算法、反向传播算法)_第8张图片

【机器学习-学习笔记】神经网络(前向传播算法、反向传播算法)_第9张图片

小结一下使用神经网络时的步骤: 
1、网络结构:第一件要做的事是选择网络结构,即决定选择多少层以及决定每层分别有多少个单元。 
2、第一层的单元数即我们训练集的特征数量。 
3、后一层的单元数是我们训练集的结果的类的数量。 
4、如果隐藏层数大于 1,确保每个隐藏层的单元个数相同,通常情况下隐藏层单元的个数越多越好。 
5、我们真正要决定的是隐藏层的层数和每个中间层的单元数。 

训练神经网络步骤: 
1、参数的随机初始化 
2、利用正向传播方法计算所有的h_{\theta }(x) 
3、编写计算代价函数J的代码 
4、利用反向传播方法计算所有偏导数 
5、利用数值检验方法检验这些偏导数 (梯度检查完毕后需停用,因为该计算量很大,非常慢)
6、使用优化算法来最小化代价函数

J(θ)是一个非凸函数,使用正向和反向传播算法得出的是局部极小值点,但结果一般足够满足日常计算需求。

你可能感兴趣的:(机器学习)