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 02 Python
Linux中Python 环境软件包安装步骤
Mar 31 Python
利用PyInstaller将python程序.py转为.exe的方法详解
May 03 Python
python如何创建TCP服务端和客户端
Aug 26 Python
python requests更换代理适用于IP频率限制的方法
Aug 21 Python
python如何保证输入键入数字的方法
Aug 23 Python
python返回数组的索引实例
Nov 28 Python
python Shapely使用指南详解
Feb 18 Python
Python中logging日志库实例详解
Feb 19 Python
anaconda3安装及jupyter环境配置全教程
Aug 24 Python
matplotlib 画动态图以及plt.ion()和plt.ioff()的使用详解
Jan 05 Python
Python虚拟环境virtualenv是如何使用的
Jun 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
Zend Studio for Eclipse的java.lang.NullPointerException错误的解决方法
2008/12/06 PHP
php 模拟 asp.net webFrom 按钮提交事件实例
2014/10/13 PHP
PHP的拦截器实例分析
2014/11/03 PHP
php专用数组排序类ArraySortUtil用法实例
2015/04/03 PHP
轻松创建nodejs服务器(1):一个简单nodejs服务器例子
2014/12/18 NodeJs
javascript修改图片src的方法
2015/01/27 Javascript
在WordPress中加入Google搜索功能的简单步骤讲解
2016/01/04 Javascript
初步使用bootstrap快速创建页面
2016/03/03 Javascript
使用snowfall.jquery.js实现爱心满屏飞的效果
2017/01/05 Javascript
vue实现图书管理demo详解
2017/10/17 Javascript
AngularJS实现的锚点楼层跳转功能示例
2018/01/02 Javascript
JsChart组件使用详解
2018/03/04 Javascript
JavaScript刷新页面的几种方法总结
2019/03/28 Javascript
jQuery子选择器与可见性选择器实例分析
2019/06/28 jQuery
vue中input的v-model清空操作
2019/09/06 Javascript
js实现图片上传即时显示效果
2019/09/30 Javascript
微信小程序开发打开另一个小程序的实现方法
2020/05/17 Javascript
vue.js实现双击放大预览功能
2020/06/23 Javascript
vue3+typeScript穿梭框的实现示例
2020/12/29 Vue.js
PyQt5创建一个新窗口的实例
2019/06/20 Python
Python DataFrame一列拆成多列以及一行拆成多行
2019/08/06 Python
python写一个随机点名软件的实例
2019/11/28 Python
浅谈图像处理中掩膜(mask)的意义
2020/02/19 Python
python交互模式基础知识点学习
2020/06/18 Python
Python3利用scapy局域网实现自动多线程arp扫描功能
2021/01/21 Python
白宫黑市官网:White House Black Market
2016/11/17 全球购物
Europcar美国/加拿大:预订汽车或卡车租赁服务
2018/11/13 全球购物
Kathmandu新西兰官网:新西兰户外运动品牌
2019/07/27 全球购物
Molton Brown美国官网:奢华美容、香水、沐浴和身体护理
2020/09/02 全球购物
公司同意接收函
2014/01/13 职场文书
《明天,我们毕业》教学反思
2014/04/24 职场文书
初中优秀班集体申报材料
2014/05/01 职场文书
村党支部换届选举方案
2014/05/02 职场文书
国家领导干部党的群众路线教育实践活动批评与自我批评材料
2014/09/23 职场文书
成本会计岗位职责
2015/02/03 职场文书
2019年最新感恩节祝福语(28句)
2019/11/27 职场文书