云淡风轻

  • 量化与交易
  • 关于站长
博学笃志 切问近思
  1. 首页
  2. 机器学习
  3. 正文

Coursera Machine Learning 机器学习 (Andrew Ng) Notes 1

2017年9月4日 1558点热度 0人点赞 0条评论

上周一周时间完成了Coursera的Machine Learning(Stanford Andrew Ng)原本11周schedule的课程,满分通过,整个课程偏向应用,省略了大多数数学推导,难度不大,只要有高等数学和线性代数的基础,几乎没有障碍。
最近写几篇笔记记录下自己的思考和一些整理。

“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的程序的性能P在获得经验E之后得到提高,那么就说这个程序“学习”了。

名词:
数据集:经验E以数据集形式存在,数据集区分为标注过的和未标注过的
特征:数据集的数据以特征为主,例如身高,体重,胸围。标签过的数据会标注结果例如男或女
拟合\学习:使用某种模型以特征为输入,以结果为输出,调整模型参数使得模型在所有特征输入的输出中趋近真实结果
Cost Function:用以衡量模型在特定参数时的拟合偏差大小,一般译为成本函数

1.线性回归和逻辑回归的内涵
广义线性回归使用多项式模型,\theta_0+\theta_1x_1+\theta_2x_1^2\dots这样的函数拟合训练集即使用多项式拟合经验E,通过最小化cost function即最优化performance使得多项式的参数\overrightarrow{\theta}得到优化,从而提升模型对于新的输入的拟合能力。
逻辑回归使用sigmoid函数模型,拟合训练集即使用多项式和sigmoid函数拟合经验E,通过最小化cost function即最优化performance P使得多项式参数的Theta得到优化,从而提升模型对于新的输入的拟合能力。
线性回归和逻辑回归的区别在于拟合函数,线性回归是从连续量映射到连续量,逻辑回归是从连续量映射到离散量,选用什么模型在于数据集中的特性能够用什么模型进行拟合。

2.Cost Function的选取
Cost Function用于衡量性能P,非常关键,错误选取cost function将使得模型偏离预期,优化后的结果也无意义。线性回归和逻辑回归的cost function均通过首先假设y=h(X)+\epsilon且\epsilon服从正态分布,由y,X求\theta的极大似然估计得来的优化目标函数。直观理解线性回归的Cost Function就是h(X)与实际值在y轴上的偏差

3.sigmoid函数
sigmoid函数g(z)=\frac{1}{1+e^{-z}}是为了将连续量映射到离散量{0,1},虽然sigmoid函数值取值范围是(0,1),但可以使用阈值进行0,1判定。逻辑回归的Cost Function使用log可以直观理解为如果g(h(X))判定与y相悖,则施加一个很大的惩罚值,如果g(h(X))判定与y相符则cost为0

4.梯度下降
梯度下降是简单的优化算法,已知cost function和训练集时需要使用优化算法找到优化的\overrightarrow{\theta}使cost function最小。cost function对\theta_i求偏导,将\theta_i减去\alpha倍的偏导进行迭代,直到收敛,“梯度”即一介偏导,“下降”即沿着切线下降。梯度下降在凸函数中应用是可以证明找到最小值的,不过梯度下降算法有一个参数,\alpha。\alpha取值过小会导致步长太小,收敛极慢,\alpha过大,可能导致迭代过程中步子太大直接越过最小值导致算法不收敛。梯度下降值得注意的一点是所有参数\theta_i必须同时一次性迭代,不能先迭代\theta_1再迭代\theta_2,因为首先迭代的\theta_1将影响到其后\theta_2偏导的计算。

5.梯度下降的验证
在梯度下降中如何取值合适的\alpha使算法收敛。可以画出y轴为cost function值,x轴为迭代次数的图用于验证梯度下降算法工作正常。工作正常的梯度下降cost function每次迭代都将减小,可以尝试不同的\alpha找到合适的收敛曲线。在验证后,正式运行中应关闭验证,因为每次迭代时均计算cost function的开销极大。

6.数据标准化
不同的x_i取值范围可能差别极大,这时需要对数据进行标准化(x_i=\frac{x_i-\mu_i}{\sigma_i})使其处于同一量级。这是因为梯度下降中\alpha对于所有参数\theta_i都是一样的取值,如果x_i取值差距过大,可能存在\theta_1上步长过大越过其优化值,而同时在\theta_2上步长过小的情况,这会导致梯度下降过程中较无效的迭代从而导致收敛速度变慢,因此数据标准化可以显著提高梯度下降的效率。值得注意的是,如果使用了数据标准化,在测试集或实际使用时也需要进行标准化的步骤之后再输入模型。

