吴恩达机器学习笔记(一)

概念

        机器学习是研究计算机模仿人类学习的过程,利用新的数据改善自身的性能,是人工智能的核心。

机器学习、人工智能、深度学习之间的关系

AI、ML、DL的包含关系

        人工智能=机器人;   机器学习是实现人工智能的一种方法;深度学习是实现机器学习的一种技术。概念包含关系上:人工智能>机器学习>深度学习。

视频课简记:

1、引言

1.1  欢迎

        1、机器学习很常见,如谷歌搜索(搜出的网站排序算法)、邮箱的垃圾站(无监督)。

        2、举例了机器学习在各个行业的使用。

1.2  机器学习是什么?

        1、介绍了机器学习初步的概念——一个不精通下棋的人写了个程序,程序自己和自己下了万把棋,记录下每把的经验最后该程序的棋技超过了编程者。

         2、最近的定义——一个程序被认为能从经验 E 中学习,解决任务 T,达到性能度量值P,当且仅当,有了经验 E 后,经过 P 评判,程序在处理 T 时的性能有所提升。

1.3  监督学习

        1、简单的房价预测(回归问题)

监督学习预测房价

        简单来说就是给学习算法一个数据集,每个数据都有对应的标签标注着正确答案。我的理解是利用一些算法(后面会学到的?)去利用这些数据找到一个函数较为或者最拟合这个数据集,最终找到的这个函数就可以带入新的自变量(这里是Size)通过此函数映射出一个“预测”的价格。

        这一类问题称为回归问题,即利用数据集试着推测出一个连续的结果(一堆房价)。

        2、肿瘤是否恶性的判断(分类问题)


监督学习判断类型

        处理多种甚至无限种特征给肿瘤分类。预测的值只有少数的离散值,所以这个是分类问题。

1.4  无监督学习

        1、不同于监督学习的数据,无监督学习的数据没有告诉学习算法“正确答案”,就是一个普通的数据集,无监督学习算法可以把这些数据集分成两个不同的簇(聚类算法)。

监督学习与无监督学习

        2、一个例子,无监督学习算法可以把音频中不同的声音分离,而且代码十分简单。

2、单变量线性回归

2.1  模型表示

        开始接触第一个算法——线性回归算法。还是之前预测房价的例子:

给数据集拟合一条直线

        有了这个函数就可以进行价格预测(那怎么确定函数的参数?)一种可能的表达方式是:

单变量线性回归表达式

2.2  代价函数

        上面的函数(模型)缺少的是合适的和,即直线的斜率和在y轴上的截距。建模误差是模型所预测的值和训练集中实际值的差距:

部分数据与模型的误差

        那我们选择参数的目标就是,让数据集中的所有数据与模型预测的值之间的误差平方和最小。即使代价函数最小(使付出的代价最小):

代价函数

        之所以要求出误差的平方和,是因为误差平方代价函数,对于大多数问题,特别是回归问题,都是一个合理的选择。还有其他的代价函数也能很好地发挥作用,但是平方误差代价函数可能是解决回归问题最常用的手段了。

2.3  梯度下降  

        一文读懂梯度下降算法 - 白白毛狗 - 博客园

        梯度下降是一个用来求函数最小值的算法,我们将使用梯度下降算法来求出代价函数。算法思想是一开始随机选择一个参数组合,计算,然后寻找下一个能让代价函数值下降最多的参数组合,一直持续到一个极小值,所以只试一次是不确定找到的极小值是不是最小值,一开始的参数选择可能会找到不同的极小值。(好像有点贪心算法的思想)

起点的不同找到两个不同的极小值


批量梯度下降(batch gradient descent)算法的公式

        上面的是学习率,决定了每次下山迈出的步子有多大(决定是大长腿还是小短腿)。太大了可能会导致一次次越过最低点,可能导致导数无法收敛;太小了就会很慢才能去到最低点。

2.4  梯度下降的直观理解

        梯度下降的步子与其当前位置到最低点的距离成反比

越靠近最低点,步子越小

        所以没必要随着梯度下降另外调整,因为越到下面导数(切线斜率)越小。等于说它会自动放慢脚步咯。梯度下降算法可以用来最小化任何代价函数,不只是线性回归中的代价函数。

2.5  梯度下降的线性回归

        结合一下梯度下降和代价函数,应用在具体的拟合直线的线性回归算法里。

展开线性回归中的代价函数J

        这里用的是批量梯度下降算法(也有别的梯度算法),在下降的每一步中都要对训练集中所有的数据操作。后面会讲一个计算代价函数J最小值的数值解法,不需要梯度下降这种迭代算法,称为正规方程。在数据量比较大的情况下梯度下降算法好一点。

3、线性代数回顾

        几个视频讲了一些线代的基础,最难也就是到矩阵的加减乘除转置、矩阵的逆。

小总结:

        1、初步接触机器学习,感觉数学的基础知识真的蛮重要的。这一周首先是了解了到底啥是机器学习,到底是先开始机器学习还是深度学习等等。

        2、知道了机器学习主要分为监督学习和无监督学习两大类以及他们分别适合用来解决什么问题。

        3、最后触碰了第一个机器学习算法——单变量线性回归,一个简单的一元一次方程的形式,学习的过程就是不断更新更适合的参数的过程,适用在这里的一个算法是梯度下降算法。

        4、最后的线代因为之前享用过李永乐和张宇的线代全家桶,还留有点基础,因此跳过。

你可能感兴趣的:(吴恩达机器学习笔记(一))