Andrew Ng Machine Learning - Week 一: Introduction
Andrew Ng Machine Learning - Week 1: Introduction
此文是斯坦福大学,机器学习界 superstar — Andrew Ng 所开设的 Coursera 课程:Machine Learning 的课程笔记。力求简洁,仅代表本人观点,不足之处希望大家探讨。
课程网址:https://www.coursera.org/learn/machine-learning/home/welcome
Week 1: Introduction
- Environment Setup Instructions
这一章介绍课程一般使用的工具。octave或者matlab即可,这两者本质上没有什么区别,都有着丰富的数学库计算库。 - Introduction
- 机器学习定义:简单来说,让计算机执行一些行为,但是without explicit programmed。
-
监督学习(supervised learning):通过已知的正确信息,得到未知的信息。一般用于解决的问题有两类:
- 回归问题(regression)
- 例如:房价预测。已知一百平房子售价,两百平房子售价,三百平房子售价。那么,一百五十平房子的售价呢?
- 很容易想到,拟合。那么接下来,是直线拟合?二次曲线拟合?
- 这就是回归问题要解决的,通过已知离散信息,预测未知的连续信息。
- 分类问题(classification)
- 例如:肿瘤分类。已知肿瘤size与肿瘤良性(label: 0)还是恶性(label: 1)分类的关系如下:
- 更进一步,完全可以用一维坐标图来表示:
- 现在需要对于根据size的对某个肿瘤判断它是良性还是恶性,就是分类问题。
- 再进一步,现在我仅仅把size作为feature之一,如果我们加入考虑肿瘤积水(二维坐标图)?肿瘤硬度(三维坐标图)?原则上可以考虑无限种feature,如何处理?这里卖了个关子,可以使用支持向量机(SVM)。
-
无监督学习(unsupervised learning)/ 聚类算法(clustering):
- 对于有监督学习而言,我们已知的信息很多:每个data的label是什么,label可以分为多少类,等等。但是无监督学习中,这些都是未知的。
- 最常见的应用:浏览新闻时经常会有的相关新闻,或者搜索时的相关搜索结果,又或是weibo中的推荐分组,等等。
- 可以理解为计算机自己理解后将信息分为了若干类。
- 经典案例:cocktail party problem,原文链接:http://soma.mcmaster.ca/papers/Paper_7.pdf。简而言之,就是在聚会上摆俩麦克风分别记录声音,需要通过这些信息将不同声源的声音分隔开来。
- 如果考虑声音本身的特征与背景知识,解法会比较复杂,需要大量的先验知识。但站在机器学习的角度来思考,就是一类无监督学习的应用场景。matlab实现仅需几行代码而已。
- Bonus: Course Wiki Lecture Notes
-
单一变量线性回归:即通过线性方程来拟合已知data的feature,与label之间的关系。表达为
hθ=θ0+θ1x 。 - 不同的线性方程之间,需要挑出来一个拟合更适合的,这就需要一个判断标准。常用的基于Mean squared error (MSE):
J(θ0,θ1)=12m∑i=1m(hθ(x(i))−y(i))2 - 如果让计算机来实现这个过程,怎么办呢?梯度下降法(Gradient Descent)是一种常见手段。
- 该方法的核心是:
-
θi:=θi−α∂∂θiJ(θi,θj) ,其中α 是下降步长,人为确定。可以看出来,梯度下降法的目的是使J(θi,θj) 越来越小,对于其是否线性,参数的数量,都没有限制。 - 最后利用梯度下降法代入导数(不论是链式法则,还是单个变量代入)得到最优的拟合函数参数:
-
单一变量线性回归:即通过线性方程来拟合已知data的feature,与label之间的关系。表达为
-
Model and Cost Function
- 再次回顾一下监督学习,两类:regression和classification。
- 简单来说,regression是predict real-valued output,classification是predict discrete-valued output。
-
注明了以下符号,方便以后沟通:
m :训练集样本的个数x :输入向量,y :输出向量,(x,y) :一组样本(x(i),y(i)) :样本第i 行中的数据h(hypothesis) :就是我们用于predict的mapping,即函数 我们设计拟合,目的就是为了使得表示拟合数据与已知真实数据直接差距的cost function最小,这个cost function是啥?就是我们之前提到的判断标准,常见的为:
J(θ0,θ1)=12m∑i=1m(hθ(x(i))−y(i))2 。当有两个未知量时,cost function就需要表示为三维图:- 为了方便表示,也可以把上图表示为类似地理上的“等高线”。术语称为 contour plot(轮廓图):
-
Parameter Learning
-
现在,我们开始具体来看看,第一个机器学习算法:梯度下降法(gradient descent)
target:
minimize(J(θ0,θ1))
algorithm:-
任意设置θ0,θ1为某个值 ; -
temp0:=θ0−α∂∂θ0J(θ0,θ1) ,temp1:=θ1−α∂∂θ1J(θ0,θ1) -
θ0:=temp0 ,θ1:=temp1 -
if(J(θ0,θ1)<可接受误差范围)执行 2,否则停止
-
特别注意,这里的
temp 是为了保证更新是同一时间发生的,这才是最正宗的梯度下降法。如果先更新了θ0 ,再用更新之后的θ0 去更新θ1 ,就违背了梯度下降法的初衷。- 可能你已经发现,这里的最优值,仅仅是局部的(local)而不是全局的(global)。因此选取的初值不同,可能会导致算法停留在不同的最优值。因此,这是梯度下降法的一个缺陷。但是对于线性回归而言,cost function 是一个convex function(形状为弓形),仅有一个最优值,局部最优值就是全局最优值。
- 到此为止,我们说的其实都是:batch gradient descent。也就是我的cost function是所有样本的MSE之和。如果不是计算所有样本,仅仅是计算某个重要子集的MSE之和,这个方法在以后的课程中会提到。
- 最后,提到线性代数中的寻找极值的方法:normal equations。但是在大规模的数据计算中,还是梯度下降法更为适用。
-
- Linear Algebra Review
- 学完前几章并完成习题之后,已经显示Week 1完成。第六章知识是复习线性代数的知识。可以跳过。
- 矩阵:https://en.wikipedia.org/wiki/Matrix_(mathematics)
- 向量:特殊的矩阵,注意是 列数 = 1
- 1-index:下标从1开始。0-index:下标从0开始。
- 矩阵乘法没有交换律,但是有结合律。
- 只有方阵(#col=#row)才有逆矩阵。但仅仅满足方阵这一个条件并不足够,同时需要满足行列式不等于0。没有逆矩阵的矩阵,称之为“奇异(singular)矩阵”或“退化(degenerate)矩阵”。
版权声明:本文为博主原创文章,未经博主允许不得转载。