由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
DataSciences版 - 有关Stochastic Gradient Descent
相关主题
40道经典DS/ML面试题解答,求指导搞了个实时twitter文本分析来研究闯王和吸奶的行情分析 (转载)
转行数据挖掘和机器学习【真心请教】选master project课题 - 有包子 (转载)
这里有做optimization的么?请教个问题。说说最近的一次面试,兼告诫国人
有没有人想报Cloudera的Data Scientist Certificate的Neural Network面试的时候会怎么问啊?
有人考虑过kaggle上这个预测CTR的题目么?我觉得neural network应用范围不大啊
如何用python读取大数据问一下python 或者是 R 里面 gradient boosting model 的问题
【包子求】BFGS-Matlab package回馈本版~ 最近面的面经和收集来的面经~
[请教]一个R问题请问如何完全跳到data scientist/analyst, 还有多大差距?
相关话题的讨论汇总
话题: sgd话题: newton话题: gd话题: batch话题: descent
进入DataSciences版参与讨论
1 (共1页)
E**********e
发帖数: 1736
1
我试了一下自己写的Stochastic Gradient Descent。 简单的数据比如就只有两个
features。 结果和newton raphson 迭代的结果差不多。 但是一般feature 多了。 结
果差别很大。 我知道SGD 能保证global minimum。但几个测试结果都让人怀疑SGD是
不是很有效。同样的数据用package里的GSD,结果页差很多。但是GSD好像还是比较说
得上的算法。诸位有是么看法。
m******r
发帖数: 1033
2
SGD 能保证global minimum ? 有出处吗?
E**********e
发帖数: 1736
3
我记错了? 好像也是只能local minimum? 那么他的优势是是么? 好像找data
scientist 问这个问题的几率比较高?

【在 m******r 的大作中提到】
: SGD 能保证global minimum ? 有出处吗?
o******1
发帖数: 1046
4
要是有一种方法能够保证收敛到global minimum的话,其余所有的数值方法全部不值一
提了。跟batch or mini-batch GD一样,除非是对于convex函数,否则只能收敛到
local minimum。SGD和mini-batch GD还必须让rate随step递减并趋于0,否则结果会是
绕着local minimum打转。
我理解SGD和mini-batch GD都是在sample数量太大,内存装不了,SD算不过来的情形下
,不得已采取的措施。只要rate取得合适,只有SD能保证每一步都在优化,而另外俩只
能保证大体上往优化点跑。假设SD算得过来,完全没必要用另外两种。Ng的cousera课
程上讲到过这三种算法,可以去那儿看看。
当然了,我也是半路出家。欢迎专家指正。

【在 E**********e 的大作中提到】
: 我记错了? 好像也是只能local minimum? 那么他的优势是是么? 好像找data
: scientist 问这个问题的几率比较高?

E**********e
发帖数: 1736
5
谢谢。如果sgd的结果和newton_raphson迭代的结果在一般的数据上就差别很大的话,
怎能保证大数据上结果就准确呢。我测试的几个列子,用logistic regression,就几
百的数据,包含4,5个features,结果差别很大。像这种情况sgd 或gd 根本就没是么优
势。一种情况就是可能不同的minimum。 也许我 太纠结于两种方法希望结果的一致性
。这两种方法也许在复杂的数据上,结果本来就会不一样。让我再好好研究一下,做细
致一定点。neural network 里sgd好像用的挺多。好像效果还不错。

:要是有一种方法能够保证收敛到global minimum的话,其余所有的数值方法全部不值
一提了。跟batch or mini-batch GD一样,除非是对于convex函数,否则只能收敛到
:local minimum。SGD和mini-batch GD还必须让rate随step递减并趋于0,否则结果会
是绕着local minimum打转。
d*****n
发帖数: 754
6
你在干啥?NR是解方程不动点的, 优化应该用Gauss Newton 。SGD是做优化, 并不寻
找梯度为零的解,而是误差小到一定

【在 E**********e 的大作中提到】
: 我试了一下自己写的Stochastic Gradient Descent。 简单的数据比如就只有两个
: features。 结果和newton raphson 迭代的结果差不多。 但是一般feature 多了。 结
: 果差别很大。 我知道SGD 能保证global minimum。但几个测试结果都让人怀疑SGD是
: 不是很有效。同样的数据用package里的GSD,结果页差很多。但是GSD好像还是比较说
: 得上的算法。诸位有是么看法。

