美文网首页
第1周学习笔记-Coursera机器学习-吴恩达

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

作者: 烟若清尘 | 来源:发表于2019-05-13 15:51 被阅读0次

    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:预测胸部肿瘤是恶性还是良性。这实际上是分类问题:预测一个离散值输出,意味着我们将输入变量映射为离散的类别

    2种作图方式
    本问题只有一个特征——肿瘤大小,在其他机器学习问题中有着不止一个的特征和属性,有可能是许多特征。后面介绍的支持向量机,可以让计算机处理无限多的特征。

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

    3.Unsupervised Learning

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

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

    无监督学习的应用场景:

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

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

    鸡尾酒聚会问题算法
    以后学习中使用Octave.而事实上在硅谷很多人会这样做,他们会先用Octave来实现这样一个学习算法原型。只有在确定这个算法可以工作后,才开始迁移到C++ Java或其它编译环境。事实证明这样做实现的算法比一开始就用C++,实现的算法要快多了。

    Linear Regression with One Variable

    1.Model Representation

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

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

    监督学习的目标学会一个函数h:X → Y。由于历史原因,hypothesis(假说,假设)是指函数h(x).

    单变量
    右边显示的函数h(x)是一个y关于x线性的函数,称为线性回归模型(linear regression)。由于只有一个变量x,这也可被称为单变量线性回归。

    2.Cost Function

    我们通过cost function(代价函数)来衡量函数h(x)的准确性。cost function计算所有h(x)和真实的y之间的平均差异,(x^{i},y^{i})​可能有多个。
    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\left ( \theta_0,\theta_1\right )表示\frac{1}{2}\bar{x}\bar{x}\left ( h_\theta (x_i) - y_i \right )的平方的均值,代表着预测值和真实值的差异

    J\left ( \theta_0,\theta_1\right )​也称为平方误差函数或均方误差,平均值减为\frac{1}{2}​是为了方便计算梯度下降,因为平方函数的导数将会抵消\frac{1}{2}​

    成本函数示意

    3.Cost Function - Intuition I

    直观体会代价函数
    我们目标是找出散射点与线的平均垂直距离最小的那一条线。

    \theta_0=0,\theta_1=0.5​的时候,如右图:

    0.5的线成本函数
    当取不同的值的时候,成本函数如右图: 成本函数

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

    4.Cost Function - Intuition II

    轮廓图(contour plot)的一条轮廓线表示J\left ( \theta_0,\theta_1\right )​相同的所有点的集合

    轮廓图
    当带圆圈的x显示左侧图形的代价函数的值。

    5.Gradient Descent

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

    我们现在已经有了假设函数h和代价函数J,梯度下降的任务是估计假设函数h中的参数使得代价函数J最小

    梯度下降
    梯度下降示意图
    当我们的代价函数位于图中凹坑的最底部时,即当它的值最小时,我们就知道我们已经成功了。红色箭头显示图表中的最小点。
    切线的斜率是该点的导数,它将为我们提供朝向的方向。我们在最陡下降的方向上降低成本函数。
    梯度下降算法特点:出发点不同,可能得到多个局部最优解。

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

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

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

    3. 在这个公式中,是同时更新\theta_0,\theta_1​。同步更新是梯度下降中的一种常用方法。正确的更新步骤和不正确步骤如下:

      更新步骤

    6.Gradient Descent Intuition

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

    斜率为正的梯度下降:

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

    7.Gradient Descent For Linear Regression

    我们要做的工作:

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

    Linear Algebra Review-Optional

    1.Matrices and Vectors

    Matrix(矩阵):Rectangular array of numbers.
    Dimension of matrix(矩阵的维度): 矩阵的行数 x 列数。


    矩阵的元素

    Vector:An n x 1 matrix。具有'n'行的向量被称为'n'维向量。


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

    2.Addition and Scalar Multiplication

    矩阵加法:只有两个维度相同的矩阵才能相加。


    标量乘法

    3.Matrix Vector Multiplication

    \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

    \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矩阵。为了乘以两个矩阵,第一矩阵的列数必须等于第二矩阵的行数。

    矩阵乘法

    5.Matrix Multiplication Properties

    • 矩阵乘法无交换律,即不能交换顺序。A*B\neq B*A
    • 矩阵乘法有结合律。(A∗B)∗C = A∗(B∗C)​
    • Identity Matrix(单位矩阵)


      单位矩阵

    6.Inverse and Transpose

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

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

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

    转置矩阵:A_{ij} = A^{T}_{ji}

    转置矩阵

    相关文章

      网友评论

          本文标题:第1周学习笔记-Coursera机器学习-吴恩达

          本文链接:https://www.haomeiwen.com/subject/ptfraqtx.html