秋招材料整理——LR

一、整体概述

LR假设数据服从伯努利分布(零一分布,二项分布),通过极大化似然函数的方法,运用梯度下降来求解参数,从而达到将数据二分类的目的。

  • 极大似然原理:
    • 简单理解:样本所展现的状态便是所有可能状态中出现概率最大的状态
    • 参数估计:调整参数使实验结果发生的概率最大,此时参数的取值即为所求
  • 为什么用极大似然函数?求解参数速度快,损失函数的更新速度只和数据有关,和sigmoid本身的梯度无关
  • 为什么不用平方损失?梯度更新速度和sigmoid本身梯度相关.sigmoid梯度<=0,25,慢

二、损失函数

损失函数:极大似然函数(对其取对数<=>对数损失函数)(h是Sigmoid函数)
c o s t ( h θ ( x ) , y ) = − ∑ i = 1 m y i l o g ( h θ ( x ) ) + ( 1 − y i l o g ( 1 − h θ ( x ) ) ) cost(h_θ(x),y)=-\sum_{i=1}^my_ilog(h_θ(x))+(1-y_ilog(1-h_θ(x))) cost(hθ(x),y)=i=1myilog(hθ(x))+(1yilog(1hθ(x)))

三、特征高度相关

  • 训练过程中,若很多特征高度相关,会造成怎样的影响?
    在损失函数最终收敛的情况下,不会影响分类器效果
  • 那为什么还会在训练过程中将高度相关的特征去掉?
    提高训练速度

四、处理非线性

LR是线性分类器吗,LR要处理非线性怎么办?
是线性
用K-means算出N个中心点,每一个类别的中心点只留少数几个,然后用核函数

五、为什么LR要使用Sigmod函数

忘了从哪个大神那看到的了,如果有谁知道,麻烦联系我加上链接,谢谢

  • 首先,LR假设两个类别的特征服从均值不等,方差相等的高斯分布,也就是
    p ( x ∣ y = 0 ) ∼ N ( μ 0 , σ ) p(x|y=0)∼N(μ_0,σ) p(xy=0)N(μ0,σ)
    p ( x ∣ y = 1 ) ∼ N ( μ 1 , σ ) p(x|y=1)∼N(μ_1,σ) p(xy=1)N(μ1,σ)
    为什么假设服从高斯分布?一方面是高斯分布比较容易处理,另一方面,从信息论的角度看,当均值和方差已知时,高斯分布是熵最大的分布,为什么要熵最大?因为最大熵的分布可以平摊风险,就好比不要把鸡蛋放到同一个篮子里。为什么假设方差相等?为了计算方便…
  • 定义风险:
    R ( y = 0 ∣ x ) = λ 00 P ( y = 0 ∣ x ) + λ 01 P ( y = 1 ∣ x ) R(y=0|x)=λ_{00}P(y=0|x)+λ_{01}P(y=1|x) R(y=0x)=λ00P(y=0x)+λ01P(y=1x)
    R ( y = 1 ∣ x ) = λ 10 P ( y = 0 ∣ x ) + λ 11 P ( y = 1 ∣ x ) R(y=1|x)=λ_{10}P(y=0|x)+λ_{11}P(y=1|x) R(y=1x)=λ10P(y=0x)+λ11P(y=1x)
    λ i j λ_{ij} λij是样本实际标签为j时,却把它预测为i是所带来的风险。
    我们认为,预测正确不会带来风险,因此
    λ 00 = λ 11 = 0 λ_{00}=λ_{11}=0 λ00=λ11=0
    又认为 λ 10 = λ 01 λ_{10}=λ_{01} λ10=λ01,记λ。
    所以,
    R ( y = 0 ∣ x ) = λ P ( y = 1 ∣ x ) R(y=0|x)=λP(y=1|x) R(y=0x)=λP(y=1x)
    R ( y = 1 ∣ x ) = λ P ( y = 0 ∣ x ) R(y=1|x)=λP(y=0|x) R(y=1x)=λP(y=0x)
  • 现在问题来了,我拿到一个样本,我应该把它预测为0还是预测为1好?
    按照风险最小化的原则,应该选择风险最小的,
    R ( y = 0 ∣ x ) &lt; R ( y = 1 ∣ x ) R(y=0|x)&lt;R(y=1|x) R(y=0x)<R(y=1x)时,预测为0的风险 < 预测为1的风险,
    P ( y = 1 ∣ x ) &lt; P ( y = 0 ∣ x ) P(y=1|x)&lt;P(y=0|x) P(y=1x)<P(y=0x)时,应该把样本预测为0,
    两边除一下,就会得到
    P ( y = 1 ∣ x ) P ( y = 0 ∣ x ) &lt; 1 \frac{P(y=1|x)}{P(y=0|x)}&lt;1 P(y=0x)P(y=1x)<1
    对不等式左边的部分取一下对数(为什么取对数?因为两个类别的特征服从均值不等,方差相等的高斯分布,取对数方便处理高斯分布里的指数),再利用贝叶斯公式进行展开,即得
    l o g P ( y = 1 ∣ x ) P ( y = 0 ∣ x ) = l o g P ( x , y = 1 ) P ( x , y = 0 ) = l o g P ( x │ y = 1 ) P ( y = 1 ) P ( x │ y = 0 ) P ( y = 0 ) = l o g P ( x │ y = 1 ) P ( x │ y = 0 ) + l o g P ( y = 1 ) P ( y = 0 ) log \frac{P(y=1|x)}{P(y=0|x)} =log \frac{P(x,y=1)}{P(x,y=0)} =log \frac{P(x│y=1)P(y=1)}{P(x│y=0)P(y=0)} =log \frac{P(x│y=1)}{P(x│y=0)}+log \frac{P(y=1)}{P(y=0)} logP(y=0x)P(y=1x)=logP(x,y=0)P(x,y=1)=logP(xy=0)P(y=0)P(xy=1)P(y=1)=logP(xy=0)P(xy=1)+logP(y=0)P(y=1)
    方便起见,假设x是一维的,套入高斯分布的公式,此外,由于 P ( y = 1 ) P(y=1) P(y=1) P ( y = 0 ) P(y=0) P(y=0)都是常数,第二项记为常数C1继续展开,将得到
    = − ( x − μ 1 ) 2 2 σ 2 + ( x − μ 0 ) 2 2 σ 2 + C 1 = μ 1 σ 2 x + μ 0 σ 2 x + C 2 = θ x = l o g P ( y = 1 ∣ x ) P ( y = 0 ∣ x ) =-\frac{(x-μ_1 )^2}{2σ^2}+\frac{(x-μ_0 )^2}{2σ^2}+C1=\frac{μ_1}{σ^2} x+\frac{μ_0}{σ^2}x+C2=θx=log \frac{P(y=1|x)}{P(y=0|x)} =2σ2(xμ1)2+2σ2(xμ0)2+C1=σ2μ1x+σ2μ0x+C2=θx=logP(y=0x)P(y=1x)
    P ( y = 1 ∣ x ) + P ( y = 0 ∣ x ) = 1 P(y=1|x)+P(y=0|x)=1 P(y=1x)+P(y=0x)=1,即可得到
    P ( y = 1 │ x ) = 1 / ( 1 + e − θ x ) P(y=1│x)= 1/(1+e^{-θx}) P(y=1x)=1/(1+eθx)