E**********e
发帖数: 1736
7
不干啥。 就是想比较两种算法,了解一下。 免得面试时,说不上来。
我看了一下。 Neuton-Raphason需要找到目标函数的一次和二次direvatives, 然后根
据taylor 近似,用迭代的方法求出解。
gauss-newton不许要,可以避免求二次direvative。所说我还没试这个gauss-neutron
, 不过我估计两者获得的解在logistic regression应该会好很接近。
stochastic gd 的解就差别很大。或者way crazy。 系数有时根本就不一致,nr里正的
系数, sgd里是负的,完全不一致。 当然可能就是你说的, 不是找梯度为0的解。 而
是近似解。 在neutral network里,大家也不知道黑盒子了到底干啥, 知道得到的预
测力好久行了。
我应该比较预测的准确力,来比较两种方法的优劣。

【在 d*****n 的大作中提到】
: 你在干啥?NR是解方程不动点的, 优化应该用Gauss Newton 。SGD是做优化, 并不寻
: 找梯度为零的解,而是误差小到一定

w***g
发帖数: 5958
8
和SGD比的不是牛顿法. 牛顿法是用来解方程的, 不是用来做优化的.
事实上就是解方程, 很多时候也是加上regularization项后转化成
优化问题. 数据量大的时候, 全量的graident descent根本没法做,
只能是SGD. 就是内存够大, SGD也会比GD收敛得快. 一般来说
batch size的最优值在1到N之间. 纯粹的stochastic GC, 也就是
batch size = 1, 有时候也会出问题.

【在 E**********e 的大作中提到】
: 我试了一下自己写的Stochastic Gradient Descent。 简单的数据比如就只有两个
: features。 结果和newton raphson 迭代的结果差不多。 但是一般feature 多了。 结
: 果差别很大。 我知道SGD 能保证global minimum。但几个测试结果都让人怀疑SGD是
: 不是很有效。同样的数据用package里的GSD,结果页差很多。但是GSD好像还是比较说
: 得上的算法。诸位有是么看法。

d******e
发帖数: 7844
9
解方程和优化本来就是相通的。
Newton method有解方程和解优化两个版本。
拿SGD跟Newton比没啥不可以的,尤其是Newton的变种,比如各种quasi-newton方法

。 结
SGD是
较说

【在 w***g 的大作中提到】
: 和SGD比的不是牛顿法. 牛顿法是用来解方程的, 不是用来做优化的.
: 事实上就是解方程, 很多时候也是加上regularization项后转化成
: 优化问题. 数据量大的时候, 全量的graident descent根本没法做,
: 只能是SGD. 就是内存够大, SGD也会比GD收敛得快. 一般来说
: batch size的最优值在1到N之间. 纯粹的stochastic GC, 也就是
: batch size = 1, 有时候也会出问题.

E**********e
发帖数: 1736
10
谢谢。这就是我的意思。我只是想得到logisticregression的解。本身不是很了解解方
程和优化的区别。不过今天从新试了NR,GD,SGD,and Gauss_newton.同是和现成的
package比。结果就是NR和GN比较接近,快速,结果一致。GD需要100000次才收敛成NR
的结果。GSD和package接近,但是要比NR慢的多。当然如果数据量大的话,GSD也许是
比较好的选择。明天再试试QUASI_NEWTON。下一步开始学习neural network.再来比较
一下GSD。

:解方程和优化本来就是相通的。
相关主题
如何用python读取大数据搞了个实时twitter文本分析来研究闯王和吸奶的行情分析 (转载)
【包子求】BFGS-Matlab package【真心请教】选master project课题 - 有包子 (转载)
[请教]一个R问题说说最近的一次面试,兼告诫国人
进入DataSciences版参与讨论
f******k
发帖数: 297
11
一般能用牛顿当然用牛顿了,那个是平方收敛。QN也是gradient based method, 最多
就是线性收敛,而且收敛速度和二次项的condition number有关。
d******e
发帖数: 7844
12
Newton和QN的收敛都和Hessian的condition number有关。
QN是superlinear,虽然不如Newton的quadratic,但是每个iteration的计算复杂度通
常至少节省一个problem dimension的factor。所以最后通常比Newton快。
比如L-BFGS,很多时候在大规模数据上的表现远远好过SGD和Newton。

