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

2019-03-02  本文已影响0人  楠子小先生

学习资料:Coursera 吴恩达 机器学习
辅助资料:https://github.com/fengdu78/Coursera-ML-AndrewNg-Notes

一、 引言(Introduction)

1.2 机器学习是什么?

Tom Mitchell:一个程序被认为能从经验E中学习,解决任务T,达到性能度量值P,当且仅当,有了经验E后,经过P评判,程序在处理T时的性能有所提升。
e.g.经验E 就是程序上万次的自我练习的经验,任务T 就是下棋。性能度量值P 就是它赢得比赛的概率。

1.3 监督学习

监督学习:给学习算法一个由“正确答案”组成的数据集,然后运用学习算法,算出更多的正确答案(作出预测)。
回归问题:e.g.预测房价。回归是指,推测出这一系列连续值属性。
分类问题:e.g.估算良恶性肿瘤概率。分类指的是,我们试着推测出一组离散的输出值(0,1,2,3,……)。

希望获取大量(无限多)特征来做推测
-->无限多个特征的处理、存储
-->算法:支持向量机,里面有一个巧妙的数学技巧,能让计算机处理无限多个特征。

1.4 无监督学习

无监督学习:已知的只有一个数据集,不给标签(没法提前知道哪些是哪些)。无监督学习需要针对数据集,自动地找到数据中的结构,把这些数据自动地聚类到各个类。所以叫做聚类算法
聚类应用:(例子)
谷歌新闻:搜索众多的新闻事件,自动地把同一主题的新闻事件聚类到一起;
组织大型计算机集群:解决什么样的机器易于协同地工作;
社交网络的分析;
鸡尾酒宴问题(分离音频);
others:
Octave编程环境。对大量机器学习算法,第一步是建原型。

二、单变量线性回归(Linear Regression with One Variable)

2.1 模型表示

回归一词指的是,我们根据之前的数据预测出一个准确的输出值。
分类问题,当我们想要预测离散的输出值,

m 代表训练集中实例的数量
x 代表特征/输入变量
y 代表目标变量/输出变量
(x,y) 代表训练集中的实例
(x(i),y(i)) 代表第i 个观察实例
h 代表学习算法的解决方案或函数也称为假设(hypothesis),是一个从x 到 y 的函数映射。

image.png

hθ (x)=θ01 x,只含有一个特征/输入变量,因此这样的问题叫作单变量线性回归问题

2.2 代价函数
image.png
选择合适的参数(parameters)θ0 和θ1(斜率、截距)决定了我们得到的直线相对于我们的训练集的准确程度,模型所预测的值与训练集中实际值之间的差距(下图中蓝线所指)就是建模误差(modeling error)
image.png
选出使得modeling error的平方和最小的模型参数。 即使得代价函数 image.png
需要一种有效的算法,能够自动找出使代价函数J取最小值的参数θ0和θ1
2.5 梯度下降

梯度下降思想:开始,随机选择一个参数的组合(θ01,......,θn ),计算J,然后寻找下一个能让J下降最多的参数组合。持续操作至到达一个局部最小值(local minimum),但不能确定得到的局部最小值是否是全局最小值(global minimum)

image.png
理解:想想自己站在山顶一小步一小步往下寻找最快下山的路径。
批量梯度下降(batch gradient descent)算法的公式为:
image.png
a学习率(learning rate),它决定下山迈出的步子有多大。
在批量梯度下降中,我们每一次都同时让所有的参数减去学习速率乘以代价函数的导数。
即,所有θj都减去微分项,然后所有θj都要更新成减去微分项后的值,然后再走下一步。
image.png
同时更新是梯度下降中的一种常用方法,是更自然的实现方法。
2.6 梯度下降的直观理解
image.png
在梯度下降法中,当我们接近局部最低点时,梯度下降法会自动采取更小的幅度,导数值会自动变得越来越小,所以梯度下降将自动采取较小的幅度。所以实际上没有必要再另外减小 image.png
对我们之前的线性回归问题运用梯度下降法,关键在于求出代价函数的导数,即:
{∂\over∂θ_j } J(θ_0,θ_1)={∂\over∂θ_j } {1\over2m }\sum_{i=1}^m(h_θ (x^{(i)})-y^{(i)} ) ^2

j=0时:{∂\over∂θ_0 } J(θ_0,θ_1)={1\over m }\sum_{i=1}^m(h_θ (x^{(i)})-y^{(i)} )

j=1时:{∂\over∂θ_1 } J(θ_0,θ_1)={1\over m }\sum_{i=1}^m((h_θ (x^{(i)})-y^{(i)})*x^{(i)} )

则算法改写成:
Repeat {
θ_0:=θ_0-a {1\over m} ∑_{i=1}^m(h_θ (x^{(i)})-y^{(i)} )
θ_1:=θ_1-a {1\over m} ∑_{i=1}^m((h_θ (x^{(i)})-y^{(i)} )⋅x^{(i)})
}

批量梯度下降,指的是在梯度下降的每一步中,我们都用到了所有的训练样本,在梯度下降中,在计算微分求导项时,我们需要进行求和运算,所以,在每一个单独的梯度下降中,我们最终都要计算这样一个东西,这个项需要对所有m个训练样本求和。因此,批量梯度下降法这个名字说明了我们需要考虑所有这一"批"训练样本,而事实上,有时也有其他类型的梯度下降法,不是这种"批量"型的,不考虑整个的训练集,而是每次只关注训练集中的一些小的子集。在后面的课程中,我们也将介绍这些方法。

用线性代数 计算代价函数J最小值的数值解法,正规方程(normal equations)的方法。数据量较大时,梯度下降法比正规方程要更适用一些。

三、线性代数回顾(Linear Algebra Review)

上一篇下一篇

猜你喜欢

热点阅读