这里提出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. iRecognizer号码扫描开发实录

    iRecognizer——这是一款可以帮助你快速扫描获得印刷体数字的软件 现已上架 腾讯应用宝,酷安 提供的功能:扫一扫(相册或当场扫描),获得电话号码,之后就可以拨打或者发送短信,自动复制到剪贴板, ...

  2. 【转】Android的setTag

    前言 首先我们要知道setTag方法是干什么的,SDK解释为 Tags Unlike IDs, tags are not used to identify views. Tags are essent ...

  3. 软件架构中的SOA架构有哪些特点?

    面向服务的架构(SOA)是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来.构建在各种各样的系统中的服务可以以一种统一和通用的方式进行交互. SOA是一 ...

  4. 剑指offer39 平衡二叉树

    剑指上用了指针传递,这里用的引用传递 class Solution { public: bool IsBalanced_Solution(TreeNode* pRoot) { ; return IsB ...

  5. python中那个断言assert的优化

    Python Assert 为何不尽如人意# Python中的断言用起来非常简单,你可以在assert后面跟上任意判断条件,如果断言失败则会抛出异常. Copy >>> assert ...

  6. Python——配置环境的导出与导入

    导出Python环境安装包[root@bogon ~]# pip freeze > packages.txt 这将会创建一个 packages.txt文件,其中包含了当前环境中所有包及各自的版本 ...

  7. 遗忘的html标签

    <span>x</span><sup>2</sup><span>+y=10</span> <br> <span ...

  8. git 学习笔记 window操作系统

    一.准备工作 1.设置好操作者和邮箱 $ git config --global user.name "Your Name" $ git config --global user. ...

  9. harbor 配置 Keepalived 实现HA

    环境说明: $ cat /etc/redhat-release CentOS Linux release 7.3.1611 (Core) vip : 192 168 93 142 MASTER-har ...

  10. 网页弹出[Object HTMLDivElement],怎么取值?

    使用innerHTML方法,可以得到文本值