属于机器学习中的监督学习,主要用来解决二分类问题。
通过给定的n组数据(训练集)来训练模型,并在训练结束后对给定的一组或多组数据(测试集)进行分类。其中每一组数据都是由p 个指标构成。
逻辑回归是用来分类的。例如,我们给出一个人的 [身高,体重] 这两个指标,然后判断这个人是属于”胖“还是”瘦“这一类。对于这个问题,我们可以先测量n个人的身高、体重以及对应的指标”胖“,"瘦”,把胖和瘦分别用0和1来表示,把这n组数据输入模型进行训练。训练之后再把待分类的一个人的身高、体重输入模型中,看这个人是属于“胖”还是“瘦”。
从本质上来说,逻辑回归训练后的模型是平面的一条直线(p=2),或是平面(p=3),超平面(p>3)。并且这条线或平面把空间中的散点分成两半,属于同一类的数据大多数分布在曲线或平面的同一侧。
处理二分类问题,其中一类标签为0,另一类为1。我们需要一个函数,对于输入的每一组数据 x ( i ) x^{(i)} x(i),都能映射成0~1之间的数,并且如果函数值大于0.5,就判定属于1,否则属于0。
函数中需要待定参数,通过利用样本训练,使得这个参数能够对训练集中的数据有很准确的预测。这个函数就是sigmoid函数
σ ( x ) = 1 1 + e − x \sigma(x) = \frac{1}{1+e^{-x}} σ(x)=1+e−x1
在这里我们设函数为
h ( x i ) = 1 1 + e − ( w T x i + b ) h(x^i) = \frac{1}{1+e^{-(w^Tx^i+b)}} h(xi)=1+e−(wTxi+b)1
这里 x i x^i xi是测试集第i个数据,是p维列向量 ( x 1 i x 2 i … x p i ) T (x_1^i\quad x^i_2\quad \dots \quad x^i_p)^T (x1ix2i…xpi)T
w w w是p维列向量, ( w 1 w 2 … w p ) T (w_1\quad w_2\quad \dots \quad w_p)^T (w1w2…wp)T,为待求参数
b是一个数,也是待求参数
对于 w T x + b w^Tx+b wTx+b,其结果是 w 1 x 1 + w 2 x 2 + ⋯ + w p x p + b w_1x_1+w_2x_2+\dots+w_px_p+b w1x1+w2x2+⋯+wpxp+b
所以把 w w w写成 ( w 1 w 2 … w p b ) T (w_1\quad w_2\quad \dots \quad w_p\quad b)^T (w1w2…wpb)T, x i x^i xi写成 ( x 1 i x 2 i … x p i 1 ) T (x_1^i\quad x^i_2\quad \dots \quad x^i_p\quad 1)^T (x1ix2i…xpi1)T, w T x + b w^Tx+b wTx+b就可以写成 w T + x w^T+x wT+x,则最终预测函数为:
h ( x i ) = 1 1 + e − w T x i h(x^i) = \frac{1}{1+e^{-w^Tx^i}} h(xi)=1+e−wTxi1
思想是,一个事件发生了,那么发生这个事件的概率就是最大的。
对于样本i,其类别为 y i ∈ ( 0 , 1 ) y_i\in(0,1) yi∈(0,1)。对于样本i,可以把 h ( x i ) h(x_i) h(xi)看成一种概率。 y i y_i yi对应是1是,概率是 h ( x i ) h(x_i) h(xi),即 x i x_i xi属于1的可能性; y i y_i yi对应是0时,概率是 1 − h ( x i ) 1-h(x_i) 1−h(xi),即 x i x_i xi属于0的可能性。构造极大似然函数:
∏ i = 1 i = k h ( x i ) ∏ i = k + 1 n ( 1 − h ( x i ) ) \prod_{i=1}^{i=k}h(x_i)\prod^n_{i=k+1}(1-h(x_i)) i=1∏i=kh(xi)i=k+1∏n(1−h(xi))
其中i从0到k是属于类别1的个数k,从k+1到n是属于类别0的个数n-k。由于y是标签0或1,所以上式也可以写成:
∏ i = 1 n h ( x i ) y i ( 1 − h ( x i ) ) 1 − y i \prod^n_{i=1}h(x_i)^{y_i}(1-h(x_i))^{1-y_i} i=1∏nh(xi)yi(1−h(xi))1−yi
为了方便我们对式子取对数。因为是求式子的最大值,所以转换成式子乘负1然后求最小值。可得:
− ∑ i = 1 n y i l n ( h ( x i ) ) − ( 1 − y i ) l n ( 1 − h ( x i ) ) -\sum^n_{i=1}y_i ln(h(x_i))-(1-y_i)ln(1-h(x_i)) −i=1∑nyiln(h(xi))−(1−yi)ln(1−h(xi))
同时对于n个数据,累加后值会很大,之后如果用梯度下降容易导致梯度爆炸,所以除以样本总数n,得到的为损失函数:
L ( w ) = 1 n ( ∑ i = 1 n − y i l n ( h ( x i ) ) − ( 1 − y i ) l n ( 1 − h ( x i ) ) ) L(w) = \frac{1}{n}\Big(\sum^n_{i=1}-y_i ln(h(x_i))-(1-y_i)ln(1-h(x_i))\Big) L(w)=n1(i=1∑n−yiln(h(xi))−(1−yi)ln(1−h(xi)))
损失函数是参数 w w w的函数
总的损失函数可以用来评价模型的好坏,损失函数越小越说明模型和参数越符合训练样本。
即求损失函数的导数
L ( w ) = 1 n ( ∑ i = 1 n − y i l n ( h ( x i ) ) − ( 1 − y i ) l n ( 1 − h ( x i ) ) ) L(w) = \frac{1}{n}(\sum^n_{i=1}-y_i ln(h(x_i))-(1-y_i)ln(1-h(x_i))) L(w)=n1(i=1∑n−yiln(h(xi))−(1−yi)ln(1−h(xi)))
∂ L ( w ) ∂ w = 1 n ( ∑ i = 1 n ( − y i 1 h ( x i ) ⋅ ∂ h ( x i ) ∂ w ) + ( 1 − y i ) 1 1 − h ( x i ) ⋅ ∂ h ( x i ) ∂ w ) \frac{\partial L(w)}{\partial w} = \frac{1}{n}(\sum^n_{i=1}(-y_i\frac{1}{h(x_i)}\cdot\frac{\partial h(x_i)}{\partial w})+(1-y_i)\frac{1}{1-h(x_i)}\cdot\frac{\partial h(x_i)}{\partial w}) ∂w∂L(w)=n1(i=1∑n(−yih(xi)1⋅∂w∂h(xi))+(1−yi)1−h(xi)1⋅∂w∂h(xi))
记: σ ( x ) = 1 1 + e − x 记:\sigma(x) = \frac{1}{1+e^{-x}} 记:σ(x)=1+e−x1
σ ( w T ) = 1 1 + e − w T x = h ( x ) \sigma(w^T) =\frac{1}{1+e^{-w^Tx}} = h(x) σ(wT)=1+e−wTx1=h(x)
σ ′ ( x ) = σ ( x ) ( 1 − σ ( x ) ) \sigma'(x) = \sigma(x)(1-\sigma(x)) σ′(x)=σ(x)(1−σ(x))
∂ h ( x i ) ∂ w = ∂ 1 1 + e − w x i ∂ w = ∂ ( σ ( w T x i ) ) ∂ w T x i = σ ( w T x ) ( 1 − σ ( w T x ) ) ⋅ ∂ w T x i ∂ w = σ ( w T x ) ( 1 − σ ( w T x ) ) x i \begin{split} \frac{\partial h(x_i)}{\partial w} &= \frac{\partial{\frac{1}{1+e^{-wx_i}}}}{\partial w} = \frac{\partial(\sigma (w^Tx_i))}{\partial w^Tx_i}\\ &=\sigma(w^Tx)(1-\sigma(w^Tx))\cdot \frac{\partial w^Tx_i}{\partial w}\\ &=\sigma(w^Tx)(1-\sigma(w^Tx))x_i \end{split} ∂w∂h(xi)=∂w∂1+e−wxi1=∂wTxi∂(σ(wTxi))=σ(wTx)(1−σ(wTx))⋅∂w∂wTxi=σ(wTx)(1−σ(wTx))xi
d ( t r ( w T x ) ) = t r ( d w T ) = t r ( x ⋅ d w T ) ⇒ ∂ w T x ∂ w = x 对上一步求导的解释 \begin{aligned} d(tr(w^Tx))&=tr(dw^T)\\ &=tr(x\cdot dw^T)\\ &\Rightarrow \frac{\partial w^Tx}{\partial w} = x \quad\text{对上一步求导的解释} \end{aligned} d(tr(wTx))=tr(dwT)=tr(x⋅dwT)⇒∂w∂wTx=x对上一步求导的解释
∂ L ( w ) ∂ w = 1 n ( ∑ i = 1 n − y i 1 σ ( w T x ) σ ( w T x ) ( 1 − σ ( w T x ) x i ) + ( 1 − y i ) 1 σ ( w T x ) ⋅ σ ( w T x ) ( 1 − σ ( w T x ) ) x i ) = 1 n ( ∑ i = 1 n − y i ( 1 − σ ( w T x i ) ) x i + y ( 1 − y i ) σ ( w T x i ) x i ) = 1 n ( ∑ i = 1 n − y i x x + y i σ ( w T x i ) x i − y i σ ( w T x i ) x i + σ ( w T x i ) x i ) = 1 n ( ∑ i = 1 n − y i x i + σ ( w T x i ) x i ) = 1 n ( ∑ i = 1 n ( σ ( w T x i ) − y i ) x i ) \begin{aligned} \frac{\partial L(w)}{\partial w} &= \frac{1}{n}\bigg(\sum^n_{i=1}-y_i\frac{1}{\sigma(w^Tx)}\sigma(w^Tx)(1-\sigma(w^Tx)x_i) + (1-y_i)\frac{1}{\sigma(w^Tx)}\cdot\sigma(w^Tx)(1-\sigma(w^Tx))x_i\bigg)\\ &=\frac{1}{n}\bigg(\sum^n_{i=1}-y_i(1-\sigma(w^Tx_i))x_i+y(1-y_i)\sigma(w^Tx_i)x_i\bigg)\\ &=\frac{1}{n}\bigg(\sum^n_{i=1}-y_ix_x+y_i\sigma(w^Tx_i)x_i-y_i\sigma(w^Tx_i)x_i + \sigma(w^Tx_i)x_i\bigg)\\ &=\frac{1}{n}\bigg(\sum^n_{i=1}-y_ix_i+\sigma(w^Tx_i)x_i\bigg)\\ &=\frac{1}{n}\bigg(\sum^n_{i=1}(\sigma(w^Tx_i)-y_i)x_i\bigg) \end{aligned} ∂w∂L(w)=n1(i=1∑n−yiσ(wTx)1σ(wTx)(1−σ(wTx)xi)+(1−yi)σ(wTx)1⋅σ(wTx)(1−σ(wTx))xi)=n1(i=1∑n−yi(1−σ(wTxi))xi+y(1−yi)σ(wTxi)xi)=n1(i=1∑n−yixx+yiσ(wTxi)xi−yiσ(wTxi)xi+σ(wTxi)xi)=n1(i=1∑n−yixi+σ(wTxi)xi)=n1(i=1∑n(σ(wTxi)−yi)xi)