### 使用 Cosine Learning Rate 调度器 在 YOLOv8 中,Cosine Annealing 是一种常用的学习率调度策略,能够有效改善训练过程中的收敛性和最终模型性能。通过逐渐降低学习率并模拟余弦函数的变化趋势,该方法有助于优化算法更好地探索损失面。 为了在 YOLOv8 中启用 Cosine Learning Rate (CLR) 调度器,通常需要修改配置文件或命令行参数来指定 CLR 的设置[^1]: #### 配置方式一:通过 YAML 文件配置 如果使用的是预定义的配置文件,则可以在对应的 `.yaml` 文件中找到 `lr0`, `lrf` 参数以及可能存在的特定于 CLR 的选项,并按照如下方式进行调整: ```yaml # yolov8.yaml example snippet training: lr0: 0.01 # 初始学习率 lrf: 0.01 # 最终学习率因子, 结束时的学习率为初始学习率乘以此因子 scheduler: "cos" # 设置为 'cos' 表示采用余弦退火调度器 ``` #### 配置方式二:通过命令行传递参数 对于希望快速测试不同超参组合的情况,在启动训练脚本时可以通过命令行直接传入必要的参数: ```bash python train.py --data coco128.yaml --epochs 100 --batch-size 16 \ --lr0 0.01 --lrf 0.01 --scheduler cos ``` 上述两种方法均能有效地将 Cosine Learning Rate 应用于 YOLOv8 训练过程中,从而获得更好的泛化能力和更快的收敛速度。 此外,值得注意的是,虽然 ReduceOnPlateau 可以根据监测到的具体指标动态调整学习率,但在某些情况下,预先设定好的周期性变化模式如 CosineAnnealingLR 或者 OneCyclePolicy 等可能会带来更加稳定的训练效果[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值