数据分析大数据玩转大数据

神经网络-感知器

2018-03-15  本文已影响8人  三猫后端

原文链接:神经网络-感知器

微信公众号:机器学习养成记    搜索添加微信公众号:chenchenwings


1986年,Rumelhart,Hinton,Williams受到医学界人脑神经网络的启发,提出了神经网络,从神经网络发展出的深度学习,更是成为了当前热点,在科研与商业领域占据重要位置。现在我们就从神经网络中最基本的感知器开始,一起揭开神经网络的神秘面纱。

    感知器结构

下图展示了感知器的基本结构:

输入结点。表示输入属性。输入信号X是一个n维向量,n表示记录的特征数量,向量X各个维度上的分量即对应特征的值。

输出结点。是一个数学装置,提供模型输出。包括加权求和和激活函数两部分。

权重W={ω1, ω2, … , ωn}。每个输入结点通过一个加权的链连接到输出结点。权重用来模拟神经元间神经键的链接强度。

输出信号y。输出结点通过计算输入的加权和,加上偏置项b,根据激活函数产生输出。

    感知器数学表达式

感知器模型可用如下数学式表示:

其中的函数为激活函数,常用的激活函数有:ReLU,tanh,sigmoid,sign等。训练一个感知器模型,相当于根据数据不断调整权重和偏置,使得总误差尽量小。

为了使公式表达更加简洁,b可以写成权重与x分量相乘的形式,即b=x0*ω0,其中ω0=b,x0=1。因此,感知器模型可以更简洁的表达为:

    感知器模拟布尔函数

布尔函数指输入与输出的取值范围都在{0,1}内的函数。现有如下数据集,包含三个布尔输入变量和一个输出变量,当三个输入变量中至少有两个为0时,y取-1,当输入变量至少有两个大于0时,y取1。

当各输入结点到输出结点的权重全部取0.3,偏置取-0.4时,使用符号函数sign()作为激活函数,则可用如下感知器公式来模拟此布尔函数:

将数据集中每条样本带入上述公式,可以发现,均可满足相应结果。

    训练感知器模型

训练阶段,就是调整参数使得输出和样例的实际输出一致。最重要的部分就是根据旧权重和每次计算的误差,调整得出新权重。

λ为学习率,ω(k)是第k次循环后第i个输入的权值向量,xij是xi第j个属性值。从权值更新公式(1)中可以看出,新权值等于旧权值加上一个正比于误差的值,如果预测正确,权值不变;如果(y-y*)>0,则要提高正输入的权值,并降低负输入的权值来提高预测输出值;如果(y-y*)<0,则要降低正输入的权值,并提高负输入的权值来降低预测输出值。

为了控制权值每次的改变量,以免使得前面的调整失效,λ控制在0-1之间,越接近0新权重受旧权重影响越大,越接近1新权重受误差影响越大。在一些情况下可以使用自适应的λ,即前几次循环时λ相对较大,后面循环中λ逐渐减小。

    使用限制

感知器的决策边界是一个超平面,对于线性可分问题,可以收敛到一个最优解,如果问题不是线性可分的,那么感知器算法不收敛。


推荐文章:

《无问西东》豆瓣短评分析

《无问西东》豆瓣短评分析【二】

k折交叉验证(R语言)

聚类(二):k-means算法(R&python)

小案例(一):商业街抽奖

小案例(二):面包是不是变轻了

小案例(三):调查问卷

小案例(四):销售额下滑

微信公众号:机器学习养成记    搜索添加微信公众号:chenchenwings

扫描二维码,关注我们。

如需转载,请在开篇显著位置注明作者和出处,并在文末放置机器学习养成记二维码和添加原文链接。

快来关注我们吧!

上一篇 下一篇

猜你喜欢

热点阅读