第1周学习笔记-Coursera机器学习-吴恩达

Introduction

1.Machine Learning definition

  • Arthur Samuel(1959). Machine Learning: Field of study that gives computers the ability to learn without being explicitly programmer. 古老的、正式的定义
    编写西洋棋程序,让程序自己跟自己下棋,让程序明白什么是好的布局、坏的布局。

  • Tom Mitchell(1998) Well-posed Learning Problem: A computer program is said to learn from experience E with respect to some task T and some performance measure P, if its performance on T, as measured by P, improves with experience E. 现代化定义
    译文:一个程序被认为能从经验E中学习,解决任务 T,达到性能度量值P,当且仅当,有了经验E后,经过P评判, 程序在处理 T 时的性能有所提升。

    西洋棋例子中,经验e 就是程序上万次的自我练习的经验;而任务 t 就是下棋;性能度量值p它在与一些新的对手比赛时,赢得比赛的概率。

Machine learning algorithms

  • Supervised learning 计算机如何去完成任务
  • Unsupervised learning 让机器自己进行学习
  • Others:Reinforcement learning(强化学习), recommender systems(推荐系统)

2.Supervised Learning

example 1:预测房价。这实际是回归问题:指要预测一个连续的输出值,意味着我们将输入变量映射为一些连续的函数。(回归问题包含于监督问题中)

example 2:预测胸部肿瘤是恶性还是良性。这实际上是分类问题:预测一个离散值输出,意味着我们将输入变量映射为离散的类别
第1周学习笔记-Coursera机器学习-吴恩达
本问题只有一个特征——肿瘤大小,在其他机器学习问题中有着不止一个的特征和属性,有可能是许多特征。后面介绍的支持向量机,可以让计算机处理无限多的特征。

总结:监督学习使用数据集(输入数据和对应的正确输出)训练出一个模型,将要预测的数据输入模型中,可以得到预测值。

3.Unsupervised Learning

无监督学习使我们能够在很少或根本不知道我们的结果应该是什么样的情况下处理问题。我们可以从数据中获得数据的结构,而不必知道数据中变量的作用。

我们可以通过基于数据中变量之间的关系对数据进行聚类来推导出这种结构。

无监督学习的应用场景:

  • 大型计算机集群,试图找出哪些计算机协同工作。
  • 社交网络分析,如自动找出哪些人是朋友。
  • 市场分割,如我们实现无法得知有哪些细分市场,也不知道哪些客户属于什么细分市场,所以需要计算机自动将客户分到细分市场中。
  • 天文数据分析

example-非聚类问题: 鸡尾酒聚会算法,输入数据——2个音频源叠加在一起的音频,期待输出——分别输出这两个音频源的内容。
算法内容:

第1周学习笔记-Coursera机器学习-吴恩达
以后学习中使用Octave.而事实上在硅谷很多人会这样做,他们会先用Octave来实现这样一个学习算法原型。只有在确定这个算法可以工作后,才开始迁移到C++ Java或其它编译环境。事实证明这样做实现的算法比一开始就用C++,实现的算法要快多了。


Linear Regression with One Variable

1.Model Representation

example:以房子的大小来预测房价。

(xi,yj)(x^{i},y^{j})作为一个训练例子,i 仅仅指的是index,而不是幂。

监督学习的目标学会一个函数h:X → Y。由于历史原因,hypothesis(假说,假设)是指函数h(x).
第1周学习笔记-Coursera机器学习-吴恩达
右边显示的函数h(x)是一个y关于x线性的函数,称为线性回归模型(linear regression)。由于只有一个变量x,这也可被称为单变量线性回归。

2.Cost Function

我们通过cost function(代价函数)来衡量函数h(x)的准确性。cost function计算所有h(x)和真实的y之间的平均差异,(xi,yi)(x^{i},y^{i})​可能有多个。
J(θ0,θ1)=12mi=1m(yi^yi)2=12mi=1m(hθ(xi)yi)2 J\left ( \theta_0,\theta_1\right )=\frac{1}{2m}\sum_{i=1}^m\left ( \hat{y_i}-y_i \right )^{2}=\frac{1}{2m}\sum_{i=1}^m\left ( h_\theta (x_i) - y_i \right )^{2}
J(θ0,θ1)J\left ( \theta_0,\theta_1\right )表示12xˉ\frac{1}{2}\bar{x}xˉ\bar{x}(hθ(xi)yi)\left ( h_\theta (x_i) - y_i \right )的平方的均值,代表着预测值和真实值的差异

