【 Logistic Regression 】林轩田机器学习基石
这里提出Logistic Regression的角度是Soft Binary Classification。输出限定在0~1之间,用于表示可能发生positive的概率。
具体的做法是在Linear Regression的基础上,再加一层Logistic Function,限定住输出的取值。

完成了hypothesis的部分,下面就是如何写出Ein的表达式了。

这里自己先回想了一下Linear Regression的情况,为啥能得到analytic close solution呢?
因为Linear Regression的输出yhat可以直接跟样本点的y比较,Ein可以直接被写出来。
第二次过这内容,注意到了square error是friendly error,如果Logistic Regression的话,再用square error就是不friendly的了。
但是到了Logistic Regression的情况:hypothesis的输出是P(+1|x),即给定输入下,预测样本为正的概率。这下有些麻烦了,没法直接跟y直接比较了。
看来,Ein模仿Linear Regression这条路走不通了,只能想别的办法了。这里用的办法是MLE(Maximum Likelihood Estimate)极大似然估计。

这种连加形式的不太好弄;由于h(ynxn)都是正的,所以可以加一个ln,换成连乘的形式。

接下来,把求最大变成求最小;前面补上一个1/N是为了凑形式

然后,Ein就神奇地变成了最小化上述的式子(虽然看起来怪怪的,而且名字也cross-entropy error也怪怪的,但是林说有历史原因)。
随后,相信这个Ein是连续,可导,二阶可导,convex,然后就是导数等于0即可了。

接下来,就是“剥洋葱”求导过程,如下图。

上述的求导过程先对某一个wi求导,然后扩展到全部的w;最终的出来了梯度的表达式。
接下来,就是如何求解梯度表达式为0的w了。
林并没有直接讲这个Ein怎么求,而是先回顾的PLA算法的最小化Ein过程。

这种iterative optimization approach的过程可以用两部分来刻画:ita和v

首先明确,每轮迭代调整的对象是w
(1)ita表示的是调整的幅度
(2)v表示是调整的方向(既然是方向,那么就要保证||v||=1)
这种非线性的还是太困难,因此利用多维度Taylor展开,把v提出去,如下。

按照上面的阐述,每次利用ita和v更新完w后,Ein的变化幅度公式就可以得到了。
我自己用y=x²来理解的。
比如,y=(x+0.0001)²≈x²+0.0001*(x²)'=x²+0.0001*2x,大概类似这个意思吧。
然后就是优化的问题了,如何能保证按照上述的公式,每次Ein减小的最快呢?
问题的关键就在于v了:这里如果v与Ein梯度方向完全相反,则二者内积最小,也就是Ein减小的最快;由此,v的表达式也就得到了。

之前的讨论,都是固定ita的大小;如果不注意ita的取值大小,可能带来如下的问题:

因此,一个比较直观的策略就是,ita的变化跟||Ein梯度||正相关,这样似乎更好一些。因此有了如下的结论:

最后,得到了完整的Logistic Regression的学习算法:

