监督学习三 神经网络

来源:互联网 发布:黑莓解网络锁软件 编辑:程序博客网 时间:2024/05/15 02:03

神经网络是受人类大脑的启发而构建的一种模型,它们在很多方面弥补了机器学习和认知科学之间的空白。


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、神经网络的优选偏置和限定偏置


原创粉丝点击