监督学习三 神经网络
神经网络是受人类大脑的启发而构建的一种模型,它们在很多方面弥补了机器学习和认知科学之间的空白。
1、人工神经网络
人工神经网络是模仿人类大脑的神经网络而构建的一种模型,感知器是神经网络组成单元,也叫神经元。
神经元的组成部分:
· 输入层:X1、X2、X3等,输入数据;
· 权重 :w1、w2、w3等,输入层输入的数据在模型中所占的比重;
· 阈值**函数:y = x1w1 + x2w2 + x3w3 + ..... + xkwk (i=1...k) → 阶跃函数
y >= θ → y = 1
y < θ → y = 0
· 输出层:Y,输出数据 → 离散型数据。
以下是神经网络中的感知器单元(perceptron unit)简图。
单个感知器单元能够实现AND、OR、NOT逻辑运算。XOR逻辑运算是一个神经网络。
注:以下坐标轴返回的是一个超平面(超平面是n维欧氏空间中余维度等于一的线性子空间(也就是必须是(n-1)维度)。来自百度百科定义)。
2、两种学习规则
在机器学习中,在给出样本的情况下,通过权重的调整,根据输入的数据能够自动映射为输出数据的权值,以下两种规则就是专门用于解决此类问题的。
a、感知器训练 → 在线性可分的数据集上得到很好的应用,具有很好的收敛性。
b、梯度下降/delta定律 → 在非线性可分的数据集上的运用很好,更具健壮性,只能收敛于局部最优解。
※两者的区别在于阈值的使用,感知器训练使用阈值的输出,而梯度下降则不使用阈值。
梯度下降不适用阈值的原因是实际输出的结果不可导,因此引入了Sigmoid函数代替阶跃函数,它可以理解为一个可导的阈值。
Sigmoid函数:f(x) = 1/1+exp(-x) 0<f(x)<1
3、多层神经网络
如图所示,由输入层、隐藏层和输出层组成。
4、BP算法
顾名思义反向传播算法(back propagation algorithm),又称为误差反向传播算法(error back propagation algorithm)。
在神经网络中的传播可参考上图的红线,输入→输出传的是信息,反之,误差信息回传。
目的:调整权值以便实际输出得到所期待的输出值。
5、优化权值
原因:在神经网络中存在更多的节点,层数或者数值更大的情况下,容易出现过拟合的情况。
防止过拟合的手段可以使用交叉验证法。
※交叉验证有三个作用:
1、决定神经网络中有多少隐藏层再利用中;
2、决定每层中放了多少节点;
3、决定什么时候停止训练,因为权重由于训练过多会导致越来越大。
下图是误差与迭代的关系,绿线是交叉验证,黑线是正常的神经网络。
6、小结
A、感知器(perceptron)是一个阈值单元,一个线性的阈值单元;
B、将各感知器的网络连接起来可以产生任何布尔函数;
C、感知器规则:针对线性可分数据集,能有限的时间内运行并得到结果;
D、可微规则:使用梯度集(gradient set)进行反向传播
E、神经网络的优选偏置和限定偏置