Andrew Ng Machine Learning - Week 一: Introduction

Andrew Ng Machine Learning - Week 1: Introduction

此文是斯坦福大学,机器学习界 superstar — Andrew Ng 所开设的 Coursera 课程:Machine Learning 的课程笔记。力求简洁,仅代表本人观点,不足之处希望大家探讨。
课程网址:https://www.coursera.org/learn/machine-learning/home/welcome

Week 1: Introduction

  1. Environment Setup Instructions
    这一章介绍课程一般使用的工具。octave或者matlab即可,这两者本质上没有什么区别,都有着丰富的数学库计算库。
  2. Introduction
    1. 机器学习定义:简单来说,让计算机执行一些行为,但是without explicit programmed。
    2. 监督学习(supervised learning):通过已知的正确信息,得到未知的信息。一般用于解决的问题有两类:
      • 回归问题(regression)
      • 例如:房价预测。已知一百平房子售价,两百平房子售价,三百平房子售价。那么,一百五十平房子的售价呢?
      • 很容易想到,拟合。那么接下来,是直线拟合?二次曲线拟合?
      • 这就是回归问题要解决的,通过已知离散信息,预测未知的连续信息。
      • 分类问题(classification)
      • 例如:肿瘤分类。已知肿瘤size与肿瘤良性(label: 0)还是恶性(label: 1)分类的关系如下:
        Andrew Ng Machine Learning - Week 一: Introduction
      • 更进一步,完全可以用一维坐标图来表示:
        Andrew Ng Machine Learning - Week 一: Introduction
      • 现在需要对于根据size的对某个肿瘤判断它是良性还是恶性,就是分类问题。
      • 再进一步,现在我仅仅把size作为feature之一,如果我们加入考虑肿瘤积水(二维坐标图)?肿瘤硬度(三维坐标图)?原则上可以考虑无限种feature,如何处理?这里卖了个关子,可以使用支持向量机(SVM)。
    3. 无监督学习(unsupervised learning)/ 聚类算法(clustering)
      • 对于有监督学习而言,我们已知的信息很多:每个data的label是什么,label可以分为多少类,等等。但是无监督学习中,这些都是未知的
      • 最常见的应用:浏览新闻时经常会有的相关新闻,或者搜索时的相关搜索结果,又或是weibo中的推荐分组,等等。
      • 可以理解为计算机自己理解后将信息分为了若干类
      • 经典案例:cocktail party problem,原文链接:http://soma.mcmaster.ca/papers/Paper_7.pdf。简而言之,就是在聚会上摆俩麦克风分别记录声音,需要通过这些信息将不同声源的声音分隔开来。
      • 如果考虑声音本身的特征与背景知识,解法会比较复杂,需要大量的先验知识。但站在机器学习的角度来思考,就是一类无监督学习的应用场景。matlab实现仅需几行代码而已。
  3. Bonus: Course Wiki Lecture Notes
    • 单一变量线性回归:即通过线性方程来拟合已知data的feature,与label之间的关系。表达为 hθ=θ0+θ1x
    • 不同的线性方程之间,需要挑出来一个拟合更适合的,这就需要一个判断标准。常用的基于Mean squared error (MSE):J(θ0,θ1)=12mi=1m(hθ(x(i))y(i))2
    • 如果让计算机来实现这个过程,怎么办呢?梯度下降法(Gradient Descent)是一种常见手段。
    • 该方法的核心是:
    • θi:=θiαθiJ(θi,θj),其中α是下降步长,人为确定。可以看出来,梯度下降法的目的是使J(θi,θj)越来越小,对于其是否线性,参数的数量,都没有限制。
    • 最后利用梯度下降法代入导数(不论是链式法则,还是单个变量代入)得到最优的拟合函数参数:Andrew Ng Machine Learning - Week 一: Introduction
  4. Model and Cost Function

    • 再次回顾一下监督学习,两类:regression和classification。
    • 简单来说,regression是predict real-valued output,classification是predict discrete-valued output。
    • 注明了以下符号,方便以后沟通:

      m:训练集样本的个数
      x:输入向量,y:输出向量,(x,y):一组样本
      (x(i),y(i)):样本第 i 行中的数据
      h(hypothesis):就是我们用于predict的mapping,即函数

    • 我们设计拟合,目的就是为了使得表示拟合数据与已知真实数据直接差距的cost function最小,这个cost function是啥?就是我们之前提到的判断标准,常见的为:J(θ0,θ1)=12mi=1m(hθ(x(i))y(i))2。当有两个未知量时,cost function就需要表示为三维图:
      Andrew Ng Machine Learning - Week 一: Introduction

    • 为了方便表示,也可以把上图表示为类似地理上的“等高线”。术语称为 contour plot(轮廓图)
      Andrew Ng Machine Learning - Week 一: Introduction
  5. Parameter Learning

    • 现在,我们开始具体来看看,第一个机器学习算法:梯度下降法(gradient descent)

      targetminimize(J(θ0,θ1))
      algorithm

      1. θ0,θ1
      2. temp0:=θ0αθ0J(θ0,θ1)temp1:=θ1αθ1J(θ0,θ1)
      3. θ0=temp0θ1=temp1
      4. if(J(θ0,θ1)<)2,
    • 特别注意,这里的temp是为了保证更新是同一时间发生的,这才是最正宗的梯度下降法。如果先更新了θ0,再用更新之后的θ0去更新θ1,就违背了梯度下降法的初衷。

    • 可能你已经发现,这里的最优值,仅仅是局部的(local)而不是全局的(global)。因此选取的初值不同,可能会导致算法停留在不同的最优值。因此,这是梯度下降法的一个缺陷。但是对于线性回归而言,cost function 是一个convex function(形状为弓形),仅有一个最优值,局部最优值就是全局最优值。
    • 到此为止,我们说的其实都是:batch gradient descent。也就是我的cost function是所有样本的MSE之和。如果不是计算所有样本,仅仅是计算某个重要子集的MSE之和,这个方法在以后的课程中会提到。
    • 最后,提到线性代数中的寻找极值的方法:normal equations。但是在大规模的数据计算中,还是梯度下降法更为适用。
  6. Linear Algebra Review
    • 学完前几章并完成习题之后,已经显示Week 1完成。第六章知识是复习线性代数的知识。可以跳过。
    • 矩阵:https://en.wikipedia.org/wiki/Matrix_(mathematics)
    • 向量:特殊的矩阵,注意是 数 = 1
    • 1-index:下标从1开始。0-index:下标从0开始。
    • 矩阵乘法没有交换律,但是有结合律。
    • 只有方阵(#col=#row)才有逆矩阵。但仅仅满足方阵这一个条件并不足够,同时需要满足行列式不等于0。没有逆矩阵的矩阵,称之为“奇异(singular)矩阵”或“退化(degenerate)矩阵”。

版权声明:本文为博主原创文章,未经博主允许不得转载。