Python实现感知器模型、两层神经网络


Posted in Python onDecember 19, 2017

本文实例为大家分享了Python实现感知器模型、两层神经网络,供大家参考,具体内容如下

python 3.4 因为使用了 numpy

这里我们首先实现一个感知器模型来实现下面的对应关系

[[0,0,1], ——- 0
[0,1,1], ——- 1
[1,0,1], ——- 0
[1,1,1]] ——- 1

从上面的数据可以看出:输入是三通道,输出是单通道。

Python实现感知器模型、两层神经网络

这里的激活函数我们使用 sigmoid 函数 f(x)=1/(1+exp(-x))

其导数推导如下所示:

Python实现感知器模型、两层神经网络

L0=W*X;
z=f(L0);
error=y-z;
delta =error * f'(L0) * X;
W=W+delta;

python 代码如下:

import numpy as np

#sigmoid function

def nonlin(x, deriv = False):
  if(deriv==True):
    return x*(1-x)
  return 1/(1+np.exp(-x))


# input dataset

X=np.array([[0,0,1],
      [0,1,1],
      [1,0,1],
      [1,1,1]])

# output dataset

y=np.array([[0,1,0,1]]).T

#seed( ) 用于指定随机数生成时所用算法开始的整数值,
#如果使用相同的seed( )值,则每次生成的随即数都相同,
#如果不设置这个值,则系统根据时间来自己选择这个值,
#此时每次生成的随机数因时间差异而不同。
np.random.seed(1)  

# init weight value with mean 0

syn0 = 2*np.random.random((3,1))-1   

for iter in range(1000):
  # forward propagation
  L0=X
  L1=nonlin(np.dot(L0,syn0))

  # error
  L1_error=y-L1

  L1_delta = L1_error*nonlin(L1,True)

  # updata weight
  syn0+=np.dot(L0.T,L1_delta)

print("Output After Training:")
print(L1)

从输出结果可以看出基本实现了对应关系。

下面再用两层网络来实现上面的任务,这里加了一个隐层,隐层包含4个神经元。

import numpy as np

def nonlin(x, deriv = False):
  if(deriv == True):
    return x*(1-x)
  else:
    return 1/(1+np.exp(-x))

#input dataset
X = np.array([[0,0,1],
       [0,1,1],
       [1,0,1],
       [1,1,1]])

#output dataset
y = np.array([[0,1,1,0]]).T

#the first-hidden layer weight value
syn0 = 2*np.random.random((3,4)) - 1 

#the hidden-output layer weight value
syn1 = 2*np.random.random((4,1)) - 1 

for j in range(60000):
  l0 = X      
  #the first layer,and the input layer 
  l1 = nonlin(np.dot(l0,syn0)) 
  #the second layer,and the hidden layer
  l2 = nonlin(np.dot(l1,syn1)) 
  #the third layer,and the output layer


  l2_error = y-l2    
  #the hidden-output layer error

  if(j%10000) == 0:
    print "Error:"+str(np.mean(l2_error))

  l2_delta = l2_error*nonlin(l2,deriv = True)

  l1_error = l2_delta.dot(syn1.T)   
  #the first-hidden layer error

  l1_delta = l1_error*nonlin(l1,deriv = True)

  syn1 += l1.T.dot(l2_delta)
  syn0 += l0.T.dot(l1_delta)

print "outout after Training:"
print l2

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
wxpython学习笔记(推荐查看)
Jun 09 Python
flask中使用蓝图将路由分开写在不同文件实例解析
Jan 19 Python
python实现简单遗传算法
Mar 19 Python
Python多进程写入同一文件的方法
Jan 14 Python
Python学习笔记之图片人脸检测识别实例教程
Mar 06 Python
python 抓包保存为pcap文件并解析的实例
Jul 23 Python
python pandas 时间日期的处理实现
Jul 30 Python
基于python实现蓝牙通信代码实例
Nov 19 Python
基于python3实现倒叙字符串
Feb 18 Python
Python统计学一数据的概括性度量详解
Mar 03 Python
Keras 数据增强ImageDataGenerator多输入多输出实例
Jul 03 Python
Python MNIST手写体识别详解与试练
Nov 07 Python
python实现感知器
Dec 19 #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
You might like
php session处理的定制
2009/03/16 PHP
PHP对MongoDB[NoSQL]数据库的操作
2013/03/01 PHP
PHP框架Laravel中实现supervisor执行异步进程的方法
2017/06/07 PHP
php实现微信原生支付(扫码支付)功能
2018/05/30 PHP
PHP学习记录之常用的魔术常量详解
2019/12/12 PHP
浅析jQuery对select操作小结(遍历option,操作option)
2013/07/04 Javascript
jQuery移除或禁用html元素点击事件常用方法小结
2017/02/10 Javascript
如何使用Bootstrap 按钮实例详解
2017/03/29 Javascript
js轮播图透明度切换(带上下页和底部圆点切换)
2017/04/27 Javascript
使用veloticy-ui生成文字动画效果
2018/02/08 Javascript
js经验分享 JavaScript反调试技巧
2018/03/10 Javascript
微信小程序基于Taro的分享图片功能实践详解
2019/07/12 Javascript
对layui中table组件工具栏的使用详解
2019/09/19 Javascript
NodeJS开发人员常见五个错误理解
2020/10/14 NodeJs
jquery自定义组件实例详解
2020/12/31 jQuery
element-ui封装一个Table模板组件的示例
2021/01/04 Javascript
python 实现A*算法的示例代码
2018/08/13 Python
python实现Excel文件转换为TXT文件
2019/04/28 Python
对python中不同模块(函数、类、变量)的调用详解
2019/07/16 Python
python中树与树的表示知识点总结
2019/09/14 Python
Pytorch保存模型用于测试和用于继续训练的区别详解
2020/01/10 Python
python读写文件write和flush的实现方式
2020/02/21 Python
基于Python中Remove函数的用法讨论
2020/12/11 Python
用CSS3将你的设计带入下个高度
2009/08/08 HTML / CSS
css3实现动画的三种方式
2020/08/24 HTML / CSS
简单整理HTML5的基本特性和语法
2016/02/18 HTML / CSS
爱淘宝:淘宝网购物分享平台
2017/04/28 全球购物
全球游戏Keys和卡片市场:GamesDeal
2018/03/28 全球购物
荷兰照明、灯具和配件网上商店:dmlights
2019/08/25 全球购物
销售人员自我评价怎么写
2013/09/19 职场文书
自我鉴定的范文
2013/10/03 职场文书
护理助产毕业生的求职信
2014/03/02 职场文书
2014年学校法制宣传日活动总结
2014/11/01 职场文书
文员岗位职责范本
2015/04/16 职场文书
2015年店长个人工作总结
2015/10/23 职场文书
文艺委员竞选稿
2015/11/19 职场文书