机器学习之逻辑回归模型

1. 预备知识之极大似然估计(Maximum Likelihood Estimation, MLE)和交叉熵(Cross-Entropy)

1.1 极大似然估计(Maximum Likelihood Estimation, MLE)

极大似然估计是一种统计方法,用于估计参数使得观测数据出现的概率最大。也就是说通过调整参数使得目标概率最大,具体步骤如下:

假设我们有一组观测数据X =\left \{x_{1},x_{2},\cdot \cdot \cdot ,x_{n} \right \},以及一个参数向量 \theta,似然函数 L\left ( \theta \right )定义为参数 \theta 下观测数据 X出现的概率:

L\left ( \theta \right ) = P\left ( X \right|\theta )

通常为了简化计算,使用对数似然函数:

\vartheta (\theta ) = logL\left ( \theta \right )

然后求解使对数似然函数达到最大值的参数\theta,也就是让想得到的目标概率最大:

\theta \hat{} = argmax_{\theta }^{}\textrm{}\vartheta (\theta )

最后再通过求导并解方程来实现

1.2 交叉熵(Cross-Entropy)

交叉熵是信息论和机器学习中一种常用的损失函数,用于衡量两个概率分布之间的差异。常用于分类问题,特别是在逻辑回归和神经网络的训练中。其实说白了就是预测值和真实值之间的差异,公式为:

其中,P(x) 是真实值,Q(x)是预测值,x是种类 的个数。

如果x = 2 那么这就是一个二分类问题,标签值就是1或者0,那么我们便可以使用y代表真实值,逻辑回归模型的输出是一个概率值,假设表示类别为1的概率为y\hat{},那么交叉熵损失函数:

 当目标变量 y=1 时,损失函数变为-ylog(y\hat{}),当y = 0时,损失函数为:-log(1-y\hat{})

假设我们有一个二分类问题,真实标签 y=1,预测概率 y\hat{}=0.9,交叉熵损失为:

如果x 是多个值,也就是是多分类问题,真实标签 y 是一个one-hot编码的向量,即在第 i 类的位置为1,其他位置为0。预测值 y\hat{}是一个概率向量,其元素表示每个类别的概率那么损失函数为:

 假设我们有一个多分类问题,有3个类别,真实标签y = [0,1,0],预测概率y\hat{} = [0.1,0.7,0.2],交叉熵损失为:

 2. 逻辑回归模型

逻辑回归通常用于解决二分类问题,目的是估计某个事件发生的概率。是通过对输入变量的线性组合进行变换,逻辑回归模型的输出是一个介于0和1之间的概率值,表示事件发生的概率。这个概率值可以进一步转换为二分类标签(0或1):

  • 如果概率值大于某个阈值(通常为0.5),则预测为类别1。
  • 如果概率值小于等于该阈值,则预测为类别0。

逻辑回归首先将输入特征 X 转化为一个线性组合:

z = \beta _{0}+\beta _{1}x+\beta _{2}x+\cdot \cdot \cdot +\beta _{n}x

其中\beta是模型参数,x是输入特征。

将线性组合的结果通过 sigmoid 函数(或称 logistic 函数)进行映射,得到一个介于0和1之间的概率值:

\sigma =\frac{1}{1+e^{-z}}

这样就得到了事件发生的概率P(Y=1|X)

最后通过极大似然估计(MLE)来估计模型参数,使得预测结果与实际观测数据的匹配程度最大化。对数似然函数为

 通过最大化对数似然函数,找到最优参数 \beta

梯度下降法寻找最优解

首先计算梯度:\bigtriangledown \vartheta (\beta _{i}) = (y-y\hat{})\cdot x_{i}

然后计算更新参数:\beta _{i} \leftarrow \beta _{i} +\alpha \cdot \bigtriangledown \vartheta (\beta _{i})

其中\alpha是学习率

3. 计算示例

假设我们有一个简单的逻辑回归模型,只有一个输入特征x和一个样本(x_{1},y_{1}),其中x_{1} = 2,真实标签值y_{1} = 1,那么接下来使用交叉熵损失函数来训练模型。

初始化
  • 初始参数\beta _{0} = 0,\beta _{1} = 0
  • 学习率 \alpha = 0.1
第一次迭代

计算线性组合 z 和预测概率 y\hat{}

z = 0+0\times 2=0

y\hat{} = \frac{1}{1+e^{-0}}=0.5

计算交叉熵损失函数

L(y,y\hat{}) = -(y_{1}log(y\hat{})+(1-y_{1})log(1-y\hat{}))=-log0.5\approx 0.693

计算梯度

\bigtriangledown \vartheta (\beta_{1} ) = (y-y\hat{})\times x = (1-0.5)\times 2=1

对于 \beta _{0},因为它对应的是偏置项,不受 x 的影响,所以其梯度为(y-y\hat{}) = 0.5

更新参数

\beta _{0}\leftarrow \beta _{0}+\alpha \cdot 0.5 = 0+0.1\times 0.5=0.05

\beta _{1}\leftarrow \beta _{1}+\alpha \cdot 1 = 0+0.1\times 1=0.1

第二次迭代

计算新的线性组合 z 和预测概率 y\hat{}

z = 0.05+0.1x_{1}=0.05+0.1\times 2=0.25

y\hat{} = \frac{1}{1+e^{-0.25}}\approx 0.562

计算新的交叉熵损失函数

L(y,y\hat{}) = -(y_{1}log(y\hat{})+(1-y_{1})log(1-y\hat{}))=-log0.562\approx 0.576

计算新的梯度

\bigtriangledown \vartheta (\beta_{1} ) = (y-y\hat{})\times x = (1-0.562)\times 2=0.876

\bigtriangledown \vartheta (\beta_{0} ) = (y-y\hat{}) = (1-0.562)=0.438

更新参数

\beta _{0}\leftarrow \beta _{0}+\alpha \cdot 0.438 = 0.05+0.1\times 0.438=0.0938

\beta _{1}\leftarrow \beta _{1}+\alpha \cdot 1 = 0.1+0.1\times 0.876=0.1876

参数更新的作用是通过迭代优化,使模型在给定训练数据上的预测误差最小化。在逻辑回归中,梯度下降是一种常用的优化算法,它通过计算损失函数的梯度并更新参数,使得模型逐步逼近最优解。每次迭代更新参数后,模型对数据的拟合效果会逐渐提高,从而提高预测准确性。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值