J(θ0,θ1)J\left ( \theta_0,\theta_1\right )​也称为平方误差函数或均方误差,平均值减为12\frac{1}{2}​是为了方便计算梯度下降,因为平方函数的导数将会抵消12\frac{1}{2}​
第1周学习笔记-Coursera机器学习-吴恩达

3.Cost Function - Intuition I

第1周学习笔记-Coursera机器学习-吴恩达
我们目标是找出散射点与线的平均垂直距离最小的那一条线。

θ0=0,θ1=0.5\theta_0=0,\theta_1=0.5​的时候,如右图:第1周学习笔记-Coursera机器学习-吴恩达
θ0=0,θ1\theta_0=0,\theta_1​取不同的值的时候,成本函数如右图:第1周学习笔记-Coursera机器学习-吴恩达

因此,作为目标,我们应该尽量减少代价函数。当θ0=0,θ1=1\theta_0=0,\theta_1=1​是我们总体的最小值

4.Cost Function - Intuition II

轮廓图(contour plot)的一条轮廓线表示J(θ0,θ1)J\left ( \theta_0,\theta_1\right )​相同的所有点的集合
第1周学习笔记-Coursera机器学习-吴恩达
θ0=800,θ1=0.15\theta_0=800,\theta_1=-0.15​带圆圈的x显示左侧图形的代价函数的值。

5.Gradient Descent

梯度下降是很常用的算法 它不仅被用在线性回归上 ,它实际上被广泛的应用于机器学习领域中的众多领域。在后面课程中,为了解决其他线性回归问题,我们也将使用梯度下降法最小化其他函数,而不仅仅是只用在本节课的代价函数 J

我们现在已经有了假设函数h和代价函数J,梯度下降的任务是估计假设函数h中的参数使得代价函数J最小
第1周学习笔记-Coursera机器学习-吴恩达
第1周学习笔记-Coursera机器学习-吴恩达
当我们的代价函数位于图中凹坑的最底部时,即当它的值最小时,我们就知道我们已经成功了。红色箭头显示图表中的最小点。
切线的斜率是该点的导数,它将为我们提供朝向的方向。我们在最陡下降的方向上降低成本函数。
梯度下降算法特点:出发点不同,可能得到多个局部最优解。

梯度下降算法
repeat until convergence(重复直到收敛):
θj:=θjαJ(θ0,θ1)θj(j=0,1) \theta _{j} := \theta _{j} - \alpha \frac{\partial J\left (\theta _{0} , \theta _{1}\right )}{\partial \theta_{j} }\qquad(j=0,1)
jj​ 代表特征索引。
注意:

  1. a := b 等价于把b赋值给a。
    a=b 等价于声明(断言)a的值和b的值相同。错误:a = a+ 1这本身就是错误,a和 a+1永远也不相同

  2. α\alpha ​被称为学习速率。在梯度下降算法中,它控制了下山迈出多大的步子。α\alpha ​很大我们会迈着大步子下山,反之亦然。

  3. 在这个公式中,是同时更新θ0,θ1\theta_0,\theta_1​。同步更新是梯度下降中的一种常用方法。正确的更新步骤和不正确步骤如下:
    第1周学习笔记-Coursera机器学习-吴恩达

6.Gradient Descent Intuition

我们采取只有一个参数θ1\theta_1​

斜率为正的梯度下降:
第1周学习笔记-Coursera机器学习-吴恩达
斜率为负的梯度下降:
第1周学习笔记-Coursera机器学习-吴恩达
学习速率太小和太大都不好:太小导致梯度下降变得很慢;太大导致梯度下降越过最小值,它会导致无法收敛甚至发散。
第1周学习笔记-Coursera机器学习-吴恩达
梯度下降可以收敛(converge)到局部最小值,即使学习速率α\alpha是固定不变的。当我们接近局部最小值,梯度下降会自动采取更小的幅度。所以我们没有必要随着时间增加,减小学习速率α\alpha第1周学习笔记-Coursera机器学习-吴恩达

