本人在Unity3D中开发的人工神经网络插件的介绍

1 .目的

本文简要地阐述了BP人工神经网络的工作原理,主要面向没有神经网络知识的初学者。

2.生物体中的神经网络

在生物体中,每个神经元都具有一个像绳索一样的线状物被称作轴突,它的作用是用来向其它神经元传递信号,除此了轴突,神经元上还有许多向各个方向分叉的较小的线状物,被称为树突。

神经元通过使用电化学过程交换信号。传入的信号在突触末端与树突连接处被接收。这些连接点被称为突触。

神经元将从突触传进的所有信号相加,如果总的信号强度超过了一个阈值,那么神经元被激发并且发送电子信号到它的轴突,要是总的信号强度没有超过神经元的阈值,那么神经元不会被激发。


生物体中的神经元

3.人工神经网络

人工神经网络与生物神经网络的构建方式相同,都使用了很多的神经元。详见图2,它描绘了呈现一个人工神经元的一种方式,图中灰色圆圈中的W被称为权重(weights),它是浮点数类型的变量。 人工神经元的每个输入都有一个与之相关的权重,并且它的这些权重决定了神经网络的总体活动.

此刻假设所有的这些权重都被设置成小的随机值---比如说在-1.0和1.0之间。因为一个权重既可以是正值也可以是负值,它可以对与之相关的输入产生活跃的影响,也可以产生抑制的影响。当输入信号进入神经元时,这些输入乘以它们各自相关的权重。

人工神经元核心中的函数 - 激发函数 - 将所有这些新的被权重调整后的输入值相加以给出最终的激发值(同样是浮点数,可以是正值或负值)。

如果这个激发值是在一个确定的阈值以上,我们以数字1为例,那么神经元会输出一个信号并且这个信号的值为1.如果激发值小于1,那么人工神经元将会输出0.

这是人工神经元中最简单的激发函数之一,它被称为阶梯函数。



一个人工神经元可以有编号从1到n的任意数量的输入,其中n是输入的总数。

每个输入都可以用数学表示为: X1,X2,X3,X4….Xn,同样权重可以相似地表示为:W1,W2,W3,W4….Wn。

记住,激活值是所有输入乘以对应权重之和。它可以被表示为:

A = X1W1+X2W2+X3W3+X4W4….+XnWn,如图4所示。

如果激活值超过了神经元的阈值,那么神经元输出值为1;如果激活值小于神经元的阈值,那么神经元输出为0.

这与生物神经元激活与不激活相似。想像一个有五个输入的神经元,它所有的权重都被初始化随机的值((-1 < w < 1).

就像生物大脑中的一个神经元连接到另一个神经元那样,这些人工神经元以一定的规则连接在一起组成了神经网络。其中最广泛的应用就是将这些神经元分层的连接在一起,如图5所示,这种类型的人工神经网络被称为前向反馈网络。其中的每层神经元将它们的输出馈送到下一层,直到产生输出。每个输入都会被发送到隐藏层的每个神经元,然后隐藏层中每个神经元的输出都会被传送到下一层中的每个神经元。

在前向反馈网络中可以有任意数量的隐藏层,但是通常一个隐藏层足以应付你要解决的大部分问题。

事实上,每一神经层都可以有任意数量的神经元(具体的数量要取决于具体的问题)


4.BP误差反向传播算法

BP反向传播算法的工作原理如下:

首先创建具有一个或有更多隐藏层的神经网络,并且将所有的权重值都随机初始化,区间在-1.0到1.0之间。

然后向神经网络呈现一种输入模式并注意它的输出。神经网络实际的输出值与期望的输出值之差成为误差值。这个误差值之后被用来决定如何调整输出层前一神经层的权重值,所以如果相同的输入模式再一次呈现,那么输出值将会更接近正确的值。

一旦调整了当前神经层的权重,就会对前一神经层重复相同的操作,直到达到第一个隐藏神经层为止,并且每个神经层的所有权重都已经被轻微地调整。

如果这个过程正确地被完成,那么下一次同一输入模式被呈现时,神经网络的输出将会离期望输出值更近一些。

然后用所有不同的输入模式多次重复整个过程,直到神经网络的误差值在当前要解决问题的可接受范围内。那么我们就说这个网络是经过训练的神经网络。

5.神经网络的训练

人工神经网络学习所需的训练集是一系列这样的向量:这组匹配的输入/输出模式用于训练网络如下:

1.初始化权重为小的随机值

2. 对每一种模式, 重复步骤a到e

a.呈现输入值到神经网络并且评估输出值o

b.计算实际输出值与期望输出值之间的误差

c. 计算隐藏层的误差值

d. 调整输出层的所有权重.

e. 调整隐藏层的所有权重.

3.重复步骤2直到所有误差之和在步骤b的可接受范围之内。


神经网络的训练

6.神经网络训练的公式总结

1.从输出层开始计算误差:

输出层神经元K的实际输出被表示为Ok,期望输出被表示为Tk.误差值被表示为Ek

  Ek = (Tk-Ok)* Ok(1- Ok)

2.计算隐藏层的误差:

隐藏层的神经元在j,它的误差值公式如下:

Ej = Oj(1- Oj) *( E1 Wj1 +E2 Wj2 +E3 Wj3 +…+ Ek Wjk+…+ En Wjn) ( n是输出层神经元的数量).

3.调整输出层的权重:

调整隐藏层神经元j与输出层神经元k之间的权重值的公式如下:

Wjk +=L* Ek*Oj

(L是一个小的正值,被称为学习率.学习率的值越大,权重值被调整的幅度就越大,为了得到最好的性能,这个值必须手动来调整)

4.调整隐藏层的权重:

调整隐藏层神经元j与输入层神经元i之间的权重公式如下:

Wij +=L* Ej*Oi

5.重复整个过程,直到所有训练模式的误差值降低到可接受的水平。

本文插件地址:https://assetstore.unity.com/packages/slug/93236

更多插件请访问本人的个人网站:

https://www.swordmaster.info/


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,324评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,356评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,328评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,147评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,160评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,115评论 1 296
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,025评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,867评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,307评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,528评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,688评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,409评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,001评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,657评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,811评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,685评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,573评论 2 353