神经网络python 实现

Python实现简单的神经网络 在说神经网络之前,我们讨论一下神经元(Neurons),它是神经网络的基本单元。神经元先获得输入,然后执行某些数学运算后,再产生一个输出。比如一个2输入神经元的例子: 在这个神经元里,输入总共经历了3步数学运算, 先将输入乘以权重(weight): ... 阅读详情

感知器学习算法步骤如下:
1.对权系数w置初值
对权系数w=(W1 .W2 ,…,Wn ,Wn+1 )的各个分量置一个较小的零随机值,但Wn+1 =
—g。并记为Wl (0),W2 (0),…,Wn (0),同时有Wn+1(0)=-θ 。这里Wi (t)为t时刻从第i个
输入上的权系数,i=1,2,…,n。Wn+1 (t)为t时刻时的阀值。

图1-10 感知器的分类例子

2.输入一样本X=(X1 ,X2 ,…,Xn+1 )以及它的期望输出d。

期望输出值d在样本的类属不同时取值不同。如果x是A类,则取d=1,如果x是B类,则取-1。期望输出d也即是教师信号。

3.计算实际输出值Y

4.根据实际输出求误差e

e=d-Y(t)       (1-21)

5.用误差e去修改权系数

i=1,2,…,n,n+1      (1-22)

其中,η称为权重变化率,0<η≤1


# -*- coding: cp936 -*-
import numpy
import pylab
import sys

class neuralNetwork:
	b = 1
	learnRaito = 0.5	
	trainData = numpy.array([[b,1,3],[b,2,3],[b,1,8],[b,2,15],[b,3,7],[b,4,29],[b,4,8],[b,4,20]])
	#训练数据 可以训练不同的方程 模型
	trainResult = numpy.array([1,1,-1,-1,1,-1,1,-1])
	weight = numpy.array([b,0,0])
	error = 0.001
	def Out(self,v):
		"""求值的取向"""
		if v>=0:
			return 1
		else:
			return -1
	
	def exceptSignal(self,oldw,inx):
				#a bug here
				#print '-'*20
				#print oldw
				#print inx
				#print numpy.dot(oldw.T,inx)
				#print '+'*20
				#return 1
				ans = numpy.dot(oldw.T,inx)
				return self.Out(ans)
	
	def trainOnce(self,oldw,inx,correctResult):
		"""one training"""
		error = correctResult - self.exceptSignal(oldw,inx)
		newWeight = oldw + self.learnRaito*error*inx
		self.weight = newWeight
		return error
	
	def getAbs(self,x):
		if x<0:
			return -x
		else:
			return x
	
	def trainWeight(self):
		"""traing the weight of data"""
		error = 1
		while error > self.error:
			i = 0
			error = 0
			
			for inx in self.trainData:
				error += self.getAbs(self.trainOnce(self.weight,inx,self.trainResult[i]))
				i = i+1
			
	
	def drawTrainResult(self):
		""" draw graph of Result"""
		xor = self.trainData[:,1]#切片,获取第一列,x坐标
		yor = self.trainData[:,2]#切片,获取第二列,y坐标
		pylab.subplot(111)
		xMax = numpy.max(xor)+15
		xMin = numpy.min(xor)-5
		yMax = numpy.max(yor)+50
		yMin = numpy.min(yor)-5
		pylab.xlabel(u'xor')
		pylab.ylabel(u'yor')
		pylab.xlim(xMin,xMax)
		pylab.ylim(yMin,yMax)
		
		#draw point
		for i in range(0,len(self.trainResult)):
			if self.trainResult[i] == 1:
				pylab.plot(xor[i],yor[i],'r*')
			else:
				pylab.plot(xor[i],yor[i],'ro')
	
	def drawTestResult(self,data):
		
		test = data#numpy.array(data)
		if self.exceptSignal(self.weight,test)>0:
			pylab.plot(test[1],test[2],'b*')
		else:
			pylab.plot(test[1],test[2],'bo')
	
	def drawTrueLine(self):
		"""真实函数分界线"""
		xtest = numpy.array(range(0,20))
		ytest = xtest*2+1.68
		pylab.plot(xtest,ytest,'g--')
	
	def showGraph(self):
		pylab.show()

