【强化学习实战-06(3)】Loss function的理解和mini batch训练的理解

作者:刘兴禄,清华大学博士在读

这部分就是很久之前的一个整理,放过来有时候复习一下。

最重要的一点:

  • 优化问题的目标函数,就相当于机器学习或者深度学习中的loss function

这里有个隐藏的小常识,就是

min ⁡ ∑ i = 1 N ( y i − y i l a b e l ) 2 = min ⁡ ( y 1 − y 1 l a b e l ) 2 + min ⁡ ( y 2 − y 2 l a b e l ) 2 + ⋯ min ⁡ ( y N − y N l a b e l ) 2 = ∑ i = 1 N min ⁡ ( y i − y i l a b e l ) 2 \begin{aligned} \min & \sum_{i=1}^N{\left( y_i-y_{i}^{\mathrm{label}} \right) ^2} \\ &= \min \left( y_1-y_{1}^{\mathrm{label}} \right) ^2 + \min \left( y_2-y_{2}^{\mathrm{label}} \right) ^2 + \cdots \min \left( y_N-y_{N}^{\mathrm{label}} \right) ^2 \\ & = \sum_{i=1}^{N} \min \left( y_i-y_{i}^{\mathrm{label}} \right) ^2 \end{aligned} mini=1N(yiyilabel)2=min(y1y1label)2+min(y2y2label)2+min(yNyNlabel)2=i=1Nmin(yiyilabel)2
因此,在最优解的时候,每一个样本 i i i对应的 ( y i − y i l a b e l ) 2 \left( y_i-y_{i}^{\mathrm{label}} \right) ^2 (yiyilabel)2也会同时达到 min ⁡ \min min。这个也是随机梯度下降mini batch操作正确的原因。

batch_size是个超参数,需要用户自己调参。

机器学习: 全数据集学习一次,更新一次的情形

我们假设有下面一个 12 × 3 12 \times 3 12×3的训练数据集,其中每条数据 x i = ( a , b , c ) x_i = (a, b, c) xi=(a,b,c)也就是一行数据,有3个特征。

这数据是一个二分类问题的数据,因此标签(label)是 12 × 1 12 \times 1 12×1

在机器学习中,我们是想让神经网络预测飞常准,也就是们要让我们的预测值 y i y_i yi尽可能接近其label y i label y_i^{\text{label}} yilabel,因此我们最优化的目标就是 (之所以加平方,是因为如果是一次方,需要加绝对值。二次方则不用,因此方便求导)

min ⁡ ∑ i = 1 N ( y i − y i l a b e l ) 2 \min \sum_{i=1}^N{\left( y_i-y_{i}^{\mathrm{label}} \right) ^2} mini=1N(yiyilabel)2

在机器学习中,一般把这个目标函数称之为loss function,因此,在机器学习中,我们是叫

loss function = ∑ i = 1 N ( y i − y i l a b e l ) 2 \text{loss function} = \sum_{i=1}^N{\left( y_i-y_{i}^{\mathrm{label}} \right) ^2} loss function=i=1N(yiyilabel)2

所以这里需要注意:

  • 优化问题的目标函数,就相当于机器学习或者深度学习中的loss function

在这里插入图片描述
如上图所示,如果是最基本的情况,是我们将全数据集,也就是12个数据,依次喂给神经网络 (我们用 N e t ( θ ) Net(\theta) Net(θ)表示这个神经网络),然后得到12个输出,也就是得到12个预测值 y i , ∀ i = 1 , 2 , ⋯   , 12. y_i, \forall i = 1, 2, \cdots, 12. yi,i=1,2,,12. 最后,我们计算目标函数值,也就是loss,用表达式
loss function = ∑ i = 1 N ( y i − y i l a b e l ) 2 = 1.58 \text{loss function} = \sum_{i=1}^N{\left( y_i-y_{i}^{\mathrm{label}} \right) ^2} = 1.58 loss function=i=1N(yiyilabel)2=1.58
也就是说,在神经网络 N e t ( θ ) Net(\theta) Net(θ)的参数为 θ = θ 0 \theta = \theta_0 θ=θ0的时候,目标函数值为1.58.

接下来,我们要对目标函数 loss function = ∑ i = 1 N ( y i − y i l a b e l ) 2 \text{loss function} = \sum_{i=1}^N{\left( y_i-y_{i}^{\mathrm{label}} \right) ^2} loss function=i=1N(yiyilabel)2求导,这里就需要反向传播。

求导之后,我们要进行梯度下降更新神经网络 N e t ( θ ) Net(\theta) Net(θ)的参数为
θ 1 = θ 0 − α ∇ θ = θ 0 − α d(loss function) d θ = θ 0 − α d ( ∑ i = 1 N ( y i − y i l a b e l )

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值