【在 f******k 的大作中提到】
: 一般能用牛顿当然用牛顿了,那个是平方收敛。QN也是gradient based method, 最多
: 就是线性收敛,而且收敛速度和二次项的condition number有关。

s*******7
发帖数: 120
13
SGD相比batch gd的优势一是可以很方便处理streaming data,二是如果sample特别大
,即使可以全部读到内存里,SGD的收敛也比batch gd的computational complexity低
x****q
发帖数: 101
14
SGD 首先在DL里面得到广泛应用。原因前面提到,没必要也不大可能吧所以数据都都读
进来。实际上,mini-batch 有几大好处:
每次数据量小,参数更新的就快,学的就快;
能引入更多的噪声,有助于更好的学习;
newton 和sgd 一样 都是优化的一种方法而已。没有好坏吧,看应用场合。newton 总
的更新次数应该更少,但每次更新要比sgd更复杂。。。
另外,目前好像没有什么方法能保证找到global max/min吧。我知道的想模拟退火在这
方面还挺有用,当然也不能完全保证能找到global 的值。但比一般的还是有效些。
d*****n
发帖数: 754
15
一定找到全局最优的是branch bound. 但机器学习不一定要全局最优。 dl 里用全局最
优的解效果反而不好

【在 x****q 的大作中提到】
: SGD 首先在DL里面得到广泛应用。原因前面提到,没必要也不大可能吧所以数据都都读
: 进来。实际上,mini-batch 有几大好处:
: 每次数据量小,参数更新的就快,学的就快;
: 能引入更多的噪声,有助于更好的学习;
: newton 和sgd 一样 都是优化的一种方法而已。没有好坏吧,看应用场合。newton 总
: 的更新次数应该更少,但每次更新要比sgd更复杂。。。
: 另外,目前好像没有什么方法能保证找到global max/min吧。我知道的想模拟退火在这
: 方面还挺有用,当然也不能完全保证能找到global 的值。但比一般的还是有效些。

E**********e
发帖数: 1736
16
我试了一下自己写的Stochastic Gradient Descent。 简单的数据比如就只有两个
features。 结果和newton raphson 迭代的结果差不多。 但是一般feature 多了。 结
果差别很大。 我知道SGD 能保证global minimum。但几个测试结果都让人怀疑SGD是
不是很有效。同样的数据用package里的GSD,结果页差很多。但是GSD好像还是比较说
得上的算法。诸位有是么看法。
m******r
发帖数: 1033
17
SGD 能保证global minimum ? 有出处吗?
E**********e
发帖数: 1736
18
我记错了? 好像也是只能local minimum? 那么他的优势是是么? 好像找data
scientist 问这个问题的几率比较高?

【在 m******r 的大作中提到】
: SGD 能保证global minimum ? 有出处吗?
o******1
发帖数: 1046
19
要是有一种方法能够保证收敛到global minimum的话,其余所有的数值方法全部不值一
提了。跟batch or mini-batch GD一样,除非是对于convex函数,否则只能收敛到
local minimum。SGD和mini-batch GD还必须让rate随step递减并趋于0,否则结果会是
绕着local minimum打转。
我理解SGD和mini-batch GD都是在sample数量太大,内存装不了,SD算不过来的情形下
,不得已采取的措施。只要rate取得合适,只有SD能保证每一步都在优化,而另外俩只
能保证大体上往优化点跑。假设SD算得过来,完全没必要用另外两种。Ng的cousera课
程上讲到过这三种算法,可以去那儿看看。
当然了,我也是半路出家。欢迎专家指正。

【在 E**********e 的大作中提到】
: 我记错了? 好像也是只能local minimum? 那么他的优势是是么? 好像找data
: scientist 问这个问题的几率比较高?

