BP神经网络-(参考游戏编程中的人工智能技术)
BP神经网络,采用有监督的训练方法,有监督的训练方法适用于已经具备可以用来训练网络的各种数据例子。
他的工作过程:把一个输入模式送给网络,考察他这时的输出,并将它的输出与慕白哦输出进行比较,如果实际的输出和目标的输出不同,则网络的所有权重都要稍作改变。
使它下一次的输出和期望的记过接近一i点。这一过程必须对要求网络学习的每一种输入模式进行重复,直到网络能正确识别每一种为止。
反向传播工作原理:
反向传播backpropagation,简称backprop,工作过程:首先创建一个含有一层或多层隐藏神经细胞的神经网络,并随机地这些神经细胞的全值赋值,如-1到1之间的任意i一个实数。然后把一个输入模式奎松到网络的输入端,并考察网络 的输出值。并考察网络的输出值。这一呼出值和要求达到的目标输出值之间的差值称为误差值(erro value)。利用这一误差值就可以来调整来自输出层底下的那个层输出的权重,使得当用同样的输入模式再次送入网络时,其输出能向正确答案接近一i写。一旦当权重调节完毕,就可以为它钱买呢的那个层来做同样的事情。这样由输入层开始,一层一层地向输入层方向推,知道达到第一个隐藏层为止,使u哦有的权重都获得嫂亮的调整。如果这一工作正确做完,则输入有不同的输入模式重复进行许多次,知道误差值降低到所有处理问题可接受的一个极限值以内,这时就可以说网络已经训练好(trained)了。
1.调整输出层的权重
把第k个输出神经细胞的输出记作为ok,而第k个输出神经细胞的目标输出tk,则第k个输出神经细胞开始时的误差值为:
为了改变在隐藏层第j个神经单元和输出层第k个神经单元之间的权重,使用下面的公式:
其中L是学习率(learning rate),这是一个正的小数。学习率L的数值越大,权重调整也越多,为了使网络获得最佳性能,这个数字必须人工调整。
2.为隐藏层调节权重
首先计算第第j个神经细胞的误差:
其中n为输出层神经元的个数。
确定了误差值后,从隐藏层j单元到输出层i单元的权重调整可用以下公式得到:
这样的整个过程要对所有的训练模式进行重复,直到总的误差减少到一个可以接受的水平为止。
BP神经网络-(参考游戏编程中的人工智能技术)相关推荐
- 【转】游戏编程中的人工智能技术--神经网络
原文:http://blog.csdn.net/ecitnet/article/details/1799444 游戏编程中的人工智能技术 . > . (连载之一) 用平常语言介绍神经网络(Ne ...
- 游戏编程中的人工智能技术--神经网络
游戏编程中的人工智能技术 . <神经网络入门> . (连载之一) 用平常语言介绍神经网络 (Neural Networks in Plain English) 因为我们没有很好了解大脑, ...
- 游戏编程中的人工智能技术
游戏编程中的人工智能技术 转自http://blog.csdn.net/aifuture/article/details/1852030 分类: 神经网络 2007-10-28 17:44 652人阅 ...
- 游戏编程中的人工智能技术-演化算法入门
buckland大神的每一章都很经典,少了任何一章都会感到不完整.今天先介绍第十章-演化算法.因为这是人工生命的基础.大名鼎鼎的tierra就是采用了演化算法.(什么是Tierra?看这里点击打开链接 ...
- 游戏编程中的寻路算法研究
近年来,游戏产业的快速发展带动了游戏中人工 智能(Artificial Intelligence,简称AI)的发展,越来越 多的游戏采用人工智能技术提高游戏的可玩性.在电 子游戏中,玩家操控主要角色, ...
- [转] 游戏编程中的寻路算法研究
[url]http://blog.csdn.net/ityuany/archive/2010/04/21/5509750.aspx[/url] 近年来,游戏产业的快速发展带动了游戏中人工 智能(Art ...
- 向量几何在游戏编程中的使用
<1>简单的2-D追踪 -Twinsen编写 -本人水平有限,疏忽错误在所难免,还请各位数学高手.编程高手不吝赐教 -我的Email-address: popyy@netease.com ...
- 向量几何在游戏编程中的使用1
<1>简单的2-D追踪 -Twinsen编写 -本人水平有限,疏忽错误在所难免,还请各位数学高手.编程高手不吝赐教 -我的Email-address: popyy@netease.com ...
- 向量几何在游戏编程中的使用2
<2>2-D物体任意角度的反弹 -Twinsen编写 -本人水平有限,疏忽错误在所难免,还请各位数学高手.编程高手不吝赐教 -我的Email-address: popyy@netease. ...
最新文章
- mysql len s.number,mysql内置函数
- 2017202110104-高级软件工程2017第8次作业—个人总结
- SpringMVC-web.xml头代码
- boost::endian模块实现reverse的测试程序
- JSP内置对象(9个常用的内置对象)
- [css] CSS3中的transition是否可以过渡opacity和display?
- kafka 的pom文件_Flink 消费 Kafka 数据
- 移动端AI应用太抢手,高通这次要送开发者20万+的SUV
- mysqldump: Got error: 145 解决方案
- 51单片机实现超声波测距
- java中将字符串转换为URL能解析的编码
- 一文搞懂单片机驱动8080LCD
- CSP202006-1 线性分类器(100分)【数学】
- html黑科技导入res,css黑科技
- oracle10g利用归档恢复,Oracle10g数据库归档与非归档模式下的备份与恢复
- 三个关于数绵羊的故事……
- ionic 以及cordova apk打包成功,安装不成功,显示Failure [INSTALL_FAILED_CONFLICTING_PROVIDER]
- 奥的斯服务器设置楼层运行,奥的斯服务器PPT
- 【GoLang】Map的遍历
- 2020-01-01T00:00:00.000000Z 日期格式转换