简明阐述神经网络的步骤以及总结

一:神经网络的通俗解释:
首先神经网络分为多层,第一层为数据输入,我们将输入数据的这一层称为输入层,我们可以输入需要识别的图片,色块等信息。第二层为隐藏层,这里说是第二层是不准确的,因为隐藏层通常情况不止一层,隐藏层负责对数据进行处理,计算。最后一层为输出层,负责输出结果。

在这里插入图片描述层与层之间用一定的函数关系连接。

二:神经网络的运算步骤:
我们梳理一下层之间的关系以及层内部的逻辑运算。

对于输入层和隐藏层:
我们定义输入层为X[1] ,隐藏层为z[1],z[1]=w[1]x[1] + b[1],x[1]为输入层的数据,w[1]为权重,也就是我们要求解的值,b[1]为偏置项。这里说明一下,z,w,x,b均为矩阵形式。

这里说一下为什么要有偏置项,逻辑回归的本质,就是寻找出一条“线”,这条“线”能将数据分类,在这里插入图片描述
对于一个线性函数 ,其定义为y = kx +b ,b为截距。若神经网络没有偏置项b,就像线性函数没有截距,“线”就成了一个原点的线。各位可以对上图试试,能不能找到一条过原点的“线”,将这个俩个类分开。

对于隐藏层和隐藏层:
我们说过,隐藏层负责一定的逻辑运算,隐藏层将输入层通过线性关系得到的数据z进行逻辑处理,这个逻辑处理是调用 激活函数 进行处理,这个激活函数,其实就是我们逻辑回归的sigmoid、tanh、relu函数。
我们通常使用relu函数,记做g(),我们将隐藏函数从输入层得到的z,代入到激活函数中,得到a[1] = g(z[1]),如果隐藏层为多层的话,我们将得到的结果a[1]作为第二个隐藏层的输入值,用“输入层–第一次隐藏层”同样的连接方法,将第一层隐藏层与第二层隐藏层相连接,即 z[2] = w[2]a[1] + b[2]
在这里插入图片描述对于隐藏层和输出层:我们将隐藏层的数据进行同样的逻辑回归操作,将z[2]带入到激活函数中,得到结果。
这时候,神经网络的正向传输基本结束,我们注意到,在对神经网络的正向传输中,我们得到的结果都是有权重来决定的,我们在正向传输的过程中,并没有得到对权重的修正,因此我们接下来要进逆向传输,来达到对权重的修正。
逆向传输过程:
我们设真正值为y[i],通过正向传输得到的最终结果为h[i],因此我们可以得到损失函数为 J = ∑ i = 1 n ( h ( i ) − y ( i ) ) 2 J=\sum ^{n}_{i=1}\left( h\left( i\right) -y\left( i\right) \right) ^{2} J=i=1n(h(i)y(i))2
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190805195740257.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4

