python实现感知器


Posted in Python onDecember 19, 2017

上篇博客转载了关于感知器的用法,遂这篇做个大概总结,并实现一个简单的感知器,也为了加深自己的理解。

感知器是最简单的神经网络,只有一层。感知器是模拟生物神经元行为的机器。感知器的模型如下:

python实现感知器

给定一个n维的输入 ,其中w和b是参数,w为权重,每一个输入对应一个权值,b为偏置项,需要从数据中训练得到。

激活函数 感知器的激活函数可以有很多选择,比如我们可以选择下面这个阶跃函数f来作为激活函数:

python实现感知器

输出为:

python实现感知器

事实上感知器可以拟合任何线性函数,任何线性分类或线性回归的问题都可以用感知器来解决。但是感知器不能实现异或运算,当然所有的线性分类器都不可能实现异或操作。

所谓异或操作:

python实现感知器

二维分布图为:

python实现感知器

对于上图,我们找不到一条直线可以将0,1类分开。对于and操作,感知器可以实现,我们可以找到一条直线把其分为两部分。。

对于and操作:

python实现感知器

对应的二维分布图为:

python实现感知器

感知器的训练 

首先将权重w和 偏置b随机初始化为一个很小的数,然后在训练中不断更新w和b的值。

1.将权重初始化为 0 或一个很小的随机数
2.对于每个训练样本 x(i) 执行下列步骤: 

   计算输出值 y^.

   更新权重

python实现感知器

其中python实现感知器

下面用感知器实现and操作,具体代码如下:

# -*- coding: utf-8 -*- 
# python 3.4 
import numpy as np 
from random import choice 
from sklearn import cross_validation 
from sklearn.linear_model import LogisticRegression 
''''' 
1.将权重初始化为 0 或一个很小的随机数 
2.对于每个训练样本 x(i) 执行下列步骤: 
 计算输出值 y^. 
 更新权重 
''' 
def load_data(): 
 input_data=[[1,1], [0,0], [1,0], [0,1]] 
 labels=[1,0,0,0] 
 return input_data,labels 
 
  
def train_pre(input_data,y,iteration,rate): 
 #=========================== 
 ''''' 
 参数: 
 input_data:输入数据 
 y:标签列表 
 iteration:训练轮数 
 rate:学习率 
  
 ''' 
 #============================ 
 unit_step = lambda x: 0 if x < 0 else 1 
 w=np.random.rand(len(input_data[0]))#随机生成[0,1)之间,作为初始化w 
 bias=0.0#偏置 
  
  
 for i in range(iteration): 
  samples= zip(input_data,y) 
  for (input_i,label) in samples:#对每一组样本 
   #计算f(w*xi+b),此时x有两个 
   result=input_i*w+bias 
   result=float(sum(result)) 
   y_pred=float(unit_step(result))#计算输出值 y^ 
   w=w+rate*(label-y_pred)*np.array(input_i)#更新权重 
 
   bias=rate*(label-y_pred)#更新bias 
 return w,bias   
 
  
def predict(input_i,w,b): 
 unit_step = lambda x: 0 if x < 0 else 1#定义激活函数 
 result=result=result=input_i*w+b 
 result=sum(result) 
 y_pred=float(unit_step(result)) 
 print(y_pred) 
  
if __name__=='__main__': 
 input_data,y=load_data() 
 w,b=train_pre(input_data,y,20,0.01) 
 predict([1,1],w,b)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
利用一个简单的例子窥探CPython内核的运行机制
Mar 30 Python
python获取当前时间对应unix时间戳的方法
May 15 Python
Python迭代器和生成器定义与用法示例
Feb 10 Python
Python一句代码实现找出所有水仙花数的方法
Nov 13 Python
Python语言进阶知识点总结
May 28 Python
Django REST framework 如何实现内置访问频率控制
Jul 23 Python
python实现广度优先搜索过程解析
Oct 19 Python
python实现从ftp服务器下载文件
Mar 03 Python
Python基于requests实现模拟上传文件
Apr 21 Python
python中sort sorted reverse reversed函数的区别说明
May 11 Python
python输出数学符号实例
May 11 Python
Django ForeignKey与数据库的FOREIGN KEY约束详解
May 20 Python
python绘制简单折线图代码示例
Dec 19 #Python
matplotlib设置legend图例代码示例
Dec 19 #Python
matplotlib中legend位置调整解析
Dec 19 #Python
python实现感知器算法详解
Dec 19 #Python
python绘制条形图方法代码详解
Dec 19 #Python
Python实现两款计算器功能示例
Dec 19 #Python
Python构建网页爬虫原理分析
Dec 19 #Python
You might like
php实现信用卡校验位算法THE LUHN MOD-10示例
2014/05/07 PHP
PHP输出缓冲控制Output Control系列函数详解
2015/07/02 PHP
详解php比较操作符的安全问题
2015/12/03 PHP
php 5.4 全新的代码复用Trait详解
2017/01/05 PHP
PHP实现的折半查询算法示例
2017/10/09 PHP
PHP性能分析工具xhprof的安装使用与注意事项
2017/12/19 PHP
php项目中类的自动加载实例讲解
2019/09/12 PHP
在Z-Blog中运行代码[html][/html](纯JS版)
2007/03/25 Javascript
javascript 密码强弱度检测万能插件
2009/02/25 Javascript
javascript 显示当前系统时间代码
2009/12/28 Javascript
新老版本juqery获取radio对象的方法
2010/03/01 Javascript
jQuery1.6 使用方法二
2011/11/23 Javascript
node.js中的fs.writeFile方法使用说明
2014/12/14 Javascript
JavaScript实现上下浮动的窗口效果代码
2015/10/12 Javascript
如何消除inline-block属性带来的标签间间隙
2016/03/31 Javascript
详解Angualr 组件间通信
2017/01/21 Javascript
js实现单张图片平移切换效果
2017/10/11 Javascript
element-ui的回调函数Events的用法详解
2018/10/16 Javascript
vue项目前端错误收集之sentry教程详解
2019/05/27 Javascript
微信小程序用户拒绝授权的处理方法详解
2019/09/20 Javascript
[06:07]辉夜杯现场观众互动 “比谁远送显示器”
2015/12/26 DOTA
[39:52]2018DOTA2亚洲邀请赛 4.3 突围赛 EG vs Newbee 第一场
2018/04/04 DOTA
python书籍信息爬虫实例
2018/03/19 Python
Pandas读写CSV文件的方法示例
2019/03/27 Python
Python 50行爬虫抓取并处理图灵书目过程详解
2019/09/20 Python
美国在线购买内衣网站:HerRoom
2020/02/22 全球购物
英国现代、当代和设计师家具店:Furntastic
2020/07/18 全球购物
写自荐信有哪些不宜?
2013/10/17 职场文书
质检的岗位职责
2013/11/17 职场文书
小区停车场管理制度
2014/01/27 职场文书
行政人事经理职位说明书
2014/03/05 职场文书
党建示范点实施方案
2014/03/12 职场文书
2014年幼儿园教师工作总结
2014/11/08 职场文书
2014年妇联工作总结
2014/11/21 职场文书
新人入职感言
2015/07/31 职场文书
2016年感恩节寄语
2015/12/07 职场文书