参数估计方法
定义:
参数估计过程中,我们的目的是找到一组参数值, 使得目标函数达到最优(如最小或最大)。
tips: 损失函数是目标函数的一种常见形式。 很多情况下,优化目标函数主要就是通过最小化损失函数来实现的。
参数估计的方法有:
最优化理论(最大似然估计、最小化损失函数(最小二乘法、梯度下降法)) 、贝叶斯估计、矩估计
以上 也说明了 参数估计 与最小化损失函数 的关系.
一、最优化理论
1.1 最大似然估计
通过最大似然估计(MLE)或其他优化算法来估计模型的参数 θ而不是最小化平方差.
可以 通过 梯度上升法 实现最大似然估计, 帮助找到 使得似然最大的 参数组合.
另外用于 最大似然估计的方法还有:
- 牛顿法: 利用目标函数的 一阶导数和二阶导数来更新参数。
- 拟牛顿法:是对牛顿法的改进,避免了计算二阶导数。
- 期望最大化(EM)算法:在一些含有隐变量的模型中经常使用。
这里重点介绍 梯度上升法:
1.1.1 梯度上升法
基于的思想:要找到某函数的最大值,最好的方法是沿着该函数的梯度方向探寻。
tips: 关于梯度的概念, 梯度是多元函数在某一点的导数,是一个向量, 其各个分量分别是函数对各个自变量的偏导数。
1 | 梯度是多元函数在某一点的导数,是一个向量,其各个分量分别是函数对各个自变量的偏导数 |
1. 梯度上升的迭代
迭代公式如下:
$ \mathbf{w}^{(t+1)} = \mathbf{w}^{(t)} + \eta \nabla f(\mathbf{w}^{(t)}) $
其中:
- $\mathbf{w}^{(t+1)}$ 是第 $t$ 次迭代后的参数向量
- $\eta$ 是学习率,控制每次迭代中参数更新的步长
- $f(\mathbf{w}^{(t)})$ 是目标函数$f$在参数向量 $\mathbf{w}^{(t)}$ 处的梯度向量
该公式将一直被迭代执行,直到达到某个停止条件为止,比如迭代次数达到某个指定值 或者算法达到某个可以允许的误差范围.
2. 训练算法:逻辑回归
使用梯度上升找到最佳参数
逻辑回归假设输出$y$是二分类问题。 对于给定的输入特征 $\mathbf{x}$ ,逻辑回归模型的输出 $ \hat{y}$ 由一下逻辑函数给出:
$ \hat{y} = \sigma(\mathbf{w}^\top \mathbf{x} + b) = \frac{1}{1 + e^{-(\mathbf{w}^\top \mathbf{x} + b)}} $
- 损失函数
逻辑回归使用交叉熵损失函数来衡量预测值 $\hat{y}$ 与真实标签 $y$ 之间的差异:
$\mathcal{L}(\mathbf{w}, b) = - \frac{1}{N} \sum_{i=1}^N \left[ y^{(i)} \log \hat{y}^{(i)} + (1 - y^{(i)}) \log (1 - \hat{y}^{(i)}) \right]$
其中:- $N$ 是训练样本数量
- $y^{(i)} = \sigma(\mathbf{w}^\top \mathbf{x^{(i)}} + b)$ 是对样本 $i$ 的预测概率
- $y^{(i)}$ 是样本 $i$ 的真实标签
- 梯度上升优化过程
梯度上升法用于最大化对数似然函数 $ \ell(\mathbf{w}, b) = \sum_{i=1}^N \left[ y^{(i)} \log \hat{y}^{(i)} + (1 - y^{(i)}) \log (1 - \hat{y}^{(i)}) \right] $
即使得损失函数 $ \mathcal{L}(w, b) $ 最小化。
梯度上升法的步骤如下:- (1)初始化参数:随机初始化权重$\mathbf{w}$和偏置$b$
- (2)计算梯度: 计算损失函数对参数 $\mathbf{w}$和$b$ 的梯度
对于权重 $\mathbf{w}$ 的梯度: $ \frac{\partial \mathcal{L}}{\partial \mathbf{w}} = \frac{1}{N} \sum_{i=1}^N (\hat{y}^{(i)} - y^{(i)}) \mathbf{x}^{(i)} $
对于偏置 b 的梯度:$ \frac{\partial \mathcal{L}}{\partial b} = \frac{1}{N} \sum_{i=1}^N (\hat{y}^{(i)} - y^{(i)}) $ - (3)参数更新:根据梯度方向和学习率 $\eta$,更新参数 $\mathbf{w}$和$b$
$ \mathbf{w} := \mathbf{w} + \eta \frac{\partial \mathcal{L}}{\partial \mathbf{w}} $
$ b:= b + \eta \frac{\partial \mathcal{L}}{\partial b} $ - (4) 重复迭代:重复步骤2和步骤3,直到损失函数收敛或达到预定的迭代次数
理解 梯度上升、 最大似然估计(似然函数)、 损失函数的关系:
- 逻辑回归中 通过 最大化似然函数(假设观测数据服从伯努利分布) 来估计参数
- 而 最大化的方法 是通过 梯度上升法
- 梯度上升 是通过 计算损失函数 $\mathcal{L}(\mathbf{w}, b)$ 对参数 $\mathbf{w}$和$b$ 的梯度来更新参数.
梯度上升 只是定义了 迭代的方法(看迭代公式) . 而损失函数 的梯度用来计算 更新方向和大小,从而逐步优化.
损失函数的梯度被用来计算参数的更新方向和大小,从而逐步优化模型的参数以最小化或最大化损失函数的值。
逻辑回归中, 损失函数是怎么来的??
通过最大化对数似然函数(log-likelihood)得到的, 推导过程:
(重要)在统计推断中,通过最大化对数似然函数来估计参数是常用的方法。对于逻辑回归,我们实际上是最大化对数似然函数的负数的相反数,即最小化负对数似然函数(Negative Log-Likelihood):
$\mathcal{L}(\mathbf{w}, b) = - \frac{1}{N} \sum_{i=1}^N \left[ y^{(i)} \log \hat{y}^{(i)} + (1 - y^{(i)}) \log (1 - \hat{y}^{(i)}) \right]$
这个负对数似然函数就是逻辑回归中常用的损失函数,用于衡量模型预测值与真实标签之间的差异。
损失函数是 对数似然函数的负数除以样本数.
1.2 最小化损失函数
1.2.1 最小二乘法
1.2.2 梯度下降法
二、贝叶斯估计
三、矩估计
关于目标函数和损失函数
损失函数是目标函数的一种常见形式。 很多情况下,优化目标函数主要就是通过最小化损失函数来实现的。
假设我们训练 图像分类模型, 目标函数 除了考虑分类错误的损失(损失函数部分), 还可能考虑模型的复杂度,如参数的数量或某些正则化项, 以避免过拟合吗,这就是损失之外的其它因素。
包含约束条件的例子: 比如在资源分配问题中,目标函数可能是 最大化总收益, 但同时有约束条件如每个资源的分配量不能超过其上限,或者总资源使用量不能超过某个固定值等。