反向传播思想
简单概括:
根据神经网络输出的答案与正确答案之间的误差(损失函数算的损失)不断调整网络的参数
调整的程度受学习率的制约 — >控制参数调整程度的大小
反向传播容易过拟合(训练data上表现很好,but 认不出新的数据)
===>提前停止策略(early stopping)
数据集划分为训练集和验证集
训练集用于调整参数,验证集用于估算误差。
===>如果训练集误差↓ 的同时验证集的误差在↑
–>代表网络开始过于适应训练集
–>结束训练
举例:
有函数:
y = w x + b y = wx+b y=wx+b
初始参数:
w = 0.8 , b = 0.2 w=0.8, b=0.2 w=0.8,b=0.2
损失函数L为:
L = 1 2 ( y − y g t ) 2 L = \frac{1}{2}(y - y_{gt})^2 L=21(y−ygt)2
ygt是y的真实值
假设ygt = 0.8, x=1.5
–》
则:
y = 0.8 * 1.5 + 0.2 = 1.4
此时L = (1.4-0.8)2 *1/2 = 0.18
那么此时如何更新参数w和b呢?
①算梯度:
算出L对参数w和L对参数b的偏导(即为梯度)
∂ L ∂ w , ∂ L ∂