这里提出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. (转载)林轩田机器学习基石课程学习笔记1 — The Learning Problem

    (转载)林轩田机器学习基石课程学习笔记1 - The Learning Problem When Can Machine Learn? Why Can Machine Learn? How Can M ...

  2. 【Linear Models for Binary Classification】林轩田机器学习基石

    首先回顾了几个Linear Model的共性:都是算出来一个score,然后做某种变化处理. 既然Linear Model有各种好处(训练时间,公式简单),那如何把Linear Regression给 ...

  3. 【Linear Regression】林轩田机器学习基石

    这一节开始讲基础的Linear Regression算法. (1)Linear Regression的假设空间变成了实数域 (2)Linear Regression的目标是找到使得残差更小的分割线(超 ...

  4. 【The VC Dimension】林轩田机器学习基石

    首先回顾上节课末尾引出来的VC Bound概念,对于机器学习来说,VC dimension理论到底有啥用. 三点: 1. 如果有Break Point证明是一个好的假设集合 2. 如果N足够大,那么E ...

  5. 林轩田机器学习基石笔记3—Types of Learning

    上节课我们主要介绍了解决线性分类问题的一个简单的方法:PLA.PLA能够在平面中选择一条直线将样本数据完全正确分类.而对于线性不可分的情况,可以使用Pocket Algorithm来处理.本节课将主要 ...

  6. 【Regularization】林轩田机器学习基石

    正则化的提出,是因为要解决overfitting的问题. 以Linear Regression为例:低次多项式拟合的效果可能会好于高次多项式拟合的效果. 这里回顾上上节nonlinear transf ...

  7. 【Theory of Generalization】林轩田机器学习基石

    紧接上一讲的Break Point of H.有一个非常intuition的结论,如果break point在k取到了,那么k+1, k+2,... 都是break point. 那么除此之外,我们还 ...

  8. 【Training versus Testing】林轩田机器学习基石

    接着上一讲留下的关子,机器学习是否可行与假设集合H的数量M的关系. 机器学习是否可行的两个关键点: 1. Ein(g)是否足够小(在训练集上的表现是否出色) 2. Eout(g)是否与Ein(g)足够 ...

  9. 【Feasibility of Learning】林轩田机器学习基石

    这一节的核心内容在于如何由hoeffding不等式 关联到机器学习的可行性. 这个PAC很形象又准确,描述了“当前的可能性大概是正确的”,即某个概率的上届. hoeffding在机器学习上的关联就是: ...

随机推荐

  1. SAP UI5和CRM WebUI的View和Controller是如何绑定的

    UI5 例如我在UI5的界面上画一个按钮,点击之后弹出一个Alert dialog. 在XML view里只定义了controller的名称和事件处理函数的名称.那么按钮被点击之后,controlle ...

  2. HTML入门1—HTML基础学习

    html文档结构 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> < ...

  3. soap使用xml调用webapi后返回xml信息进行JSON转换处理,以顺丰查询接口为例

    expressUrl = string.Format(可以卸载配置文件的域名URL + "/bsp-oisp/ws/expressService"); StringBuilder ...

  4. node.js 下使用 util.inherits 来实现继承

    上一篇博客说到了node.js继承events类实现事件发射和事件绑定函数,其中我们实现了一个公用基类 _base ,然后在模型中差异化的定义了各种业务需要的模型并继承 _base 公共基类.但是其中 ...

  5. C++之string基本字符系列容器

    string基本字符系列容器 C语言只提供了一个插入类型用来处理字符, 而对于字符串, 只能通过字符串数组来处理, 显得十分不便. C++STL提供了string基本字符系列容器来处理字符串, 可以把 ...

  6. Design and Implementation of Global Path Planning System for Unmanned Surface Vehicle among Multiple Task Points

    Design and Implementation of Global Path Planning System for Unmanned Surface Vehicle among Multiple ...

  7. DESCryptoServiceProvider 类加密解密

    DESCryptoServiceProvider  点击查看介绍 加密解密辅助类:点击查看 私钥加密 定义:定义一个包装对象来访问加密服务提供程序 (CSP) 版本的数据加密标准 (DES) 算法.  ...

  8. 牛客小白月赛2 D 虚虚实实 【欧拉图】【连通图】

    链接:https://www.nowcoder.com/acm/contest/86/D来源:牛客网 题目描述 震为雷,临危不乱,亨通畅达:巽为风,柔顺伸展,厚载万物. 震卦:洊雷,震,君子以恐惧修省 ...

  9. spring-mybatis整合异常2

    org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' ...

  10. hadoop-2.0.0-cdh4.1.2升级到hadoop-2.7.2

    升级前准备: 如果是 centos6.x的系统得升级glibc和pam包 在/etc/ld.so.conf 文件里添加 /usr/src/jdk1.6.0_23/jre/lib/amd64/serve ...