一.由单个神经元到神经网络:
在上个文章我们知道了单个神经元的具体架构,这次我们将从单个神经元出发,探寻简单全连接神经网络的工作过程。
单个神经元其实就是一个函数,现在我们假设单个神经元的结构都为线性结构(即=wx+b)如图:
多个神经元相互连接就构成了神经网络
在上图中蓝色正方形分别代表一个参数,我们将其称为x1,x2,x3,x4,上图中每一条线都代表一个权重参数(也就是=wx+b中的w)
也就是说我们可以得到在上图中的最终运算表达式为=1*r1+2*r2+3*r3=1*(w11*x1+w12*x2+W13*x3+w14*x4+b1)+2*(w21*x1+w22*x2+W23*x3+w24*x4+b2)+3*(w31*x1+w32*x2+W33*x3+w34*x4+b3),至此我们得出了此神经网络的预测值
二.激活函数的引入:
其实通过上面的运算过程不难发现,虽然这个神经网络增加了两个神经元,但是似乎对结果的影响微乎其微,我们将上述表达式稍作整理:=1*(w11*x1+w12*x2+W13*x3+w14*x4+b1)+2*(w21*x1+w22*x2+W23*x3+w24*x4+b2)+3*(w31*x1+w32*x2+W33*x3+w34*x4+b3)=(1*w11+2*w21+3*w31)*x1+(1*w12+2*w22+3*w32)*x2+(1*w13+2*w23+3*w33)*x3+(1*w14+2*w24+3*w34)*x4+1*b1+2*b2+3*b3=1*x1+2*x2+3*x3+4*x4+B
结果发现本神经网络的运算结果其实和一个神经元的情况下似乎没有差别,其实用大白话来讲就是无论多少根直线加在一起,结果还是直线。
但是我们生活中亟待解决的问题有相当一部分是非线性的问题,那么如何让线性神经元拟合非线性函数呢?很简单,让直线“变软”就行了,这就是激活函数干的事情:让直线“变软”使其能过拟合非线性函数,在每个神经元得出结果后,将在这个结果输入激活函数,然后再把他传到下一层神经元。
三,反向传播与梯度下降
前面两部分其实就是神经网络前向传播的全过程,接下来我们来研究神经网络中的optimization,也就是反向传播与梯度下降。
在上篇文章我们知道了,对于单个神经元,梯度下降其实就是优化参数,优化=wx+b中的w和b,使loss值变得更小,优化方式为
对于神经网络而言,梯度下降的意义并没有发生改变,无非就是参数变多了而已,以这张图为例:
如果我要更新w11的参数,那么根据上文得出的计算方式:=1*r1+2*r2+3*r3=1*(w11*x1+w12*x2+W13*x3+w14*x4+b1)+2*(w21*x1+w22*x2+W23*x3+w24*x4+b2)+3*(w31*x1+w32*x2+W33*x3+w34*x4+b3),我们由链式求导法则可得:(lossfunction为损失函数,是关于的函数)
其他参数梯度下降方式与w11一样。
标签:lesson1,神经网络,x2,x3,x1,x4,神经元 From: https://blog.csdn.net/m0_58040765/article/details/145226639