BP神经网络(一) --- 感知器

来源:互联网 发布:uber打车软件下载 编辑:程序博客网 时间:2024/04/28 06:04

顾名思义,人工神经网络是对生物神经网络的模拟。要想理解人工神经网络,首先得理解生物神经网络的工作方式。
1.生物神经元


这里写图片描述

这是一个神经元的基本结构图,大量的神经元相互连接构成复杂的神经网络。每个神经元有三个部分组成:树突,细胞体和轴突。
树突:树状的神经纤维接受网络,它将输入的电信号传递给细胞体。
轴突:单根长纤维,它把细胞体的输出信号导向其他神经元。
信号的传递过程:树突末梢从外界或者是其他神经元的轴突末梢接受电信号,经由细胞体进行整合并进行阈值处理,如果整合后的刺激超过某一阈值神经元被激活而进入兴奋状态,此时就会有一个电信号通过轴突输出,并传递给其他神经元。

2.人工神经元模型(感知器TLU)
数学模型


这里写图片描述

向量W:权向量
向量A:输入向量,做内积需要用到转置
theta:偏置(bias),或者称之为阈值(threshold)
f:传递函数,也即激励函数。
可见,一个神经元的功能是求得输入向量与权向量的内积后,经一个阈值逻辑单元或者非线性传递函数得到一个标量结果。
当f为阈值函数:假设阈值为theta,当 a >=theta 时 y=1,反之 y=0。此时的输出为不连续的。


这里写图片描述

此时单个神经元把一个n维向量空间用一个超平面分割成两部分(称之为判断边界),给定一个输入向量,神经元可以判断出这个向量位于超平面的哪一边。(SVM也即是做的这部分工作,所以说,当单个神经元的时候,BP神经网络做的工作与SVM类似。该超平面的方程:WXT + b = 0)

当f为连续函数时:输出是连续的,因为它由一个 squash 函数 s(或 sigma)判定,该函数的自变量是 a,函数值在 0 和 1 之间,y=s(a),此时的y=s(a)称之为激活函数。


这里写图片描述

a1~an:输入向量的各个分量
w1~wn:神经元各个突触的权值
b:偏置(bias),或者称之为阈值(threshold)
f:传递函数,通常为非线性函数。一般有traingd(),tansig(),hardlim()。以下默认为hardlim()
t:神经元输出

3 感知器学习算法
从一个最简单的TLU开始,两个输入,权系数都为1,theta的值为1.5.那么它的输入,输出对照为:

input1 input2 result 0 0 0 0 1 0 1 0 0 1 1 0

现在回归到大脑如何进行学习,所谓初生牛犊不怕虎,长了世面之后,再见到老虎就感到害怕了,前后两者的区别在于对于同一件事情两者产生的刺激不同。类比到机器学习,便是输入的权值。权值系数越大,引发刺激的可能越大,那么如何找到每个系数的最佳权值,便是接下来要做的工作。
首先约定一下公式推导的符号,这点很重要。
这里写图片描述

反向误差传播算法,顾名思义,我们首先要做的事情是定义误差,常用的定义误差的方法是:
这里写图片描述
最终的目的是使感知器的输出等于预想的输出,所以需要不断调整权重,以达到这个目的。
问题是以什么样的方式调整权重能最快达到这个目的,也就是以什么样的方式调整权重,使得误差e尽快接近0。于是提出了梯度下降法。
梯度下降法的基本思想:函数沿着其梯度方向增加最快,反之,沿着其梯度反方向减小最快。
即每次权重的修改量为:
这里写图片描述
同时,令
这里写图片描述
所以
这里写图片描述
所以
这里写图片描述
所以
这里写图片描述
所以
这里写图片描述
如果把整个的神经网络系统比作是一个动物的话,那么一个感知器(TLU)就是最远是的单细胞生物,虽然结构极其简单,但也已经具备最基本的觅食的躲避的功能。

0 0
原创粉丝点击