前言
这个笔记是一个月前补Andrew ng的Coursera课程的时候记录的,因为知识点比较杂,而且coursera的每一个part都不是很详细地介绍(但是确实是入门经典),因此笔记少而多,特此整理,以后每一个方向都是大坑。
ML所研究的问题
机器学习分为三大类问题:监督学习、非监督学习和强化学习。
监督学习给出标准数据集和结果,希望计算机能够尽量模仿给出这种近似“标准”的结果,例如分类问题;而非监督式问题通过给出数据集,让计算机得出一些与数据集有关的结论,例如聚类问题,并没有给出到底要怎样进行分类;强化学习是一系列的决策过程;
梯度下降与正规方程
关于Feature Scaling: get every feature into approximately into [-1, 1] 也就是归一化。
a:每个维度的特征减去此维度特征均值,除以此维度特征的最大值与最小值之差:
(Xi−mean(xi))(max(Xi)−min(Xi)) (mean normalization)
b:每个维度的特征减去此维度的均值,除以这个维度的标准差:
(Xi−mean(Xi))/std(Xi)(meannormalization)
c:常数项 X0=1 ,已经在(或接近)合理的range内,无需缩放
d:为什么要Feature Scaling呢?
特征缩放有助于算法快速收敛,可以通过迭代算法的公式来解释:
e:使用缩放特征计算得到的模型参数去做预测,预测样本是否也需要做Feature Scaling。
对于一个待预测的sample instance X ,使用模型参数预测前,应首先对X 进行Feature Scaling。
即: X=(X−mean(Xi))/std(Xi) ,其中, mean(Xi) 和 std(Xi) 是训练样本集第i维特征的均值和方差
f:使用Normal Equation(正规方程)计算模型参数,是否需要做特征缩放?
使用正规方程计算参数时,无需进行Feature Scaling。
g:Why not Feature Scaling the y ?????关于Learning Rate:
与正规方程(Normal Equation)不同,梯度下降算法需要选择合适的Learning rate,以便控制
算法的迭代效果和迭代速度。通常情况下,先选择一个较小的初始学习率,观察效果,然后可
以按照3倍、10倍递增的方式逐步提高学习率,观察效果。直到能够找到一个合适的Learning rate。
a:学习率过大,会导致算法不收敛
b:学习率过小,会导致算法迭代速度过慢,影响算法效率关于Debugging Issue:
为了验证迭代算法(梯度下降)是否能够在迭代中逐步降低Cost function。需要画出代价函数
关于迭代次数的曲线,根据这个曲线适当调整算法参数,可以实现算法收敛/提高收敛效率关于Normal Equation:
不需要Feature Scaling,不需要迭代,不需要设置学习率
Normal Equation定义如下所示:
θ=(XTX)−1XTy
其中:
a: X 为design matrix,每行为一个sample instance的特征,共n + 1项,n为特征维数。每个sample instance的第一项都为1,为常数项(为便于计算而引入的)。
b:XT 表示矩阵X的转置, −1 表示矩阵求逆, y 表示训练样本中的预测值,为mx1 维, m 为sample instance的个数θ 表示要计算的模型参数向量,为 n+1 维。
c:假设矩阵A维数为 n∗n ,则 A−1 的计算复杂度为 O(n3)何时使用Normal Equation,何时使用Gradient Descent?
m = number of training samples,n = number of features。
n=10000时,Normal Equation需要计算逆矩阵,所以Normal Equation方法效率会慢下来,可以考虑使用Gradient descent代替
n=100000时,计算Normal Equation中的 (XT∗X)−1 会变得非常慢,此时,definitely使用Gradient Descent。
正规方程的推导见这篇文章。
独立同分布
在概率统计理论中,如果变量序列或者其他随机变量有相同的概率分布,并且互相独立,那么这些随机变量是独立同分布。独立同分布independent and identically distributed (i.i.d.)
概念学习
今天收获主要是概念学习初步了解,博客园的两篇文章可以看下(其实大部分都是Mitchell的ML的摘抄),传送门:
(1)http://www.cnblogs.com/pangxiaodong/archive/2011/05/10/2042243.html
(2)http://www.cnblogs.com/lufangtao/archive/2013/05/24/3086935.html
概念学习主要是根据已知实例(包含一系列的属性和最终的目标概念,目标概念只有与两种,可以认为是0和1)推断出评判的布尔函数。
目标概念结果为1则为正例,为0,则为反例。
当样本中不同的维度的数据在数值上大小相差非常大的时候,我们需要对每一维数据进行特征缩放(feature scaling),公式如下所示
均一化使用样本的维度数值减去均值除以标准差;
特征缩放的目的是让数据大小近似,这样使得我们的梯度下降算法能够尽快收敛。
范数
给定向量
x=(x1,x2,...xn)
L1
范数:向量各个元素绝对值之和
L2
范数:向量各个元素的平方求和然后求平方根
Lp
范数:向量各个元素绝对值的
p
次方求和然后求
L∞
范数:向量各个元素求绝对值,最大那个元素的绝对值