神经网络 之 感知器的概念和实现

本文结构:

  1. 什么是感知器
  2. 有什么用
  3. 代码实现

1. 什么是感知器

如下图,这个神经网络中,每个圆圈都是一个神经元,神经元也叫做感知器

只有一个隐藏层的神经网络就能拟合任何一个函数,但是它需要很多很多的神经元。
而深层网络用相对少的神经元就能拟合同样的函数,但是层数增加了,不太容易训练,需要大量的数据。
为了拟合一个函数,可以使用一个浅而宽的网络,也可以使用一个深而窄的网络,后者更节约资源。

下图单挑出一个感知器来看:
向它输入 inputs,经过 加权 求和,再作用上激活函数后,得到一个输出值

感知器的激活函数可以有很多选择,关于激活函数可以看 常用激活函数比较


2. 有什么用

用感知器可以实现 and 函数,or 函数,还可以拟合任何的线性函数,任何线性分类或线性回归问题都可以用感知器来解决。

但是,感知器却不能实现异或运算,如下图所示,异或运算不是线性的,无法用一条直线把 0 和 1 分开。

xor

训练权重和偏置的算法如下:

其中,t 是训练样本的实际值,y 是感知器的输出值,即由 f 计算出来的。eta 称为学习速率,是个常数,作用是控制每一步调整权的幅度。


3. 代码实现

[main]

先训练and感知器

and_perception = train_and_perceptron()

得到训练后获得的权重和偏置

print and_perception    
weights :[0.1, 0.2]
bias    :-0.200000

再去测试,看结果是否正确

print '1 and 1 = %d' % and_perception.predict([1, 1])

其中

[train_and_perceptron]

先创建感知器,输入参数个数为2(因为and是二元函数),激活函数为f

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值