美文网首页
吴恩达-机器学习-第一周

吴恩达-机器学习-第一周

作者: 钢的炼金术士 | 来源:发表于2018-07-07 12:41 被阅读0次

    章节1 机器学习的定义

    主要有两种定义:

    • Arthur Samuel (1959). Machine Learning: Field of study that gives computers the ability to learn without being explicitly programmed.

    这个定义有点不正式和陈旧,来自于一个懂得计算机编程的下棋菜鸟,编程使得计算机有耐心通过上千万次的对弈,以此来“学习”,从而积累经验,使计算机程序成为了一个厉害的棋手。

    • Tom Mitchell (1998) Well-posed Learning Problem: A computer program is said to learn from experience E with respect to sometask Tand someperformance measure P, if its performance on T, as measured by P, improves withexperience E.

    Tom Mitchell 的定义更现代,也有点拗口,视频中介绍了一个例子,即垃圾邮件分类。对于垃圾邮件分类,文中的三个字母分别代表:

    T(task): 对垃圾邮件分类这个任务。

    P(Performance): 垃圾邮件分类的准确程度。

    E(Experience): 用户对于邮件进行是否为垃圾邮件的分类(即帮助机器体验、学习)。

    机器学习算法:监督学习,无监督学习,强化学习,推荐系统

    主要有两种机器学习的算法分类:
    监督学习
    无监督学习
    两者的区别为是否需要人工参与数据标注。
    垃圾邮件问题。如果你有标记好的数据,区别好是垃圾还是非垃圾邮件,我们把这个当作监督学习问题。

    新闻事件分类的例子,就是那个谷歌新闻的例子,我们在本视频中有见到了,我们看到,可以用一个聚类算法来聚类这些文章到一起,所以是无监督学习。
    还有一些算法也属于机器学习领域,诸如:
    半监督学习: 介于监督学习于无监督学习之间
    推荐算法: 没错,就是那些个买完之后还推荐同一款商品的某购物平台。
    强化学习: 通过观察来学习如何做出动作,每个动作都会对环境有所影响,而环境的反馈又可以引导该学习算法。

    学习如何使用工具也很重要,但更重要的是用机器学习算法解决问题

    监督学习(Supervised Learning)

    监督学习,即为教计算机如何去完成预测任务(有反馈),预先给一定数据量的输入和对应的结果,建模拟合,最后让计算机预测未知数据的结果。

    监督学习一般有两种:

    回归问题(Regression)

    回归问题即为预测一系列的连续值。

    在房屋价格预测的例子中,给出了一系列的房屋面基数据,根据这些数据来预测任意面积的房屋价格。给出照片-年龄数据集,预测给定照片的年龄。

    分类问题(Classification)

    分类问题即为预测一系列的离散值。

    即根据数据预测被预测对象属于哪个分类。

    视频中举了癌症肿瘤这个例子,针对诊断结果,分别分类为良性或恶性。还例如垃圾邮件分类问题,也同样属于监督学习中的分类问题。

    视频中提到支持向量机这个算法,旨在解决当特征量很大的时候(特征即如癌症例子中的肿块大小,颜色,气味等各种特征),计算机内存一定会不够用的情况。支持向量机能让计算机处理无限多个特征。

    Question:

    答案是第三个。

    无监督学习(Unsupervised Learning)

    相对于监督学习,训练集不会有人为标注的结果(无反馈),我们不会给出结果或无法得知训练集的结果是什么样,而是单纯由计算机通过无监督学习算法自行分析,从而“得出结果”。计算机可能会把特定的数据集归为几个不同的簇(群落),故叫做聚类算法。

    无监督学习一般分为两种:

    1. 聚类(Clustering)

    • 新闻聚合

    • DNA 个体聚类

    • 天文数据分析

    • 市场细分,高效销售

    • 社交网络分析

    2. 非聚类(Non-clustering)

    • 新闻聚合

    在例如谷歌新闻这样的网站中,每天后台都会收集成千上万的新闻,然后将这些新闻分组成一个个的新闻专题,这样一个又一个聚类,就是应用了无监督学习的结果。

    • 鸡尾酒问题

    在鸡尾酒会上,大家说话声音彼此重叠,几乎很难分辨出面前的人说了什么。我们很难对于这个问题进行数据标注,而这里的通过机器学习的无监督学习算法,就可以将说话者的声音同背景音乐分离出来。
    神奇的一行代码:

    [W,s,v] = svd((repmat(sum(x.x,1),size(x,1),1).x)*x');
    解释: svd 奇异值分解

    编程语言建议:
    在机器学习刚开始时,推荐使用 Octave ,matlab类的工程计算编程软件,因为在 C++ 或 Java 等编程语言中,编写对应的代码需要用到复杂的库以及要写大量的冗余代码,比较耗费时间,建议可以在学习过后再考虑使用其他语言来构建系统。

    另外,在做原型搭建的时候也应该先考虑使用类似于 Octave 这种便于计算的编程软件,当其已经可以工作后,才将模型移植到其他的高级编程语言中。

    机器学习领域的发展迅速,也可使用 Tensorflow 等开源机器学习框架学习,这些框架十分友好,易于编写及应用机器学习算法。

    章节2 单变量线性回归

    重要概念:parameters(变量),Hypothesis(假设),Cost Function(代价函数),Goal Function(目标函数)

    概念
    cost function中平均值\frac{1}{2}为了便于梯度下降,因为平方函数的导数项将消掉\frac{1}{2}
    目标函数就是选择合适θ使代价函数最小。

    代价函数的理解

    (不太重要)


    只有一个参数θ1
    两个参数θ0和θ1

    等高线图(像一个碗,每条线上的值相同)

    梯度下降

    梯度下降是一个用来求函数最小值的算法,我们将使用梯度下降算法来求出代价函数最小值。

    batch gradient descent

    :=表示assign赋值,如a:=b,就是把b的值赋给a。

    正确和错误的计算方式

    通常梯度下降算法是左边的同步更新。

    梯度下降的直观理解

    当只有一个变量时,

    J(θ)
    其中有两个重要参数,学习率和偏导数
    1. 学习率α影响着我们迈的步子。
      α如果太小了,即我的学习速率太小,结果就是只能这样像小宝宝一样一点点地挪动,去努力接近最低点,这样就需要很多步才能到达最低点,所以如果太小的话,可能会很慢,因为它会一点点挪动,它会需要很多步才能到达全局最低点。
      如果太大,那么梯度下降法可能会越过最低点,甚至可能无法收敛,下一次迭代又移动了一大步,越过一次,又越过一次,一次次越过最低点,直到你发现实际上离最低点越来越远,所以,如果太大,它会导致无法收敛,甚至发散。
    2. 偏导数是我们找到正确的方向,能够到达最低点(最优解)。

    梯度下降的线性回归

    将梯度下降和代价函数结合。

    梯度下降算法和线性回归算法比较如图:
    关键在于求出代价函数的导数,即:

    这种属于批量梯度下降BGD,每次计算都会用到所有样本。除了BGD还有随机梯度下降法SGD、小批量梯度下降法MBGD,并且都有不同的优缺点。

    参考自:黄海广博士的笔记
    https://github.com/fengdu78/Coursera-ML-AndrewNg-Notes

    相关文章

      网友评论

          本文标题:吴恩达-机器学习-第一周

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