BP神经网络

为以后的大数据处理和人工智能打基础,先搞点实用的吧。

神经网络模型

神经网络是指用计算机仿真人脑的结构,用许多小的处理单元仿真生物神经元,用算法实现人脑的识别、记忆、思考过程。它是在对人脑认识的基础上,以数学和物理方法及从信息处理的角度对人脑生物神经网络进行抽象并建立起来的某种简化模型。简单的讲,人工神经网络是一个数学模型,可以用电子线路来实现,也可以用计算机程序来模拟,是人工智能研究的一种方法。

人工神经元模型

人工神经元模型

神经网络采用Sigmoid函数的原因

对于深度神经网络,中间的隐层的输出必须有一个激活函数。否则多个隐层的作用和没有隐层相同。这个激活函数不一定是sigmoid,常见的有sigmoid、tanh、relu等。
神经网络中的激活函数,其作用就是引入非线性。具体的非线性形式,则有多种选择。
对于二分类问题,输出层是sigmoid函数。这是因为sigmoid函数可以把实数域光滑的映射到[0,1]空间。函数值恰好可以解释为属于正类的概率(概率的取值范围是0~1),所以数据在传递的过程中不容易发散。当然也有相应的缺点,就是饱和的时候梯度太小。另外,sigmoid函数单调递增,连续可导,导数形式非常简单,是一个比较合适的函数。
对于多分类问题,输出层就必须是softmax函数了。softmax函数是sigmoid函数的推广。
有关sigmoid函数形式和图形点这里

神经网络的训练学习

神经网络的学习也称为训练,指的是通过神经网络所在环境的刺激作用调整
神经网络的自由参数,使神经网络以一种新的方式对外部环境做出反应的一个过程。能够从环境中学习和在学习中提高自身性能是神经网络的最有意义的性质。神经网络经过反复学习对其环境更为了解。
神经网络的学习是基于一组样本进行的,它包括输入和输出(这里用期望输出表示),输入和输出有多少个分量就有多少个输入和输出神经元与之对应。最初神经网络的权值(Weight)和阈值(Threshold)是任意给定的,学习就是逐渐调整权值和阈值使得网络的实际输出和期望输出一致。
在人工神经网络中,一般有两类训练算法。

  1. 有监督学习(有教师学习)
    有监督学习
    有导师学习在学习时需要给出导师信号或称为期望输出响应。神经网络对外部环境是未知的,但可以将导师看作对外部环境的了解,由输入一输出样本集合来表示。导师信号或期望响应代表了神经网络执行情况的最佳结果,即对于网络输入调整网络参数,使得网络输出逼近导师信号或期望响应。
  2. 无监督学习(无教师学习)
    无监督学习
    无导师学习包括强化学习与无监督学习或称自组织学习。在强化学习中,对输入输出映射的学习是通过与外界环境的连续作用最小化性能的标量索引而完成的。在无监督学习或自组织学习中没有外部导师或评价来统观学习过程,而是提供一个关于网络学习表示方法质量的测量尺度,根据该尺度将网络的自由参数最优化。一旦网络与输入数据的统计规律性达成一致,就能够形成内部表示方法来为输入特征编码,并由此自动得出新的类别。

    BP神经网络概述

    BP神经网络是最重要的神经网络模型之一。
    BP(backpropagation)算法也叫反向传播算法。
    BP 算法的基本思想是 :学习过程由信号的正向传播与误差的反向传播两个过程组成。 正向传播时,输入样本从输入层传入,经各隐含层处理后,传向输出层,若输出层的实际输出与期望的输出差值不符合要求,则转入误差的反向传播阶段。误差反向传播是将输出误差以某种形式通过隐含层向输入层逐层反向传播,并将误差分摊给各层的所有单元, 从而获得各层单元的误差信号,此误差信号即作为修正各单元的依据。这种信号正向传播与误差反向传播的各层权值调整过程,是周而复始地进行的。 权值不断调整的过程,也就是网络的学习训练过程。 此过程一直进行到网络输出的误差减少到可接受的程度或进行到预先设定的学习次数为止。

    BP神经网络结构图

    BP结构图

    BP神经网络的学习过程

    BP神经网络的学习过程

    BP算法推导、算法实现及应用

    有关BP算法的推导及算法实现,可参考链接
    自己搜索了一些资料做了一个PPT,里面有关于BP神经网络应用实例,感兴趣见百度网盘。
    链接:http://pan.baidu.com/s/1qXTBQ2o 密码:4dh7
您的支持将鼓励我努力创作!