机器学习基石---Logistic Regression
2018-02-05 22:33
399 查看
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)=11+exp(−wTx)
其中s=wTxs=wTx相当于对特征进行加权求和,θ(s)=es1+esθ(s)=es1+es称为sigmoid函数,作用是将加权求和值ss的值域映射到[0,1][0,1]。这样我们就可以得到{y=+1}{y=+1}的概率。
可以比较线性分类、线性回归、逻辑回归:
三种算法都用到了wTxwTx,但是输出和误差衡量方式都不同。那么逻辑回归的误差衡量应该怎么选取呢?
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={(x1,+1),(x2,−1),...,(xN,−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)(1−f(x2))∗⋯∗P(xN)(1−f(xN))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)(1−f(x2))∗⋯∗P(xN)(1−f(xN))
如果h≈fh≈f,LikehoodLikehood应该很接近,并且LikehoodLikehood应当尽可能大。
注意到logistic函数有1−h(x)=h(−x)1−h(x)=h(−x),所以似然函数可以写成:
Likehood(h)=P(x1)h(x1)∗P(x2)(1−h(x2))∗⋯∗P(xN)(1−h(xN))=P(x1)h(y1x1)∗P(x2)h(y2x2)∗⋯∗P(xN)h(yNxN)∝∏n=1Nh(ynxn)∝∏n=1Nθ(ynwTxn)∝ln(∏n=1Nθ(ynwTxn))∝1N∑n=1Nlnθ(ynwTxn)Likehood(h)=P(x1)h(x1)∗P(x2)(1−h(x2))∗⋯∗P(xN)(1−h(xN))=P(x1)h(y1x1)∗P(x2)h(y2x2)∗⋯∗P(xN)h(yNxN)∝∏n=1Nh(ynxn)∝∏n=1Nθ(ynwTxn)∝ln(∏n=1Nθ(ynwTxn))∝1N∑n=1Nlnθ(ynwTxn)
现在的目标就是最大化似然函数,也等价于求:
min−1N∑n=1Nlnθ(ynwTxn)⇒min1N∑n=1N−lnθ(ynwTxn)=min1N∑n=1Nln1θ(ynwTxn)=min1N∑n=1Nln(1+exp(−ynwTxn))min−1N∑n=1Nlnθ(ynwTxn)⇒min1N∑n=1N−lnθ(ynwTxn)=min1N∑n=1Nln1θ(ynwTxn)=min1N∑n=1Nln(1+exp(−ynwTxn))
求和符号后面部分就是误差函数,这种形式的误差函数称为cross entropy error:
err(w,x,y)=ln(1+exp(−ywx))err(w,x,y)=ln(1+exp(−ywx))
NG的课和李航的书表示误差用的是指数形式的统一表达式:
ln(h(xn)yn(1−h(xn))1−yn)ln(h(xn)yn(1−h(xn))1−yn)
总之,如上的表达式可以看做每个点的损失or成本。
Algorithm
可以证明损失函数是凸函数,即HessianMatrix正定。求解凸函数的最小值,和线性回归类似,我们希望找到一阶导为0。先求一阶导:∂Ein∂w=1N∑n=1Nlnθ(−ynwTxn)∗(−ynxn)∂Ein∂w=1N∑n=1Nlnθ(−ynwTxn)∗(−ynxn)
非线性函数,直接求方程比较困难,需要采用迭代的方法。常用的有梯度下降、随机梯度下降、牛顿法等等。之前有写过1,2,不多说了。
Summary
大概流程都是先确定hypothesis set,再确定合适的error measure,求损失函数。最后使用算法求出损失函数最小时候的参数值。2018-02-05 于杭州
相关文章推荐
- 台湾国立大学机器学习基石.听课笔记(第三讲): 机器学习的分类
- 台湾国立大学机器学习基石.听课笔记(第五讲): 训练和测试有什么不同
- 台湾国立大学机器学习基石.听课笔记(第九讲):Linear Regression
- 机器学习基石(林轩田)课程笔记
- 台大 机器学习基石课程
- 林轩田机器学习基石笔记2:PLA算法
- 机器学习基石笔记2——感知机(Perceptron)
- 机器学习基石---Why Can Machines Learn(Part2)
- 听课笔记(第四讲):学习的可行性分析 (台湾国立大学机器学习基石)
- 机器学习基石---Why Can Machines Learn(Part6-Summary)
- 机器学习基石 2-* Summary
- 15. 机器学习基石 - Summary - Power of Three
- 机器学习基石 4-2 Probability to the Rescue
- 林轩田-机器学习基石 课堂笔记(一)A takes D and H to get g
- 機器學習基石(Machine Learning Foundations) 机器学习基石 作业三 Q18-20 C++实现
- 机器学习基石-林轩田 第五讲笔记
- 台湾大学机器学习基石Lecture12
- 机器学习基石笔记7——为什么机器可以学习(3)
- 台大-林轩田老师-机器学习基石学习笔记2
- 机器学习基石