E**********e
发帖数: 1736
20
谢谢。如果sgd的结果和newton_raphson迭代的结果在一般的数据上就差别很大的话,
怎能保证大数据上结果就准确呢。我测试的几个列子,用logistic regression,就几
百的数据,包含4,5个features,结果差别很大。像这种情况sgd 或gd 根本就没是么优
势。一种情况就是可能不同的minimum。 也许我 太纠结于两种方法希望结果的一致性
。这两种方法也许在复杂的数据上,结果本来就会不一样。让我再好好研究一下,做细
致一定点。neural network 里sgd好像用的挺多。好像效果还不错。

:要是有一种方法能够保证收敛到global minimum的话,其余所有的数值方法全部不值
一提了。跟batch or mini-batch GD一样,除非是对于convex函数,否则只能收敛到
:local minimum。SGD和mini-batch GD还必须让rate随step递减并趋于0,否则结果会
是绕着local minimum打转。
相关主题
Neural Network面试的时候会怎么问啊?回馈本版~ 最近面的面经和收集来的面经~
我觉得neural network应用范围不大啊请问如何完全跳到data scientist/analyst, 还有多大差距?
问一下python 或者是 R 里面 gradient boosting model 的问题请教:现在那些package实现gradient boosting tree比较好?
进入DataSciences版参与讨论
d*****n
发帖数: 754
21
你在干啥?NR是解方程不动点的, 优化应该用Gauss Newton 。SGD是做优化, 并不寻
找梯度为零的解,而是误差小到一定

【在 E**********e 的大作中提到】
: 我试了一下自己写的Stochastic Gradient Descent。 简单的数据比如就只有两个
: features。 结果和newton raphson 迭代的结果差不多。 但是一般feature 多了。 结
: 果差别很大。 我知道SGD 能保证global minimum。但几个测试结果都让人怀疑SGD是
: 不是很有效。同样的数据用package里的GSD,结果页差很多。但是GSD好像还是比较说
: 得上的算法。诸位有是么看法。

E**********e
发帖数: 1736
22
不干啥。 就是想比较两种算法,了解一下。 免得面试时,说不上来。
我看了一下。 Neuton-Raphason需要找到目标函数的一次和二次direvatives, 然后根
据taylor 近似,用迭代的方法求出解。
gauss-newton不许要,可以避免求二次direvative。所说我还没试这个gauss-neutron
, 不过我估计两者获得的解在logistic regression应该会好很接近。
stochastic gd 的解就差别很大。或者way crazy。 系数有时根本就不一致,nr里正的
系数, sgd里是负的,完全不一致。 当然可能就是你说的, 不是找梯度为0的解。 而
是近似解。 在neutral network里,大家也不知道黑盒子了到底干啥, 知道得到的预
测力好久行了。
我应该比较预测的准确力,来比较两种方法的优劣。

【在 d*****n 的大作中提到】
: 你在干啥?NR是解方程不动点的, 优化应该用Gauss Newton 。SGD是做优化, 并不寻
: 找梯度为零的解,而是误差小到一定

w***g
发帖数: 5958
23
和SGD比的不是牛顿法. 牛顿法是用来解方程的, 不是用来做优化的.
事实上就是解方程, 很多时候也是加上regularization项后转化成
优化问题. 数据量大的时候, 全量的graident descent根本没法做,
只能是SGD. 就是内存够大, SGD也会比GD收敛得快. 一般来说
batch size的最优值在1到N之间. 纯粹的stochastic GC, 也就是
batch size = 1, 有时候也会出问题.

【在 E**********e 的大作中提到】
: 我试了一下自己写的Stochastic Gradient Descent。 简单的数据比如就只有两个
: features。 结果和newton raphson 迭代的结果差不多。 但是一般feature 多了。 结
: 果差别很大。 我知道SGD 能保证global minimum。但几个测试结果都让人怀疑SGD是
: 不是很有效。同样的数据用package里的GSD,结果页差很多。但是GSD好像还是比较说
: 得上的算法。诸位有是么看法。

d******e
发帖数: 7844
24
解方程和优化本来就是相通的。
Newton method有解方程和解优化两个版本。
拿SGD跟Newton比没啥不可以的,尤其是Newton的变种,比如各种quasi-newton方法

。 结
SGD是
较说

