diff --git a/notes/week1.md b/notes/week1.md index 196c371..0a1e771 100644 --- a/notes/week1.md +++ b/notes/week1.md @@ -3,28 +3,28 @@ ## 1.1 Welcome -由于目前网络中数据的爆炸性增长,以及目前硬件方面升级迭代,机器学习的很多算法再次被开发,并进行了实际的工业使用。 +随着互联网数据不断累积,硬件不断升级迭代,在这个信息爆炸的时代,机器学习已被应用在各行各业中,可谓无处不在。 -第一个视频介绍了一些机器学习的应用,例如: +一些常见的机器学习的应用,例如: - 手写识别 - 垃圾邮件分类 - 搜索引擎 -- 照片处理 +- 图像处理 - … 使用到机器学习的一些案例: - 数据挖掘 - - 网页访问记录 -- 人工无法处理的工作 + - 网页点击流数据分析 +- 人工无法处理的工作(量大) - 手写识别 - 计算机视觉 - 个人定制 - 推荐系统 - 研究大脑 -总之就是,机器学习的出现让很多不可能成为了可能,让许多可能变得更好。 +当然,还有更多其他的应用场景,总之,机器学习的出现让很多不可能成为了可能。 ## 1.2 什么是机器学习(What is Machine Learning) 1. 机器学习定义 @@ -36,7 +36,7 @@ - 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**. - 这个定义是第一个正式的机器学习定义,有点拗口,视频介绍了一个例子,即垃圾邮件分类的例子,对于垃圾邮件分类,三个字母分别代表: + 此定义是**第一个正式的机器学习定义**,有点拗口,视频中介绍了一个例子,即垃圾邮件分类。对于垃圾邮件分类,文中的三个字母分别代表: - T(task): 对垃圾邮件分类这个任务。 - P(Performance): 垃圾邮件分类的准确程度。 @@ -49,18 +49,18 @@ 1. 监督学习 2. 无监督学习 - 两者的区别为**是否需要人工参与数据标注**。这两部分的内容占比很大,并且很重要,掌握的不好很容易在实际的运用中浪费大量的时间。 + 两者的区别为**是否需要人工参与数据标注**。这两部分的内容占比很大,并且很重要,掌握好了可以在以后的应用中节省大把大把的时间~ 还有一些算法也属于机器学习领域,诸如: - - 半监督学习 - - 推荐算法 - - 强化学习:通过观察来学习如何做出动作,每个动作都会对环境有所影响,而环境的反馈又可以引导该学习算法。 + - 半监督学习: 介于监督学习于无监督学习之间 + - 推荐算法: 没错,就是那些个买完之后还推荐同一款商品的某购物平台。 + - 强化学习: 通过观察来学习如何做出动作,每个动作都会对环境有所影响,而环境的反馈又可以引导该学习算法。 - 迁移学习 ## 1.3 监督学习(Supervised Learning) -监督学习,即为教计算机如何去完成预测任务(有反馈),预先给一定数据量的输入和对应的结果,建模拟合,最后让计算机进行预测未知数据的结果。 +监督学习,即为教计算机如何去完成预测任务(有反馈),预先给一定数据量的输入和对应的结果,建模拟合,最后让计算机预测未知数据的结果。 监督学习一般有两种: @@ -68,7 +68,7 @@ 回归问题即为预测一系列的**连续值**。 - 视频中举了房屋价格预测的例子,即给出了一系列的房屋数据,根据其预测任意给定数据的房屋价格。 + 在房屋价格预测的例子中,给出了一系列的房屋面基数据,根据这些数据来预测任意面积的房屋价格。 ![](image\20180105_194712.png) @@ -76,11 +76,11 @@ 分类问题即为预测一系列的**离散值**。 - 即根据数据预测被预测对象属于哪个分类。视频中举了癌症肿瘤这个例子,分类分为良性和恶性。上个视频中的垃圾邮件分类问题,也同样是监督学习中的分类问题。 + 即根据数据预测被预测对象属于哪个分类。视频中举了癌症肿瘤这个例子,针对诊断结果,分别分类为良性或恶性。上个视频中的垃圾邮件分类问题,也同样属于监督学习中的分类问题。 ![](image\20180105_194839.png) -视频中提到**支持向量机**这个算法,当特征量很大的时候(特征即如癌症例子中的肿块大小,颜色,气味等各种特征),计算机内存一定会不够用,支持向量机则能用于大量特征值,能让计算机处理无限多个特征。 +视频中提到**支持向量机**这个算法,旨在解决当特征量很大的时候(特征即如癌症例子中的肿块大小,颜色,气味等各种特征),计算机内存一定会不够用的情况。**支持向量机能让计算机处理无限多个特征。** ## 1.4 无监督学习(Unsupervised Learning) @@ -99,18 +99,22 @@ - 市场细分 - 天文数据分析 -**鸡尾酒问题** +**例子,鸡尾酒问题** ![](image/20180105_201639.png) -在鸡尾酒会上,大家说话声音彼此重叠,几乎很难分辨出面前的人说了什么。而这里的机器学习鸡尾酒算法就可以将说话者的声音同背景音乐分离出来,效果还不错呢\~~。 +在鸡尾酒会上,大家说话声音彼此重叠,几乎很难分辨出面前的人说了什么。我们很难对于这个问题进行数据标注,而这里的通过机器学习的无监督学习算法,就可以将说话者的声音同背景音乐分离出来,看视频,效果还不错呢\~~。 -嗯,这块是打打鸡血的,只需要一行代码,就是这么简单!嗯,当然,我没复现过 ^_^。 +嗯,这块是打打鸡血的,只需要一行代码就解决了问题,就是这么简单!当然,我没复现过 ^_^…… -神奇的代码: +神奇的一行代码: `[W,s,v] = svd((repmat(sum(x.*x,1),size(x,1),1).*x)*x');` -提到了在机器学习刚开始时,**推荐使用 Matlab 类的工程编程语言**,因为在 C++ 或 Java 等编程语言中,编写对应的代码需要用到复杂的库以及大量的冗余代码,比较耗费时间,建议可以在学习过后再考虑使用其他语言来构建系统。**(其实 tensorflow 的代码也非常简单,尚可一试。)** -另外,尤其是在做**原型搭建**的时候,也仍然使用 Octave,当其已经可以工作后,才将模型移植到其他的高级编程语言中。 +在机器学习刚开始时,**推荐使用 Octave 类的工程计算软件**,因为在 C++ 或 Java 等编程语言中,编写对应的代码需要用到复杂的库以及要写大量的冗余代码,比较耗费时间,建议可以在学习过后再考虑使用其他语言来构建系统。**** +另外,在做**原型搭建**的时候也应该先考虑使用类似于 Octave 这种便于计算的编程软件,当其已经可以工作后,才将模型移植到其他的高级编程语言中。 + +> 注:Octave 与 MATLAB 语法相近,由于 MATLAB 为商业软件,课程中使用开源且免费的 Octave。 + +机器学习领域的发展迅速,也可使用 Tensorflow 等开源机器学习框架学习,这些框架十分友好,易于编写及应用机器学习算法。 # 2 单变量线性回归(Linear Regression with One Variable) @@ -129,17 +133,17 @@ 这个训练集中,既给出了输入 $x$ ,又给出了输出结果 $y$,即”正确结果“,预测的量是连续的,属于监督学习中的回归问题。 -**下图解决了这个回归问题:** +2. **问题解决模型** :![](image/20180105_212048.png) -其中 $h$ 代表结果函数,也称为**假设(hypothesis)** 。这个结果函数根据输入(即房屋的面积大,给出预测结果输出(即房屋的价格)。 +其中 $h$ 代表结果函数,也称为**假设(hypothesis)** 。这个结果函数根据输入(房屋的面积),给出预测结果输出(房屋的价格)。 $h_\theta(x)=\theta_0+\theta_1x$,为其中一种可行的表达式。 > $x$: 特征/输入变量。 -上式中,$\theta$ 为参数,$\theta$ 的变化决定了输出结果,不同以往,这里的 $x$ 被我们**视作已知**(即不论是数据集还是预测前的输入),所以怎样解得 $\theta$ 以拟合数据,成了求解该问题的最终问题。 +上式中,$\theta$ 为参数,$\theta$ 的变化才决定了输出结果,不同以往,这里的 $x$ 被我们**视作已知**(不论是数据集还是预测前的输入),所以怎样解得 $\theta$ 以拟合数据,成了求解该问题的最终问题。 单变量,即只有一个特征(如例子中房屋的面积这个特征)。