目录
2 多层向前神经网络(Multilayer Feed-Forward Neural Network)
1 起源
以人脑中的神经网络为启发,出现过不同的版本
最著名的算法是1980年的BP神经网络(Backpropagation)
2 多层向前神经网络(Multilayer Feed-Forward Neural Network)
2.1 BP神经网络被使用在多层向前神经网络
2.2 多层向前神经网络包含以下部分:
输入层input layer 隐藏层 hidden layer 输出层 output layer
2.3 每层由单元units组成
2.4 输入层是由训练集的实例特征向量传入
2.5 经过连接点的权重weight传入到下一层,上一层的输入是下一层的输入
2.6 隐藏层的个数可以是任意的,输入层只有一层,输出层只有一层
2.7 每个单元unit也可以称为神经结点
2.8 神经网络有几层?除了输入层那一层的个数就是几层
2.9 一层中加权求和,然后根据非线性方程转化输出
2.10 多层向前神经网络,理论上,如果有足够多的隐藏层和足够大的训练集,可以模拟出任何方程。
3 设计神经网络
3.1 在使用神经网络训练数据之前,必须确定层数,以及每层单元的个数
3.2 特征向量在被传入输入层时通常先标准化到0到1之间,为了加速学习过程
3.3 离散型变量可以被编码成每一个输入单元对应一个可能的特征值
- 比如,A可能取值有3种情况,a0,a1,a2,那么在输入层时,就设置3个神经单元
- 如果A=a0,则输入为1,0,0,这三个单元如此设定
- A=a1,则三个单元设定0,1,0。同理以此类推
3.4 神经网络可以用作分类问题,也可以表示回归问题
- 输出单元个数:如果是两类,那么输入单元只需要用1个单元就行
- 如果是多于2类,每个单元代表一个类
- 通常输出层数量等于类数
- 没有明确的规则来设计有多少个隐藏从,根据测试和误差、准确度来实验并改进
4 交叉验证方法
5 BP神经网络算法
5.1 通过迭代性的处理来处理训练集的实例
5.2 通过对比神经网络后输出层 预测值和真实值的差异
5.3 反方向(输出层->隐藏层->输入层)来以最小化误差来更新每个连接的权重
5.4 算法详细内容:
输入:D 数据集,学习率learning rate ,一个 多层向前神经网络
输入:一个训练好的神经网络
- 初始化权重weights和偏向bias:随机初始化在-1到1之间,或者-0.5到0.5之间,每个单元 有一个偏向
- 对于 每一个训练实例,执行以下步骤
根据误差反向传送
对于输出层:
O是预测,T是真值
对于隐藏层:
O是预测,T是真值
权重更新:
偏差更新:
权重更新的(L)是学习率(变化率)
终止条件
- 权重的更新低于某个阈值
- 预测的错误率低于某个阈值
- 达到预设一定的循环次数