python 3.4 因为使用了 numpy

这里我们首先实现一个感知器模型来实现下面的对应关系
[[0,0,1], ——- 0
[0,1,1], ——- 1
[1,0,1], ——- 0
[1,1,1]] ——- 1

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

这里的激活函数我们使用 sigmoid 函数 f(x)=1/(1+exp(-x))
其导数推导如下所示:

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

// python 代码如下:

import numpy as np#sigmoid functiondef nonlin(x, deriv = False):if(deriv==True):return x*(1-x)return 1/(1+np.exp(-x))# input datasetX=np.array([[0,0,1],[0,1,1],[1,0,1],[1,1,1]])# output datasety=np.array([[0,1,0,1]]).T#seed( ) 用于指定随机数生成时所用算法开始的整数值,
#如果使用相同的seed( )值,则每次生成的随即数都相同,
#如果不设置这个值,则系统根据时间来自己选择这个值,
#此时每次生成的随机数因时间差异而不同。
np.random.seed(1)   # init weight value with mean 0syn0 = 2*np.random.random((3,1))-1     for iter in range(1000):# forward propagationL0=XL1=nonlin(np.dot(L0,syn0))# errorL1_error=y-L1L1_delta = L1_error*nonlin(L1,True)# updata weightsyn0+=np.dot(L0.T,L1_delta)print("Output After Training:")
print(L1)

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

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

import numpy as npdef 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 layerl2 = nonlin(np.dot(l1,syn1))  #the third layer,and the output layerl2_error = y-l2       #the hidden-output layer errorif(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 errorl1_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 实现感知器模型、两层神经网络相关推荐

  1. python 神经网络工具_神经网络15分钟入门!使用python从零开始写一个两层神经网络...

    本篇是该系列的第三篇,建议在阅读本篇文章之前先看前两篇文章. 在本文中将使用python实现之前描述的两层神经网络,并完成所提出的"象限分类"的问题. 需要注意的是,虽然标题叫做神 ...

  2. 如何利用 C# 实现神经网络的感知器模型?

    前几天我们介绍了 如何利用 C# 对神经网络模型进行抽象,在这篇图文中,我们抽象了单个神经元 Neuro,网络层 Layer,网络结构 Network,激活函数 IActivationFunction ...

  3. 多层神经元感知器模型_使用多层感知器模型对星系进行分类

    多层神经元感知器模型 Cosmos is an intriguing space to observe and analyse, it is the stronghold for any scienc ...

  4. 计算智能——感知器模型

    主要内容 1.感知器总述 2.感知器模型 3.感知器策略(建立损失函数) 4.感知器算法(梯度下降和随机梯度下降) 4.1梯度下降 4.2随机梯度下降 5.感知器MATLAB简单实现 5.1newp函 ...

  5. 模式识别(Pattern Recognition)学习笔记(十九)--多层感知器模型(MLP)

    早前已经学习了感知器学习算法,主要通过对那些错分类的样本进行求和来表示对错分样本的惩罚,但明显的它是一个线性的判别函数:而且上节学到了感知器神经元(阈值逻辑单元),对于单个的感知器神经元来说,尽管它能 ...

  6. 用numpy、PyTorch自动求导、torch.nn库实现两层神经网络

    用numpy.PyTorch自动求导.torch.nn库实现两层神经网络 1 用numpy实现两层神经网络 2 用PyTorch自动求导实现两层神经网络 2.1 手动求导 2.2 gradient自动 ...

  7. 课程一(Neural Networks and Deep Learning),第三周(Shallow neural networks)—— 1、两层神经网络的单样本向量化表示与多样本向量化表示...

    如上图所示的两层神经网络, 单样本向量化:                                                                                ...

  8. CS231n 两层神经网络反向传播实现

    今天写了cs231n 作业1的两层神经网络的部分,听视频和看讲义的时候觉得挺简单的没在意,后来真正写的时候发现了问题,而且也领悟到了新的东西,反向传播代码实现的奥妙之处. 同时也把之前的loss函数梯 ...

  9. python bp神经网络 异或_两层神经网络输出异或

    简单形象又有趣地讲解神经网络是什么 神经元 先来认识下真正的神经元. 图 1: 典型神经元的结构(来自维基百科 "树突" 词条) 神经元大致可以分为树突.突触.细胞体和轴突.树突为 ...

最新文章

  1. 暑期集训3:几何基础 练习题G: HDU - 1052
  2. 60篇论文入选,两度夺魁,“史上最难ECCV”商汤再攀高峰
  3. asp论坛回复功能怎么实现_在asp.netcore中使用中间件(middleware)实现api拦截及验证功能
  4. linux自动锁屏命令_如何冻结和锁定你的Linux系统?
  5. 信息报送不及时整改措施_工商年报如何报送?原来这才是正确打开方式
  6. snmp在企业网中的简单应用
  7. java代码的运行顺序_java中的代码块执行顺序
  8. hadoop 2.7.3伪分布式安装
  9. Java日期型集合排序
  10. 从安全和不安全两个角度,教你如何发布对象(含各种单例代码)
  11. InstallShield 下载安装
  12. Kconfig的两种用法
  13. 《诗六十首》一个会写诗的程序员
  14. BIP学习第一课,创建一个应用和实体并设计页面(图文)
  15. 通过python来实现“语象观察“自动化进阶版
  16. Request对象的一般用法
  17. 图形化编程语言的设计
  18. 中国科学院大学计算机学院夏令营,2019年中国科学院大学生数学夏令营招募通知...
  19. Linux 各种压缩、解压命令
  20. 装饰器设计模式代码套路-咖啡加奶

热门文章

  1. Nat. Mach. Intell. | 基于深度学习预测DNA甲基化位点
  2. CentOS 7.8下安装PyRosetta4
  3. 罹患各种癌晚期,无法救治
  4. python loop until_非常适合小白的 Asyncio 教程
  5. tomcat源码_从源码角度讲Tomcat在SpringBoot 中是如何启动的?
  6. 英伟达人工智能和处理器驱动的制药、生命科学合作
  7. 75分钟入门微生物组数据分析和结果解读—刘永鑫(合肥,2021年6月23日)
  8. Nature:全球表层土微生物组群落结构和功能
  9. npjsba-2018-用肠道微生物模型指导个性化膳食缓解局部性肠炎
  10. pandas使用fillna函数并设置bfill参数使用列中的后序值填充缺失值