机器学习基石---Logistic Regression

knitr::opts_chunk$set(echo = TRUE)

  PLA返回结果是 {0,1} { 0 , 1 } ,而逻辑回归是一个Soft Binary Classification,它输出的 {y=+1} { y = + 1 } 的概率。所以 Logistic Regression的目标函数是: f(x)=P(+1|x)[0,1] f ( x ) = P ( + 1 | x ) ∈ [ 0 , 1 ] 。那么具体算法是什么呢?

Hypothesis Set

  Hypothesis如下:

h(x)=11+exp(wTx) h ( x ) = 1 1 + exp ⁡ ( − w T x )

其中 s=wTx s = w T x 相当于对特征进行加权求和, θ(s)=es1+es θ ( s ) = e s 1 + e s 称为sigmoid函数,作用是将加权求和值 s s 的值域映射到[0,1]。这样我们就可以得到 {y=+1} { y = + 1 } 的概率。
  可以比较线性分类、线性回归、逻辑回归:

这里写图片描述

三种算法都用到了 wTx w T x ,但是输出和误差衡量方式都不同。那么逻辑回归的误差衡量应该怎么选取呢?

Error Measure

  error的衡量方式是人为规定的,选择不同的error,主要考虑的是损失函数最小化这一步操作是否方便。前面讲的Linear Regression使用平方误差,如果logistic regression采用平方误差,那么损失函数非凸,最小化cost function时候十分困难。因此,在logistic regression中使用极大似然估计求解参数。
traget function f(x)=P(+1|x) f ( x ) = P ( + 1 | x )
考虑训练数据集 D={(x1,+1),(x2,1),...,(xN,1)} D = { ( x 1 , + 1 ) , ( x 2 , − 1 ) , . . . , ( x N , − 1 ) } ,那么训练集产生的概率为:

Likehood(f)=P(x1,y1)P(x2,y2)P(xN,yN)=P(x1)P(y1|x1)P(x2)P(y2|x2)P(xN)P(yN|xN)=P(x1)f(x1)P(x2)(1f(x2))P(xN)(1f(xN)) L i k e h o o d ( f ) = P ( x 1 , y 1 ) ∗ P ( x 2 , y 2 ) ∗ ⋯ ∗ P ( x N , y N ) = P ( x 1 ) P ( y 1 | x 1 ) ∗ P ( x 2 ) P ( y 2 | x 2 ) ∗ ⋯ ∗ P ( x N ) P ( y N | x N ) = P ( x 1 ) f ( x 1 ) ∗ P ( x 2 ) ( 1 − f ( x 2 ) ) ∗ ⋯ ∗ P ( x N ) ( 1 − f ( x N ) )

如果 hf h ≈ f , Likehood L i k e h o o d 应该很接近,并且 Likehood L i k e h o o d 应当尽可能大。

这里写图片描述

注意到logistic函数有 1h(x)=h(x) 1 − h ( x ) = h ( − x ) ,所以似然函数可以写成:

Likehood(h)=P(x1)h(x1)P(x2)(1h(x2))P(xN)(1h(xN))=P(x1)h(y1x1)P(x2)h(y2x2)P(xN)h(yNxN)n=1Nh(ynxn)n=1Nθ(ynwTxn)ln(n=1Nθ(ynwTxn))1Nn=1Nlnθ(ynwTxn) L i k e h o o d ( h ) = P ( x 1 ) h ( x 1 ) ∗ P ( x 2 ) ( 1 − h ( x 2 ) ) ∗ ⋯ ∗ P ( x N ) ( 1 − h ( x N ) ) = P ( x 1 ) h ( y 1 x 1 ) ∗ P ( x 2 ) h ( y 2 x 2 ) ∗ ⋯ ∗ P ( x N ) h ( y N x N ) ∝ ∏ n = 1 N h ( y n x n ) ∝ ∏ n = 1 N θ ( y n w T x n ) ∝ ln ⁡ ( ∏ n = 1 N θ ( y n w T x n ) ) ∝ 1 N ∑ n = 1 N ln ⁡ θ ( y n w T x n )

现在的目标就是最大化似然函数,也等价于求:
min1Nn=1Nlnθ(ynwTxn)min1Nn=1Nlnθ(ynwTxn)=min1Nn=1Nln1θ(ynwTxn)=min1Nn=1Nln(1+exp(ynwTxn)) min − 1 N ∑ n = 1 N ln ⁡ θ ( y n w T x n ) ⇒ min 1 N ∑ n = 1 N − ln ⁡ θ ( y n w T x n ) = min 1 N ∑ n = 1 N ln ⁡ 1 θ ( y n w T x n ) = min 1 N ∑ n = 1 N ln ⁡ ( 1 + exp ⁡ ( − y n w T x n ) )

求和符号后面部分就是误差函数,这种形式的误差函数称为cross entropy error:
err(w,x,y)=ln(1+exp(ywx)) e r r ( w , x , y ) = ln ⁡ ( 1 + exp ⁡ ( − y w x ) )

NG的课和李航的书表示误差用的是指数形式的统一表达式:
ln(h(xn)yn(1h(xn))1yn) ln ⁡ ( h ( x n ) y n ( 1 − h ( x n ) ) 1 − y n )

总之,如上的表达式可以看做每个点的损失or成本。

Algorithm

  可以证明损失函数是凸函数,即HessianMatrix正定。求解凸函数的最小值,和线性回归类似,我们希望找到一阶导为0。先求一阶导:

Einw=1Nn=1Nlnθ(ynwTxn)(ynxn) ∂ E i n ∂ w = 1 N ∑ n = 1 N ln ⁡ θ ( − y n w T x n ) ∗ ( − y n x n )

非线性函数,直接求方程比较困难,需要采用迭代的方法。常用的有梯度下降、随机梯度下降、牛顿法等等。之前有写过 12,不多说了。

Summary

  大概流程都是先确定hypothesis set,再确定合适的error measure,求损失函数。最后使用算法求出损失函数最小时候的参数值。

                         2018-02-05 于杭州

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值