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

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

简明阐述神经网络的步骤以及总结层与层之间用一定的函数关系连接。

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

对于输入层和隐藏层:
我们定义输入层为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=1n(h(i)y(i))2J=\sum ^{n}_{i=1}\left( h\left( i\right) -y\left( i\right) \right) ^{2}
简明阐述神经网络的步骤以及总结

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