当前位置:   article > 正文

【pytorch18】Logistic Regression

【pytorch18】Logistic Regression

回忆线性回归

  • for continuous:y = xw+b
  • for probability output:y=σ(xw+b)
    • σ:sigmoid or logistic

线性回归是简单的线性模型,输入是x,网络参数是w和b,输出是连续的y的值

如何把它转化为分类问题?加了sigmoid函数,输出的值不再是一个连续的实数范围,而是一个在[0,1]范围的值,等效于probability,因此可以理解为分类问题

二分类问题

  • interpret network as f : x → p ( y ∣ x ; θ ) f:x\to p(y|x; \theta) f:xp(yx;θ)
  • output∈[0,1]
  • which is exactly what logistic function comes in!

首先之前的线性回归模型,是x到一个y这样的映射,即 f : x → y f:x\rightarrow y f:xy

但是对于logistic regression(逻辑回归是分类问题)而言,是给x求y=1的这样的probability,θ的参数就是等于[w,b]这样的参数,所以输出的值就变成了0和1

两类问题的本质区别

  • For regression:

    • Goal:pred=y
    • Approach:minimize dist(pred,y)
  • For classification:

    • Goal:maximize benchmark,e.g. accuracy
    • Approach1:minimize d i s t ( p θ ( y ∣ x ) , p r ( y ∣ x ) ) \mathrm{dist}(p_\theta(y|x),p_r(y|x)) dist(pθ(yx),pr(yx))
    • Approach1:minimize d i v e r g e n c e ( p θ ( y ∣ x ) , p r ( y ∣ x ) ) divergence(p_{\theta}(y|x),p_{r}(y|x)) divergence(pθ(yx),pr(yx))

对于regression问题,预测值关注的是y,目标是预测的值要与真实值非常接近,方法也是minimize该差距

对于classfication问题,目标是accuracy或F1-score这种指标很高(例如准确率),做法并不需要直接优化accuracy,这一点是classification问题与regression最本质的区别,会用一个general proxy objective(如两个分布的边界或差异,这是一些数学的概念,还可以用cross entropy)

从概念上来说,给出x对y的一个probability,θ参数上给出一个probability和真实给定x得到y的probability,r是real的意思,就是真实的probability,希望这两个分布越近越好

即最终要测试的目标和训练的目标其实是不一样的

为什么训练的目标和测试的目标的目标是不一样的?

也就是说为什么不能直接的maximize accuracy
在这里插入图片描述
直接maximize accuracy会有两个问题,accuracy是预测对的数量 / 总的数量(例如有5个数字,预测对了3个accuracy就是3/5=60%)

第一种情况:
一个二分类问题中模型权重调整对准确率没有影响的情况。让我们逐步分析这个问题:

  1. 阈值决策: 在二分类问题中,模型的输出通常通过一个阈值来转换为类别标签。如果预测概率小于或等于0.5,模型预测为类别0;如果大于0.5,预测为类别1。
  2. 权重调整: 通过调整模型权重 本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/816623
推荐阅读
相关标签