testData = [[1,5,11],[1,5,12],[1,4,16],[1,6,7],[1,3,12],[1,2,22]]
neural = neuralNetwork()
print neural.Out(124.32423)
neural.trainWeight()
neural.drawTrainResult()
neural.drawTrueLine()
#neural.showGraph()
for test in testData:
	neural.drawTestResult(test)
print neural.weight
neural.showGraph()
		
		
		
	


红色是训练数据,蓝色是测试数据,圆点代表是在线上方,*代表在线下方,由图可知这个算法还不错






用python实现神经网络 一、BP神经网络 这里介绍目前常用的BP神经网络,其网络结构及数学模型如下: x为n 维向量, y 为n 维向量,隐含层有q 个神经元。假设N 有个样本数据,𝑦𝑡,𝑥𝑡,𝑡=1,2,…𝑁{y(t),x(t),t=1,2,…N}。从输入层到隐含层的权重记为: 𝑊𝑘𝑖(𝑘=1,2,..,𝑞,𝑖=1,2,…𝑛)W_ki (k=1,2,..,q,i=1,2,…n),从隐含层到输出层的权重记为:𝑊𝑘𝑖𝑘=1,2,…𝑞,𝑖=1,2,…𝑛W_ki (k=1,2,…q,i=1,2,…n) 。 1)以澳... 阅读详情

相关推荐

python实现简单的神经网络,python实现神经网络算法

学习人工智能时,我给自己定了一个目标--用Python写一个简单的神经网络。为了确保真得理解它,我要求自己不使用任何神经网络库,从头写起。多亏了Andrew Trask写得一篇精彩的博客,我做到了!下面贴出那九行代码:在这篇文章中,我将解释我是如何做得,以便你可以写出你自己的。我将会提供一个长点的但是更完美的源代码。首先,神经网络是什么?人脑由几千亿由突触相互连接的细胞(神经元)组成。突触传入足够的兴奋就会引起神经元的兴奋。这个过程被称为“思考”。我们可以在计算机上写一个神经网络来模拟这个过程。不需要在生物

ynca67269的博客 5188

用Python实现一个基础的神经网络模型

可能一提到神经网络,许多小伙伴就会感觉头大,不知道看眼前的你又是怎样的感受呢?【神经网络】这个词听起来让人觉得很高大上,但实际上神经网络算法要比人们想象的简单。今天我将手把手教你用Python来实现一个基础的神经网络模型,理解其背后的原理。搞定了一个简单的神经网络,快速回顾一下:介绍了神经网络的基本结构——神经元;在神经元中使用S型激活函数;神经网络就是连接在一起的神经元;构建了一个数据集,输入(或特征)是体重和身高,输出(或标签)是性别;学习了损失函数和均方差损失;训练网络就是最小化其损失;

方见华 4657

python实现简单的神经网络,神经网络为什么用python

脚本写完之后,打开CMD命令行,前提是python已经被加入到环境变量中,如果没有加入到环境变量,请百度4、在CMD命令行中,输入“python”+“空格”,即”python“;其次至少需要具备一些适用于研究的编程语言的技能,例如python,matlab,(C++也可行)等,哪怕不自己实现最简单的神经网络而是用API,也是需要一定计算机能力才能应用之。生物神经网络:一般指生物的大脑神经元,细胞,触点等组成的网络,用于产生生物的意识,帮助生物进行思考和行动。官方不支持,建议等支持吧。...

aifamao6的博客 420

用Python实现神经网络(附完整代码)!

好啦,这就是今天的内容,入门知识点资料免费发送的哈,想要的小伙伴儿不要错过,带你直接弯道超车,少走一大波弯路,准备好了嘛?!我们要开始学习一项编程技术啦!

tingting11232的博客 1万+

Python实现简单的神经网络_python实现神经网络