【在 w***g 的大作中提到】
: 和SGD比的不是牛顿法. 牛顿法是用来解方程的, 不是用来做优化的.
: 事实上就是解方程, 很多时候也是加上regularization项后转化成
: 优化问题. 数据量大的时候, 全量的graident descent根本没法做,
: 只能是SGD. 就是内存够大, SGD也会比GD收敛得快. 一般来说
: batch size的最优值在1到N之间. 纯粹的stochastic GC, 也就是
: batch size = 1, 有时候也会出问题.

E**********e
发帖数: 1736
25
谢谢。这就是我的意思。我只是想得到logisticregression的解。本身不是很了解解方
程和优化的区别。不过今天从新试了NR,GD,SGD,and Gauss_newton.同是和现成的
package比。结果就是NR和GN比较接近,快速,结果一致。GD需要100000次才收敛成NR
的结果。GSD和package接近,但是要比NR慢的多。当然如果数据量大的话,GSD也许是
比较好的选择。明天再试试QUASI_NEWTON。下一步开始学习neural network.再来比较
一下GSD。

:解方程和优化本来就是相通的。
f******k
发帖数: 297
26
一般能用牛顿当然用牛顿了,那个是平方收敛。QN也是gradient based method, 最多
就是线性收敛,而且收敛速度和二次项的condition number有关。
d******e
发帖数: 7844
27
Newton和QN的收敛都和Hessian的condition number有关。
QN是superlinear,虽然不如Newton的quadratic,但是每个iteration的计算复杂度通
常至少节省一个problem dimension的factor。所以最后通常比Newton快。
比如L-BFGS,很多时候在大规模数据上的表现远远好过SGD和Newton。

【在 f******k 的大作中提到】
: 一般能用牛顿当然用牛顿了,那个是平方收敛。QN也是gradient based method, 最多
: 就是线性收敛,而且收敛速度和二次项的condition number有关。

s*******7
发帖数: 120
28
SGD相比batch gd的优势一是可以很方便处理streaming data,二是如果sample特别大
,即使可以全部读到内存里,SGD的收敛也比batch gd的computational complexity低
x****q
发帖数: 101
29
SGD 首先在DL里面得到广泛应用。原因前面提到,没必要也不大可能吧所以数据都都读
进来。实际上,mini-batch 有几大好处:
每次数据量小,参数更新的就快,学的就快;
能引入更多的噪声,有助于更好的学习;
newton 和sgd 一样 都是优化的一种方法而已。没有好坏吧,看应用场合。newton 总
的更新次数应该更少,但每次更新要比sgd更复杂。。。
另外,目前好像没有什么方法能保证找到global max/min吧。我知道的想模拟退火在这
方面还挺有用,当然也不能完全保证能找到global 的值。但比一般的还是有效些。
d*****n
发帖数: 754
30
一定找到全局最优的是branch bound. 但机器学习不一定要全局最优。 dl 里用全局最
优的解效果反而不好

【在 x****q 的大作中提到】
: SGD 首先在DL里面得到广泛应用。原因前面提到,没必要也不大可能吧所以数据都都读
: 进来。实际上,mini-batch 有几大好处:
: 每次数据量小,参数更新的就快,学的就快;
: 能引入更多的噪声,有助于更好的学习;
: newton 和sgd 一样 都是优化的一种方法而已。没有好坏吧,看应用场合。newton 总
: 的更新次数应该更少,但每次更新要比sgd更复杂。。。
: 另外,目前好像没有什么方法能保证找到global max/min吧。我知道的想模拟退火在这
: 方面还挺有用,当然也不能完全保证能找到global 的值。但比一般的还是有效些。

相关主题
现在的大数据技术的价值和功用有些被夸大了转行数据挖掘和机器学习
都用了spark了吗?这里有做optimization的么?请教个问题。
40道经典DS/ML面试题解答,求指导有没有人想报Cloudera的Data Scientist Certificate的
进入DataSciences版参与讨论
r********n
发帖数: 7441
31
所有非线性基于梯度的优化算法都是解一个隐性的不动点问题

【在 d*****n 的大作中提到】
: 你在干啥?NR是解方程不动点的, 优化应该用Gauss Newton 。SGD是做优化, 并不寻
: 找梯度为零的解,而是误差小到一定

