Coursera-Machine Learning 笔记(一)
TOPIC: Linear Regression with one variable
Abstract
本文是https://class.coursera.org/ml-005/lecture 的课堂笔记。笔记范围包括第II部分Linear Regresssion with one variable. 我写作这篇文章的主要目的是整理自己的笔记,方便日后回顾。
Introduction
机器学习的课程零零碎碎看了很多,但是始终没有大块时间去系统学习。今天看完了有基础的线性回归部分,记录如下。
Cost Func
在介绍损失函数前,先介绍Hypothesis. Hy. 就是我们的模型假设,在线性回归中自然就是一个线性函数
H(X)=THETA0+THETA1*X
Hy. 函数的描述了自变量和因变量之间的关系,我们学习的目标便是估计THETA0和THETA1两个参数。
为了估计这两个参数,引入损失函数的概念。
Func J(.), abbreviation
对每一个THETA0,THETA1. 损失函数描述了估计值与实际值之间的误差,我们的目标就是找到最优的参数,使误差最小。
TIPS: 视频里给出的是平方误差,当然还有其他的误差函数,可以参看李航的书。
Cost Func-Intuition
这段视频主要给我们讲解的是Hy. 函数和 J函数的区别。
一个自变量是X, 一个自变量是THETAi
Cost Func-Intuition II
这段视频使用 轮廓线(Contour Plot)来描绘三维的J(。)函数。学过地理的同学肯定都见过等高线把。就是同样的东西。这段视频的中心思想是,用图来告诉我们,当J(。)函数取值越小,Hy.函数就拟合的越好。
Gradient Descent
梯度下降有三个步骤
* 给定初始值
* 稍稍改变初始值
* 直到收敛
梯度下降的公式是:
abbreviation
注意偏导数(partial derivate)的形式, 偏导数给出了损失函数的梯度方向。
视频另外介绍了梯度下降的正确和错误实现方式。
正确方式:
所有参数同时下降
错误方式:
每个参数依次下降
Gradient Descent Intuition
视频介绍derivative term 导数形式。 为了方便介绍,视频引入了只有一个变量的损失函数, J(THETA1). 可以看出,随着梯度下降,THETA逐渐收敛到最优,并且对于固定的学习速率,越接近最优点,下降速度越慢。
当然这个是由BOW函数的类型决定的。 此外,视频还介绍了凸函数(Convex Func)和非凸函数的区别,只有一个全局最优点的时凸函数,类似的还有凸优化问题。
当学习速率过大时,梯度下降算法可能会发散(Diverge)。这是因为梯度的影响,下降步伐越来越大。
Gradient Descent for Linear Regression
上个视频讨论的是单变量的简化情况,这个视频来讨论正常的线性回归。
首先来看做一个偏导数的求取练习,你做对了么?
视频用图表示了下降的不同轨迹(trajectory),会发现,在非凸的情况下。梯度下降会陷入局部最优。
这种下降方法又被称为批梯度下降(Batch),因为每一次迭代都使用了训练集中的
全部数据。
视频提出还有一种不需要迭代的方法更好,将在后面视频讲到。
What’s Next?
本视频讲到了两个扩展,
第一个扩展是不需迭代的方法
第二个扩展是大规模数据的表示。
Concretely, 第一个扩展实际没有讲,不过我估计应该是随机梯度下降,见李航那本书的感知机部分。
第二个扩展是线性代数的基础,这个可以省略,大家都很熟悉了。
畅想
线性回归是用于线性模型的学习方法。线性模型的表示能力很有限,因此不一定能得到合适的结论。但是在神经网络中,使用多个线性的激活函数来模拟实际情况是一种常用方法。我相信我们的大脑也是由大量,单纯的神经元构成的。他们对不同的特征有不同的反应。