(本文假设读者已经了解了线性回归的基本原理)
1.为什么要用激活函数
线性函数有很大的局限性,比如要拟合图中这根红线就无法只用线性函数做到,但可以用图中的几根蓝线+一个常量函数拟合, 但是图中的蓝线是无法用线性函数变换得到
但可以通过上图中的这条曲线近似,这个变化函数也就是常说的激活函数sigmoid
其中,参数w决定了函数的斜率,b决定了x轴方向位置,c决定了y方向的高度
接下来讲怎么由得到的表达式推出神经网络结构图
已知所有函数均可近似表达为上方的表达式,则从右往左看这个图,第一个+节点就是用来算b1+西格玛(wij+xj),之后再往左经过蓝色激活函数得以此计算,不断循环叠加计算得神经网络图
2.得到一次输出后计算损失函数,并不断调节这个图里的参数即可,方法是用小批量梯度下降更新参数,那为什么要用小批量呢?因为每次用所有样本计算梯度复杂度太高,故把样本n等分,每次计算用一份来更新
3. 为什么需要反向传播:一句话,为了求损失
这个式子表示一次训练的总损失等于所有样本损失和,也就是只要求c(总的损失)对w偏导即可
c对w的偏导=dc/dz *dz/dw( 第一项叫反向传播,第二项叫正向传播很好算)
而dc/dz=da/dz * dc/da,第一项是激活函数的导数,第二项需要根据后面的网络结构再算,由链式法则可得第二个式子,可见这个问题递归了
为了解决这个问题,可以反过来算一遍(按照红色箭头方向)根据链式法则依次记录下所有dc/dz的值,从而求出总的损失函数