随机梯度下降是坐标下降的一种?


转载自:坐标上升、坐标下降、梯度下降的关系_yshnny_新浪博客。

1.坐标上升法:坐标上升与坐标下降可以看做是一对,坐标上升是用来求解max最优化问题,坐标下降用于求min最优化问题,但是两者的执行步骤类似,执行原理相同。

例如要求接一个max_f(x1,x2,...,xn)的问题,其中各个xi是自变量,如果应用坐标上升法求解,其执行步骤就是:

1.首先给定一个初始点,如 X_0=(x1,x2,...,xn);

2.for dim=1:n

固定xi;(其中i是除dim以外的其他维度)

以x_dim为自变量求取使得f取得最大值的x_dim;

end

3.循环执行步骤2,直到f的值不再变化或变化很小。

总结:其关键点就是每次只变换一个维度xi,而其他维度都用当前值进行固定,如此循环迭代,最后得到最优解。

2.坐标下降法与上述过程类似,不过在第2步求取最优x_dim的值时,变为使得f最小的x_dim;

3.梯度下降法又称为最速下降法,他也是下降法,不过和坐标下降法的主要区别就是多了一个下降方向的选取,在坐标下降中下降方向是沿着每一维的坐标轴方向进行的,也就是方向是类似于(0,0,1,0,0)、(0,0,0,1,0)(假设是5维)这种形式的,而梯度下降法中,下降方向变换为函数在当前点的梯度方向,当维度很高时,梯度下降的优势就要比坐标下降明显很多。

梯度下降法的一个出发点是: f沿着f的梯度反方向下降最快。 这一点用文字而言,比较好理解,就是沿着f的梯度反方向搜索前进直到最优就是了。如果用步骤来描述的话就是:

1.给定一个初始值,如 X_0=(x1,x2,...,xn);

2.求f在此点的梯度 f"(X_0);

3.确定下一点的位置: X_1 = X_0 - a·f"(X_0);(a&>0且一般都比较小,相当于在f的梯度反方向走了较 小的一步)

4.求f(X_1),如果与f(X_0)的差在一定范围内,则停止,否则令X_0=X_1,循环2,3,4.


不是的!!!

随机梯度下降每一次迭代的时候是沿着梯度的方向走的,也就是说每一迭代的时候都会同时更新各个参数的数值(注意与坐标下降的区别)。之所以叫随机梯度下降,在于其对梯度的计算只用到了一个样本(不用遍历所有样本,因此大大提高了计算速度)。

坐标下降在每一次迭代的时候,并不是按照梯度的方向走,而是按照坐标的方向走(比如我们要估计的是p维的一个向量,则坐标的方向则是有p个,分别是p维空间上的单位向量ei)。坐标下降的每一次迭代过程,会按照一定的顺序(比如按照1,2,...p的顺序)对每一个参数进行更新(更新第j个参数的时候,其他p-1个参数保持不变),直到收敛。在以上过程中,仍然要遍历整个样本。

坐标下降方法简单,迭代速度快,但是因为其只能适用于某些特定的凸优化问题(比如Lasso,Elastic Net等),因此应用受到一定程度的限制。

ps:我猜题主是学统计的吧!


wiki一下,假如是 各个参数都是独立的, 那么 梯度下降 和 坐标下降 的效果是一样的 ;如果参数之间有耦合,梯度表达式 和 分立的 坐标梯度 表达式 不一样,这两个效果就不一样了


推薦閱讀:

國內真正的大數據分析產品有哪些呢?只求乾貨爆料,不要廣告商!
最近开始学习机器学习,不知道看哪本书比较好(PRML ESL or MLAPP)?
如何評價Kaggle舉辦的Rental Listing Inquiries比賽?
CMU HCI 具體學些什麼?
信息檢索入門?

TAG:人工智能 | 数据挖掘 | 机器学习 | 模式识别 | 统计学习 |