机器学习五--分类--神经网络算法Neural Network

时间:2024-02-20 19:48:04

多层向前神经网络 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、达到预设的一定的循环次数。