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 相关文章推荐
python编程开发之textwrap文本样式处理技巧
Nov 13 Python
动态规划之矩阵连乘问题Python实现方法
Nov 27 Python
Python管理Windows服务小脚本
Mar 12 Python
Python数据持久化shelve模块用法分析
Jun 29 Python
Python面向对象程序设计类的封装与继承用法示例
Apr 12 Python
django的ORM操作 删除和编辑实现详解
Jul 24 Python
python 进程间数据共享multiProcess.Manger实现解析
Sep 23 Python
tensorflow的计算图总结
Jan 12 Python
python如何求圆的面积
Jul 01 Python
flask项目集成swagger的方法
Dec 09 Python
利用Python将list列表写入文件并读取的方法汇总
Mar 25 Python
Python OpenCV超详细讲解基本功能
Apr 02 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 防恶意刷新实现代码
2010/05/16 PHP
免费手机号码归属地API查询接口和PHP使用实例分享
2014/04/10 PHP
php结合js实现点击超链接执行删除确认操作
2014/10/31 PHP
PHP+apc+ajax实现的ajax_upload上传进度条代码
2016/01/25 PHP
程序员的表白神器“520”大声喊出来
2016/05/20 PHP
javascript入门·对象属性方法大总结
2007/10/01 Javascript
ExtJS 2.2.1的grid控件在ie6中的显示问题
2009/05/04 Javascript
Prototype Class对象学习
2009/07/19 Javascript
javascript 星级评分效果(手写)
2012/12/24 Javascript
jquery 关于event.target使用的几点说明介绍
2013/04/26 Javascript
JQuery中使用.each()遍历元素学习笔记
2014/11/08 Javascript
node.js中的console用法总结
2014/12/15 Javascript
jQuery及JS实现循环中暂停的方法
2015/02/02 Javascript
JS+CSS实现模仿浏览器网页字符查找功能的方法
2015/02/26 Javascript
Node.js v8.0.0正式发布!看看带来了哪些主要新特性
2017/06/02 Javascript
微信小程序 页面跳转事件绑定的实例详解
2017/09/20 Javascript
利用Console来Debug的10个高级技巧汇总
2018/03/26 Javascript
[03:22]DOTA2超级联赛专访单车:找到属于自己的英雄
2013/06/08 DOTA
[46:47]2014 DOTA2国际邀请赛中国区预选赛5.21 LGD-CDEC VS NE
2014/05/22 DOTA
python中的编码知识整理汇总
2016/01/26 Python
WINDOWS 同时安装 python2 python3 后 pip 错误的解决方法
2017/03/16 Python
python3使用SMTP发送HTML格式邮件
2018/06/19 Python
用python生成与调用cntk模型代码演示方法
2019/08/26 Python
python深copy和浅copy区别对比解析
2019/12/26 Python
Python logging日志库空间不足问题解决
2020/09/14 Python
美国内衣品牌:Leonisa
2016/08/14 全球购物
泰国王权免税店官方网站:KingPower
2019/03/11 全球购物
化工工艺专业求职信
2013/09/22 职场文书
2014银行领导班子群众路线对照检查材料思想汇报
2014/09/17 职场文书
学校总务处领导班子民主生活会对照检查材料思想汇报
2014/09/27 职场文书
党的群众路线教育实践活动个人对照检查材料(企业)
2014/11/05 职场文书
2015年小学生新年寄语
2014/12/08 职场文书
大连星海广场导游词
2015/02/10 职场文书
《曹冲称象》教学反思
2016/02/20 职场文书
医学会议开幕词
2016/03/03 职场文书
利用Python网络爬虫爬取各大音乐评论的代码
2021/04/13 Python