r********n
发帖数: 7441
32
SGD的主要优势在于可用于在线算法上而且更新算法简单,自动求导算法实现很容易,
所以在机器人里面和深度网络里面基本上是首选,对于有run time 性能要求的场合,
任何二阶算法每次迭代都太慢

【在 d******e 的大作中提到】
: Newton和QN的收敛都和Hessian的condition number有关。
: QN是superlinear,虽然不如Newton的quadratic,但是每个iteration的计算复杂度通
: 常至少节省一个problem dimension的factor。所以最后通常比Newton快。
: 比如L-BFGS,很多时候在大规模数据上的表现远远好过SGD和Newton。

r********n
发帖数: 7441
33
所有非线性基于梯度的优化算法都是解一个隐性的不动点问题

【在 d*****n 的大作中提到】
: 你在干啥?NR是解方程不动点的, 优化应该用Gauss Newton 。SGD是做优化, 并不寻
: 找梯度为零的解,而是误差小到一定

r********n
发帖数: 7441
34
SGD的主要优势在于可用于在线算法上而且更新算法简单,自动求导算法实现很容易,
所以在机器人里面和深度网络里面基本上是首选,对于有run time 性能要求的场合,
任何二阶算法每次迭代都太慢

【在 d******e 的大作中提到】
: Newton和QN的收敛都和Hessian的condition number有关。
: QN是superlinear,虽然不如Newton的quadratic,但是每个iteration的计算复杂度通
: 常至少节省一个problem dimension的factor。所以最后通常比Newton快。
: 比如L-BFGS,很多时候在大规模数据上的表现远远好过SGD和Newton。

r**********e
发帖数: 194
35
你需要去读一下相关的材料,理解Gradient Descent,Stochastic Gradient Descent
和Batch Gradient Descent的区别和联系。一般来说,计算梯度如果在数据量很大的时
候根本算不了,就算内存足够大计算速度也很慢,随机梯度下降法减少了每一步计算梯
度所需要的数据量,大大加快了计算速度。尽管需要的iteration增加了指数级别但总
的计算时间缩短了。在很多real-world online learning的问题中SGD很好的解决了由
于数据进来的方式是sequential的导致GD不能work的情况,而且通过增加iteration的
次数来有效减少每一次iteration所需要的计算量,是一个非常有效的算法。

【在 E**********e 的大作中提到】
: 我试了一下自己写的Stochastic Gradient Descent。 简单的数据比如就只有两个
: features。 结果和newton raphson 迭代的结果差不多。 但是一般feature 多了。 结
: 果差别很大。 我知道SGD 能保证global minimum。但几个测试结果都让人怀疑SGD是
: 不是很有效。同样的数据用package里的GSD,结果页差很多。但是GSD好像还是比较说
: 得上的算法。诸位有是么看法。

b*********1
发帖数: 11
36
各位大神各种优化,bound把我看晕了。怀疑学到假machine learning了。小弟猜的,
不对请轻拍,也算长知识了。
logistic loss是convex的,所以不管一阶二阶牛,都能找到global min。所以2个
feature的例子两个算法差不多。feature多了,NR还是能快速找到global因为二阶的关
系。SGD的话就要看楼主的参数了,应该肯定比两个feature要多迭代,所以两个算法不
容易结果一样。
1 (共1页)
进入DataSciences版参与讨论
相关主题
请问如何完全跳到data scientist/analyst, 还有多大差距?有人考虑过kaggle上这个预测CTR的题目么?
请教:现在那些package实现gradient boosting tree比较好?如何用python读取大数据
现在的大数据技术的价值和功用有些被夸大了【包子求】BFGS-Matlab package
都用了spark了吗?[请教]一个R问题
40道经典DS/ML面试题解答,求指导搞了个实时twitter文本分析来研究闯王和吸奶的行情分析 (转载)
转行数据挖掘和机器学习【真心请教】选master project课题 - 有包子 (转载)
这里有做optimization的么?请教个问题。说说最近的一次面试,兼告诫国人
有没有人想报Cloudera的Data Scientist Certificate的Neural Network面试的时候会怎么问啊?
相关话题的讨论汇总
话题: sgd话题: newton话题: gd话题: batch话题: descent