本节课较轻松,将简单介绍一下Logistic regression的定义和原理。对于(linear regression)线性回归模型,y=xw+b,输入为x,网络参数为w和b,输出值为连续的y值。因为其连续,所以为regression。那么如何转化为分类问题呢?可以考虑将
增加σ函数,变为y=σ(xw+b)。这个σ也叫sigmoid函数或者叫logistic函数。这样输出的probability不再是连续的值,而是变为[0, 1](0到1的值),将该具体数值对应于probability。
对于Regression问题,其目标是使pred(预测值)等于输出的y值,方法是最小化差距。
但对于Classification来说,目标是提高正确率等,具体做法是对比model(模型)上给出x值所预测的y值和真实函数上代入x得到的y值,两者越接近越好。
因此两者最主要区别是training(训练)的目标的不同。
这里可能会有疑问,为何不直接maximize accuracy(最大化正确率)?
答案是一般acc的计算公式为:预测对的数量/总的数量
假设节点上的阈值为0.5,即便将正确率从0.4提升至0.45,但仍未达到阈值,无法更新梯度。或者当参数改变一点点时,正好达到阈值,使得acc得到巨大变化,从而造成梯度不连续、training及其不稳定的情况。
可能又有人会疑问为什么会叫logistic regression?
答案在于logistic使用了Sigmoid函数,而叫regression的原因在于使用MSE时,仍会希望预测值与实际值越接近越好,而cross entropy却是classification(分类)问题。
量
本文分享自 python pytorch AI机器学习实践 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!