【 Logistic Regression 】林轩田机器学习基石的更多相关文章
- (转载)林轩田机器学习基石课程学习笔记1 — The Learning Problem
(转载)林轩田机器学习基石课程学习笔记1 - The Learning Problem When Can Machine Learn? Why Can Machine Learn? How Can M ...
- 【Linear Models for Binary Classification】林轩田机器学习基石
首先回顾了几个Linear Model的共性:都是算出来一个score,然后做某种变化处理. 既然Linear Model有各种好处(训练时间,公式简单),那如何把Linear Regression给 ...
- 【Linear Regression】林轩田机器学习基石
这一节开始讲基础的Linear Regression算法. (1)Linear Regression的假设空间变成了实数域 (2)Linear Regression的目标是找到使得残差更小的分割线(超 ...
- 【The VC Dimension】林轩田机器学习基石
首先回顾上节课末尾引出来的VC Bound概念,对于机器学习来说,VC dimension理论到底有啥用. 三点: 1. 如果有Break Point证明是一个好的假设集合 2. 如果N足够大,那么E ...
- 林轩田机器学习基石笔记3—Types of Learning
上节课我们主要介绍了解决线性分类问题的一个简单的方法:PLA.PLA能够在平面中选择一条直线将样本数据完全正确分类.而对于线性不可分的情况,可以使用Pocket Algorithm来处理.本节课将主要 ...
- 【Regularization】林轩田机器学习基石
正则化的提出,是因为要解决overfitting的问题. 以Linear Regression为例:低次多项式拟合的效果可能会好于高次多项式拟合的效果. 这里回顾上上节nonlinear transf ...
- 【Theory of Generalization】林轩田机器学习基石
紧接上一讲的Break Point of H.有一个非常intuition的结论,如果break point在k取到了,那么k+1, k+2,... 都是break point. 那么除此之外,我们还 ...
- 【Training versus Testing】林轩田机器学习基石
接着上一讲留下的关子,机器学习是否可行与假设集合H的数量M的关系. 机器学习是否可行的两个关键点: 1. Ein(g)是否足够小(在训练集上的表现是否出色) 2. Eout(g)是否与Ein(g)足够 ...
- 【Feasibility of Learning】林轩田机器学习基石
这一节的核心内容在于如何由hoeffding不等式 关联到机器学习的可行性. 这个PAC很形象又准确,描述了“当前的可能性大概是正确的”,即某个概率的上届. hoeffding在机器学习上的关联就是: ...
随机推荐
- IOS xcode 离线帮助文档安装和安装路径
将想要安装的xcode 帮助文档 版本,将 ‘帮助文档包’ 放入‘xcode 帮助文档安装路径’.再将Xcode软件重启. xcode 帮助文档安装路径: 在‘应用程序’->Xcode软件 右击 ...
- selenium使用谷歌浏览器自带手机模拟器运行H5网页
背景:最开始用手机模拟H5页面跑自动化,发现经常因为app连接或者网络原因等一系列情况,导致M版(H5页面)用例跑不通,想通过浏览器自带的手机模拟器运行,保证稳定性 浏览器自带的模拟器如下图: 代码实 ...
- 阅读list
最近感觉效率不高,其实有很多事情要做的,读书的速度也慢下来了,要抓紧时间的了. 继续读deep learning 一书的part II. 读完jifeng dai的几篇文章,去年欠下的债务啊.其中包括 ...
- 在Linux文件清空的几种方法
在Linux文件清空的几种方法 1.使用重定向的方法 [root@centos7 ~]# du -h test.txt 4.0K test.txt [root@centos7 ~]# > tes ...
- nvl()函数和nvl2()函数
如果你某个字段为空,但是你想让这个字段显示0,可以使用nvl(字段名,0),当然这个0也可以换成其他东西,如:1,2,3…… 一 NVL(表达式1,表达式2) 如果表达式1为空值,NVL返回值为表达式 ...
- MacBookPro 存储空间优化
首先,打开电脑内的"终端"; 其次,逐条录入下面的命令行,执行完成后,再次查看您的储存空间,多少会有一些优化,具体会优化出多少储存空间因您日常使用而定(本人清出了5G 空间,还不错 ...
- BootStrap中常用样式类
网格选项 row:行 col--:列(第一个可以为xs[超小]/sm[小型]/md[中型]/lg[大型]:第二个必须为12以内的[列数]) col--offset-:列偏移(第一个同上,第二个范围为1 ...
- js点击获取标签里面id属性
<html xmlns="http://www.w3.org/1999/xhtml"> <head > <title></title> ...
- IntelliJ IDEA 方法注释教程
首先Ctrl +Alt +S ,打开Settings ,找到Live Template,然后点击右侧的绿色的“+”,选择Template Group 然后给新建的Group随便命个名 选中自己刚才创建 ...
- System.gc()日志分析
打开日志:运行配置---XX:+PrintGCDetails 示例程序: package com.test; public class Test { private Object instance = ...