赞
踩
“损失函数”是如何设计出来的?直观理解“最小二乘法”和“极大似然估计法”
梯度下降法中的梯度指的是损失函数的梯度,设计损失函数有三种方法:最小二乘法,极大似然估计和交叉熵。
你有你判断的标准,神经网络也有它的标准,但是二者都无法用一个统一的表达式表述出来。于是乎可以通过比较来判断,两个标准一比就会有偏差,这个偏差越小就说明两者越接近。神经网络通过这个偏差进行调整和学习,就是训练。你已经打好标签的数据,就是训练用的数据。
损失函数:你的标准和神经网络的标准相差量的定量表达。
为什么损失函数可以写成下面这样?这背后的含义是什么?
比较两个模型差距有多少的三种思路:最小二乘法,极大似然估计和交叉熵。
这里的连加不重要,神经网络里面是一张图片一张图片的判断所以不累加,两者本质上没有差别。二乘表示平方,乘1/2是为了后面求导方便,平方也是为了求导,如果直接写绝对值不利于求导。如果用它作为梯度下降法的损失函数比较麻烦,不建议适用。
似然:概率的反向应用。
考虑一个理念世界和一个现实世界。
在理念世界里有一个概率分布,只有两种情况正或反,概率都是0.5。对应现实世界就是抛硬币,抛十次硬币,5次正,5次反。
理念世界会指导现实世界。
如果我们已经确定了硬币的概率分布,即正负概率均是0,5,那么抛硬币的理想结果就是抛十次硬币,5次正,5次反。
从现实世界也能对理想世界进行反推。
如果我们抛十次硬币,5次正,5次反,那么可以推测理想世界的概率分布在理想情况下是正负概率均是0,5。
显然情况不是这么理想。
假设抛硬币本来的概率模型是正0.1,反面0.9,在现实世界抛出这样的概率模型的概率有多大?概率模型确定了,真实情况也确定了,这个可能性是可以算出来的。当
θ
\theta
θ确定时,即概率模型确定时,
C
C
C事件的同时发生的概率。
注意,这个结果并不是真实情况。只是假设这样硬币的概率模型,在这个概率模型的情况下可能性是这么大。虽然也叫可能性,但是和我们平常说的概率是有区别的,它是从现实世界反推回来的,这个可能性就是似然值。即真实的情况已经发生,假设我们有很多模型,选择一个模型,在这个模型下发生真实情况的可能性。很明显,虽然我们没有办法百分百确定真实情况是哪个模型,但是从里面选取最大值,就能说明两种最匹配。当我们知道事情发生的结果,去反推这个结果的概率模型的时候,往往就会用到最大似然估计。
在我们训练神经网络的时候,给出一个个图片是不是就很像抛出的一个个硬币,极大似然估计本质上就是在计算神经网络里面概率模型的似然值,找到哪个最大的似然值,这个就是最接近现实情况的哪个概率模型。
现实:硬币落在地面。
现实:人的判断。
例子:猫
“猫神”:猫的标准概率模型
“人脑”:知道猫的标准概率模型,假如是一个高斯分布。
神经网络:训练出来识别猫的模型与标准模型存在偏差,需要不断调整参数,高斯分布的参数有均值和方差,在神经网络里面可以通过权重和偏置表示。
回到极大似然估计法,这里的
x
i
x_i
xi表示对于每个图片识别是猫还是不是猫,即真实世界的情况,
W
,
b
W,b
W,b表示理念世界给的概率模型,去计算在这个概率模型下出现真实情况的概率有多大。
我们可以写成连乘的形式,每个
x
i
x_i
xi是独立同分布的,不会影响彼此。
由于
W
,
b
W,b
W,b在神经网络中是确定值,神经网络中
y
i
y_i
yi可以通过
W
,
b
W,b
W,b得到,所以用
y
i
y_i
yi代替
W
,
b
W,b
W,b,作为神经网络训练的概率模型。
这里可以理解为空中旋转的硬币,
y
i
y_i
yi表示猜测是猫的概率,硬币落下后的值为
x
i
x_i
xi。其中
x
i
x_i
xi只有0或1两个值,可以看出这是符合伯努利分布的,概率分布表达式为下面的
f
(
x
)
f(x)
f(x),下面的
p
p
p代表
x
i
x_i
xi为1的概率,神经网络计算的概率模型
y
i
y_i
yi就是下面的
p
p
p。
由此我们可以写成下面这样的形式。
两边同时取对数不影响函数的单调性,取对数是为了把连乘变成连加,进行化简。
最后的形式和交叉熵很像,但这个公式确实是通过极大似然估计推出来的。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。