感知机、logistic回归 损失函数对比探讨
感知机、logistic回归 损失函数对比探讨
感知机
假如数据集是线性可分的,感知机学习的目标是求得一个能够将正负样本完全分开的分隔超平面 \(wx+b=0\) 。其学习策略为,定义(经验)损失函数并将损失函数最小化。通常,定义损失函数的策略是:==误分类点到分隔超平面的总距离==。【李航,2.2节】
- 如果没有误分点,则损失函数值是0.
- 感知机学习算法若采用不用的初始值或选取不同的误分类点,得到的分隔超平面可不同。
logistic回归(对数几率回归):
逻辑回归和感知机一样,定义一个决策面(分隔面)来区分正负两类样本。但是其学习策略为:
定义:\(z=\theta x=ln \dfrac{p}{1-p}\),其中 \(z\in R\),\(p=P(y=1\mid x ;\theta)\),\(p\in (0,1)\),即样本点为1的概率。此时 \(z = \theta x=0\)为分类决策面,\(p=g(z)=\dfrac{1}{1+e^{-z}}\),其实可发现:
当 \(\theta^TX\gt0\),则有 \(p\gt0.5\);若 \(\theta^TX\to+\infty\),则 \(p\to1\),即 y 为 1 类;
当 \(\theta^TX\lt0\),则有 \(p\lt0.5\);若 \(\theta^TX\to-\infty\),则 \(p\to0\),即 y 为 0 类。
所以,通过以上分析,可得训练样本到决策面的距离为:\(y\) 为1类的对数几率比(几率比:1类的概率/0类的概率)。
于是整个模型的公式为:
\[P(y=1\mid x ;\theta)=h_\theta (x)=g(\theta x)=\dfrac{1}{1+e^{-\theta x}}\],其中 \(z=\theta x=ln \dfrac{p}{1-p}\),几何意义为样本点到决策面的“距离”,实际意义为:\(y\) 为1类的对数几率比。注意,“距离” \(z\) 范围为\((-\infty , +\infty )\)。
这样做的好处是【周志华 P58】:
- 直接对分类可能性进行建模,无需事先假设数据分布,这样就避免了假设分布不准确所带来的问题(无需事先知道样本数据的分布)。
- 不仅预测出类别,通过 sigmoid 函数的压缩,对样本点到局侧面的“距离”——对数几率比值 \(z(z\in R)\),压缩到 \((0, 1)\), 还且给出具体的概率预测值。
- 对数几率函数是热一节课到的凸函数,有很好的数学性质,现有的许多数值优化算法都可直接用于求取最优解。
那重点来了:logistic回归的的损失函数,还会跟感知机或者下面即将提到的 SVM 一样,能根据样本点到决策面的距离来定义损失函数吗?
答曰:不可以滴。刚才讲了,逻辑回归中的距离,是“ \(y\) 为1类的对数几率比”,这个距离既不是最大就好,也不是最小就好。所有这里的“距离”不能直接作为损失函数。
但是,我们可以直观的理解为:Logistic回归就是要学习得到 \(\theta\),使得所有正例的距离远大于0,所有负例的距离远小于0,并强调在全部训练样本上达到这个目标。
若还是以“距离”最大化为我们的指导思想,可以用分段函数来表达,来写出我们的优化目标(注意这里的“距离”不是指 \(z\)):
当 \(y=1\) 时候,我们让正样本到决策面的距离变大,即“\(y\)为1的对数几率比值”\(z\)大,而 \(z=ln \dfrac{p}{1-p}\)又是单调递增函数,因此,距离 \(d(y=1) \propto p \propto logp\);同理,当 \(y=0\) 时候,我们让负样本到决策面的距离变大,即“\(y\)为0的对数几率比值”\(z\)大,而 \(z=ln \dfrac{1-p}{p}\)又是单调递减函数,因此,距离 \(d(y=0) \propto 1-p \propto log(1-p)\)。
将与“距离”成正比的函数 \(D(y|x;\theta)\) 可简化为一个式子:
\[D(y|x;\theta)=ylogp+(1-y)log(1-p),y=\{0,1\}\]
对于所有样本点的距离之和:
\[D(\theta)=\sum _{ i=1 }^{ m }{ y^{(i)}logh_\theta (x^{(i)})+(1-y^{(i)})log(1-h_\theta (x^{(i)})) } \]
最大化到分割面之和可作为我们的优化目标。
若根据 Ng 所讲,一定要写数损失函数,如果以真实值和预测值的误差平方和来作为损失函数,理论上来讲可行,但是,这样后我们的损失函数
\[\sum _{ i=1 }^{ m }{ ({h_\theta(x^{(i)})}- y^{(i)})^2 },其中h_\theta(x)=\frac{1}{1+e^{-\theta x}}\]是非凸的(non-convex function)。
但是,我们可以根据模型特点来设置损失函数,取对数损失函数【李航P7】:
\[Cost(h_\theta(x))=\begin{cases} -log(h_\theta(x)), & y=1 \\ -log(1-h_\theta(x)),& y=0 \end{cases}\]
最后通过最小化所有损失函数作为优化目标,会发现我们的优化目标的函数形式其实是一样的。
总结:
==同样是选择决策面,逻辑回归选择策略是所有点到决策面的距离之和最大。这样有个弊端是,会决策面靠近一些点,来换取另外一部分点更加远离分割面。==
感知机、logistic回归 损失函数对比探讨的更多相关文章
- logistic回归损失函数(非常重要,深入理解)
2.2 logistic回归损失函数(非常重要,深入理解) 上一节当中,为了能够训练logistic回归模型的参数w和b,需要定义一个成本函数 使用logistic回归训练的成本函数 为了让模型通过学 ...
- 2.2 logistic回归损失函数(非常重要,深入理解)
上一节当中,为了能够训练logistic回归模型的参数w和b,需要定义一个成本函数 使用logistic回归训练的成本函数 为了让模型通过学习来调整参数,要给出一个含有m和训练样本的训练集 很自然的, ...
- logistic回归具体解释(二):损失函数(cost function)具体解释
有监督学习 机器学习分为有监督学习,无监督学习,半监督学习.强化学习.对于逻辑回归来说,就是一种典型的有监督学习. 既然是有监督学习,训练集自然能够用例如以下方式表述: {(x1,y1),(x2,y2 ...
- Logistic回归和SVM的异同
这个问题在最近面试的时候被问了几次,让谈一下Logistic回归(以下简称LR)和SVM的异同.由于之前没有对比分析过,而且不知道从哪个角度去分析,一时语塞,只能不知为不知. 现在对这二者做一个对比分 ...
- 回归——线性回归,Logistic回归,范数,最大似然,梯度,最小二乘……
写在前面:在本篇博客中,旨在对线性回归从新的角度考虑,然后引入解决线性回归中会用到的最大似然近似(Maximum Likelihood Appropriation-MLA) 求解模型中的参数,以及梯度 ...
- Logistic回归总结
原文:http://blog.csdn.net/dongtingzhizi/article/details/15962797 Logistic回归总结 作者:洞庭之子 微博:洞庭之子-Bing (2 ...
- 机器学习 —— 基础整理(五)线性回归;二项Logistic回归;Softmax回归及其梯度推导;广义线性模型
本文简单整理了以下内容: (一)线性回归 (二)二分类:二项Logistic回归 (三)多分类:Softmax回归 (四)广义线性模型 闲话:二项Logistic回归是我去年入门机器学习时学的第一个模 ...
- 机器学习实战(Machine Learning in Action)学习笔记————05.Logistic回归
机器学习实战(Machine Learning in Action)学习笔记————05.Logistic回归 关键字:Logistic回归.python.源码解析.测试作者:米仓山下时间:2018- ...
- logistic 回归与线性回归的比较
可以参考如下文章 https://blog.csdn.net/sinat_37965706/article/details/69204397 第一节中说了,logistic 回归和线性回归的区别是:线 ...
随机推荐
- opencv 之 transformation
getAffineTransform() : calculates an affine transform from three pairs of the corresponding points. ...
- Object备忘录
1.Object.assign(target,...source) 方法用于将所有可枚举属性的值从一个或多个源对象复制到目标对象.它将返回目标对象. 2.Object.create()方法创建一个新对 ...
- ansible批量自动安装LNMP
- 定时器&改变定时器的执行频率
static System.Threading.Timer timer; static void Main(string[] args) { Console.WriteLine("Press ...
- 18. 4Sum (JAVA)
Given an array nums of n integers and an integer target, are there elements a, b, c, and d in nums s ...
- 52-2018 蓝桥杯省赛 B 组模拟赛(一)java
最近蒜头君喜欢上了U型数字,所谓U型数字,就是这个数字的每一位先严格单调递减,后严格单调递增.比如 212212 就是一个U型数字,但是 333333, 9898, 567567, 313133131 ...
- 路飞ORM练习
# a.查看所有学位课并打印学位课名称以及授课老师 # degree_list = DegreeCourse.objects.all().values('name', 'teachers__name' ...
- python 标准库 glob ,python glob 学习
glob库是最简单的模块之一,内容非常少.用它可以查找符合特定规则的文件路径名.跟使用 windows 下的文件搜索差不多.查找文件只用到三个匹配符: ”*”, 匹配 个或多个字符: “?”, ”?” ...
- 通过url获取bitmap
//通过Uri获取BitMap public static Bitmap getBitmapFromUri(Uri uri,Context context) { Bitmap bitmap = nul ...
- 包管理工具-yarn
今天知道了一个新的包管理工具叫yarn,总结如下: 如果你知道npm的使用过程,那么yarn你就觉着相见恨晚呐...... npm存在的问题: >安装的时候无法保证速度的一致性 >安全问题 ...