【 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在机器学习上的关联就是: ...
随机推荐
- 【转载】#335 - Accessing a Derived Class Using a Base Class Variable
You can use a variable whose type is a base class to reference instances of a derived class. However ...
- DOM笔记(十一):JavaScript对象的基本认识和创建
一.什么是对象? 面 向对象(Object-Oriented,OO)的语言有一个标志,那就是都有类的概念,例如C++.Java等:但是ECMAScript没有类的概 念.ECMAScript-262把 ...
- 进程、内存的理想与现实 VS 虚拟内存
理想情况下一个进程的运行,需要一块足够大的连续的内存进行装载. 现状: 1)内存不够大:分解进程内存空间. 2)内存不连续:内存映射.
- 从Java官网下载JDK1.6等低版本JDK
今天在浏览Java官网的时候发现旧版本(1.8之前)的JDK安装包下载地址没有在下载页面明显的提供出来.个人通过在官网查看,发现oracle官方将旧版本的JDK全都放在Java Archive模块中了 ...
- jsonp 请求和回传实现
JSONP最主要的是可以解决跨域问题,不然谁会没事用这种格式. 下面是我用JSONP的一些心得体会: JSONP是JSON with Padding的略称.它是一个非官方的协议,它允许在服务器端集成S ...
- RDVTabBarController--可自由定制的iOS底部导航控件
RDVTabBarController:一个十分完善的tabBarController,可以自定义角标个数,爽的停不下来. RDVTabBarController地址:RDVTabBarControl ...
- webpack4基本配置
1.npm init 生成package.json文件 2.npm install webpack webpack-cil --save-dev 安装webpack和webpack-cli ...
- 简单了解:Web前端攻击方式及防御措施
一.XSS [Cross Site Script]跨站脚本攻击 恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用 ...
- UVa中国麻将(Chinese Mahjong,Uva 11210)
简单的回溯题 #include<iostream> #include<cstdio> #include<cstring> #include<algorithm ...
- 【CodeBase】【转】php随机生成汉字
本方法是通过生成GB2312编码的汉字后,再转码为UTF-8编码.之所以这样做是因为UTF-8的常用汉字太过分散,随机生成会出现大量生僻字,而使用GB2312编码的好处在于其收录的大部分汉字为常用汉字 ...