TensorFlow - 什么是感知器(Perceptron)
flyfish
摘自《TensorFlow机器学习项目实战》
人工神经元
人工神经元就是使用一个数学函数来对生物的神经元建模。
简单来说,一个人工神经元就是接受一个或者多个输入(训练数据),对它们加和,并产生一个输出。一般来说,这里面的加和指的是加权求和(每个输入乘上权重,并加上一个偏差),然后将加和的输入传递给一个非线性函数(一般称作激活函数或者转移函数)。
1.最简单的人工神经元——感知器
感知器是实现人工神经元最简单的方法,它的历史可以追溯到20世纪50年代,在20世纪60年代的时候,首次被实现。
简单来说,感知器就是一个二元分类函数,它将输入映射到一个二元输出,单层感知器
2.感知器算法
简化版的感知器算法如下:
① 以一个随机分布初始化权值和偏差(通常比较小);
② 选择一个输入向量,并将其放入神经网络中;
③ 将输入与权重相乘,并加上偏差,计算网络的输出y’;
④ 感知器的函数如下:
⑤ 如果y′≠y,将权重 wi w i 加上 Δw=yxi Δ w = y x i ;
⑥ 返回第②步。
摘自《神经网络与深度学习》
1974年,哈佛的保罗·沃波斯(Paul Werbos)写了一篇博士论文证明了在神经网络多加一层,首次给出了如何训练一般网络的学习算法。“反向传播算法”(Backpropagation Algorithm,简称BP算法)是一种监督学习算法,常被用来训练多层感知机。他后来得到了IEEE神经网络学会的先驱奖。沃波斯这篇文章刚发表时并没引起多少重视,只因那时正是神经网络研究的低谷,文章不合时宜。
Wiki
感知器
感知器使用特征向量来表示的前馈神经网络,它是一种二元分类器,把输入x(实数值向量)映射到输出值f(x)上(单个二元的值)。
w是表示权重的实数向量,
w⋅x是标量积(点积 dot product )。
b是偏置(bias),一个不依赖于任何输入值的常数。偏置可以认为是激活函数的偏移量,或者给神经元一个基础活跃等级。
f(x)(0或1)用于对x进行分类,看它是肯定的还是否定的,这属于二元分类问题。如果
b是负的,那么加权后的输入必须产生一个肯定的值并且大于−b
,这样才能令分类神经元大于阈值(threshold)0。从空间上看,偏置改变了决策边界(decision boundary)的位置(虽然不是定向的)。
由于输入直接经过权重关系转换为输出,所以感知器可以被视为最简单形式的前馈式人工神经网络。
多层感知器
多层感知器(Multilayer Perceptron,缩写MLP)是一种前向结构的人工神经网络,映射一组输入向量到一组输出向量。MLP可以被看作是一个有向图,由多个的节点层所组成,每一层都全连接到下一层。除了输入节点,每个节点都是一个带有非线性激活函数的神经元(或称处理单元)。一种被称为反向传播算法的监督学习方法常被用来训练MLP。 MLP是感知器的推广,克服了感知器不能对线性不可分数据进行识别的弱点。
激活函数
若每个神经元的激活函数都是线性函数,那么,任意层数的MLP都可被约简成一个等价的单层感知器。实际上,MLP本身可以使用任何形式的激活函数,譬如阶梯函数或逻辑乙形函数(logistic sigmoid function),但为了使用反向传播算法进行有效学习,激活函数必须限制为可微函数。由于具有良好可微性,很多S函数,尤其是双曲正切函数(Hyperbolic tangent)及逻辑函数,被采用为激活函数。
常被MLP用来进行学习的反向传播算法,在模式识别的领域中算是标准监督学习算法,并在计算神经学及并行分布式处理领域中,持续成为被研究的课题。MLP已被证明是一种通用的函数近似方法,可以被用来拟合复杂的函数,或解决分类问题。
MLP在80年代的时候曾是相当流行的机器学习方法,拥有广泛的应用场景,譬如语音识别、图像识别、机器翻译等等,但自90年代以来,MLP遇到来自更为简单的支持向量机的强劲竞争。近来,由于深度学习的成功,MLP又重新得到了关注。
摘自《白话深度学习与TensorFlow》解释前馈神经网络
最简单最朴素的神经网络,叫做前馈神经网络(feedforward neural network)。在这种神经网络中,各神经元从输入层开始,接收前一级输入,并输入到下一级,直至输出层。整个网络中无反馈,可用一个有向无环图(directed acyclic graph,DAG)表示。
通常我们说的前馈神经网络有两种:一种叫Back PropagationNetworks——反向传播网络(以下简称BP网络),一种叫RBF Network——径向基函数神经网络。Propagation的含义是传播,所以也叫作反向传播神经网络。
BP网络是所有的神经网络中结构最为单纯的一种。
一般习惯上我们喜欢把网络画成“左边输入,右边输出”的结构,一个向量从左边进入,经过网络的运算从右边产生一个输出结果。
摘自
Perceptron: the main component of neural networks