7.过拟合和欠拟合
过拟合的内涵是,模型足够复杂,可以几乎完美的拟合训练集(60%数据)的所有真实值,但由于对于训练集过度的拟合,导致模型过于特殊化(specialized),欠缺泛化(generalization)即无法揭示数据集中的规律,在验证集(20%的数据)中反而误差较大。
欠拟合的内涵是,模型过于简单,在训练集中都存在明显的偏差,虽然泛化能力较强,但由于初始模型根本不具备拟合训练集数据的能力,导致其也无法揭示数据集中的规律,在验证集中误差同样较大。
在Andrew的讲解中,他使用high bias和high variance来解释这两个概念,实际上这里的偏差bias和方差variance是指在不同数据集D_i上\epsilon=y-h(x)的均值的分布,即欠拟合模型在任何数据集上均有较高的偏差,相对来说方差较低,过拟合模型在一些数据集(训练集)中表现优秀,但一些数据集(验证集和测试集)中表现糟糕,表现为方差较大而偏差略小。

8.正则化
正则化是一种解决过拟合问题的方法,在cost function中加入惩罚项,\lambda\sum{\theta_i^2}。这么做能够减少过拟合因为\theta_i^2变成了cost function的一部分,在最小化cost function时能够自动取得复杂模型和拟合偏差之间的trade off。当然,由于正则化同样引入了一个参数\lambda,这要求正确选择此参数,如果过小,等于没有正则化项,模型同样会陷入过拟合;如果过大,则施加的惩罚过大,将导致cost function中拟合偏差不再是主要因素,正则化项变为主要因素,这时最小化cost function将优先最小化惩罚项从而得到某个简单的欠拟合模型。正则化不对\theta_0生效,因为\theta_0是模型中的常数,与特征项无关,与模型复杂度无关,因此忽略\theta_0。

9.Normal Equation
Normal Equation是从线性代数出发直接求解cost function最小值,与梯度下降相比,Normal Equation需要矩阵X^TX可逆,在矩阵较小时Normal Equation速度较快,但在矩阵较大时,求逆的高时间复杂度缺点凸显。

Andrew用几节课就讲清楚了机器学习的一般过程,选择模型,建立有效的评价标准cost function,使用训练集进行拟合优化得到模型参数,使用交叉验证集进行校验,最后就可以在测试集上使用机器学习系统。

课程前几个ex很简单,主要是向量化实现。如果不能一下想到向量化实现,可以先用循环遍历实现再简化。

编程作业

%linear regression cost function
J=1/(2*m)*((X*theta)-y)'*((X*theta)-y);

%linear regression gradient descent
theta=theta-(alpha/m*((X*theta)-y)'*X)';

%sigmoid
g = 1./(1+exp(-z));

%logistic regression cost function
J=1/m*(sum(-y.*log(sigmoid(X*theta))-(1-y).*(log(1-sigmoid(X*theta)))));

%logistic regression gradient descent
grad=1./m*((sigmoid(X*theta)-y)'*X);

%regularization
theta1=theta;
theta1(1)=0;
J=1/m*(sum(-y.*log(sigmoid(X*theta))-(1-y).*(log(1-sigmoid(X*theta)))))+lambda/2/m*(theta1'*theta1);
grad=(1./m*(sigmoid(X*theta)-y)'*X)' + lambda/m.*theta1;
标签: 暂无
最后更新:2017年9月17日

世平矿

博学笃志,切问近思

点赞
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

世平矿

博学笃志,切问近思

分类
  • C++
  • 交易执行
  • 其他
  • 区块链
  • 固定收益
  • 技术指标
  • 数据库
  • 机器学习
  • 网站
  • 资产配置
  • 量化与交易
归档
  • 2025 年 2 月
  • 2024 年 12 月
  • 2022 年 1 月
  • 2021 年 6 月
  • 2021 年 1 月
  • 2020 年 12 月
  • 2019 年 4 月
  • 2018 年 12 月
  • 2018 年 11 月
  • 2018 年 10 月
  • 2018 年 9 月
  • 2018 年 8 月
  • 2018 年 6 月
  • 2018 年 5 月
  • 2018 年 4 月
  • 2018 年 2 月
  • 2018 年 1 月
  • 2017 年 12 月
  • 2017 年 11 月
  • 2017 年 10 月
  • 2017 年 9 月
  • 2017 年 7 月
  • 2017 年 6 月
  • 2017 年 5 月

COPYRIGHT © 2025 lishiping.site. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang