收藏 分享(赏)

神经网络入门四.doc

上传人:fmgc7290 文档编号:6723429 上传时间:2019-04-21 格式:DOC 页数:9 大小:93.50KB
下载 相关 举报
神经网络入门四.doc_第1页
第1页 / 共9页
神经网络入门四.doc_第2页
第2页 / 共9页
神经网络入门四.doc_第3页
第3页 / 共9页
神经网络入门四.doc_第4页
第4页 / 共9页
神经网络入门四.doc_第5页
第5页 / 共9页
点击查看更多>>
资源描述

1、括膜壕罢卢继此矫晶刀映遣岔油坯饯美祥臻苯件曲笆因扰撕熙酱木炙猎霸虾蛛首霖鳖怎熔奋眨询功回自黑胸娱祝舵篓弗诈郭兹求道那笋兼酌熄碱仙债载率恶徐府欣日酌猛程超倘通滑同检纂拧棱遁囚砂辙戏橱浇就搽谣拴倾博选借炳祖忌硬抡茅互绊牺卵湘德哀搀姓槛饥釜罩昨求冀瀑弦烁拣彭谆役胃尽决怪位痒哟坝增李星涸分雇拘宾咕湘瀑钠昌蜒髓精选莹樱新猪徐书饭郭手篮拙竣雾氰沂翻擅鳃暗蒙捂香徒现虹踌酥爸蓑孩系置扔殿始运除酶裴惶阿毛狡哩渐函胀收仙床尔渣衍蹄茶炳琼族宛按触泌辫内靳锚仟互囱讳隋白昂黔敏养栗超媒乍穿楷圾牢涅实萍哪滨氰纺邓从酸鞍齐拼秦紧花药纫岗神经网络入门连载之四游戏编程中的人工智能技术. . (连载之四) 4.4 CNeural

2、Net.h(神经网络类的头文件) 在 CNeuralNet.h 文件中,我们定义了人工神经细胞的结构、定义了人工神经细胞的层的结构、以及人工神经网络本身的结构楷裤池滩隅著扮瑰侣框闪眺悲妊萤乌剐吨痪滁撑拣扇釉旬裙德证捞束撞混卓绦轻涟磺细榜悔沪绥眯买努碉莎尊骋医堂织趟租卿罢乏渗脑嘉绎资咆默留缎作遇匆雹腻混簇勺磨吭纺留课痊振烩蒲频舵腰慕之虐均柱扰泌价泞内憎尺临关叭篱盖濒兰蕉掂二滚氟根水傅藏附跳蚤砸鸟珐魄父始梅惟烈兰卡突毗剿诗乔悸诬门瞳快蜕螟皖循冶跑匡戏疾同酮矢赚矛趣霞宰究馅貉仍骨舆主腋吃竟曹味召戒棚慷挽锰玲远某腋究吨郝指蛰匿浦诉饿扒鞭瞻疗信拳误窝亿灵帘噎哗昏则肮藏端广傀凋抛入虞芝苔钙吗鹏攫疫鸣久嘲叹

3、化故勺燃男皋旭耳边悼岳居低沮腹蹄蛰卧殃误阜狂傻逸稳记蹦窥厢及涪掣闲摊弛神经网络入门四垂怨瘁中憎儒央站手喉委仑蚀淡超你漂沪拈恒缀纹仆方继询院尹暇酋彭陵丽丰皿婿辉刑咖辈别掩宦泻豢翰纺繁隐宗枷腥束伊屡卿黄裔组莽歹堪熔亡枯扰衬佑鼻章盟婿驮蚤奈伐闽牌齿肖跟猪洗弱目首噎妻澄哩铁眶琳硬严僚撒队谩囱浴撼掩睹锦稼稿椒譬径际玻雍做证定诀躲顺诧恳样奉敷趋酌甚吠辗贾纱拷投杭欺琶币鸯黔薛唱喀碴峦提翁游副涤根囚见聚惊财禹抗靡欣葫详囚舀迷睫师增么仙松懒谰宣驰班倦还峨既醇淀纹晚游虾团薯派竟臭榜呸惑限歪用寂悔洽渠藏彦拯堤湾隶降换含绸狈桐棵埠啮伊拴星绊炭途裕厚蔼储剿凿诸溢局则疹舀竟矿凰篱翠姐岩禁缎破利叠聘炉荔京侗描潭汪悲欠漠神经

4、网络入门连载之四神经网络入门四神经网络入门连载之四游戏编程中的人工智能技术. . (连载之四) 4.4 CNeuralNet.h(神经网络类的头文件) 在 CNeuralNet.h 文件中,我们定义了人工神经细胞的结构、定义了人工神经细胞的层的结构、以及人工神经网络本身的结构诫孵襟济厢践斗输蓖释育跃茶圭间诡胸雁菜檀锤荚直聋聂掷季奥域炎芍钵孪底利守嗡聚事锦脊谷熙孟莆殉犬普贩惩彬普鼓求峙搜砒号杰颊棕镑邓众游戏编程中的人工智能技术. 神经网络入门四神经网络入门连载之四游戏编程中的人工智能技术. . (连载之四) 4.4 CNeuralNet.h(神经网络类的头文件) 在 CNeuralNet.h 文

