Table of contents
4-“损失函数”是如何设计出来的?直观理解“最小二乘法”和“极大似然估计法”
损失函数
- 定量衡量两个概率模型的差异
- 三种方法:
- 最小二乘法
- 极大似然
- 交叉熵
最小二乘法
-
直接比较判断结果。
min $\sum_{i=1}^n (x_i - y_i)^2$
-
人脑中的概率模型无法准确说出,而神经网络的概率模型蕴藏在参数里面,没有统一的表达?只能从结果入手。
-
将每次人的判断结果 $x_i$ (1/0) 与 神经网络的判断结果 $y_i$ (45%:1, 55%:0) 的误差 $|x_i -y_i|$ 求和取最小,从而保证在结果上看是最接近的。
$$ min \sum_{i=1}^n |x_i - y_i| $$因绝对值在定义域上不是全程可导的,求平方不影响 x 和 y 的大小关系,而且全程可导,加1/2是为了求导方便。
-
用最小二乘法作为损失函数,使用梯度下降法很麻烦…
极大似然
-
对于已发生的现实事件,有很多概率模型都能导致这个情况发生,取似然值最大的那个概率模型作为最“真实的”概率模型。
-
由于噪声的存在,现实世界中的概率模型偏移了理想世界中的模型,由于理想世界与现实世界之间有次元壁,无法直接知道理想世界中真实的概率模型,所以只能从现实世界反推,估计出一个概率模型,它使该现实事件发生的可能性最大。
比如掷10次硬币的结果是7次正面,3次反面。有3种概率模型:
概率统计模型 θ 正面 反面 1 0.1 0.9 2 0.7 0.3 3 0.8 0.2 这三种概率模型都可以掷出7次正面,3次反面。不过第2种概率模型掷出7正3反的概率(似然值)最大,所以认为第2种是最接近“真实的”概率模型。
$$ P(C₁, C₂, C₃, ..., C_10 | \theta) = \prod_{i=1}^{10} P(C_i | \theta) $$ -
似然值:用可能导致现实事件发生的概率模型,计算出来的这种情况发生的概率值.
-
用已经标注好的 n 张图片(硬币正反)去训练神经网络,神经网络的概率模型 (𝐖, 𝐛) 产生出这n张图片的概率就是模型的似然值:
$$ \begin{aligned} &P(x_1, x_2, x_3, ..., x_n | \mathbf {W,b}) \\\ &= \prod_{i=1}^n P(x_i | \mathbf{W,b}) & \text{$x_i \in \{0,1\}$,表示"是猫","不是猫"}\\\ &= \prod_{i=1}^n P(x_i | y_i) & \text{𝐖,𝐛决定了模型(给出的"是猫的概率"$y_i$}) \\\ &= \prod_{i=1}^n y_i^{x_i} (1-y_i)^{1-{x_i}} &\text{采样服从0-1分布: $P=\begin{cases} y_i, & x=1是猫 \\\\ 1-y_i, & x=0不是猫\end{cases}$} \end{aligned} $$比如有7张是猫,3张不是猫,并假设神经网络在 𝐖,𝐛 的参数下,判断是猫的概率是 45%,不是猫的概率是 55%。那么此模型的似然值=$(0.45)^7 (0.55)^3$
连乘变连加:
$$ \begin{aligned} &log \left( \prod_{i=1}^n y_i^{x_i} (1-y_i)^{1-x_i} \right) \\\ &= \sum_{i=1}^n log(y_i^{x_i} (1-y_i)^{1-x_i}) \\\ &= \sum_{i=1}^n (x_i ⋅ log y_i + (1-x_i) ⋅ log(1-y_i)) \end{aligned} $$当似然值达到最大的时候,就是最接近人脑的模型。
极大似然估计:$max \sum_{i=1}^n (x_i ⋅ log y_i + (1-x_i) ⋅ log(1-y_i))$
习惯求极小:$min - \sum_{i=1}^n (x_i ⋅ log y_i + (1-x_i) ⋅ log(1-y_i))$
x 是训练数据(从真实分布中采样得到的),有自己的分布(目标分布),希望模型输出的标签与输入的标签分布一致,所以 “让学习到的分布产生输入数据的概率最大
∑log P(输入数据 | learned分布)” 与 “最小化两分布差异∑ P(目标分布) log(P(learned分布))” 等价,也就是极大似然与交叉熵等价。