机器学习公开课笔记第九周之大数据梯度下降算法

一,随机梯度下降法(Stochastic Gradient Descent)

当训练集很大且使用普通梯度下降法(Batch Gradient Descent)时,因为每一次\(\theta\)的更新,计算微分项时把训练集的所有数据都迭代一遍,所以速度会很慢

批量梯度下降法是一次性向计算m组数据的微分,一次更新\(\theta\),计算m组数据的微分时,用的是同一个\(\theta\),会获得全局最小值

随机梯度下降法依次计算乱序的m组数据的微分,m次更新\(\theta\),计算m组数据的微分时,用的是上一组数组更新完的\(\theta\),会获得非常接近于全局最小值的局部最小值

一般迭代1-10次

二,小批量梯度下降法(Mini-Batch Gradient Descent)

三种梯度下降法对比

小批量梯度下降法就是一次更新b(一般是10,2~100d都可以)组数据,更新\( \lceil  \frac{m}{b} \rceil\),介于随机梯度下降法和批量梯度下降法之间

小批量梯度下降法比随机梯度下降法速度快是因为更新\(\theta\)的频率快,比随机梯度下降法快是因为计算微分的时候可以向量化运算加速(即矩阵相乘)

三,验证代价函数收敛

在每次更新\(\theta\)前先计算\(Cost(\theta, (x^{(i)}, y^{(i)}))\)

因为随机梯度下降法每次更新\(\theta\),并不能保证代价函数\(Cost(\theta, (x^{(i)}, y^{(i)}))\)变小,只能保证总体震荡上变小,所以我们只需最近1000个数据\(Cost(\theta, (x^{(i)}, y^{(i)}))\)的平均值

上面两副图是比较正常的随机梯度下降图,下左需要提高样例数(1000->5000)再看看是否收敛,下右明显单调递增,选择更小的学习速率\(\alpha\)或者更改特征试试

我们还可以动态修改学习速率来使代价函数收敛,随着迭代次数增加而减少

\(\alpha = \frac{const1}{iterationNumber + const2}\)

四,在线学习

在线学习就是在没有预先准备好的数据集的情况下,有数据流实时给予学习模型,实时更新\(\theta\),优点

1,不需要保存大量本地数据

2,实时根据数据的特征更改\(\theta\)

其实和随机梯度下降法类似

在线学习其他例子,可以根据用户搜索的关键词特征,来实时学习反馈结果,在根据用户的点击来更新\(\theta\),如

时间: 2024-11-03 21:43:43

机器学习公开课笔记第九周之大数据梯度下降算法的相关文章

机器学习公开课笔记第一周

一,机器学习是什么? "A computer program is said to learn from experience E with respect to some class of tasks T and performance measure P, if its performance at tasks in T, as measured by P, improves with experience E." Example: playing checkers. E = th

Andrew Ng机器学习公开课笔记 -- Mixtures of Gaussians and the EM algorithm

网易公开课,第12,13课 notes,7a, 7b,8 从这章开始,介绍无监督的算法 对于无监督,当然首先想到k means, 最典型也最简单,有需要直接看7a的讲义   Mixtures of Gaussians 如果要理解Mixtures of Gaussians,那先回去复习一下Gaussians Discriminant Analysis,高斯判别分析 首先高斯判别分析是生成算法, 所以不会直接拟合p(y|x), 而是拟合p(x|y)p(y), 即p(x,y) p(y)符合伯努力分布,

Andrew Ng机器学习公开课笔记–Reinforcement Learning and Control

网易公开课,第16课 notes,12 前面的supervised learning,对于一个指定的x可以明确告诉你,正确的y是什么 但某些sequential decision making问题,比如下棋或直升机自动驾驶 无法确切知道,下一步怎么样是正确的,因为这是一个连续和序列化的决策,比如直到最终直升机crash或下棋输了,你才知道之前的选择是不好的,但中间那么多步决策,到底是哪部分出了问题,可见这是个比较复杂的问题 强化学习,基本思路就是,既然不知道怎样是正确的,那就随便try,然后根据

Andrew Ng机器学习公开课笔记–Principal Components Analysis (PCA)

网易公开课,第14课 notes,10 之前谈到的factor analysis,用EM算法找到潜在的因子变量,以达到降维的目的 这里介绍的是另外一种降维的方法,Principal Components Analysis (PCA), 比Factor Analysis更为直接,计算也简单些 主成分分析基于, 在现实中,对于高维的数据,其中有很多维都是扰动噪音,或有些维是冗余的,对描述数据特征没有作用 比如我们在描述汽车速度的时候,用不同的单位mph or kph作为两维,其实只需要其中一维即可

Andrew Ng机器学习公开课笔记–Independent Components Analysis

网易公开课,第15课 notes,11 参考, PCA本质是旋转找到新的基(basis),即坐标轴,并且新的基的维数大大降低 ICA也是找到新的基,但是目的是完全不一样的,而且ICA是不会降维的 对于ICA,最经典的问题,"鸡尾酒会"问题 在鸡尾酒会,上很多人同时在说话,还有背景音乐,如果我们放若干个话筒进行声音采集 是否可以从采集到的数据中,分离出每个人独立的声音 假设有n个不同的人,m个时间采集点,一般会用和人数一样多的话筒,也是n个 is an n-dimensional vec

机器学习公开课笔记(6):应用机器学习的建议

应用机器学习的建议 1. 评估学习算法 在实际中应用学习算法时,如何评估一个学习算法的好坏?进一步地,如果学习的算法的效果不太好,如何改进学习算法?例如,对于一个简单的线性拟合模型,改进算法效果的策略包括: 采用更多的训练实例训练模型 采用更小的特征集合 增加额外的特征 尝试高次项拟合($x_1^2$, $x_2^2$, $x_3^3$, $\ldots$) 增加惩罚项系数$\lambda$ 减小惩罚项系数$\lambda$ 机器学习算法诊断(ML diagnostic)负责发现学习算法中存在的

机器学习公开课笔记(7):支持向量机

支持向量机(Support Vector Machine, SVM) 考虑logistic回归,对于$y=1$的数据,我们希望其$h_\theta(x) \approx 1$,相应的$\theta^Tx \gg 0$; 对于$y=0$的数据,我们希望$h_\theta(x) \approx 0$,相应的$\theta^Tx \ll 0$.每个数据点的代价为: $$-\left[y\log(h_\theta(x))+(1-y)\log(1-h\theta(x))\right]$$当$y=1$时其代

机器学习公开课笔记(5):神经网络(Neural Network)——学习

这一章可能是Andrew Ng讲得最不清楚的一章,为什么这么说呢?这一章主要讲后向传播(Backpropagration, BP)算法,Ng花了一大半的时间在讲如何计算误差项$\delta$,如何计算$\Delta$的矩阵,以及如何用Matlab去实现后向传播,然而最关键的问题——为什么要这么计算?前面计算的这些量到底代表着什么,Ng基本没有讲解,也没有给出数学的推导的例子.所以这次内容我不打算照着公开课的内容去写,在查阅了许多资料后,我想先从一个简单的神经网络的梯度推导入手,理解后向传播算法的

机器学习公开课笔记(8):k-means聚类和PCA降维

K-Means算法 非监督式学习对一组无标签的数据试图发现其内在的结构,主要用途包括: 市场划分(Market Segmentation) 社交网络分析(Social Network Analysis) 管理计算机集群(Organize Computer Clusters) 天文学数据分析(Astronomical Data Analysis) K-Means算法属于非监督式学习的一种,算法的输入是:训练数据集$\{x^{(1)},x^{(2)},\ldots, x^{(m)}\}$(其中$x^