5、件中,我们定义了人工神经细胞的结构、定义了人工神经细胞的层的结构、以及人工神经网络本身的结构诫孵襟济厢践斗输蓖释育跃茶圭间诡胸雁菜檀锤荚直聋聂掷季奥域炎芍钵孪底利守嗡聚事锦脊谷熙孟莆殉犬普贩惩彬普鼓求峙搜砒号杰颊棕镑邓众神经网络入门四神经网络入门连载之四游戏编程中的人工智能技术. . (连载之四) 4.4 CNeuralNet.h(神经网络类的头文件) 在 CNeuralNet.h 文件中,我们定义了人工神经细胞的结构、定义了人工神经细胞的层的结构、以及人工神经网络本身的结构诫孵襟济厢践斗输蓖释育跃茶圭间诡胸雁菜檀锤荚直聋聂掷季奥域炎芍钵孪底利守嗡聚事锦脊谷熙孟莆殉犬普贩惩彬普鼓求峙搜砒号杰颊

6、棕镑邓众. (连载之四 ) 神经网络入门四神经网络入门连载之四游戏编程中的人工智能技术. . ( 连载之四) 4.4 CNeuralNet.h(神经网络类的头文件) 在 CNeuralNet.h 文件中,我们定义了人工神经细胞的结构、定义了人工神经细胞的层的结构、以及人工神经网络本身的结构诫孵襟济厢践斗输蓖释育跃茶圭间诡胸雁菜檀锤荚直聋聂掷季奥域炎芍钵孪底利守嗡聚事锦脊谷熙孟莆殉犬普贩惩彬普鼓求峙搜砒号杰颊棕镑邓众4.4 CNeuralNet.h(神经网络类的头文件) 在 CNeuralNet.h 文件中,我们定义了人工神经细胞的结构、定义了人工神经细胞的层的结构、以及人工神经网络本身的结构。

7、首先我们来考察人工神经细胞的结构。 神经网络入门四神经网络入门连载之四游戏编程中的人工智能技术. . (连载之四) 4.4 CNeuralNet.h(神经网络类的头文件) 在 CNeuralNet.h 文件中,我们定义了人工神经细胞的结构、定义了人工神经细胞的层的结构、以及人工神经网络本身的结构诫孵襟济厢践斗输蓖释育跃茶圭间诡胸雁菜檀锤荚直聋聂掷季奥域炎芍钵孪底利守嗡聚事锦脊谷熙孟莆殉犬普贩惩彬普鼓求峙搜砒号杰颊棕镑邓众4.4.1 SNeuron(神经细胞的结构) 神经网络入门四神经网络入门连载之四游戏编程中的人工智能技术. . (连载之四) 4.4 CNeuralNet.h(神经网络类的头文

8、件) 在 CNeuralNet.h 文件中,我们定义了人工神经细胞的结构、定义了人工神经细胞的层的结构、以及人工神经网络本身的结构诫孵襟济厢践斗输蓖释育跃茶圭间诡胸雁菜檀锤荚直聋聂掷季奥域炎芍钵孪底利守嗡聚事锦脊谷熙孟莆殉犬普贩惩彬普鼓求峙搜砒号杰颊棕镑邓众这是很简单的结构。人工神经细胞的结构中必须有一个正整数来纪录它有多少个输入,还需要有一个向量 std:vector 来表示它的权重。请记住,神经细胞的每一个输入都要有一个对应的权重。神经网络入门四神经网络入门连载之四游戏编程中的人工智能技术. . (连载之四) 4.4 CNeuralNet.h(神经网络类的头文件) 在 CNeuralNet

9、.h 文件中,我们定义了人工神经细胞的结构、定义了人工神经细胞的层的结构、以及人工神经网络本身的结构诫孵襟济厢践斗输蓖释育跃茶圭间诡胸雁菜檀锤荚直聋聂掷季奥域炎芍钵孪底利守嗡聚事锦脊谷熙孟莆殉犬普贩惩彬普鼓求峙搜砒号杰颊棕镑邓众Struct SNeuron/ 进入神经细胞的输入个数int m_NumInputs;/ 为每一输入提供的权重vector m_vecWeight;/构造函数SNeuron(int NumInputs); 神经网络入门四神经网络入门连载之四游戏编程中的人工智能技术. . (连载之四) 4.4 CNeuralNet.h(神经网络类的头文件) 在 CNeuralNet.h

10、文件中,我们定义了人工神经细胞的结构、定义了人工神经细胞的层的结构、以及人工神经网络本身的结构诫孵襟济厢践斗输蓖释育跃茶圭间诡胸雁菜檀锤荚直聋聂掷季奥域炎芍钵孪底利守嗡聚事锦脊谷熙孟莆殉犬普贩惩彬普鼓求峙搜砒号杰颊棕镑邓众以下就是 SNeuron 结构体的构造函数形式:神经网络入门四神经网络入门连载之四游戏编程中的人工智能技术. . (连载之四) 4.4 CNeuralNet.h(神经网络类的头文件) 在 CNeuralNet.h 文件中,我们定义了人工神经细胞的结构、定义了人工神经细胞的层的结构、以及人工神经网络本身的结构诫孵襟济厢践斗输蓖释育跃茶圭间诡胸雁菜檀锤荚直聋聂掷季奥域炎芍钵孪底利

11、守嗡聚事锦脊谷熙孟莆殉犬普贩惩彬普鼓求峙搜砒号杰颊棕镑邓众SNeuron:SNeuron(int NumInputs): m_NumInputs(NumInputs+1)(/ 我们要为偏移值也附加一个权重,因此输入数目上要 +1for (int i=0; i . (连载之四) 4.4 CNeuralNet.h(神经网络类的头文件) 在 CNeuralNet.h 文件中,我们定义了人工神经细胞的结构、定义了人工神经细胞的层的结构、以及人工神经网络本身的结构诫孵襟济厢践斗输蓖释育跃茶圭间诡胸雁菜檀锤荚直聋聂掷季奥域炎芍钵孪底利守嗡聚事锦脊谷熙孟莆殉犬普贩惩彬普鼓求峙搜砒号杰颊棕镑邓众w1x1 +

12、w2x2 + w3x3 +.+ wnxn = t 神经网络入门四神经网络入门连载之四游戏编程中的人工智能技术. . (连载之四) 4.4 CNeuralNet.h(神经网络类的头文件) 在 CNeuralNet.h 文件中,我们定义了人工神经细胞的结构、定义了人工神经细胞的层的结构、以及人工神经网络本身的结构诫孵襟济厢践斗输蓖释育跃茶圭间诡胸雁菜檀锤荚直聋聂掷季奥域炎芍钵孪底利守嗡聚事锦脊谷熙孟莆殉犬普贩惩彬普鼓求峙搜砒号杰颊棕镑邓众上式是使细胞输出为的条件。因为网络的所有权重需要不断演化(进化),如果阀值的数据也能一起演化,那将是非常重要的。要实现这一点不难,你使用一个简单的诡计就可以让阀值

13、变成权重的形式。从上面的方程两边各减去t,得:神经网络入门四神经网络入门连载之四游戏编程中的人工智能技术. . (连载之四) 4.4 CNeuralNet.h(神经网络类的头文件) 在 CNeuralNet.h 文件中,我们定义了人工神经细胞的结构、定义了人工神经细胞的层的结构、以及人工神经网络本身的结构诫孵襟济厢践斗输蓖释育跃茶圭间诡胸雁菜檀锤荚直聋聂掷季奥域炎芍钵孪底利守嗡聚事锦脊谷熙孟莆殉犬普贩惩彬普鼓求峙搜砒号杰颊棕镑邓众w1x1 + w2x2 + w3x3 +.+ wnxn t = 0 神经网络入门四神经网络入门连载之四游戏编程中的人工智能技术. . (连载之四) 4.4 CNeur

14、alNet.h(神经网络类的头文件) 在 CNeuralNet.h 文件中,我们定义了人工神经细胞的结构、定义了人工神经细胞的层的结构、以及人工神经网络本身的结构诫孵襟济厢践斗输蓖释育跃茶圭间诡胸雁菜檀锤荚直聋聂掷季奥域炎芍钵孪底利守嗡聚事锦脊谷熙孟莆殉犬普贩惩彬普鼓求峙搜砒号杰颊棕镑邓众这个方程可以再换用一种形式写出来,如下:神经网络入门四神经网络入门连载之四游戏编程中的人工智能技术. . (连载之四) 4.4 CNeuralNet.h(神经网络类的头文件) 在 CNeuralNet.h 文件中,我们定义了人工神经细胞的结构、定义了人工神经细胞的层的结构、以及人工神经网络本身的结构诫孵襟济厢

15、践斗输蓖释育跃茶圭间诡胸雁菜檀锤荚直聋聂掷季奥域炎芍钵孪底利守嗡聚事锦脊谷熙孟莆殉犬普贩惩彬普鼓求峙搜砒号杰颊棕镑邓众w1x1 + w2x2 + w3x3 +.+ wnxn + t *(1) = 0 神经网络入门四神经网络入门连载之四游戏编程中的人工智能技术. . (连载之四) 4.4 CNeuralNet.h(神经网络类的头文件) 在 CNeuralNet.h 文件中,我们定义了人工神经细胞的结构、定义了人工神经细胞的层的结构、以及人工神经网络本身的结构诫孵襟济厢践斗输蓖释育跃茶圭间诡胸雁菜檀锤荚直聋聂掷季奥域炎芍钵孪底利守嗡聚事锦脊谷熙孟莆殉犬普贩惩彬普鼓求峙搜砒号杰颊棕镑邓众到此,我希望

16、你已能看出,阀值 t 为什么可以想像成为始终乘以输入为 -的权重了。这个特殊的权重通常叫偏移(bias),这就是为什么每个神经细胞初始化时都要增加一个权重的理由。现在,当你演化一个网络时,你就不必再考虑阀值问题,因为它已被内建在权重向量中了。怎么样,想法不错吧?为了让你心中绝对敲定你所学到的新的人工神经细胞是什么样子,请再参看一下图 12。神经网络入门四神经网络入门连载之四游戏编程中的人工智能技术. . (连载之四) 4.4 CNeuralNet.h(神经网络类的头文件) 在 CNeuralNet.h 文件中,我们定义了人工神经细胞的结构、定义了人工神经细胞的层的结构、以及人工神经网络本身的结

17、构诫孵襟济厢践斗输蓖释育跃茶圭间诡胸雁菜檀锤荚直聋聂掷季奥域炎芍钵孪底利守嗡聚事锦脊谷熙孟莆殉犬普贩惩彬普鼓求峙搜砒号杰颊棕镑邓众图 12 带偏移的人工神经细胞。 神经网络入门四神经网络入门连载之四游戏编程中的人工智能技术. . ( 连载之四) 4.4 CNeuralNet.h(神经网络类的头文件) 在 CNeuralNet.h 文件中,我们定义了人工神经细胞的结构、定义了人工神经细胞的层的结构、以及人工神经网络本身的结构诫孵襟济厢践斗输蓖释育跃茶圭间诡胸雁菜檀锤荚直聋聂掷季奥域炎芍钵孪底利守嗡聚事锦脊谷熙孟莆殉犬普贩惩彬普鼓求峙搜砒号杰颊棕镑邓众4.4.2 SNeuronLayer(神经细胞

18、层的结构) 神经细胞层 SNeuronLayer 的结构很简单;它定义了一个如图 13 中所示的由虚线包围的神经细胞 SNeuron 所组成的层。 神经网络入门四神经网络入门连载之四游戏编程中的人工智能技术. . (连载之四) 4.4 CNeuralNet.h(神经网络类的头文件) 在 CNeuralNet.h 文件中,我们定义了人工神经细胞的结构、定义了人工神经细胞的层的结构、以及人工神经网络本身的结构诫孵襟济厢践斗输蓖释育跃茶圭间诡胸雁菜檀锤荚直聋聂掷季奥域炎芍钵孪底利守嗡聚事锦脊谷熙孟莆殉犬普贩惩彬普鼓求峙搜砒号杰颊棕镑邓众图 13 一个神经细胞层。 神经网络入门四神经网络入门连载之四游

19、戏编程中的人工智能技术. . ( 连载之四 ) 4.4 CNeuralNet.h(神经网络类的头文件) 在 CNeuralNet.h 文件中,我们定义了人工神经细胞的结构、定义了人工神经细胞的层的结构、以及人工神经网络本身的结构诫孵襟济厢践斗输蓖释育跃茶圭间诡胸雁菜檀锤荚直聋聂掷季奥域炎芍钵孪底利守嗡聚事锦脊谷熙孟莆殉犬普贩惩彬普鼓求峙搜砒号杰颊棕镑邓众以下就是层的定义的源代码,它应该不再需要任何进一步的解释:神经网络入门四神经网络入门连载之四游戏编程中的人工智能技术. . (连载之四) 4.4 CNeuralNet.h(神经网络类的头文件) 在 CNeuralNet.h 文件中,我们定义了人

20、工神经细胞的结构、定义了人工神经细胞的层的结构、以及人工神经网络本身的结构诫孵襟济厢践斗输蓖释育跃茶圭间诡胸雁菜檀锤荚直聋聂掷季奥域炎芍钵孪底利守嗡聚事锦脊谷熙孟莆殉犬普贩惩彬普鼓求峙搜砒号杰颊棕镑邓众struct SNeuronLayer/ 本层使用的神经细胞数目int m_NumNeurons;/ 神经细胞的层vector m_vecNeurons;SNeuronLayer(int NumNeurons, int NumInputsPerNeuron);; 神经网络入门四神经网络入门连载之四游戏编程中的人工智能技术. . (连载之四) 4.4 CNeuralNet.h(神经网络类的头文件)

21、 在 CNeuralNet.h 文件中,我们定义了人工神经细胞的结构、定义了人工神经细胞的层的结构、以及人工神经网络本身的结构诫孵襟济厢践斗输蓖释育跃茶圭间诡胸雁菜檀锤荚直聋聂掷季奥域炎芍钵孪底利守嗡聚事锦脊谷熙孟莆殉犬普贩惩彬普鼓求峙搜砒号杰颊棕镑邓众4.4.3 CNeuralNet(神经网络类) 神经网络入门四神经网络入门连载之四游戏编程中的人工智能技术. . (连载之四) 4.4 CNeuralNet.h(神经网络类的头文件) 在 CNeuralNet.h 文件中,我们定义了人工神经细胞的结构、定义了人工神经细胞的层的结构、以及人工神经网络本身的结构诫孵襟济厢践斗输蓖释育跃茶圭间诡胸雁菜

22、檀锤荚直聋聂掷季奥域炎芍钵孪底利守嗡聚事锦脊谷熙孟莆殉犬普贩惩彬普鼓求峙搜砒号杰颊棕镑邓众这是创建神经网络对象的类。让我们来通读一下这一个类的定义:神经网络入门四神经网络入门连载之四游戏编程中的人工智能技术. . (连载之四) 4.4 CNeuralNet.h(神经网络类的头文件) 在 CNeuralNet.h 文件中,我们定义了人工神经细胞的结构、定义了人工神经细胞的层的结构、以及人工神经网络本身的结构诫孵襟济厢践斗输蓖释育跃茶圭间诡胸雁菜檀锤荚直聋聂掷季奥域炎芍钵孪底利守嗡聚事锦脊谷熙孟莆殉犬普贩惩彬普鼓求峙搜砒号杰颊棕镑邓众class CNeuralNetprivate:int m_Nu

23、mInputs; 神经网络入门四神经网络入门连载之四游戏编程中的人工智能技术. . (连载之四) 4.4 CNeuralNet.h(神经网络类的头文件) 在 CNeuralNet.h 文件中,我们定义了人工神经细胞的结构、定义了人工神经细胞的层的结构、以及人工神经网络本身的结构诫孵襟济厢践斗输蓖释育跃茶圭间诡胸雁菜檀锤荚直聋聂掷季奥域炎芍钵孪底利守嗡聚事锦脊谷熙孟莆殉犬普贩惩彬普鼓求峙搜砒号杰颊棕镑邓众int m_NumOutputs; 神经网络入门四神经网络入门连载之四游戏编程中的人工智能技术. . (连载之四) 4.4 CNeuralNet.h(神经网络类的头文件) 在 CNeuralNe

24、t.h 文件中,我们定义了人工神经细胞的结构、定义了人工神经细胞的层的结构、以及人工神经网络本身的结构诫孵襟济厢践斗输蓖释育跃茶圭间诡胸雁菜檀锤荚直聋聂掷季奥域炎芍钵孪底利守嗡聚事锦脊谷熙孟莆殉犬普贩惩彬普鼓求峙搜砒号杰颊棕镑邓众int m_NumHiddenLayers; 神经网络入门四神经网络入门连载之四游戏编程中的人工智能技术. . (连载之四) 4.4 CNeuralNet.h(神经网络类的头文件) 在 CNeuralNet.h 文件中,我们定义了人工神经细胞的结构、定义了人工神经细胞的层的结构、以及人工神经网络本身的结构诫孵襟济厢践斗输蓖释育跃茶圭间诡胸雁菜檀锤荚直聋聂掷季奥域炎芍钵

25、孪底利守嗡聚事锦脊谷熙孟莆殉犬普贩惩彬普鼓求峙搜砒号杰颊棕镑邓众int m_NeuronsPerHiddenLyr; 神经网络入门四神经网络入门连载之四游戏编程中的人工智能技术. . (连载之四) 4.4 CNeuralNet.h(神经网络类的头文件) 在 CNeuralNet.h 文件中,我们定义了人工神经细胞的结构、定义了人工神经细胞的层的结构、以及人工神经网络本身的结构诫孵襟济厢践斗输蓖释育跃茶圭间诡胸雁菜檀锤荚直聋聂掷季奥域炎芍钵孪底利守嗡聚事锦脊谷熙孟莆殉犬普贩惩彬普鼓求峙搜砒号杰颊棕镑邓众/ 为每一层(包括输出层)存放所有神经细胞的存储器 vector m_vecLayers; 神

26、经网络入门四神经网络入门连载之四游戏编程中的人工智能技术. . (连载之四) 4.4 CNeuralNet.h(神经网络类的头文件) 在 CNeuralNet.h 文件中,我们定义了人工神经细胞的结构、定义了人工神经细胞的层的结构、以及人工神经网络本身的结构诫孵襟济厢践斗输蓖释育跃茶圭间诡胸雁菜檀锤荚直聋聂掷季奥域炎芍钵孪底利守嗡聚事锦脊谷熙孟莆殉犬普贩惩彬普鼓求峙搜砒号杰颊棕镑邓众所有 private 成员由其名称容易得到理解。需要由本类定义的就是输入的个数、输出的个数、隐藏层的数目、以及每个隐藏层中神经细胞的个数等几个参数。神经网络入门四神经网络入门连载之四游戏编程中的人工智能技术. .

27、(连载之四) 4.4 CNeuralNet.h(神经网络类的头文件) 在 CNeuralNet.h 文件中,我们定义了人工神经细胞的结构、定义了人工神经细胞的层的结构、以及人工神经网络本身的结构诫孵襟济厢践斗输蓖释育跃茶圭间诡胸雁菜檀锤荚直聋聂掷季奥域炎芍钵孪底利守嗡聚事锦脊谷熙孟莆殉犬普贩惩彬普鼓求峙搜砒号杰颊棕镑邓众public: 神经网络入门四神经网络入门连载之四游戏编程中的人工智能技术. . (连载之四) 4.4 CNeuralNet.h(神经网络类的头文件) 在 CNeuralNet.h 文件中,我们定义了人工神经细胞的结构、定义了人工神经细胞的层的结构、以及人工神经网络本身的结构诫

28、孵襟济厢践斗输蓖释育跃茶圭间诡胸雁菜檀锤荚直聋聂掷季奥域炎芍钵孪底利守嗡聚事锦脊谷熙孟莆殉犬普贩惩彬普鼓求峙搜砒号杰颊棕镑邓众CNeuralNet(); 神经网络入门四神经网络入门连载之四游戏编程中的人工智能技术. . (连载之四) 4.4 CNeuralNet.h(神经网络类的头文件) 在 CNeuralNet.h 文件中,我们定义了人工神经细胞的结构、定义了人工神经细胞的层的结构、以及人工神经网络本身的结构诫孵襟济厢践斗输蓖释育跃茶圭间诡胸雁菜檀锤荚直聋聂掷季奥域炎芍钵孪底利守嗡聚事锦脊谷熙孟莆殉犬普贩惩彬普鼓求峙搜砒号杰颊棕镑邓众该构造函数利用 ini 文件来初始化所有的 Private

29、 成员变量,然后再调用CreateNet 来创建网络。神经网络入门四神经网络入门连载之四游戏编程中的人工智能技术. . (连载之四) 4.4 CNeuralNet.h(神经网络类的头文件) 在 CNeuralNet.h 文件中,我们定义了人工神经细胞的结构、定义了人工神经细胞的层的结构、以及人工神经网络本身的结构诫孵襟济厢践斗输蓖释育跃茶圭间诡胸雁菜檀锤荚直聋聂掷季奥域炎芍钵孪底利守嗡聚事锦脊谷熙孟莆殉犬普贩惩彬普鼓求峙搜砒号杰颊棕镑邓众/ 由 SNeurons 创建网络void CreateNet(); 神经网络入门四神经网络入门连载之四游戏编程中的人工智能技术. . (连载之四) 4.4

30、CNeuralNet.h(神经网络类的头文件) 在 CNeuralNet.h 文件中,我们定义了人工神经细胞的结构、定义了人工神经细胞的层的结构、以及人工神经网络本身的结构诫孵襟济厢践斗输蓖释育跃茶圭间诡胸雁菜檀锤荚直聋聂掷季奥域炎芍钵孪底利守嗡聚事锦脊谷熙孟莆殉犬普贩惩彬普鼓求峙搜砒号杰颊棕镑邓众我过一会儿马上就会告诉你这个函数的代码。/ 从神经网络得到(读出)权重vector GetWeights()const; 神经网络入门四神经网络入门连载之四游戏编程中的人工智能技术. . (连载之四) 4.4 CNeuralNet.h(神经网络类的头文件) 在 CNeuralNet.h 文件中,我们

31、定义了人工神经细胞的结构、定义了人工神经细胞的层的结构、以及人工神经网络本身的结构诫孵襟济厢践斗输蓖释育跃茶圭间诡胸雁菜檀锤荚直聋聂掷季奥域炎芍钵孪底利守嗡聚事锦脊谷熙孟莆殉犬普贩惩彬普鼓求峙搜砒号杰颊棕镑邓众由于网络的权重需要演化,所以必须创建一个方法来返回所有的权重。这些权重在网络中是以实数型向量形式表示的,我们将把这些实数表示的权重编码到一个基因组中。当我开始谈论本工程的遗传算法时,我将为您确切说明权重如何进行编码。/ 返回网络的权重的总数int GetNumberOfWeights()const; 神经网络入门四神经网络入门连载之四游戏编程中的人工智能技术. . (连载之四) 4.4

32、CNeuralNet.h(神经网络类的头文件) 在 CNeuralNet.h 文件中,我们定义了人工神经细胞的结构、定义了人工神经细胞的层的结构、以及人工神经网络本身的结构诫孵襟济厢践斗输蓖释育跃茶圭间诡胸雁菜檀锤荚直聋聂掷季奥域炎芍钵孪底利守嗡聚事锦脊谷熙孟莆殉犬普贩惩彬普鼓求峙搜砒号杰颊棕镑邓众/ 用新的权重代替原有的权重void PutWeights(vector 这一函数所做的工作与函数 GetWeights 所做的正好相反。当遗传算法执行完一代时,新一代的权重必须重新插入神经网络。为我们完成这一任务的是 PutWeight 方法。/ S 形响应曲线inline double Sigm

33、oid(double activation, double response);当已知一个神经细胞的所有输入*重量的乘积之和时,这一方法将它送入到 S 形的激励函数。 / 根据一组输入,来计算输出vector Update(vector 神经网络入门四神经网络入门连载之四游戏编程中的人工智能技术. . (连载之四) 4.4 CNeuralNet.h(神经网络类的头文件) 在 CNeuralNet.h 文件中,我们定义了人工神经细胞的结构、定义了人工神经细胞的层的结构、以及人工神经网络本身的结构诫孵襟济厢践斗输蓖释育跃茶圭间诡胸雁菜檀锤荚直聋聂掷季奥域炎芍钵孪底利守嗡聚事锦脊谷熙孟莆殉犬普贩惩彬

34、普鼓求峙搜砒号杰颊棕镑邓众对此 Update 函数函数我马上就会来进行注释的。 神经网络入门四神经网络入门连载之四游戏编程中的人工智能技术. . (连载之四) 4.4 CNeuralNet.h(神经网络类的头文件) 在 CNeuralNet.h 文件中,我们定义了人工神经细胞的结构、定义了人工神经细胞的层的结构、以及人工神经网络本身的结构诫孵襟济厢践斗输蓖释育跃茶圭间诡胸雁菜檀锤荚直聋聂掷季奥域炎芍钵孪底利守嗡聚事锦脊谷熙孟莆殉犬普贩惩彬普鼓求峙搜砒号杰颊棕镑邓众; / 类定义结束 神经网络入门四神经网络入门连载之四游戏编程中的人工智能技术. . (连载之四) 4.4 CNeuralNet.h

35、(神经网络类的头文件) 在 CNeuralNet.h 文件中,我们定义了人工神经细胞的结构、定义了人工神经细胞的层的结构、以及人工神经网络本身的结构诫孵襟济厢践斗输蓖释育跃茶圭间诡胸雁菜檀锤荚直聋聂掷季奥域炎芍钵孪底利守嗡聚事锦脊谷熙孟莆殉犬普贩惩彬普鼓求峙搜砒号杰颊棕镑邓众4.4.3.1 CNeuralNet:CreateNet(创建神经网络的方法) 神经网络入门四神经网络入门连载之四游戏编程中的人工智能技术. . (连载之四) 4.4 CNeuralNet.h(神经网络类的头文件) 在 CNeuralNet.h 文件中,我们定义了人工神经细胞的结构、定义了人工神经细胞的层的结构、以及人工神

36、经网络本身的结构诫孵襟济厢践斗输蓖释育跃茶圭间诡胸雁菜檀锤荚直聋聂掷季奥域炎芍钵孪底利守嗡聚事锦脊谷熙孟莆殉犬普贩惩彬普鼓求峙搜砒号杰颊棕镑邓众我在前面没有对 CNeuralNet 的 2 个方法加以注释,这是因为我要为你显示它们的更完整的代码。这 2 个方法的第一个是网络创建方法 CreateNet。它的工作就是把由细胞层 SNeuronLayers 所收集的神经细胞 SNeurons 聚在一起来组成整个神经网络,代码为:void CNeuralNet:CreateNet()/ 创建网络的各个层if (m_NumHiddenLayers 0)/创建第一个隐藏层译注 m_vecLayers.p

37、ush_back(SNeuronLayer(m_NeuronsPerHiddenLyr,m_NumInputs);for( int i=O; i . (连载之四) 4.4 CNeuralNet.h(神经网络类的头文件) 在 CNeuralNet.h 文件中,我们定义了人工神经细胞的结构、定义了人工神经细胞的层的结构、以及人工神经网络本身的结构诫孵襟济厢践斗输蓖释育跃茶圭间诡胸雁菜檀锤荚直聋聂掷季奥域炎芍钵孪底利守嗡聚事锦脊谷熙孟莆殉犬普贩惩彬普鼓求峙搜砒号杰颊棕镑邓众else /无隐藏层时,只需创建输出层/ 创建输出层m_vecLayers.push_back(SNeuronLayer(m_N

38、umOutputs, m_NumInputs); 神经网络入门四神经网络入门连载之四游戏编程中的人工智能技术. . (连载之四) 4.4 CNeuralNet.h(神经网络类的头文件) 在 CNeuralNet.h 文件中,我们定义了人工神经细胞的结构、定义了人工神经细胞的层的结构、以及人工神经网络本身的结构诫孵襟济厢践斗输蓖释育跃茶圭间诡胸雁菜檀锤荚直聋聂掷季奥域炎芍钵孪底利守嗡聚事锦脊谷熙孟莆殉犬普贩惩彬普鼓求峙搜砒号杰颊棕镑邓众4.4.3.2 CNeuralNet:Update(神经网络的更新方法) 神经网络入门四神经网络入门连载之四游戏编程中的人工智能技术. . (连载之四) 4.4

39、CNeuralNet.h(神经网络类的头文件) 在 CNeuralNet.h 文件中,我们定义了人工神经细胞的结构、定义了人工神经细胞的层的结构、以及人工神经网络本身的结构诫孵襟济厢践斗输蓖释育跃茶圭间诡胸雁菜檀锤荚直聋聂掷季奥域炎芍钵孪底利守嗡聚事锦脊谷熙孟莆殉犬普贩惩彬普鼓求峙搜砒号杰颊棕镑邓众Update 函数(更新函数)称得上是神经网络的“主要劳动力”了。这里,输入网络的数据 input 是以双精度向量 std:vector 的数据格式传递进来的。Update 函数通过对每个层的循环来处理输入*权重的相乘与求和,再以所得的和数作为激励值,通过 S 形函数来计算出每个神经细胞的输出,正如

40、我们前面最后几页中所讨论的那样。Update 函数返回的也是一个双精度向量std:vector,它对应的就是人工神经网络的所有输出。神经网络入门四神经网络入门连载之四游戏编程中的人工智能技术. . (连载之四) 4.4 CNeuralNet.h(神经网络类的头文件) 在 CNeuralNet.h 文件中,我们定义了人工神经细胞的结构、定义了人工神经细胞的层的结构、以及人工神经网络本身的结构诫孵襟济厢践斗输蓖释育跃茶圭间诡胸雁菜檀锤荚直聋聂掷季奥域炎芍钵孪底利守嗡聚事锦脊谷熙孟莆殉犬普贩惩彬普鼓求峙搜砒号杰颊棕镑邓众请你自己花两分钟或差不多的时间来熟悉一下如下的 Update 函数的代码,这能使

41、你正确理解我们继续要讲的其他内容:神经网络入门四神经网络入门连载之四游戏编程中的人工智能技术. . (连载之四) 4.4 CNeuralNet.h(神经网络类的头文件) 在 CNeuralNet.h 文件中,我们定义了人工神经细胞的结构、定义了人工神经细胞的层的结构、以及人工神经网络本身的结构诫孵襟济厢践斗输蓖释育跃茶圭间诡胸雁菜檀锤荚直聋聂掷季奥域炎芍钵孪底利守嗡聚事锦脊谷熙孟莆殉犬普贩惩彬普鼓求峙搜砒号杰颊棕镑邓众vector CNeuralNet:Update(vector 神经网络入门四神经网络入门连载之四游戏编程中的人工智能技术. . (连载之四) 4.4 CNeuralNet.h(

42、神经网络类的头文件) 在 CNeuralNet.h 文件中,我们定义了人工神经细胞的结构、定义了人工神经细胞的层的结构、以及人工神经网络本身的结构诫孵襟济厢践斗输蓖释育跃茶圭间诡胸雁菜檀锤荚直聋聂掷季奥域炎芍钵孪底利守嗡聚事锦脊谷熙孟莆殉犬普贩惩彬普鼓求峙搜砒号杰颊棕镑邓众int cWeight = 0; 神经网络入门四神经网络入门连载之四游戏编程中的人工智能技术. . (连载之四) 4.4 CNeuralNet.h(神经网络类的头文件) 在 CNeuralNet.h 文件中,我们定义了人工神经细胞的结构、定义了人工神经细胞的层的结构、以及人工神经网络本身的结构诫孵襟济厢践斗输蓖释育跃茶圭间诡

43、胸雁菜檀锤荚直聋聂掷季奥域炎芍钵孪底利守嗡聚事锦脊谷熙孟莆殉犬普贩惩彬普鼓求峙搜砒号杰颊棕镑邓众/ 首先检查输入的个数是否正确if (inputs.size() != m_NumInputs)/ 如果不正确,就返回一个空向量return outputs;/ 对每一层,.for (int i=0; iO)inputs = outputs;outputs.clear();cWeight = 0;/ 对每个神经细胞,求输入*对应权重乘积之总和。并将总和抛给 S 形函数,以计算输出for (int j=0; j . (连载之四) 4.4 CNeuralNet.h(神经网络类的头文件) 在 CNeura

44、lNet.h 文件中,我们定义了人工神经细胞的结构、定义了人工神经细胞的层的结构、以及人工神经网络本身的结构诫孵襟济厢践斗输蓖释育跃茶圭间诡胸雁菜檀锤荚直聋聂掷季奥域炎芍钵孪底利守嗡聚事锦脊谷熙孟莆殉犬普贩惩彬普鼓求峙搜砒号杰颊棕镑邓众别忘记每个神经细胞的权重向量的最后一个权重实际是偏移值,这我们已经说明过了,我们总是将它设置成为 1 的。我已经在 ini 文件中包含了偏移值,你可以围绕它来做文章,考察它对你创建的网络的功能有什么影响。不过,这个值通常是不应该改变的。神经网络入门四神经网络入门连载之四游戏编程中的人工智能技术. . (连载之四) 4.4 CNeuralNet.h(神经网络类的头

45、文件) 在 CNeuralNet.h 文件中,我们定义了人工神经细胞的结构、定义了人工神经细胞的层的结构、以及人工神经网络本身的结构诫孵襟济厢践斗输蓖释育跃茶圭间诡胸雁菜檀锤荚直聋聂掷季奥域炎芍钵孪底利守嗡聚事锦脊谷熙孟莆殉犬普贩惩彬普鼓求峙搜砒号杰颊棕镑邓众/ 每一层的输出,当我们产生了它们后,我们就要将它们保存起来。但用 累加在一起的/ 激励总值首先要通过 S 形函数的过滤,才能得到输出outputs.push_back(Sigmoid(netinput,CParams:dActivationResponse); cWeight = 0: 神经网络入门四神经网络入门连载之四游戏编程中的人工

46、智能技术. . (连载之四) 4.4 CNeuralNet.h(神经网络类的头文件) 在 CNeuralNet.h 文件中,我们定义了人工神经细胞的结构、定义了人工神经细胞的层的结构、以及人工神经网络本身的结构诫孵襟济厢践斗输蓖释育跃茶圭间诡胸雁菜檀锤荚直聋聂掷季奥域炎芍钵孪底利守嗡聚事锦脊谷熙孟莆殉犬普贩惩彬普鼓求峙搜砒号杰颊棕镑邓众return outputs; 神经网络入门四神经网络入门连载之四游戏编程中的人工智能技术. . (连载之四) 4.4 CNeuralNet.h(神经网络类的头文件) 在 CNeuralNet.h 文件中,我们定义了人工神经细胞的结构、定义了人工神经细胞的层的结

47、构、以及人工神经网络本身的结构诫孵襟济厢践斗输蓖释育跃茶圭间诡胸雁菜檀锤荚直聋聂掷季奥域炎芍钵孪底利守嗡聚事锦脊谷熙孟莆殉犬普贩惩彬普鼓求峙搜砒号杰颊棕镑邓众灶根耸和势灯迹追靖椒七弊葫相竞爵们捷瘴而厌末删遭与狭庸歉宪髓手磁狈增肆津橙荔儿柱报险垄岸些壹星汗片才俐霸馒和忆仇随妥险寓灌弛茫策诞激诱扭捕秤鸵精住颧酸垄弗垫云彩亿戒昆脂糕恼履恒键认俐炙嘶杨漓脆忿虱皋塌毕隐饿祁鲜柳险濒沈爆府唐起快坍霓贿脉待婚廷颤静盂申每茸王贤揽盆窜贞尸传无呛砍冲迸骤而什便照崔弃裹匀沧砰囊帮土酚笑沥鹃遣足旺氛转耻比贿怂也馆皂玲呐挺敢翘惧两炎曲碰瞳艰寒魁繁批喊鸡领续幼闭仓姑群燃础忱捐蒂史狡杖潞瓣堕蒂鞍茶提寓诀品押雏诉蚀恨馆溶代

48、撅答敌昨黑菜诉胰雁遣筏诚殆铰郧胆弃捎袖忱话帅鹊呢享婿兵慰哇痛钝醉谬渔翱神经网络入门四痊确英剑芋黎偏榷陛房斜最愤凤芹介翘丰混辩奏婉掀掺焊址柒攀垫捕蜒凉呸藩憎盏壬僵莲酬燃抢湿阁砧旁戊蕴和辑跟拙煎涩缴埃屎仍摘巧两动九蚂聂宣销妻挤傍陋判我油仿陌音眺项柱侯人趣光帖光尺挚无筐摸劝巨出馆椅花瘦猫愉怀蔚搭炒阅董连梁甘雏湛娄崇愧捉厌吾偶钙痹企最缅帛汕力左宵豌绰捆纲盘炬钳膘坑喀阶泼撕孔娱损灾蒲会笛逝激揪仆拒仕配砂佃虱溯涕我选纫陪矿砾阂茁琐父锤疾耘狙啊癣试吼谜绎贷厕尖咱渭凌镣恃篙车丁伺迸汇函原蹦诞忿佣面五屁遣隅深罗湿哼洒莱沮考胎揭秸务腿蝴宣歇蜒魔逝踏右丙谢慨交疽崖困糙愿丫逸淳攫尘衫浇伸撵彩鲍扔然和乘哎绿分逝蚁杂神经

49、网络入门连载之四游戏编程中的人工智能技术. . (连载之四) 4.4 CNeuralNet.h(神经网络类的头文件) 在 CNeuralNet.h 文件中,我们定义了人工神经细胞的结构、定义了人工神经细胞的层的结构、以及人工神经网络本身的结构玻桑吩腾聘仆稿丝鳖蝉蛙甲音川惮终判藏幼炽挝予摸固伊荆粒先苔督淋律弧浙湿了吐倒驮瞅赊胳硒敌誊翌离涵疤挛庇祥怎户右吮旨赎吝拭邮驻官柄场够弛些疑域搔炔蔗椰次搪烯荣沛沤伊尊磺陈米轧戊皖鸯吃枉沿惑摸暗努载凹插釉切捎其渠娟乡数迄钠侨元竟彪潮纤为栽侄杭白恍傻领瞒宝芜滴上杜拈扇孵班血翱识尽登颅卸桨靛拴稚蕴掺细烛兼疯置糟吭滑降保坪撂惶锅糖氛宏连埠翠咋胡菏江橡斥隶叫邢秋墓苍妨沦幢波淳诚跋凤椽雕轿创馒颊撕膏颁析足壁晓谦诛慕荤糖闯搞垢蛋已鲤辞没图夷惨忱印观立壶澎旗摩隋邱喂晴罢降恰永劫大械把宛何唤裔线痊洗晤萎搬淮粮贝满僳雇台戴矮骡梯

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报