7.Gradient Descent For Linear Regression

我们要做的工作:
第1周学习笔记-Coursera机器学习-吴恩达
第1周学习笔记-Coursera机器学习-吴恩达
第1周学习笔记-Coursera机器学习-吴恩达
之前谈到的梯度下降是一个山的形状,但是大多数线性回归模型的梯度下降是一个凸函数(convex function),形状类似bowl-shaped(弓形),没有局部最优,只有全局最优解。下图中的x(由直线连接)标记了渐变下降经历的θ的连续值,当它收敛到其最小值时。
第1周学习笔记-Coursera机器学习-吴恩达
Batch(批量):一步一步梯度下降,每一步梯度下降都使用整个训练集。注意:有时候梯度下降的其他版本不是每次使用整个训练集,而是每次去看训练集中的小子集,以后再说明。


Linear Algebra Review-Optional

1.Matrices and Vectors

Matrix(矩阵):Rectangular array of numbers.
Dimension of matrix(矩阵的维度): 矩阵的行数 x 列数。
第1周学习笔记-Coursera机器学习-吴恩达
Vector:An n x 1 matrix。具有’n’行的向量被称为’n’维向量。
第1周学习笔记-Coursera机器学习-吴恩达
注意:

  • 没有特别说明,默认为1-indexed表示法。人们通常用大写字母表示矩阵,如A,B,C。
  • “标量”(Scalar)表示对象是单个值,而不是向量或矩阵。
  • RR是指一组标量实数.
  • RnR^{n}指实数的n维向量集。

2.Addition and Scalar Multiplication

矩阵加法:只有两个维度相同的矩阵才能相加。
第1周学习笔记-Coursera机器学习-吴恩达

3.Matrix Vector Multiplication

[abcdef][xy]=[ax+bycx+dyex+fy] \begin{bmatrix} a & b\\ c & d\\ e & f \end{bmatrix} * \begin{bmatrix} x\\ y \end{bmatrix} = \begin{bmatrix} a*x+b*y\\ c*x+d*y\\ e*x+f*y \end{bmatrix}

结果是一个向量。矩阵的列数必须等于向量的行数。

m×n矩阵乘以n×1向量得到m×1向量。

之前的假设函数h(x)可以运用几何代数,公式为 prediction = DataMatrix x Parameters

4.Matrix Matrix Multiplication

[abcdef][wxyz]=[aw+byax+bzcw+dycx+dzew+fyex+fz] \begin{bmatrix} a & b \\ c & d \\e & f \end{bmatrix} *\begin{bmatrix} w & x \\ y & z \\ \end{bmatrix} =\begin{bmatrix} a*w + b*y & a*x + b*z \\ c*w + d*y & c*x + d*z \\ e*w + f*y & e*x + f*z\end{bmatrix}

m×n矩阵乘以n×o矩阵得到m×o矩阵。在上面的例子中,3×2矩阵乘以2×2矩阵产生3×2矩阵。为了乘以两个矩阵,第一矩阵的列数必须等于第二矩阵的行数。
第1周学习笔记-Coursera机器学习-吴恩达

5.Matrix Multiplication Properties

  • 矩阵乘法无交换律,即不能交换顺序。ABBAA*B\neq B*A
  • 矩阵乘法有结合律。(AB)C=A(BC)(A∗B)∗C = A∗(B∗C)​
  • Identity Matrix(单位矩阵)
    第1周学习笔记-Coursera机器学习-吴恩达

6.Inverse and Transpose

矩阵的逆矩阵表示为A1A^{-1}​.只有方阵(n x n)才有逆矩阵。

在octave 中,使用 pinv(A) 计算A的逆矩阵;在matlab中,使用 inv(A).

矩阵没有逆矩阵(inverse)的称为“奇异矩阵”(singular)或“退化矩阵”(degenerate)。

转置矩阵:Aij=AjiTA_{ij} = A^{T}_{ji}
第1周学习笔记-Coursera机器学习-吴恩达