此文是斯坦福大学,机器学习界 superstar — Andrew Ng 所开设的 Coursera 课程:Machine Learning 的课程笔记。

力求简洁,仅代表本人观点,不足之处希望大家探讨。

课程网址:https://www.coursera.org/learn/machine-learning/home/welcome

Week 2:Linear Regression with Multiple Variables笔记:http://blog.csdn.net/ironyoung/article/details/47129523

Week 3:Logistic Regression & Regularization

  1. Logistic Regression

    1. 对于分类问题而言。非常easy想到利用线性回归方法。拟合之后的h θ (x)>0.5 则为True。其余为False.
    2. 可是线性回归有一个问题,拟合出的值都是离散的。范围不确定。

      为了方便分析。我们希望将拟合出的值限制在0~1之间。

      因此,出现了逻辑回归。

    3. 逻辑回归的模型是一个非线性模型:sigmoid函数,又称逻辑回归函数。但它本质上又是一个线性回归模型,由于除去sigmoid映射函数关系。其它的步骤,算法都是线性回归的。
    4. sigmoid函数(或,逻辑回归函数):g(z)=1/(1+e −z ) 。其函数图像为:



      这个函数的特征非常明显

      • 函数值一直在0~1范围内;
      • 经过(0,0.5) 点。这个非常easy作为区分0,1类的分界线。

    5. 逻辑回归中。对于原本线性回归中拟合而成的hypothesis函数,须要经过sigmoid函数的修饰:h θ (x)=θ T x⇛h θ (x)=g(θ T x) 

      此时,h θ (x) 的含义发生了变化,h θ (x)=P(y=1|x;θ) 。

      成为

      • ”the probability that y=1, given x, parameterized by θ ”
      • 因此有。P(y=0|x;θ)+P(y=1|x;θ)=1
    6. Decision Boundary。

      表示的是 hypothesis 函数确定之后,划分数据分类的界限。并不一定能够百分百区分数据集,仅仅是函数的属性之中的一个。下图蓝色曲线即为某个 Desicision Boundary。

  2. Cost Function

    1. 回顾线性回归的 cost function,我们在当中插入 cost 函数的概念:J(θ 0 ,θ 1 )=12m ∑ i=1 m (h θ (x (i) )−y (i) ) 2 =1m ∑ i=1 m cost(h θ (x (i) ),y (i) )=1m ∑ i=1 m cost(h θ (x),y)

    2. 全然照搬线性回归的 cost function 到逻辑回归中,由于sigmoid函数的非线性,会造成J(θ) 取值的不断震荡。导致其是一个非凸形函数(non-convex)。表示在“J(θ)—θ ”二维图中例如以下:

    3. 我们须要构造一种新的 cost 函数。出发点为:
      • 当y=1 时,若hypothesis函数拟合结果为0,即为“重大失误”。cost 趋于无穷大;
      • 当y=0 时,若hypothesis函数拟合结果为1。即为“重大失误”,cost 趋于无穷大;
    4. 构造的新 cost 函数:

      cost(h θ (x),y)={−log(h θ (x)),y=1−log(1−h θ (x)),y=0  

      假设进一步合并,能够得到终于逻辑回归的cost函数。

      而且值得指出的是。代入这个cost函数通过梯度下降法得到的 θ  更新函数依旧成立:

      cost(h θ (x),y)=−ylog(h θ (x))−(1−y)log(1−h θ (x)) 

      θ j :=θ j −α1m ∑ i=1 m [(h θ (x (i) )−y (i) )x (i) j ]

  3. 梯度下降法的优化

    1. 对于梯度下降法的优化有非常多,可是都须要J(θ) 与∂J(θ)∂θ j   的代码。
    2. 以此为基础的对于梯度下降法的优化(视频中都没有详细介绍,有兴趣的同学能够点击链接)有:
    3. 这些优化方法的特点也非常一致:
      • 不须要人为选择 α 。自适应性
      • 更复杂。更慢
    4. 这里提到了两个MATLAB的非线性优化函数:
      • optimset:创建或编辑一个最优化參数选项。

        详细调用在MATLAB中 help optimset 命令查看。

      • fminunc:最小值优化。详细调用在MATLAB中 help fminunc 命令查看。
    5. 个人建议:Ng在优化这一部分讲的过于简略,基本等于什么都没说……还是要依据这几个方法名称在使用时搜索很多其它。
  4. one vs. all (one vs. rest)

    1. 假设须要进行多类的分类,须要一种精妙的修改,使得两类的分类问题得以适用于多类的分类。

      • 现已知有n类样本须要区分开(1。2。3,……);
      • 以原1类为新1类,剩余的原2,3,……作为新2类。

        原本的多类问题变成了二类问题。h (1) θ (x)=P(y=1|x;θ) ;

      • 以原2类为新1类。剩余的原1,3。……作为新2类。再分类,h (2) θ (x)=P(y=2|x;θ) 。
      • ……h (i) θ (x)=P(y=i|x;θ) ;
      • 对于随意一个 x  而言,怎样分辨是哪一类呢?于是,求出全部的h (1) θ (x)。h (2) θ (x),h (3) θ (x)。……,h (n) θ (x) ,值最大相应的i (表示y=i 的概率最大)即为x 的所属分类
  5. Regularization(正则化)

    1. 拟合会产生三种情况:

      • underfitting(欠拟合)=high bias,大部分训练样本无法拟合
      • overfitting(过拟合)=high variance,为了拟合差点儿每个训练样本。

        导致拟合函数极为复杂。易产生波动,泛化(generalize)能力差,尽管训练样本差点儿百分百拟合,可是測试样本非常可能由于极大波动而极少拟合成功

      • just right,对于训练样本,拟合得不多不少刚刚好,而且泛化到測试样本拟合效果相同较好
    2. 欠拟合,比較好解决,创造并引入很多其它的特征就可以。比如:对于x,y 而言,能够引入x 2 ,y 2 ,xy 等等新的特征
    3. 过拟合,则比較复杂。

      可用的方法有两个:

      • Reduce number of features,降维(PCA?)
      • Regularization,正则化。保持全部的特征数量不变。而去改变特征前的度量单位 θ j  (若 θ j   趋于0,则此特征可视为无影响)
    4. 解决过拟合的正则化方法,因此须要引入全新的优化目标到 cost function 中。原先的 cost function 仅仅是希望适合拟合更为接近,如今还须要使得特征前的度量单位 θ j   的最小。因此有:

      J(θ 0 ,θ 1 )=12m [∑ i=1 m (h θ (x (i) )−y (i) ) 2 +λ∑ i=1 m θ 2 j ]

    5. 正则化方法处理之后。∂J(θ)∂θ j   发生相应变化,因此我们有:

      θ j :=θ j −α[(1m ∑ i=1 m (h θ (x (i) )−y (i) )x (i) j )+λm θ j ]:=θ j (1−αλm )−α1m ∑ i=1 m (h θ (x (i) )−y (i) )x (i) j

    6. 若λ 非常大(比如10 10  ),则正则化方法会导致结果 underfitting。这也非常好理解,由于优化目标中有使得 λ∑ i=1 m θ 2 j   尽可能小,这样会导致 θ  全部趋于 0。一般来说,α,λ,m>0 ,所以(1−αλm )<1 。常见使其取值0.99 左右

  6. Regularization for Normal Equation

    • 课程视频中缺少证明。因此我们仅需掌握结论使用就可以
    • 对于 Week 2 中的Normal Equation方法,原本须要求解的方程 θ=(x T x) −1 x T y  做一个小小的修改:

      θ=(x T x+λ⎛ ⎝ ⎜ ⎜ ⎜ ⎜ ⎜ 00⋮0 01⋮0 ……⋱… 00⋮1 ⎞ ⎠ ⎟ ⎟ ⎟ ⎟ ⎟ ) −1 x T y

      若样本拥有n个特征。则⎛ ⎝ ⎜ ⎜ ⎜ ⎜ ⎜ 00⋮0 01⋮0 ……⋱… 00⋮1 ⎞ ⎠ ⎟ ⎟ ⎟ ⎟ ⎟  表示的是(n+1) * (n+1)维的对角矩阵。除了(0, 0)取值为 0,其余对角位置取 1。

    • non-invertibility:非不可逆性……好拗口。意思就是对于原本的(x T x) 矩阵可能会出现不可逆的情况。可是,对于正则化之后的矩阵 (x T x+λ⎛ ⎝ ⎜ ⎜ ⎜ ⎜ ⎜ 00⋮0 01⋮0 ……⋱… 00⋮1 ⎞ ⎠ ⎟ ⎟ ⎟ ⎟ ⎟ )  一定是可逆的(未提供证明)。

编程作业答案:https://github.com/cnauroth/machine-learning-class

Andrew Ng Machine Learning 专题【Logistic Regression &amp; Regularization】的更多相关文章

  1. Andrew Ng Machine Learning 专题【Linear Regression】

    此文是斯坦福大学,机器学习界 superstar - Andrew Ng 所开设的 Coursera 课程:Machine Learning 的课程笔记. 力求简洁,仅代表本人观点,不足之处希望大家探 ...

  2. [C2P2] Andrew Ng - Machine Learning

    ##Linear Regression with One Variable Linear regression predicts a real-valued output based on an in ...

  3. [C2P3] Andrew Ng - Machine Learning

    ##Advice for Applying Machine Learning Applying machine learning in practice is not always straightf ...

  4. CheeseZH: Stanford University: Machine Learning Ex2:Logistic Regression

    1. Sigmoid Function In Logisttic Regression, the hypothesis is defined as: where function g is the s ...

  5. Andrew Ng机器学习 二: Logistic Regression

    一:逻辑回归(Logistic Regression) 背景:假设你是一所大学招生办的领导,你依据学生的成绩,给与他入学的资格.现在有这样一组以前的数据集ex2data1.txt,第一列表示第一次测验 ...

  6. machine learning 之 logistic regression

    整理自Adrew Ng 的 machine learning课程week3 目录: 二分类问题 模型表示 decision boundary 损失函数 多分类问题 过拟合问题和正则化 什么是过拟合 如 ...

  7. Andrew Ng Machine learning Introduction

    1. 机器学习的定义:Machine learning is programming computers to optimize a performance criterion(优化性能标准) usi ...

  8. [C2P1] Andrew Ng - Machine Learning

    About this Course Machine learning is the science of getting computers to act without being explicit ...

  9. Andrew Ng机器学习编程作业:Logistic Regression

    编程作业文件: machine-learning-ex2 1. Logistic Regression (逻辑回归) 有之前学生的数据,建立逻辑回归模型预测,根据两次考试结果预测一个学生是否有资格被大 ...

随机推荐

  1. FansMail:邮件发送标准API与技术实现(Java)

    发送邮件,是Web系统等IT建设中最常见的一种功能. 我对最常见的一种需求进行了抽象和封装,定义了一套标准的API,并且使用Java技术实现. 项目信息 项目名称:FansMail 项目作者:LeiW ...

  2. 利用Socket进行大文件传输

    分类: WINDOWS 最近接触到利用socket进行大文件传输的技术,有些心得,与大家分享.首先看看这个过程是怎么进行的(如下图):      所以,我们需要三个socket在窗体加载的时候初始化: ...

  3. $OEM$文件夹的使用 (By无约而来)

    WIN7-OEM资料包中的目录都是以$OEM$文件夹出现的.比$OEM$高一级的目录,我通常是用来表示下一级的$OEM$的属性,例如,X64_ADMIN_LOADER表示此目录下的$OEM$文件夹是用 ...

  4. OFFICE2013 打开两个word文档卡死的解决办法

    这几天Office打开一个word好好的,两个就直接卡死了,百度了一下: 原文地址: http://hi.baidu.com/pjhero/item/ca326e3dcfebebb9623aff6e ...

  5. Centos NFS 简单设置

    Server 端: NFS的安装配置:centos 5 :yum install nfs-utils portmapcentos 6 :yum install nfs-utils rpcbind vi ...

  6. lettuce--Advanced Redis client

    redis官方提供的java client: git地址:https://github.com/mp911de/lettuceAdvanced Redis client for thread-safe ...

  7. 5、regulator系统的概念及测试

    概念:Regulator : 电源芯片, 比如电压转换芯片Consumer : 消费者,使用电源的部件, Regulator是给Consumer供电的machine : 单板,上面焊接有Regulat ...

  8. [Nuxt] Display Vuex Data Differently in Each Page of Nuxt and Vue.js

    You often use the same data in different ways across pages. This lesson walks you through setting up ...

  9. C++11实现placeholder

    文章分析怎样在C++11中实现简单的placeholder. 首先看看什么是placeholder: for_each(arr.begin(), arr.end(), cerr << _0 ...

  10. js cookie介绍和实例(用于自动登录,记住用户名等)

    js cookie介绍和实例(用于自动登录,记住用户名等) 一.总结 1.cookie在客户端:因为js是最初是用来在客户端和服务器端进行通信使用的,所以客户端比如js可以操作cookie正常 2.c ...