多层向前神经网络 Multilayer Feed-Forward Neural Network
1、组成:输入层(input layer),隐藏层(hidden layer),输出层(output layer)
====两层神经网络(输入层不算)
2、每层由单元(units)组成
3、输入层由训练集的实例特征向量传入。
4、经过连接点的权重weight传入下一层。上一层的输出也是下一层的输入。
5、隐藏层的个数是任意的,输入层,输出层各一层。
6、一层中加权的求和,然后根据非线性方程转换输出。
7、理论上,如果有足够多的隐藏层和样本足够的训练集,可以模拟出任何方程
设计神经网络结构
1、训练数据前必须确定神经网络的层数,及每层的单元数。
2、特征向量被传入输入层时,要先被标准化(normalize)到0~1之间。(加速学习)
3、神经网络可以用来做分类(classification),也可以解决回归(regression)。
3.1、如果是两类,可以用一个输出单元表示。如果是多类,每一类分别用一个输出单元表示。
交叉验证方法(cross-validation)计算准确度
如:把数据平均分成10份;
先用第一份做测试集,其他九份为训练集——》准确度1
用第二份做测试集,其他九份为训练集——》准确度2
用第三份做测试集,其他九份为训练集——》准确度3
最后求平均准确度。
Backpropagation算法(核心算法)
1、通过迭代来处理训练集中的实例。
2、对比经过神经网络后输入层的预测值(predicted value)与真实值(target value)之间的差距。
3、反方向(输出层--隐藏层--输入层),最小化误差,来更新每个连接之间的权重weight和偏向b。
第一步:得到每个单元的输出Oj
第二步:根据误差Error反向传送。
第三步:终止条件
1、权重的更新低于某一个阈值。
2、预测的错误率低于某一个阈值。
3、达到预设的一定的循环次数。