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从网络读取图片并直接进行处理的方法
May 22 Python
浅析Python3爬虫登录模拟
Feb 07 Python
解决Python 爬虫URL中存在中文或特殊符号无法请求的问题
May 11 Python
浅谈PySpark SQL 相关知识介绍
Jun 14 Python
python版百度语音识别功能
Jul 09 Python
Django Rest framework三种分页方式详解
Jul 26 Python
django项目用higcharts统计最近七天文章点击量
Aug 17 Python
wxpython绘制音频效果
Nov 18 Python
python 画图 图例自由定义方式
Apr 17 Python
Win 10下Anaconda虚拟环境的教程
May 18 Python
python opencv角点检测连线功能的实现代码
Nov 24 Python
关于python pygame游戏进行声音添加的技巧
Oct 24 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
phpMyAdmin链接MySql错误 个人解决方案
2009/12/28 PHP
用Simple Excel导出xls实现方法
2012/12/06 PHP
PHPWind9.0手动屏蔽验证码解决后台关闭验证码但是依然显示的问题
2016/08/12 PHP
Redis构建分布式锁
2017/03/28 PHP
PHP设计模式(九)外观模式Facade实例详解【结构型】
2020/05/02 PHP
javascript 获取网页参数系统
2008/07/19 Javascript
JavaScript创建类/对象的几种方式概述及实例
2013/05/06 Javascript
javascript中的作用域和上下文使用简要概述
2013/12/05 Javascript
js弹出确认是否删除对话框
2014/03/27 Javascript
js 模式窗口(模式对话框和非模式对话框)的使用介绍
2014/07/17 Javascript
JS实现仿google、百度搜索框输入信息智能提示的实现方法
2015/04/20 Javascript
JavaScript获取并更改input标签name属性的方法
2015/07/02 Javascript
javascript实现图片延迟加载方法汇总(三种方法)
2015/08/27 Javascript
jquery实现具有收缩功能的垂直导航菜单
2016/02/16 Javascript
jQuery设置单选按钮radio选中/不可用的实例代码
2016/06/24 Javascript
jQuery EasyUI右键菜单实现关闭标签/选项卡
2016/10/10 Javascript
关于angularJs指令的Scope(作用域)介绍
2016/10/25 Javascript
使用Node.js搭建静态资源服务详细教程
2017/08/02 Javascript
vue与TypeScript集成配置最简教程(推荐)
2017/10/17 Javascript
详解Javascript中new()到底做了些什么?
2018/03/29 Javascript
[51:50]完美世界DOTA2联赛 Magma vs GXR 第一场 11.07
2020/11/10 DOTA
Python使用Flask框架获取当前查询参数的方法
2015/03/21 Python
python 读取excel文件生成sql文件实例详解
2017/05/12 Python
详解安装mitmproxy以及遇到的坑和简单用法
2019/01/21 Python
使用OpCode绕过Python沙箱的方法详解
2019/09/03 Python
TensorFlow实现自定义Op方式
2020/02/04 Python
Dyson戴森波兰官网:Dyson.pl
2019/08/05 全球购物
什么是.net
2015/08/03 面试题
Linux文件操作命令都有哪些
2015/02/27 面试题
咨询公司各岗位职责
2013/12/02 职场文书
财务人员的自我评价范文
2014/03/03 职场文书
感恩教育月活动总结
2014/07/07 职场文书
厨师长岗位职责范本
2014/08/25 职场文书
2014迎接教师节演讲稿
2014/09/10 职场文书
校本培训个人总结
2015/02/28 职场文书
安全生产培训心得体会
2016/01/18 职场文书