【机器学习】一题看懂反向传播与梯度下降

一题看懂反向传播与梯度下降

接下来一段时间可能会好好看一下机器学习了,加油鸭(ง •_•)ง

从PayPal的一道填空题说起

今天刷牛客,看到了如下一道题:

以神经网络使用了如下结构:输入层有三个节点,隐藏层有一层且有两个节点,输出层有一个节点。隐藏层使用relu作为输出函数,输出层的损失函数为12(yy^)2\frac{1}{2}(y-\hat{y})^2,其中yy是真实值,y^\hat{y}是预测值。

输入层到隐藏层的第一个节点中,参数为[1,1,1][1,1,1],截距为0.10.1;到第一个节点中,参数为[1,1,1][-1,-1,-1],截距为0.10.1

隐藏层到输出层的参数为[1,1][1,1],截距为0.10.1

请问:

  1. 对于输入[0.3,0.2,0.4][0.3,0.2,0.4],其预测结果为 (1) ?
  2. 在反向传播中,假设学习率为0.10.1,且真实值为1.01.0,在该轮BP后,使用梯度下降去更新参数,请问一下参数会被更新为:隐藏层到输出层的参数[(2),(3)][ (2) , (3) ],截距 (4) 。

梯度下降

想象一个被随机放在群山中的登山者,在一个看不见前路的黑夜,在对地形一无所知的情况下,他如何最快速的从所在位置找到其能找到的最低点呢?

答案是,从所在位置朝下降坡度最大的方向迈步,每迈出一步,判断一下当前位置下降坡度最大的方向,并迈出下一步,直至到达不存在下降坡度的地方。

【机器学习】一题看懂反向传播与梯度下降

回到当前的问题,这里的山就是损失函数,登山者就是模型中的参数,随机放入山中指的是,参数初始为随机值。

找到最低点就是找到最小的损失函数,而登山者的迈步就是不断修改参数值,对任意参数ww
wn+1=wnΔww^{n+1} =w^n-\Delta w
而寻找最大的下降坡度就是计算函数相对于某个参数的梯度,向梯度下降最为明显的方向移动,以前面含两个参数的损失函数为例,对于第n次计算
wn+1=wnηLww=wnw^{n+1} =w^n-\eta\frac{\partial L}{\partial w}|_{w=w^n}
bn+1=bnηLbb=bnb^{n+1} =b^n-\eta\frac{\partial L}{\partial b}|_{b=b^n}
公式中的η\eta为学习率(learning rate)。

反向传播算法