人工神经网络(Artificial Neural Networks,ANN)提供了一种普遍而有用的方法从例子中学习值为实数、离散值或向量的函数。
人工神经网络由一系列简单的单元相互密集连接构成,当中每个单元有一定数量的实值输入(可能是其它单元的输出),并产生单一的实数值输出(可能成为其它单元的输入)。
适合神经网络学习的问题:
- 实例是非常多“属性-值”对表示的
- 目标函数的输出可能是离散值、实数值或者由若干实数或离散属性组成的向量
- 训练数据可能包括错误
- 可容忍长时间的训练
- 可能须要高速求出目标函数值
- 人类是否能理解学到的目标函数是不要重要的
当中每个w i 是一个实数常量,或叫做权值(weight ),用来决定输入xi 对感知器输出的贡献率。
请注意。常量(w0) 是一个阈值,它是为了使感知器输出 1 。输入的加权和w1x1+w2x2+...+wnxn必须超过的阈值。
对于超平面一側的实例。感知器输出1,对于还有一側的实例输出-1。这个超平决策面的方程是。
当然。某些正反例子集合不可能被任一超平面切割。那些能够被切割的成为线性可分(linearly separable)例子集合。
从随机的权值開始,然后重复地应用这个感知器到每一个训练例子,仅仅要它误分类例子就改动感知器的权值。重复这个过程。知道感知器能正确分类全部的训练例子。
每一步依据感知器训练法则(perceptron training rule)来改动权值,也就是改动与输入 xi 相应的权 wi 法则例如以下:
这里t是当前训练例子的目标输出,O是感知器的输出(1或-1),η是一个正的常数称为学习速率(learning rate)学习速率的作用是缓和每一步调整权的程度。它通常被设为一个小的数值(比如0.1),并且有时会使其随着权调整次数的添加而衰减。
对于权值的调整是一例一调,也就是输入一个例子,就计算每一个Δwi, 来调整wi的值。一直训练到会收敛到一个能一个能正确分类全部训练例子的权向量,前提是训练例子线性可分,而且使用了充分小的η 。假设数据不是线性可分的,那么不能保证收敛。
梯度下降和delta法则:
- 选取一个初始的随机权向量
- 应用线性单元到全部的训练例子
- 依据以下的公式计算每一个权值的Δwi
- 通过加上Δwi来更新每一个权值,然后反复这个过程