在本章中主要介绍的内容包含:
- 神经网络的代价函数
- 前向传播法
- 反向传播法
- 梯度检验
- 构建神经网络的基本步骤
讲真的,难度是有的!!!!️️️
神经网络代价函数
参数解释
对几个参数的标记进行说明解释
-
m:训练样本个数
-
x,y:输入和输出信号
-
L:代表神经网络层数
-
:每层的神经元个数
-
:表示输出神经元个数
分类讨论
主要是两类:二分类和多类分类
二类分类:;输出是一个实数
类分类:表示分到第类的情况。输出是一个多维向量
代价函数
逻辑斯蒂回归中的代价函数
在逻辑斯蒂回归中,只有一个输出变量称之为标量scalar
。但是在神经网络中会有多个输出变量,是一个维的向量,假设函数 output;表示的是第个输出,代价函数为:
解释说明:
- 期望通过代价函数来观察算法预测的结果和真实情况的误差
- 每行特征会有个预测,利用循环对每行进行预测
- 在个预测中选择出可能性最高的那个,将其和实际的数据进行比较
- 正则化项是排除了每个偏置之后,每层矩阵的求和
- 参数(由层的激活单元数决定)循环所有的行,(由层的激活单元数决定)循环所有的列
反向传播法Backpropagation Algorithm
QkuzP1.png为了计算神经网络中代价函数的偏导数,需要使用反向传播法
- 首先计算最后一层的误差
- 再一层层地反向求出各层的误差,直到倒数第二层
前向传播栗子
假设有一个数据样本,神经网络是4层的,其中
QklGIH.png前向传播法就是通过一层层地按照神经网络的顺序从输入层到输出层计算下去。
反向传播栗子
Qk1h9A.png- 从最后一层的误差开始计算:误差=激活单元的预测和实际值之间的之间的误差;用表示误差,误差=模型预测值-真实值
- 前一层的误差
其中是型函数的导数
- 再前一层的误差
第一层是输入变量,不存在误差
- 假设,如果不做正则化处理时
上面的式子中各个上下标的含义:
代表的是第几层
代表的是计算层中的激活单元的下标
代表的是误差单元的下标
算法
QkUlLR.pngQkUlLR.png
- 利用正向传播方法计算每层的激活单元
- 利用训练集的真实结果与神经网络的预测结果求出最后一层的误差
- 最后利用该误差运用反向传播法计算出直至第二层的所有误差。
- 在求出之后,便可以计算代价函数的偏导数
反向传播的直观理解
前向传播原理
-
2个输入单元;2个隐藏层(不包含偏置单元);1个输出单元
-
上标表示的是第几层,下标表示的是第几个特征或者说属性
图中有个小问题,看截图的右下角!!!
Qk0qER.png结论
反向传播原理
QkjDu8.png Qkj5uT.png参数展开
上面的式子中实现了怎么利用反向传播法计算代价函数的导数,在这里介绍怎么将参数从矩阵形式展开成向量形式
QkHoHs.png Qkb328.png梯度检验
如何求解在某点的导数
QkqNQO.png在代价函数中怎么对某个参数求导
Qkqq6U.png神经网络小结
首要工作
在构建神经网络的时候,首先考虑的是如何选择网络结构:多少层和每层多少个神经单元
-
第一层的单元数即我们训练集的特征数量。
-
最后一层的单元数是我们训练集的结果的类的数量。
-
如果隐藏层数大于1,确保每个隐藏层的单元个数相同,通常情况下隐藏层单元的个数越多越好。
训练神经网络步骤
-
参数的随机初始化
-
利用正向传播方法计算所有的
-
编写计算代价函数 的代码
-
利用反向传播方法计算所有偏导数
-
利用数值检验方法检验这些偏导数
-
使用优化算法来最小化代价函数
网友评论