首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >神经网络-感知器

神经网络-感知器

作者头像
三猫
发布2018-04-10 11:45:56
7310
发布2018-04-10 11:45:56
举报

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。

X1

X2

X3

y

1

0

0

-1

1

0

1

1

1

1

0

1

1

1

1

1

0

0

1

-1

0

1

0

-1

0

1

1

1

0

0

0

-1

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

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

训练感知器模型

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

算法流程

step1

D={(xi,yi)|i=1,2,…,n}为原始数据集
ω(0)={随机初始化权重向量};
step2
repeat
for 对于每个样例(xi,yi)  {
    计算预测输出y*
    for 每个权值ωj  {
  ωj(k+1) =ωj(k) +λ(yi-y*(k))xij    (1) 

    }
}

满足终止条件结束repeat

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

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

使用限制

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-03-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 机器学习养成记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档