x1∗w1)(x2∗w2)b=0∗21∗34=7{w*x+b=(x_1*w_1)+(x_2*w_2)+b=0*2+1*3+4=7}w∗x+b=(x1​∗w1​)+(x2​∗w2​)+b=0∗2+1∗3+4=7y=f(w∗Xb)=f(7)=0.999{y=f(w*X+b)=f(7)=0.999}y=f(w∗X+b)=f(7)=0.999 以上步骤的Python代码是: 搭建神经网络 神经网络就是把一堆神经元连接在一起,下面是一个神经网络的简单举例: 这个网络有2个输入、一个包含2个神经元的隐藏层(h1和h2

2401_87555420的博客 1195

BP神经网络的Python实现

BP神经网络的Python实现 利用python实现了简易的bp神经网络模型,利用误差逆传播算法以及梯度下降法对网络进行训练,具体公式推到等可参考《机器学习》等相关书籍。 源码以及数据集可在链接https://download.youkuaiyun.com/download/wz2671/10790394下载。 BP_TEST.py # -*- coding: UTF-8 -*- from BPNet.b...

TITLE 4197

SOM神经网络、LVQ神经网络、CPN神经网络与Python实现

竞争型学习神经网络 简述 最近对神经网络比较感兴趣,因此花了两三天时间对整个领域进行了简单的调研,梳理和学习。其中深度学习,尤其以我们熟悉的如今大火的深度网络模型,如CNN, RNN, GAN和AE及它们的子类等;是在本世纪初,硬件性能达到了一个新的高度后才能有如此巨大的发展的。事实上在21世纪之前,各种各样的神经网络模型已经被发明并应用。那时候由于硬件性能的限制,以及由通信网络不发达导致的数据量...

qq_41858347的博客 4624

神经网络中BP算法的原理与用Python实现源码

(1)什么是梯度下降和链式求导法则 1.梯度下降 假设我们有一个函数J(w),如下图所示。 现在,我们要求当w等于什么的时候,J(w)能够取到最小值。从图中我们知道最小值在初始位置的左边,也就意味着如果想要使J(w)最小,w的值需要减小。而初始位置的切线斜率a>0(也是该位置对应的导数大于0),w=w-eta*a(eta是学习率)就能让w的值减小,循环求导更新w直到J(w)取到最

Microstrong 1万+

python实现BP神经网络

title: python实现BP神经网络 date: 2019-10-29 21:54:21 文章目录0. 前言1. 神经网络基本模型1.1. 单神经元模型1.2. 多层神经网络1.3. 神经网络学习过程2. BP误差反向传播算法2.1. 算法推导2.2. 梯度下降的理解2.3. 算法步骤2.4. 算法流程2.5. 算法实现2.6. 算法检验2.6.1. 预测y=x2y=x^2y=x2模型2.6.2. 预测mnist手写数字图片数据集3. 参考 0. 前言 有幸,在软件可靠性课程的实验中,被要求实现B.

dounine的博客 5527

python实现简单的神经网络,python实现人工神经网络

border_mode可以是valid或者full,具体看这里说明:.conv2d#激活函数用tanh#你还可以在(Activation('tanh'))后加上dropout的技巧: (Dropout(0.5))(Convolution2D(4, 5, 5, border_mode='valid',input_shape=(1,28,28))) (Activation('tanh'))#第二个卷积层,8个卷积核,每个卷积核大小3*3。为递归型网络,t时刻的状态与t-1时刻的输出状态有关。

shirley67269的博客 509

神经网络②——python实现神经网络

上一篇博客介绍了神经网络其实就是两步,第一步是前向传输,根据输入的特征值与权重矩阵以及激活函数,不断往前计算,得到输出层的值,第二步就是后向传播,根据残差的加权求和,不断往后,直到输入层,然后更新权重,不断进行这两步,直接输出结果的误差在所要求范围内即可。 本篇博文通过python代码实现神经网络,采用sklearn自带的手写数字集,看分类情况如何 一、导入数据集并标准化 数据集的加载非常简单,直...

cindy407的博客 3303

python对BP神经网络实现

python对BP神经网络实现 一、概念理解 开始之前首先了解一下BP神经网络,BP的英文是back propagationd的意思,它是一种按误差反向传播(简称误差反传)训练的多层前馈网络,其算法称为BP算法。 它的基本思想是梯度下降法,利用梯度搜索技术,期望使网络的实际输出值和期望输出值的误差和均方差为最小。 基本BP算法包括信号的前向传播和误差的反向传播两个过程。 正向传播过程:输入信号——通过隐含层——>作用于输出节点(经过非线性变换,产生输出信号)——>验证实际输出结果是否与

yxk666的博客 1万+

全连接神经网络的简单python实现

学习深度学习很长一段时间了,平时项目中也使用过caffe,tensorflow等深度学习框架,但一直没有真正动手实现过。虽然平时项目不建议自己重复造轮子,但作为时下这么火的深度学习,与它强大无比的功能相比,它的基本原理却是这么简洁,优雅,实现起来也不算多么复杂。通过简单实现神经网络,对深刻理解前向传递和反向传递都大有裨益,同时还能锻炼自己的代码实践能力,何乐而不为呢?我之前看过一篇博文,按照原作者

y2232100784的博客 1万+

python实现神经网络

声明:本文是A Neural Network in 11 lines of Python学习总结而来,关于更详细的神经网络的介绍可以参考从感知机到人工神经网络。如果你读懂了下面的文章,你会对神经网络有跟深刻的认识,有任何问题,请多多请教Very simple Neural Network首先确定我们要实现的任务:\qquad\qquad\qquad\qquad输出的为样本为XX为4*3,有4个样本3

yqtao的博客 2万+

Hopfield神经网络以及其python实现(一)

对于上世纪八十年代初神经网络的研究复兴而言,Hopfield起到了举足轻重的作用。在早期的学术活动中,Hopfield曾研究光和固体间的相互作用,而后,他集中研究生物分子间的电子转移机制,他在数学和物理学上的学术研究和他后来在生物学上的经验的结合,在当今被称为cross-disciplinary,为日后神经网络的研究以及概念的提出建立了坚实的基础。 ...

weixin_44106692的博客 1万+

使用Python实现神经网络

    我的GitHub:https://github.com/MachineLP/train_arch 自己搭建的一个框架,包含模型有:vgg(vgg16,vgg19), resnet(resnet_v2_50,resnet_v2_101,resnet_v2_152), inception_v4, inception_resnet_v2等。   神经网络/人工神经网络的洋文是Neural...

MachineLP的专栏 3万+

BP神经网络及python实现(详细)

本篇文章关于BP神经网络的算法实现相对来说通俗易懂,讲解下至关于函数变量的解释,上至关于BP算法中涉及的前向传播及反向传播的原理、再至其过程中涉及的公式详细推导都有笔者的一些思考笔记。本文也对标准的BP神经网络进行几处改进,目的都是为了提高训练速度。另外,若文章存在一些理论错误请各位不吝赐教,当然,在阅读过程中若有些地方不明白可以在评论区留言!

weixin_66845445的博客 5万+

国科大 雁栖湖校区 研一上 课程避坑与生存指南

本文为国科大雁栖湖校区研一新生提供全面的课程避坑与生存指南,涵盖选课策略、核心课程学习技巧、校园生活攻略及心态管理。重点解析算法设计与分析、人工智能原理等硬核课程的学习方法,并分享食堂、住宿、自习室等实用生存技巧,帮助新生高效适应研究生生活。

weixin_29304985的博客 302

用 Python 硬核从头实现一个神经网络

编者荐语有个事情可能会让初学者惊讶:神经网络并不复杂!『神经网络』这个词让人觉得很高大上,但实际上神经网络算法要比人们想象的简单。链接丨https://victorzhou.com/bl...

AI蜗牛车 3425

1. Klipper从安装到运行

本文记录Klipper固件从安装,配置到运行的详细过程

weixin_42098934的博客 1万+

ROS2 Jazzy 学习路线图(2026最新)

摘要: ROS2 Jazzy(LTS版)是2026年长期支持版本,仅适配Ubuntu 24.04。本文提供WSL环境下的学习路线图: 环境搭建(1-2天):配置WSL2+Ubuntu 24.04,安装ROS2 Jazzy及图形工具(VcXsrv、VS Code)。 核心概念(3-5天):掌握节点、话题、服务等通信机制,使用turtlesim和小海龟仿真实践。 开发实战(7-10天):Python/C++节点开发,结合RViz2、Gazebo等工具完成多节点通信和避障项目。 进阶应用(10-15天):导航(N

zheng_ruiguo的专栏 640
上一篇: python爬虫优快云文章抓取
下一篇: gavin个人实用VI命令
剑不飞
博客等级 码龄15年 86粉丝 505原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值