真实原创,转载务必注明出处】
上一个连载中我们已经了解了神经元模型和其工作方式。单个神经元就可以构成一个最简单的神经网络——感知机。在单层神经元感知机中,网络接收若干过输入,并通过输入函数、传输函数给出一个网络的输出。这个网络已经可以解决苹果和香蕉的分类问题。在本系列中,将具体介绍其内部原理。
首先,我们确定感知机的输入。在此,我们引入形状和颜色两个变量,苹果的形状为圆形记为1,颜色为红色记为1;香蕉的形状为弯形记为-1,颜色为黄色记为-1。则有输入p如表3.1所示。
表3.1 常用传输函数列表
P 形状 颜色
苹果 1 1
香蕉 -1 -1
其次可以确定传输函数f为Step函数。由于Step函数只能有1和0两种输出,故在此处,定义输出1表示苹果,输出0表示香蕉。
令权重w1=1,w2=1,b=0,则有图3.1所示的感知机,它有两个输入,并且都是1。这表示圆形,并且红色。
图3.1 感知机识别苹果
此时,net=p1*w1+p2*w2+b
=1+1+0
=2
Step(net)=1
可以看到当输入苹果属性时,感知机正确输出了1,表示苹果。
同样道理当输入-1、-1的香蕉属性时,感知机反应如下:
net=p1*w1+p2*w2+b
=-1-1+0
=-2
Step(net)=0
感知机又作出了正确的判断,当遇到弯的黄色水果时,感知机判断其为香蕉。
虽然感知机在此时已经可以做出来正确的判断,但是我相信读者一定会觉得很疑惑,权值w1、w2和b究竟为什么定义为1、1、0?如果取其它值,感知机还可以正常工作吗?应该如何求出权重和偏置的取值呢?
首先,必须知道,权重和偏置的取值会直接关系到感知机能否正常工作,并不是所有的取值都可以使感知机正常工作。但所幸的是,即使弄错了权值和偏置,还可以使用一套感知机的学习规则,通过不断的迭代学习,求得可以使感知机正常工作的权值和偏置。
感知机学习规则如下:
wnew=wold+ep
bnew=bold+e
其中e表示误差,e=t-a,t为期望输出,a为实际输出。
此规则的含义是,如果感知机的输出有误,则首先计算误差e,e为期望输出和实际输出的差值。新的权值等于旧值加上误差和输入p的乘积。同理,偏置可以看做是输入p恒为1的输入信号,故新的偏置等于旧偏置加入误差。当计算机出新的权重和偏置后,使用测试数据再次测试感知机,直到没有误差或误差在可接受范围内为止。
设w1=1,w2=-1,b=0,输入苹果属性1,1。得到:
net=p1*w1+p2*w2+b
=1-1+0
=0
Step(net)=0
输出错误,存在误差,故进行修正。
e=t-a
=1-0
=1
w1new=w1old+ep
=1+1*1
=2
w2new=w2old+ep
=-1+1*1
=0
bnew=bold+e
=0+1
=1
使用新的权值带入感知机,重新计算苹果的属性输入。
net=p1*w1+p2*w2+b
=1*2+1*0+1
=3
Step(net)=1
纠正误差后,苹果判断正确。尝试判断香蕉。
net=p1*w1+p2*w2+b
=-1*2-1*0+1
=-1
Step(net)=0
香蕉判断也正确,误差为0,学习结束。由此可见,即使初始权值是错误的,只要按照感知机学习规则修正权值和偏置,在感知机的可判断范围内,就有可能消除误差或将误差限制在可接收范围内。
感知机的基本原理已经基本介绍完毕。下面就可以动手实现自己的感知机了。为了方便读者理解,本书使用Java来实现神经网络,并引入神经网络框架neuroph,辅助神经网络的实现。有关neuroph框架以及感知机的具体实现,将在下一章节做详细介绍。
转载请注明出处,感谢大家的支持!
本文来自优优码:http://www.uucode.net/201406/perceptron
分享到:
相关推荐
《自己动手写神经网络》是一本面向实践的书籍,旨在帮助读者深入理解神经网络的工作原理,并通过编写源代码实现自己的神经网络模型。源代码包含了多个关键的文件和目录,如`plot_func.sce`用于绘制函数图形,`...
《自己动手写神经网络——随书代码》是一个深入理解神经网络原理并实践编程的资源包。这个压缩包可能包含了用于教学或自学神经网络的源代码,涵盖了从基础的前馈神经网络到更复杂的深度学习模型。通过实际编写这些...
神经网络算法的搭建 2018-8-5神经网络算法的搭建 2018-8-5神经网络算法的搭建 2018-8-5神经网络算法的搭建 2018-8-5神经网络算法的搭建 2018-8-5神经网络算法的搭建 2018-8-5神经网络算法的搭建 2018-8-5神经网络...
深度学习入门课程---卷积神经网络反向传播原理视频教程,希望能够学习者提供帮助,实现对卷积神经网络反向传播原理基础知识的掌握与理解,为后续学习做好铺垫,实现卷积神经网络反向传播原理的灵活运用
神经网络学习路线课程体系-课程体系大纲+编程知识+技术开发;神经网络学习路线课程体系-课程体系大纲+编程知识+技术开发;神经网络学习路线课程体系-课程体系大纲+编程知识+技术开发;神经网络学习路线课程体系-课程...
深度学习入门视频课程--- 动手完成简单神经网络,希望能够学习者提供帮助,实现人工智能深度学习红简单神经网络的构建
神经网络入门教程-神经网络入门教程.rar 神经网络入门教程 本书制作版权属智能中国网,如果文章原创者认为我们侵犯了您的合法权益,请来信告知 感谢书中文章所有原创作者奉献的精彩文章,如果文章原创者认为...
人工神经网络(Artificial Neural Networks,简称ANN)是模拟生物神经元网络结构和功能的一种计算模型,它是机器学习领域中的核心算法之一,尤其在模式识别、图像处理、自然语言处理等方面展现出强大的能力。...
3.MATLAB神经网络43个案例分析 Elman神经网络的数据预测----电力负荷预测模型研究3.MATLAB神经网络43个案例分析 Elman神经网络的数据预测----电力负荷预测模型研究3.MATLAB神经网络43个案例分析 Elman神经网络的数据...
3.内容:第三代神经网络SNN脉冲神经网络中integrate-and-fire神经元matlab仿真测试。 Ni=15; %最大外部电流水平数目用于I-O曲线 del_I=2; %两个外部电流之间的差值(Iext=del_I * i,i=0,1,...,Ni) del_T=0.1; % ...
11.MATLAB神经网络43个案例分析 SOM神经网络的数据分类--柴油机故障诊断11.MATLAB神经网络43个案例分析 SOM神经网络的数据分类--柴油机故障诊断11.MATLAB神经网络43个案例分析 SOM神经网络的数据分类--柴油机故障...
.MATLAB神经网络43个案例分析 概率神经网络的分类预测--基于PNN的变压器故障诊断.MATLAB神经网络43个案例分析 概率神经网络的分类预测--基于PNN的变压器故障诊断.MATLAB神经网络43个案例分析 概率神经网络的分类预测...
在训练神经网络之前,通常需要对手写数字图像进行预处理,包括灰度化、二值化、归一化等步骤。这些操作有助于减少噪声,增强图像的特征,并将图像转换成神经网络可以处理的数值格式。 4. **特征提取** 在BP神经网络...
本文档名为“零基础入门深度学习(3) - 神经网络和反向传播算法”,是系列文章中的第三篇,旨在帮助程序员从零基础入门深度学习。 首先,深度学习是一个多层次的模型,可以看作是复杂函数的组合。它之所以强大,在于...
【Matlab神经网络课件-神经网络入门教程】 在当今的科技领域,神经网络作为一种强大的机器学习工具,被广泛应用于各种复杂问题的解决,如图像识别、自然语言处理、预测模型构建等。Matlab作为一款强大的数值计算...
T-S模糊神经网络,全称为Takagi-Sugeno模糊神经网络,是融合了模糊逻辑系统和神经网络理论的一种复合模型。它在处理非线性、不确定性和复杂性问题时表现出强大的能力,常用于控制、识别和预测等领域。在MATLAB环境中...
神经网络里的mini-batch算法神经网络里的mini-batch算法神经网络里的mini-batch算法神经网络里的mini-batch算法神经网络里的mini-batch算法神经网络里的mini-batch算法神经网络里的mini-batch算法神经网络里的mini-...
celeba数据集--名人人脸--深度学习神经网络celeba数据集--名人人脸--深度学习神经网络celeba数据集--名人人脸--深度学习神经网络celeba数据集--名人人脸--深度学习神经网络celeba数据集--名人人脸--深度学习神经网络...
首先,神经网络是模拟人脑神经元工作原理的一种计算模型,它由大量的节点(神经元)和连接这些节点的权重构成。在分类问题中,神经网络通过学习输入数据和对应标签之间的关系,构建出一个模型,用于对新的未知数据...