举例来说,我们想要修正w1的权重,根据梯度下降公式, W 1 : = W 1 − θ ∂ J ∂ W 1 W_{1}:=W_{1}-\theta \dfrac {\partial J}{\partial W_{1}} W1:=W1θW1J
但是,我们从图中可以知道,J并不直接与w有关系,即不能直接对w求偏导,要根据链式法则,
∂ J ∂ W 1 = ∂ J ∂ g ⋅ ∂ g ∂ z ⋅ ∂ z ∂ W 1 \dfrac {\partial J}{\partial W_{1}}=\dfrac {\partial J}{\partial g}\cdot \dfrac {\partial g}{\partial z}\cdot \dfrac {\partial z}{\partial W_{1}} W1J=gJzgW1z
g为你使用的激活函数,z即为z[1]=w[1]x[1] + b[1]
对于其他的权重也是这样,顺便说一,这里只是通过一个输出结果对w1进行权重更新,一般神经网络有多个结果,只要分别计算出来 ∂ J 1 ∂ W 1 \dfrac {\partial J_{1}}{\partial W_{1}} W1J1 ∂ J 2 ∂ W 1 \dfrac {\partial J_{2}}{\partial W_{1}} W1J2 ∂ J 3 ∂ W 1 \dfrac {\partial J_{3}}{\partial W_{1}} W1J3.。。。。。 ∂ J i ∂ W 1 \dfrac {\partial J_{i}}{\partial W_{1}} W1Ji,并将这些值加起来记为 ∂ J 总 ∂ W 1 \dfrac {\partial J_{总}}{\partial W_{1}} W1J,然后 W 1 : = W 1 − θ ∂ J 总 ∂ W 1 W_{1}:=W_{1}-\theta\dfrac {\partial J_{总}}{\partial W_{1}} W1:=W1θW1J即可

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
神经网络的实验步骤详细分析具体-神经网络大作业(一).doc 本人做的神经网络的实验,步骤详细,分析具体,适合做入门学习用-I do neural network experiments, the steps detailed analysis of specific, suitable for entry to study 截取某些内容,方便参考: 用BP网络识别雷达测速的三类信号 一.数据来源      此信号来自一部测速雷达获得的三种目标的回波信号,三种目标分别是行人W、自行车B和卡车T,信号包含目标的速度信息。 二.信号的分析与处理      根据所给的三类信号的样本,每一个样本均包含1024个数据,由于每一个样本的数据量较大,不可能将所有1024个数据全都作为神经元的输入,计算量太大,所以必须首先对信号进行分析,提取最有价值的特征信息。      首先可以看看每一个样本的数据图,以各类信号的第一个样本为例,如图1所示。 (1)                                       (2)                                        (3) 图1 (1)行人数据图  (2)自行车数据图  (3)卡车数据图              从上图的时域数据基本上观察不出规律,因此我们要对数据进行傅立叶变换,从频域分析数据的特征,如下图2所示。 图2 行人数据频谱图 从上图看到行人的数据的频谱的幅度很小,原因是因为信号在零点处的值特别大,所以要将在零点处的值去掉,得到如图3所示。 图3 行人数据去掉零点后的频谱图 这时可以观察到信号的一些特征,从图发现信号的频谱图是基本对称分布的,而且信号的峰值也很大,可以对它首先进行归一化,如下图4所示。 图4 (1)行人数据归一化后的频谱图 (2)取绝对值后的频谱图 同时将自行车和卡车的频谱图来做比较如图5,6所示 图5 (1)自行车数据归一化后的频谱图        (2)取绝对值后的频谱图 图6 (1)卡车数据归一化后的频谱图              (2)取绝对值后的频谱图 从上面三幅图,可以观察到信号都有明显的峰值,但是出现的位置不同,另外,信号的均值和方差明显不同。但是考虑到雷达所测数据,会有一些速度反常规的游离数据,所以考虑采用受游离数据影响小的平均绝对值偏差来代替样本方差作为输入特征。同时,以数据的样本位数来作为输入特征来减少游离数据的影响。根据这些特征进行提取来作为输入。 三.特征提取 1.取信号归一化后的均值作为一个特征量。 2.取信号归一化后的平均绝对值偏差作为一个特征量。 3.取信号归一化后的样本位数作为一个特征量。 4.由三幅图的比较可以发现,信号的每两点之间的起伏程度也不尽相同,所以可以设定一个特征量,来纪录信号两点间的起伏程度的大小。 5.信号在经过归一化后,可以将信号全部的值加起来,用这个总的值来作为一个特征量。 除了上述的特征,还有很多特征可以提取,但是特征越多,需要的输入神经元越多,依照隐神经元约为输入神经元的两倍的原则,隐的神经元也将越多。则网络训练的时间将花费很大。所以,本实验只提取了上述特征的1,2,3。 四.算法与实现 根据提取的特征的维数,来决定输入神经元的个数。因为提取的三个特征的维数分别为8,1和1,所以输入神经元的个数为10。输出神经元的个数定为3个,考虑到被识别的三种信号分别对应三个输出,虽然用两个神经元就可以表示三种输出状态,但是用三个神经元能更好地分辨,减少出错的概率。至于隐的神经元个数则按照约为输入神经元个数的两倍的原则,设为20个。当然还可以在调试过程根据输出的识别率来找到一个一个较为合适的个数。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值