感知器实现(python)
来源:互联网 发布:卖家如何使用淘宝客 编辑:程序博客网 时间:2024/06/08 17:14
上篇博客转载了关于感知器的用法,遂这篇做个大概总结,并实现一个简单的感知器,也为了加深自己的理解。
感知器是最简单的神经网络,只有一层。感知器是模拟生物神经元行为的机器。感知器的模型如下:
给定一个n维的输入 ,其中w和b是参数,w为权重,每一个输入对应一个权值,b为偏置项,需要从数据中训练得到。
激活函数 感知器的激活函数可以有很多选择,比如我们可以选择下面这个阶跃函数f来作为激活函数:
输出为:
事实上感知器可以拟合任何线性函数,任何线性分类或线性回归的问题都可以用感知器来解决。但是感知器不能实现异或运算,当然所有的线性分类器都不可能实现异或操作。
所谓异或操作:
x1x2y000011101110二维分布图为:
对于上图,我们找不到一条直线可以将0,1类分开。对于and操作,感知器可以实现,我们可以找到一条直线把其分为两部分。。
对于and操作:
x1x2y000010100111对应的二维分布图为:
感知器的训练
首先将权重w和 偏置b随机初始化为一个很小的数,然后在训练中不断更新w和b的值。
1.将权重初始化为 0 或一个很小的随机数
2.对于每个训练样本 x(i) 执行下列步骤:
计算输出值 y^.
更新权重
其中
下面用感知器实现and操作,具体代码如下:
# -*- coding: utf-8 -*-# python 3.4import numpy as npfrom random import choice from sklearn import cross_validationfrom 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)
阅读全文
0 0
- 感知器实现(python)
- Python实现感知器
- python实现简单感知器
- python实现感知器算法
- 感知器——python实现
- 神经网络-感知器算法python代码实现
- 单层感知器的python实现
- python实现自适应线性感知器算法
- python实现感知机(perceptron)原型~
- 感知机(Perceptron)的python实现
- 感知机Python实现
- 感知机实现Python
- python感知机实现
- 感知机的 python 实现
- #感知机的Python实现
- 感知机算法python实现
- 机器学习与神经网络(二):感知器的介绍和Python代码实现
- 第二章——用Python实现感知器模型(MNIST数据集)
- 2017年7月14日18:45:56
- Docker技术内幕1——容器技术浅析
- 静态属性-原型属性-实例属性
- Codeforces
- 关于小程序授权机制
- 感知器实现(python)
- C# 中DataSet类的使用
- php 检测远程文件大小
- Android Aidl的使用
- leetcode:Out of Boundary Paths
- MAVEN5分钟入门
- 使用github与Hexo搭建个人博客
- [POJ1836]Alignment
- 使用RTL-SDR和Matlab Simulink玩转软件无线电(十八)