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函数返回多个值的示例方法
Dec 04 Python
使用cx_freeze把python打包exe示例
Jan 24 Python
Python中声明只包含一个元素的元组数据方法
Aug 25 Python
在Python中使用列表生成式的教程
Apr 27 Python
Python字符串内置函数功能与用法总结
Apr 16 Python
解决python执行不输出系统命令弹框的问题
Jun 24 Python
Python3之不使用第三方变量,实现交换两个变量的值
Jun 26 Python
python自带tkinter库实现棋盘覆盖图形界面
Jul 17 Python
Python项目 基于Scapy实现SYN泛洪攻击的方法
Jul 23 Python
Python Web框架之Django框架文件上传功能详解
Aug 16 Python
python 实现快速生成连续、随机字母列表
Nov 28 Python
python微信智能AI机器人实现多种支付方式
Apr 12 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 class中public,private,protected的区别以及实例分析
2013/06/18 PHP
php 实现Hash表功能实例详解
2016/11/29 PHP
Laravel中如何轻松容易的输出完整的SQL语句
2020/07/26 PHP
网页设计常用的一些技巧
2006/12/22 Javascript
JS操作数据库的实例代码
2013/10/17 Javascript
jQuery计算textarea中文字数(剩余个数)的小程序
2013/11/28 Javascript
jquery选择器之内容过滤选择器详解
2014/01/27 Javascript
jQuery实现点击小图显示大图代码分享
2015/08/25 Javascript
JS实现样式清新的横排下拉菜单效果
2015/10/09 Javascript
高效利用Angular中内置服务$http、$location等
2016/03/22 Javascript
原生js实现自由拖拽弹窗代码demo
2016/06/29 Javascript
纯JS代码实现隔行变色鼠标移入高亮
2016/11/23 Javascript
Angular 2父子组件数据传递之@ViewChild获取子组件详解
2017/07/04 Javascript
Vue.js仿微信聊天窗口展示组件功能
2017/08/11 Javascript
BootStrap实现文件上传并带有进度条效果
2017/09/11 Javascript
vue 使用Jade模板写html,stylus写css的方法
2018/02/23 Javascript
jQuery实现常见的隐藏与展示列表效果示例
2018/06/04 jQuery
微信小程序实现发送模板消息功能示例【通过openid推送消息给用户】
2019/05/05 Javascript
ionic2.0双击返回键退出应用
2019/09/17 Javascript
JS实现躲避粒子小游戏
2020/06/18 Javascript
Python中使用items()方法返回字典元素对的教程
2015/05/21 Python
Python读取mat文件,并保存为pickle格式的方法
2018/10/23 Python
python使用pandas处理excel文件转为csv文件的方法示例
2019/07/18 Python
python打印9宫格、25宫格等奇数格 满足横竖斜相加和相等
2019/07/19 Python
如何使用Python处理HDF格式数据及可视化问题
2020/06/24 Python
使用纯 CSS 创作一个脉动 loader效果的源码
2018/09/28 HTML / CSS
HTML5: Web 标准最巨大的飞跃
2008/10/17 HTML / CSS
中国茶叶、茶具一站式网上购物商城:醉品茶城
2018/07/03 全球购物
数控加工专业毕业生自荐信
2013/09/27 职场文书
师范大学毕业自我鉴定
2013/11/21 职场文书
奥巴马演讲稿
2014/01/08 职场文书
爷爷追悼会答谢词
2014/01/24 职场文书
幼师求职自荐信范文
2014/01/26 职场文书
检察院对照“四风”认真查找问题落实整改措施
2014/09/26 职场文书
上级领导检查欢迎词
2015/09/30 职场文书
python实现语音常用度量方法的代码详解
2021/05/25 Python