线性回归:
target function:
f(x)=wx+bf(x)=wx+b
loss function:
最小二乘的角度:
min∑i=0N(yi−f(xi))2min∑i=0N(yi−f(xi))2
最大似然的角度:
max∏i=0N(12π−−√σe−(yi−f(xi))22σ2)max∏i=0N(12πσe−(yi−f(xi))22σ2)
=maxln{∏i=0N(12π−−√σe−(yi−f(xi))22σ2)}=maxln{∏i=0N(12πσe−(yi−f(xi))22σ2)}
=max∑i=0N{ln(12π−−√σ)+ln(e−(yi−f(xi))22σ2)}=max∑i=0N{ln(12πσ)+ln(e−(yi−f(xi))22σ2)}
=max∑i=0N{ln(12π−−√σ)+(−(yi−f(xi))22σ2)}=max∑i=0N{ln(12πσ)+(−(yi−f(xi))22σ2)}
=N∗ln(12π−−√σ)+max∑i=0N(−(yi−f(xi))22σ2)=N∗ln(12πσ)+max∑i=0N(−(yi−f(xi))22σ2)
=N∗ln(12π−−√σ)+N2σ2min∑i=0N(yi−f(xi))2=N∗ln(12πσ)+N2σ2min∑i=0N(yi−f(xi))2
N∗ln(12π√σ)N∗ln(12πσ)和N2σ2N2σ2都是常数,可以不看,最终的loss function化简结果为:
min∑i=0N(yi−f(xi))2min∑i=0N(yi−f(xi))2
无论是最小二乘法推导,还是从最大似然推导,得到的损失函数是相同的。
相同的原因在于:
最小二乘法遵循前提:yiyi存在误差,而误差的分布满足以f(x)f(x)为中心的正态分布。最小二乘:(yi−f(xi))2∝(yi−f(xi))2(yi−f(xi))2∝(yi−f(xi))2
最大似然:ln(12π√σe−(yi−f(xi))22σ2)∝(yi−f(xi))2ln(12πσe−(yi−f(xi))22σ2)∝(yi−f(xi))2PS:把max∏Ni=0(Pi)max∏i=0N(Pi)转换为maxln∏Ni=0(Pi)maxln∏i=0N(Pi)这一步想法很巧妙。
逻辑回归:
在线性回归中,我们target function用f(x)=wx+bf(x)=wx+b,是因为yiyi满足线性分布,yi⊆Ryi⊆R,但是当在解决一个二分类问题/二型分布时,yi⊆{0,1}yi⊆{0,1},就不能在用f(x)=wx+bf(x)=wx+b来进行拟合。因为得到的预估结果f(x)⊆Rf(x)⊆R,预估范围与目标范围不匹配,同时误差不好定义。
所以,引入了sigmod函数,用于对线性得到的结果进行一次映射:sigmod(x)=11+e−xsigmod(x)=11+e−x。sigmod导数:sigmod′(x)=singmod(x)∗[1−sigmod(x)]sigmod′(x)=singmod(x)∗[1−sigmod(x)]
所以我们定义target function:
g(f(x))=sigmod(f(x))=11+e−f(x)=11+e−wx−bg(f(x))=sigmod(f(x))=11+e−f(x)=11+e−wx−b
引入sigmod后解决了区间的问题,但是loss function的定义又是一个问题。最快想到的就是类似线性回归中类似定义loss function:
min∑i=0N[yi−g(f(xi))]2min∑i=0N[yi−g(f(xi))]2
这样定义其实是可以的,因为如果我们的预测准确性很高的话,lim(yi−g(xi))→0lim(yi−g(xi))→0,则∑Ni=0(yi−g(xi))2→0∑i=0N(yi−g(xi))2→0,loss function达到最小值。
以上定义的loss function的最优解满足我们的期望“误差最小”,但是我们在求解ww最优解的过程中会出现问题,我们一般是使用“梯度下降”的方式寻找最优解。但“梯度下降”能找到最优解的前提是“函数是凸函数”。很遗憾这个loss function并不满足,详情如下:
“梯度下降”即:不断进行运算,最终ww收敛到某个稳定值。此时我们认为loss function达到最小值。
进行一下模拟:
loss′(w)=∑i=0N2∗[yi−g(f(xi))]∗(−1)∗g(f(xi))∗[1−g(f(xi))]∗xiloss′(w)=∑i=0N2∗[yi−g(f(xi))]∗(−1)∗g(f(xi))∗[1−g(f(xi))]∗xi
loss′(w)=∑i=0N(−2xi)∗[yi−g(f(xi))]∗g(f(xi))∗[1−g(f(xi))]loss′(w)=∑i=0N(−2xi)∗[yi−g(f(xi))]∗g(f(xi))∗[1−g(f(xi))]
分类讨论:yi=0yi=0时,xixi对导数的贡献为:
loss′(w)=(−2xi)∗[0−g(f(xi))]∗g(f(xi))∗[1−g(f(xi))]loss′(w)=(−2xi)∗[0−g(f(xi))]∗g(f(xi))∗[1−g(f(xi))]
loss′(w)=2xi∗g(f(xi))2∗[1−g(f(xi))]loss′(w)=2xi∗g(f(xi))2∗[1−g(f(xi))]yi=1yi=1时,xixi对导数的贡献为:
loss′(w)=(−2xi)∗[1−g(f(xi))]∗g(f(xi))∗[1−g(f(xi))]loss′(w)=(−2xi)∗[1−g(f(xi))]∗g(f(xi))∗[1−g(f(xi))]
loss′(w)=(−2xi)∗g(f(xi))∗[1−g(f(xi))]2loss′(w)=(−2xi)∗g(f(xi))∗[1−g(f(xi))]2我们假设xi>0xi>0(不考虑xixi的影响)
以下讨论yi=0yi=0时的情况,yi=1yi=1的情况类似。不在讨论。
yi=0yi=0时,loss′(w)—g(f(x))loss′(w)—g(f(x)) 关系曲线大致如图:
![]()
loss′(w)—f(x)loss′(w)—f(x) 关系曲线大致如图:
![]()
基于loss′(w)__g(f(x))loss′(w)__g(f(x))的图像我们可以知道:yi=0yi=0时,g(f(x))g(f(x))的值越靠近1或者越靠近0时的变化越来越小。所以可以评估loss(w)__g(f(x))loss(w)__g(f(x))图像大致如下(同样假设yi=0yi=0):
现在考虑假设情况:
y0=0,g(x0)=0.98y0=0,g(x0)=0.98
y1=1,g(x1)=0.80y1=1,g(x1)=0.80
此时我们对ww进行梯度下降,
因为我们刚才讨论,g(f(x))在趋近于0或者1时导数越小,所以h0<h1h0<h1,也就是梯度下降方向:−loss′(w)=−g′w(x0)−(−g′w(x1))=h1−h0>0−loss′(w)=−gw′(x0)−(−gw′(x1))=h1−h0>0
我们发现梯度下降的方向是g′w(x1)gw′(x1)主导的,w正在朝着(−g′w(x1))(−gw′(x1))的方向变化,这将使得g(x1)g(x1)得到优化,但代价是进一步牺牲g(x0)g(x0)的准确性,因为ww正在朝着的反方向改变。
经过这样一步之后,可能结果变成:
y0=0,g(x0)=0.99y0=0,g(x0)=0.99
y1=1,g(x1)=0.84y1=1,g(x1)=0.84
更可怕的是梯度最终会稳定在−g′w(x0)=g′w(x1))−gw′(x0)=gw′(x1))的时候。此时结果大概为:
y0=0,g(x0)=0.9999y0=0,g(x0)=0.9999
y1=1,g(x1)=0.999y1=1,g(x1)=0.999
陷入了局部最优,失败。
分析一下错误的原因:
进行调节的过程中,每个数据xixi对loss′(w)loss′(w)的贡献值为([yi−g(f(xi))]2)′([yi−g(f(xi))]2)′,我们对ww的调节是将每个数据的贡献(也就是导数)相加,所以导数的(绝对值)大小可以理解为表征自己偏离正确答案的差距,应该做到预测结果越偏离真实值,导数的绝对值越大。
显然上文中的loss function的导数并不是这样。比如yi=0yi=0时,g(xi)=0.7g(xi)=0.7时的导数的绝对值大于g(xi)=0.9g(xi)=0.9处的导数的绝对值。说明loss function认为0.7处的改善比0.9处的改善更加迫切。当若干组数据提供的梯度方向不一致时,导数又错误的表述了该组数据“等待改变的迫切情况/偏离正确的程度”。最终导致梯度相加得到的结果是不准确的,收敛到局部最优。那么怎么可以避免这种情况呢。就是当导数是单调的时候
比如在yi=0时,loss′(w)__g(f(x))yi=0时,loss′(w)__g(f(x)) 关系曲线如下图:
以上图为例。
loss′(w)是单调的loss′(w)是单调的
⇒若g(f(x1))>g(f(x2)),则loss(x1)>loss(x2)⇒若g(f(x1))>g(f(x2)),则loss(x1)>loss(x2)
⇒loss(x1)+loss(x2)<2∗loss(x1+x22)⇒loss(x1)+loss(x2)<2∗loss(x1+x22)
⇒loss(w)是凸函数⇒loss(w)是凸函数
所以我们的loss function 要满足2个条件:1.g(f(xi))g(f(xi))越偏离yiyi时,loss(w)loss(w)值越大
2.g(f(xi))g(f(xi))越偏离yiyi时,loss′(w)loss′(w)绝对值越大,其实等价于要求loss(w)loss(w)是一个凸函数
所以我们给出新的loss function,定义其为:min∑i=0N[(1−yi)∗(−ln(1−g(f(xi))))+yi∗(−lng(f(xi)))]min∑i=0N[(1−yi)∗(−ln(1−g(f(xi))))+yi∗(−lng(f(xi)))]
此式的灵感由最大似然得到。
经过这样一个改进,在满足第一个条件的情况下,也让loss function满足了第二个条件。理由如下:yi=0yi=0时,xixi对loss function导数的贡献为:
loss′(w)=(−ln(1−g(f(xi))))′loss′(w)=(−ln(1−g(f(xi))))′
loss′(w)=(−1)∗11−g(f(xi))∗(−1)∗g′f(f(xi))∗fw(xi)loss′(w)=(−1)∗11−g(f(xi))∗(−1)∗gf′(f(xi))∗fw(xi)
loss′(w)=11−g(f(xi))∗g(f(xi))∗[1−g(f(xi))]∗xiloss′(w)=11−g(f(xi))∗g(f(xi))∗[1−g(f(xi))]∗xi
loss′(w)=g(f(xi))∗xiloss′(w)=g(f(xi))∗xi
loss′(w)__g(f(x))loss′(w)__g(f(x))是一个单调函数,且loss′(w)loss′(w)越远离0,靠近1,其绝对值越大,满足条件。yi=1yi=1时,xixi对loss function导数的贡献为:
loss′(w)=(−lng(f(xi)))′loss′(w)=(−lng(f(xi)))′
loss′(w)=(−1)∗1g(f(xi))∗g′f(f(xi))∗fw(xi)loss′(w)=(−1)∗1g(f(xi))∗gf′(f(xi))∗fw(xi)
loss′(w)=(−1)∗1g(f(xi))∗g(f(xi))∗[1−g(f(xi))]∗xiloss′(w)=(−1)∗1g(f(xi))∗g(f(xi))∗[1−g(f(xi))]∗xi
loss′(w)=[g(f(xi))−1]∗xiloss′(w)=[g(f(xi))−1]∗xi
loss′(w)__g(f(x))loss′(w)__g(f(x))是一个单调函数,且loss′(w)loss′(w)越远离1,靠近0,其绝对值越大,满足条件。
综上所述,该loss function满足两个条件,为凸函数。同时yi=0与yi=1yi=0与yi=1两种情况下,loss(w)__g(f(x))loss(w)__g(f(x)),loss′(w)__g(f(x))loss′(w)__g(f(x))两个图像左右对称,保证了不偏向0或者1中的某一个。
SUCCESS SUCCESS回过头我们在来评估下线性回归的loss function 为什么不会出现问题:
loss=min∑i=0N(yi−f(xi))2loss=min∑i=0N(yi−f(xi))2xixi对loss function导数的贡献为:
loss′(w)=2∗(yi−f(xi))∗(−xi)loss′(w)=2∗(yi−f(xi))∗(−xi)
可以看出如果f(xi)f(xi)与yiyi差越大的话,也就是如果给出的评估与实际结果偏差越远,则loss’(w)绝对值越大。满足条件。
总结整个流程就是:
1.寻找loss function目前没有什么很好很通用的方法,所以一般用梯度下降算法。
2.梯度的最终方向是将数据xixi的梯度相加,这就要求xixi的梯度要以全局考虑,taget(xi)taget(xi)越靠近yiyi,那xixi你的梯度就越小,把主导机会留给其他taget(xi)taget(xi)远离yiyi的数据。即|target(xi)−yi|↑,|∇loss(xi)|↑|target(xi)−yi|↑,|∇loss(xi)|↑
PS:如果你能找到一个寻找到全局最优解的方法,且这个方法没有“凸函数”之类的前提要求。你就可以在逻辑回归中使用min∑Ni=0[yi−g(f(xi))]2min∑i=0N[yi−g(f(xi))]2作为loss function。
本文深入探讨了线性回归和逻辑回归的核心概念,包括它们的目标函数、损失函数及其背后的数学原理。通过对比两种方法,解释了为何逻辑回归在处理二分类问题时采用特定的损失函数。
2377

被折叠的 条评论
为什么被折叠?



