p*y
2 楼
乏善可陈,只有韩磊的《送别》觉得好听,其他无感。
《时间去哪儿》,周笔畅版本没有央视春晚那个好听。
喜欢邓紫棋,可除了开始几场惊艳,最近唱的歌都无感。
这个节目要是保持这个品质,以后就不追了。没劲。
《时间去哪儿》,周笔畅版本没有央视春晚那个好听。
喜欢邓紫棋,可除了开始几场惊艳,最近唱的歌都无感。
这个节目要是保持这个品质,以后就不追了。没劲。
u*p
3 楼
请问, HP Touchpad看pdf能缩放吗?
l*x
4 楼
一阶的方法(SGD,RMSProp,momentum,Adam等)其实区别都不太大;常用的二阶的方法往
往都是些off-the-shelf的凸优化方法(quasi-Newton、truncated newton、共轭梯度等
+line search),对于非凸的和随机的大规模优化问题都不太好用。有兴趣的可以看看http://ieeexplore.ieee.org/document/7875097/里的理论,类似quasi-newton,用到preconditioner,但不同的是,最优的preconditioner涉及到期望(对付随机梯度噪声)和切线方程的外积的形式(对付非凸,有点类似Gaussian-Newton的形式)。Preconditioner在Lie group上用自然梯度下降来求解,当然Preconditioner可以是limited-memory的,这样才可用在large-scale的问题上。
最近有空整理了一番,写了一套tensorflow的demo code,有rnn, lstm, cnn等各种简
单的benchmark problems,放在https://github.com/lixilinx/psgd_tf上,有兴趣的
可以看看,ESGD和batch normalization与特定的limited-memory preconditioner是密
切相关的。有些Pytorch demo(不完整,核心是numpy写的)放在https://github.com/
lixilinx/psgd_np上。总之,感兴趣可以尝试一下。
往都是些off-the-shelf的凸优化方法(quasi-Newton、truncated newton、共轭梯度等
+line search),对于非凸的和随机的大规模优化问题都不太好用。有兴趣的可以看看http://ieeexplore.ieee.org/document/7875097/里的理论,类似quasi-newton,用到preconditioner,但不同的是,最优的preconditioner涉及到期望(对付随机梯度噪声)和切线方程的外积的形式(对付非凸,有点类似Gaussian-Newton的形式)。Preconditioner在Lie group上用自然梯度下降来求解,当然Preconditioner可以是limited-memory的,这样才可用在large-scale的问题上。
最近有空整理了一番,写了一套tensorflow的demo code,有rnn, lstm, cnn等各种简
单的benchmark problems,放在https://github.com/lixilinx/psgd_tf上,有兴趣的
可以看看,ESGD和batch normalization与特定的limited-memory preconditioner是密
切相关的。有些Pytorch demo(不完整,核心是numpy写的)放在https://github.com/
lixilinx/psgd_np上。总之,感兴趣可以尝试一下。
i*i
6 楼
刚看到满文军,前两票投给张宇和韩磊。大叔说的一番话太对 我胃口了,心境。
c*v
8 楼
不错。你算完整的海塞赛吗?
ESGD指的是evolution stragety ?
ESGD指的是evolution stragety ?
i*i
10 楼
给韩磊伴奏的小提琴小伙子是唐韵,小时候主演过陈凯歌的“某电影”,很帅气却连个
正面镜头也没拍着。
正面镜头也没拍着。
l*x
11 楼
ESGD是大牛Yoshua Bengio组提出的equilibrated SGD,对应这一套理论的diagonal
preconditioner,其实其性能大概和RMSProp相当,其它的preconditioner,如更稀疏
的scaling-and-normalization,的性能会好很多。
preconditioner,其实其性能大概和RMSProp相当,其它的preconditioner,如更稀疏
的scaling-and-normalization,的性能会好很多。
l*x
14 楼
第一个问题你是指需要计算完整的Hessian吗?对如大规模的问题,当然不可行,所以
才有limited-memory preconditioner,如scaling-and-normalization, diagonal,
Kronecker-product等形式。
对如小规模的问题,用dense的preconditioner算出来的矩阵只有在对于凸问题和没有
梯度噪声的情况下才对应为Hessian的逆,其他情况下会把Hessian的负特征值变成正的
,还要damping随机梯度的噪声,这时dense的preconditioner便不是Hessian的逆。
无论用那种preconditioner,都不需要Hessian,preconditioner是从Hessian-vector
product中提取出来的。
才有limited-memory preconditioner,如scaling-and-normalization, diagonal,
Kronecker-product等形式。
对如小规模的问题,用dense的preconditioner算出来的矩阵只有在对于凸问题和没有
梯度噪声的情况下才对应为Hessian的逆,其他情况下会把Hessian的负特征值变成正的
,还要damping随机梯度的噪声,这时dense的preconditioner便不是Hessian的逆。
无论用那种preconditioner,都不需要Hessian,preconditioner是从Hessian-vector
product中提取出来的。
l*m
17 楼
batch size要多大?
:
:一阶的方法(SGD,RMSProp,momentum,Adam等)其实区别都不太大;常用的二阶的方法往
:
:一阶的方法(SGD,RMSProp,momentum,Adam等)其实区别都不太大;常用的二阶的方法往
i*i
19 楼
张杰的脸型越来越奇怪了,耳朵以下的部分俨然一个八角型的下半边。
c*v
20 楼
我想再请教个问题:你调算法用什么软件看图?
你是文章作者吗?这个文章有arxiv吗?我没法看ieee
: 第一个问题你是指需要计算完整的Hessian吗?对如大规模的问题,当然
不可行
,所以
: 才有limited-memory preconditioner,如scaling-and-normalization,
diagonal,
: Kronecker-product等形式。
: 对如小规模的问题,用dense的preconditioner算出来的矩阵只有在对于
凸问题
和没有
: 梯度噪声的情况下才对应为Hessian的逆,其他情况下会把Hessian的负特
征值变
成正的
: ,还要damping随机梯度的噪声,这时dense的preconditioner便不是
Hessian的
逆。
: 无论用那种preconditioner,都不需要Hessian,preconditioner是从
Hessian-
vector
: product中提取出来的。
【在 l******x 的大作中提到】
: 第一个问题你是指需要计算完整的Hessian吗?对如大规模的问题,当然不可行,所以
: 才有limited-memory preconditioner,如scaling-and-normalization, diagonal,
: Kronecker-product等形式。
: 对如小规模的问题,用dense的preconditioner算出来的矩阵只有在对于凸问题和没有
: 梯度噪声的情况下才对应为Hessian的逆,其他情况下会把Hessian的负特征值变成正的
: ,还要damping随机梯度的噪声,这时dense的preconditioner便不是Hessian的逆。
: 无论用那种preconditioner,都不需要Hessian,preconditioner是从Hessian-vector
: product中提取出来的。
你是文章作者吗?这个文章有arxiv吗?我没法看ieee
: 第一个问题你是指需要计算完整的Hessian吗?对如大规模的问题,当然
不可行
,所以
: 才有limited-memory preconditioner,如scaling-and-normalization,
diagonal,
: Kronecker-product等形式。
: 对如小规模的问题,用dense的preconditioner算出来的矩阵只有在对于
凸问题
和没有
: 梯度噪声的情况下才对应为Hessian的逆,其他情况下会把Hessian的负特
征值变
成正的
: ,还要damping随机梯度的噪声,这时dense的preconditioner便不是
Hessian的
逆。
: 无论用那种preconditioner,都不需要Hessian,preconditioner是从
Hessian-
vector
: product中提取出来的。
【在 l******x 的大作中提到】
: 第一个问题你是指需要计算完整的Hessian吗?对如大规模的问题,当然不可行,所以
: 才有limited-memory preconditioner,如scaling-and-normalization, diagonal,
: Kronecker-product等形式。
: 对如小规模的问题,用dense的preconditioner算出来的矩阵只有在对于凸问题和没有
: 梯度噪声的情况下才对应为Hessian的逆,其他情况下会把Hessian的负特征值变成正的
: ,还要damping随机梯度的噪声,这时dense的preconditioner便不是Hessian的逆。
: 无论用那种preconditioner,都不需要Hessian,preconditioner是从Hessian-vector
: product中提取出来的。
n*d
22 楼
韩磊唱的挺好。小邓越来越平淡了。
c*v
23 楼
哦。文章找到了。
https://arxiv.org/pdf/1512.04202.pdf
方程(10)我有个问题。
你这里每个梯度g(k)都是从g(0)算出来的?
我以前看到的似乎都是从g(k-1)算出来g(k).
例如quesi 牛顿常见就这样算。
你的文章的意思是,从g(0)算g(k),
然后每一步都预处理?预处理形式有一种和
Quesi等formly近似?
这样理解对吗?
: 我想再请教个问题:你调算法用什么软件看图?
: 你是文章作者吗?这个文章有arxiv吗?我没法看ieee
:
【在 c*******v 的大作中提到】
: 我想再请教个问题:你调算法用什么软件看图?
: 你是文章作者吗?这个文章有arxiv吗?我没法看ieee
:
:
: 第一个问题你是指需要计算完整的Hessian吗?对如大规模的问题,当然
: 不可行
: ,所以
:
: 才有limited-memory preconditioner,如scaling-and-normalization,
: diagonal,
:
: Kronecker-product等形式。
:
: 对如小规模的问题,用dense的preconditioner算出来的矩阵只有在对于
https://arxiv.org/pdf/1512.04202.pdf
方程(10)我有个问题。
你这里每个梯度g(k)都是从g(0)算出来的?
我以前看到的似乎都是从g(k-1)算出来g(k).
例如quesi 牛顿常见就这样算。
你的文章的意思是,从g(0)算g(k),
然后每一步都预处理?预处理形式有一种和
Quesi等formly近似?
这样理解对吗?
: 我想再请教个问题:你调算法用什么软件看图?
: 你是文章作者吗?这个文章有arxiv吗?我没法看ieee
:
【在 c*******v 的大作中提到】
: 我想再请教个问题:你调算法用什么软件看图?
: 你是文章作者吗?这个文章有arxiv吗?我没法看ieee
:
:
: 第一个问题你是指需要计算完整的Hessian吗?对如大规模的问题,当然
: 不可行
: ,所以
:
: 才有limited-memory preconditioner,如scaling-and-normalization,
: diagonal,
:
: Kronecker-product等形式。
:
: 对如小规模的问题,用dense的preconditioner算出来的矩阵只有在对于
l*a
24 楼
怎么才能拿到tshirt?
c*v
26 楼
哦。我可能没太说清楚。
海赛我的意思是形式上像(A'A)这样的东西。
一般都是这种东西求逆。
这种形式的矩阵没有负特征根吧?这点我不太理解。
你的意思是,海赛本来是正定的,加了噪声之后的海赛可能有负特征根吗?
谢谢指点!
: 第一个问题你是指需要计算完整的Hessian吗?对如大规模的问题,当然
不可行
,所以
: 才有limited-memory preconditioner,如scaling-and-normalization,
diagonal,
: Kronecker-product等形式。
: 对如小规模的问题,用dense的preconditioner算出来的矩阵只有在对于
凸问题
和没有
: 梯度噪声的情况下才对应为Hessian的逆,其他情况下会把Hessian的负特
征值变
成正的
: ,还要damping随机梯度的噪声,这时dense的preconditioner便不是
Hessian的
逆。
: 无论用那种preconditioner,都不需要Hessian,preconditioner是从
Hessian-
vector
: product中提取出来的。
【在 l******x 的大作中提到】
: 第一个问题你是指需要计算完整的Hessian吗?对如大规模的问题,当然不可行,所以
: 才有limited-memory preconditioner,如scaling-and-normalization, diagonal,
: Kronecker-product等形式。
: 对如小规模的问题,用dense的preconditioner算出来的矩阵只有在对于凸问题和没有
: 梯度噪声的情况下才对应为Hessian的逆,其他情况下会把Hessian的负特征值变成正的
: ,还要damping随机梯度的噪声,这时dense的preconditioner便不是Hessian的逆。
: 无论用那种preconditioner,都不需要Hessian,preconditioner是从Hessian-vector
: product中提取出来的。
海赛我的意思是形式上像(A'A)这样的东西。
一般都是这种东西求逆。
这种形式的矩阵没有负特征根吧?这点我不太理解。
你的意思是,海赛本来是正定的,加了噪声之后的海赛可能有负特征根吗?
谢谢指点!
: 第一个问题你是指需要计算完整的Hessian吗?对如大规模的问题,当然
不可行
,所以
: 才有limited-memory preconditioner,如scaling-and-normalization,
diagonal,
: Kronecker-product等形式。
: 对如小规模的问题,用dense的preconditioner算出来的矩阵只有在对于
凸问题
和没有
: 梯度噪声的情况下才对应为Hessian的逆,其他情况下会把Hessian的负特
征值变
成正的
: ,还要damping随机梯度的噪声,这时dense的preconditioner便不是
Hessian的
逆。
: 无论用那种preconditioner,都不需要Hessian,preconditioner是从
Hessian-
vector
: product中提取出来的。
【在 l******x 的大作中提到】
: 第一个问题你是指需要计算完整的Hessian吗?对如大规模的问题,当然不可行,所以
: 才有limited-memory preconditioner,如scaling-and-normalization, diagonal,
: Kronecker-product等形式。
: 对如小规模的问题,用dense的preconditioner算出来的矩阵只有在对于凸问题和没有
: 梯度噪声的情况下才对应为Hessian的逆,其他情况下会把Hessian的负特征值变成正的
: ,还要damping随机梯度的噪声,这时dense的preconditioner便不是Hessian的逆。
: 无论用那种preconditioner,都不需要Hessian,preconditioner是从Hessian-vector
: product中提取出来的。
b*n
28 楼
这期我投张宇 磊哥 感情票给周笔。说实话小周这期我觉得一般,也可能是我对这类歌
无感。我最喜欢的三次 别爱我 黑色柳丁 爱火花 好像排名都很后。
话说磊哥是真牛。这么一首旋律简单和大家都听到烂熟的歌,能唱出这么多细节和变化
。当然编曲也厉害。
无感。我最喜欢的三次 别爱我 黑色柳丁 爱火花 好像排名都很后。
话说磊哥是真牛。这么一首旋律简单和大家都听到烂熟的歌,能唱出这么多细节和变化
。当然编曲也厉害。
l*x
29 楼
batch size从小到大应该都可以,我用的比较多的是10到100左右的。batch size太小
了,preconditioner就更会偏向去damping gradient noise,precondition本征值的效
果就弱些。batch size无穷大时就是math optimization,这时就完全是二阶收敛了,比
如demo中的Rosenbrock function这类math optimization的测试函数,200次function
evaluation就可收敛了。
了,preconditioner就更会偏向去damping gradient noise,precondition本征值的效
果就弱些。batch size无穷大时就是math optimization,这时就完全是二阶收敛了,比
如demo中的Rosenbrock function这类math optimization的测试函数,200次function
evaluation就可收敛了。
l*x
32 楼
就是常用的软件pyplot、octave等画图看图,我不是做CS的,对这些不挑也不在行。是
文章作者。
文章作者。
l*x
35 楼
不太确定关于g(k-1)到g(k)的问题,那个很早的文章有太多details的东西。这个方法
的流程和bfgs比较类似,参数和preconditioner同时更新;而truncated newton类方法
则是cold restart,代表另一套方法。
有A’A这类东西,preconditioner必须是正定的,但系统本身的Hessian当然可以是不
定的,Hessian只与当前参数的值有关,与梯度噪声无关。Preconditioner的作用是两
个:使得Preconditioner*Hessian的特征值的绝对值接近1;damping gradient noise
。
的流程和bfgs比较类似,参数和preconditioner同时更新;而truncated newton类方法
则是cold restart,代表另一套方法。
有A’A这类东西,preconditioner必须是正定的,但系统本身的Hessian当然可以是不
定的,Hessian只与当前参数的值有关,与梯度噪声无关。Preconditioner的作用是两
个:使得Preconditioner*Hessian的特征值的绝对值接近1;damping gradient noise
。
w*r
38 楼
这是牛人啊,这个id不熟啊。。。
k*z
40 楼
希拉吐字完全错位啊,听得好别扭。
g*t
41 楼
谢谢解释。
这里术语有些混淆。数学上,海赛就是二阶导数阵。可以是非正定的。
coding时经常在计算的时候近似的办法,来写成A‘A的形式,工人也在
口头把它叫做海赛阵。指那一小部分代码。是我弄混了。
Btw,我和你同专业。不过改行多年了。
以是不
noise
【在 l******x 的大作中提到】
: 不太确定关于g(k-1)到g(k)的问题,那个很早的文章有太多details的东西。这个方法
: 的流程和bfgs比较类似,参数和preconditioner同时更新;而truncated newton类方法
: 则是cold restart,代表另一套方法。
: 有A’A这类东西,preconditioner必须是正定的,但系统本身的Hessian当然可以是不
: 定的,Hessian只与当前参数的值有关,与梯度噪声无关。Preconditioner的作用是两
: 个:使得Preconditioner*Hessian的特征值的绝对值接近1;damping gradient noise
: 。
这里术语有些混淆。数学上,海赛就是二阶导数阵。可以是非正定的。
coding时经常在计算的时候近似的办法,来写成A‘A的形式,工人也在
口头把它叫做海赛阵。指那一小部分代码。是我弄混了。
Btw,我和你同专业。不过改行多年了。
以是不
noise
【在 l******x 的大作中提到】
: 不太确定关于g(k-1)到g(k)的问题,那个很早的文章有太多details的东西。这个方法
: 的流程和bfgs比较类似,参数和preconditioner同时更新;而truncated newton类方法
: 则是cold restart,代表另一套方法。
: 有A’A这类东西,preconditioner必须是正定的,但系统本身的Hessian当然可以是不
: 定的,Hessian只与当前参数的值有关,与梯度噪声无关。Preconditioner的作用是两
: 个:使得Preconditioner*Hessian的特征值的绝对值接近1;damping gradient noise
: 。
i*a
42 楼
奔
x*i
44 楼
请问怎么用呢?就是tensorflow选optimizer 的时候用你的这个psgd , 而不是Adam或
者其它?
者其它?
w*2
45 楼
厉害。
看人多就只好等这个冷下来再看了。实在懒得排队了。
看人多就只好等这个冷下来再看了。实在懒得排队了。
h*e
47 楼
一般用的啥nn会出现hessian不正定呢
好像基本都是一致连续的
啥时候会碰到导数不可交换的
noise
【在 l******x 的大作中提到】
: 不太确定关于g(k-1)到g(k)的问题,那个很早的文章有太多details的东西。这个方法
: 的流程和bfgs比较类似,参数和preconditioner同时更新;而truncated newton类方法
: 则是cold restart,代表另一套方法。
: 有A’A这类东西,preconditioner必须是正定的,但系统本身的Hessian当然可以是不
: 定的,Hessian只与当前参数的值有关,与梯度噪声无关。Preconditioner的作用是两
: 个:使得Preconditioner*Hessian的特征值的绝对值接近1;damping gradient noise
: 。
好像基本都是一致连续的
啥时候会碰到导数不可交换的
noise
【在 l******x 的大作中提到】
: 不太确定关于g(k-1)到g(k)的问题,那个很早的文章有太多details的东西。这个方法
: 的流程和bfgs比较类似,参数和preconditioner同时更新;而truncated newton类方法
: 则是cold restart,代表另一套方法。
: 有A’A这类东西,preconditioner必须是正定的,但系统本身的Hessian当然可以是不
: 定的,Hessian只与当前参数的值有关,与梯度噪声无关。Preconditioner的作用是两
: 个:使得Preconditioner*Hessian的特征值的绝对值接近1;damping gradient noise
: 。
l*a
48 楼
竟然是白色的T 太土了 我以为肯定黑色呢
l*x
52 楼
关于使用:如果用Kronecker-product或scaling-and-normalization的preconditioner
,需要将待优化的参数写成矩阵的形式;用dense或diagonal preconditioner就无所谓
。这个看似有点麻烦,但其实这些软件底层调用的运算都是矩阵运算,因为大家都在调
用BLAS(Basic Linear Algebra Subprograms)这些线性代数的包。例如tf.conv里的运
算看似涉及到3阶4阶5阶等张量,但code的具体实现就是将它写成矩阵运算的形式,因
为本质上就是一个相关运算。
当然你也可以将preconditioner估计的程序写成张量的接口,anyway,背后都是矩阵运
算。
其实张量旋量等术语有非常明确的数学含义,张量运算也可以搭建学习模型的,也可以
设计些有物理含义的preconditioner,但张量神经网络不是很流行,也没有底层包的支
持。现在的深度学习软件都把array叫做tensor,会有些confusing。
,需要将待优化的参数写成矩阵的形式;用dense或diagonal preconditioner就无所谓
。这个看似有点麻烦,但其实这些软件底层调用的运算都是矩阵运算,因为大家都在调
用BLAS(Basic Linear Algebra Subprograms)这些线性代数的包。例如tf.conv里的运
算看似涉及到3阶4阶5阶等张量,但code的具体实现就是将它写成矩阵运算的形式,因
为本质上就是一个相关运算。
当然你也可以将preconditioner估计的程序写成张量的接口,anyway,背后都是矩阵运
算。
其实张量旋量等术语有非常明确的数学含义,张量运算也可以搭建学习模型的,也可以
设计些有物理含义的preconditioner,但张量神经网络不是很流行,也没有底层包的支
持。现在的深度学习软件都把array叫做tensor,会有些confusing。
l*o
53 楼
你是持续跟进期望逐步增高而导致审美疲劳
我就看了前三期就没看了 今天突然一看 不错啊 比刚开始强多了
我就看了前三期就没看了 今天突然一看 不错啊 比刚开始强多了
l*x
54 楼
稍微复杂一点的网络都会存在大量的鞍点,初值附件的Hessian大概都是不定的,SGD在
经过这些鞍点时会收敛很慢或者干脆过不去,一旦经过了鞍点,进入attraction basin
,几乎所有的优化方法都是一样好用的。
谢谢wflower的恭维,如果这个方法对大家有帮助,就非常好;否则这套理论也就是烂
在我肚子里了。
经过这些鞍点时会收敛很慢或者干脆过不去,一旦经过了鞍点,进入attraction basin
,几乎所有的优化方法都是一样好用的。
谢谢wflower的恭维,如果这个方法对大家有帮助,就非常好;否则这套理论也就是烂
在我肚子里了。
d*m
56 楼
楼主很牛逼。以前学分析的时候顺便学过点optimization,都还给书本了
w*g
57 楼
单作者文章简直是学术界的一股清流啊。
我没搞过优化,没法评价公式。我感觉你这文章最重要的
两个section是
- V.B Preconditioner with Sparse Matrix
- VI.E MNIST实验结果
似乎时间和内存都不是问题。而且和SGD相比改进明显。
所以我感觉这个方法非常promising。
我感觉你需要一个non-trivial的CNN来证明你的方法随着
层数增加效果不会明显减弱。
二阶方法实战必然需要稀疏化。对于CNN,我觉得很可能也需要
假设层间独立。结果就是preconditioner退化成一个分块
对角阵。而且随着层数的增加,这个分块对角阵看起来越来越
像对角阵。二阶方法越来越像一阶方法。
同样的,CNN基本结构,假设一个3x3x64x64的conv2d layer。
按你说的Kronecker分解成 3x3 + 3x3 +64x64 + 64x64。
那么preconditioner的参数和原filter参数的比值大致为
2/9。这么稀疏的一个东西乘到filter上去,会不会事实上对
filter的自由度有太大的约束以至于影响拟合效果?
MNIST图片太小,你也没有用conv2d layer,所以看不出来。
看http://ieeexplore.ieee.org/document/7875097/里的理论,类似quasi-newton,用到preconditioner,但不同的是,最优的preconditioner涉及到期望(对付随机梯度噪声)和切线方程的外积的形式(br />
com/
【在 l******x 的大作中提到】
: 一阶的方法(SGD,RMSProp,momentum,Adam等)其实区别都不太大;常用的二阶的方法往
: 往都是些off-the-shelf的凸优化方法(quasi-Newton、truncated newton、共轭梯度等
: +line search),对于非凸的和随机的大规模优化问题都不太好用。有兴趣的可以看看http://ieeexplore.ieee.org/document/7875097/里的理论,类似quasi-newton,用到preconditioner,但不同的是,最优的preconditioner涉及到期望(对付随机梯度噪声)和切线方程的外积的形式(对付非凸,有点类似Gaussian-Newton的形式)。Preconditioner在Lie group上用自然梯度下降来求解,当然Preconditioner可以是limited-memory的,这样才可用在large-scale的问题上。
: 最近有空整理了一番,写了一套tensorflow的demo code,有rnn, lstm, cnn等各种简
: 单的benchmark problems,放在https://github.com/lixilinx/psgd_tf上,有兴趣的
: 可以看看,ESGD和batch normalization与特定的limited-memory preconditioner是密
: 切相关的。有些Pytorch demo(不完整,核心是numpy写的)放在https://github.com/
: lixilinx/psgd_np上。总之,感兴趣可以尝试一下。
我没搞过优化,没法评价公式。我感觉你这文章最重要的
两个section是
- V.B Preconditioner with Sparse Matrix
- VI.E MNIST实验结果
似乎时间和内存都不是问题。而且和SGD相比改进明显。
所以我感觉这个方法非常promising。
我感觉你需要一个non-trivial的CNN来证明你的方法随着
层数增加效果不会明显减弱。
二阶方法实战必然需要稀疏化。对于CNN,我觉得很可能也需要
假设层间独立。结果就是preconditioner退化成一个分块
对角阵。而且随着层数的增加,这个分块对角阵看起来越来越
像对角阵。二阶方法越来越像一阶方法。
同样的,CNN基本结构,假设一个3x3x64x64的conv2d layer。
按你说的Kronecker分解成 3x3 + 3x3 +64x64 + 64x64。
那么preconditioner的参数和原filter参数的比值大致为
2/9。这么稀疏的一个东西乘到filter上去,会不会事实上对
filter的自由度有太大的约束以至于影响拟合效果?
MNIST图片太小,你也没有用conv2d layer,所以看不出来。
看http://ieeexplore.ieee.org/document/7875097/里的理论,类似quasi-newton,用到preconditioner,但不同的是,最优的preconditioner涉及到期望(对付随机梯度噪声)和切线方程的外积的形式(br />
com/
【在 l******x 的大作中提到】
: 一阶的方法(SGD,RMSProp,momentum,Adam等)其实区别都不太大;常用的二阶的方法往
: 往都是些off-the-shelf的凸优化方法(quasi-Newton、truncated newton、共轭梯度等
: +line search),对于非凸的和随机的大规模优化问题都不太好用。有兴趣的可以看看http://ieeexplore.ieee.org/document/7875097/里的理论,类似quasi-newton,用到preconditioner,但不同的是,最优的preconditioner涉及到期望(对付随机梯度噪声)和切线方程的外积的形式(对付非凸,有点类似Gaussian-Newton的形式)。Preconditioner在Lie group上用自然梯度下降来求解,当然Preconditioner可以是limited-memory的,这样才可用在large-scale的问题上。
: 最近有空整理了一番,写了一套tensorflow的demo code,有rnn, lstm, cnn等各种简
: 单的benchmark problems,放在https://github.com/lixilinx/psgd_tf上,有兴趣的
: 可以看看,ESGD和batch normalization与特定的limited-memory preconditioner是密
: 切相关的。有些Pytorch demo(不完整,核心是numpy写的)放在https://github.com/
: lixilinx/psgd_np上。总之,感兴趣可以尝试一下。
g*t
58 楼
楼主的算法和Adams 等自适应步长的梯度法有类似之处。
你看第7页算法那个地方。
g前面有两个Q. 第三步Q那个地方类似于Adams求移动平均。但是因为是类似高斯牛顿方
法。楼主考虑了不仅仅对角元素。
: 单作者文章简直是学术界的一股清流啊。
: 我没搞过优化,没法评价公式。我感觉你这文章最重要的
: 两个section是
: - V.B Preconditioner with Sparse Matrix
: - VI.E MNIST实验结果
: 似乎时间和内存都不是问题。而且和SGD相比改进明显。
: 所以我感觉这个方法非常promising。
: 我感觉你需要一个non-trivial的CNN来证明你的方法随着
: 层数增加效果不会明显减弱。
: 二阶方法实战必然需要稀疏化。对于CNN,我觉得很可能也需要
【在 w***g 的大作中提到】
: 单作者文章简直是学术界的一股清流啊。
: 我没搞过优化,没法评价公式。我感觉你这文章最重要的
: 两个section是
: - V.B Preconditioner with Sparse Matrix
: - VI.E MNIST实验结果
: 似乎时间和内存都不是问题。而且和SGD相比改进明显。
: 所以我感觉这个方法非常promising。
: 我感觉你需要一个non-trivial的CNN来证明你的方法随着
: 层数增加效果不会明显减弱。
: 二阶方法实战必然需要稀疏化。对于CNN,我觉得很可能也需要
你看第7页算法那个地方。
g前面有两个Q. 第三步Q那个地方类似于Adams求移动平均。但是因为是类似高斯牛顿方
法。楼主考虑了不仅仅对角元素。
: 单作者文章简直是学术界的一股清流啊。
: 我没搞过优化,没法评价公式。我感觉你这文章最重要的
: 两个section是
: - V.B Preconditioner with Sparse Matrix
: - VI.E MNIST实验结果
: 似乎时间和内存都不是问题。而且和SGD相比改进明显。
: 所以我感觉这个方法非常promising。
: 我感觉你需要一个non-trivial的CNN来证明你的方法随着
: 层数增加效果不会明显减弱。
: 二阶方法实战必然需要稀疏化。对于CNN,我觉得很可能也需要
【在 w***g 的大作中提到】
: 单作者文章简直是学术界的一股清流啊。
: 我没搞过优化,没法评价公式。我感觉你这文章最重要的
: 两个section是
: - V.B Preconditioner with Sparse Matrix
: - VI.E MNIST实验结果
: 似乎时间和内存都不是问题。而且和SGD相比改进明显。
: 所以我感觉这个方法非常promising。
: 我感觉你需要一个non-trivial的CNN来证明你的方法随着
: 层数增加效果不会明显减弱。
: 二阶方法实战必然需要稀疏化。对于CNN,我觉得很可能也需要
l*m
59 楼
PSGD, kron和Roger Grosse的K-FAC有什么差别?
preconditioner
【在 l******x 的大作中提到】
: 关于使用:如果用Kronecker-product或scaling-and-normalization的preconditioner
: ,需要将待优化的参数写成矩阵的形式;用dense或diagonal preconditioner就无所谓
: 。这个看似有点麻烦,但其实这些软件底层调用的运算都是矩阵运算,因为大家都在调
: 用BLAS(Basic Linear Algebra Subprograms)这些线性代数的包。例如tf.conv里的运
: 算看似涉及到3阶4阶5阶等张量,但code的具体实现就是将它写成矩阵运算的形式,因
: 为本质上就是一个相关运算。
: 当然你也可以将preconditioner估计的程序写成张量的接口,anyway,背后都是矩阵运
: 算。
: 其实张量旋量等术语有非常明确的数学含义,张量运算也可以搭建学习模型的,也可以
: 设计些有物理含义的preconditioner,但张量神经网络不是很流行,也没有底层包的支
preconditioner
【在 l******x 的大作中提到】
: 关于使用:如果用Kronecker-product或scaling-and-normalization的preconditioner
: ,需要将待优化的参数写成矩阵的形式;用dense或diagonal preconditioner就无所谓
: 。这个看似有点麻烦,但其实这些软件底层调用的运算都是矩阵运算,因为大家都在调
: 用BLAS(Basic Linear Algebra Subprograms)这些线性代数的包。例如tf.conv里的运
: 算看似涉及到3阶4阶5阶等张量,但code的具体实现就是将它写成矩阵运算的形式,因
: 为本质上就是一个相关运算。
: 当然你也可以将preconditioner估计的程序写成张量的接口,anyway,背后都是矩阵运
: 算。
: 其实张量旋量等术语有非常明确的数学含义,张量运算也可以搭建学习模型的,也可以
: 设计些有物理含义的preconditioner,但张量神经网络不是很流行,也没有底层包的支
g*t
60 楼
方程42,43等于又用了一次梯度法求一个
方程或者二次型问题。这样避免求逆。
我想这是作者算法设计最关键的步骤。
(如果说错,勿怪)
这个思路平和中正。实用性很强。
物理意义也清楚。
: 如果我写review会这么写。
: 1.
: 楼主的算法和Adams 等自适应步长的梯度法有类似之处。
: 但是Adams海赛阵只考虑了对角元素的估计。
: 你看第7页算法那个地方。
: g前面有两个Q. 第三步Q那个地方类似于Adams求移动平均。但是因为是类
似高斯
牛顿方
: 法。楼主考虑了不仅仅对角元素。
: 楼主计算了Q'Q,我想这是他前面贴讲“海赛负特征根变成正的
【在 g****t 的大作中提到】
: 楼主的算法和Adams 等自适应步长的梯度法有类似之处。
: 你看第7页算法那个地方。
: g前面有两个Q. 第三步Q那个地方类似于Adams求移动平均。但是因为是类似高斯牛顿方
: 法。楼主考虑了不仅仅对角元素。
:
:
: 单作者文章简直是学术界的一股清流啊。
:
: 我没搞过优化,没法评价公式。我感觉你这文章最重要的
:
: 两个section是
:
: - V.B Preconditioner with Sparse Matrix
:
: - VI.E MNIST实验结果
方程或者二次型问题。这样避免求逆。
我想这是作者算法设计最关键的步骤。
(如果说错,勿怪)
这个思路平和中正。实用性很强。
物理意义也清楚。
: 如果我写review会这么写。
: 1.
: 楼主的算法和Adams 等自适应步长的梯度法有类似之处。
: 但是Adams海赛阵只考虑了对角元素的估计。
: 你看第7页算法那个地方。
: g前面有两个Q. 第三步Q那个地方类似于Adams求移动平均。但是因为是类
似高斯
牛顿方
: 法。楼主考虑了不仅仅对角元素。
: 楼主计算了Q'Q,我想这是他前面贴讲“海赛负特征根变成正的
【在 g****t 的大作中提到】
: 楼主的算法和Adams 等自适应步长的梯度法有类似之处。
: 你看第7页算法那个地方。
: g前面有两个Q. 第三步Q那个地方类似于Adams求移动平均。但是因为是类似高斯牛顿方
: 法。楼主考虑了不仅仅对角元素。
:
:
: 单作者文章简直是学术界的一股清流啊。
:
: 我没搞过优化,没法评价公式。我感觉你这文章最重要的
:
: 两个section是
:
: - V.B Preconditioner with Sparse Matrix
:
: - VI.E MNIST实验结果
l*x
62 楼
wdong:我给的tf demos里conv2d, de-conv2d,mnist,cifar的例子都有啊,各种复
杂度的preconditioner在各个benchmark问题上的收敛曲线都整理出来了。对于你的例
子,3*3*64*64卷积层对应的物理含义为将3*3*64个features映射到64个features,
input features还augmented by 1(对应bias项),所以这个conv2d对应的矩阵变换的维
数为(3*3*64+1, 64),tf.conv2d的具体实现也是这样的矩阵乘法,如果用Kronecker-
product preconditioner,其形式为(3*3*64+1, 3*3*64+1)的矩阵和(64, 64)的矩阵的
Kronecker积。这里面并没有真正意义上的张量的运算,因此preconditioner的形式不
是3*3, 64*64等那些小矩阵的形式。
tf package https://github.com/lixilinx/psgd_tf和随附的文档https://arxiv.org/
abs/1803.09383比较提纲挈领,简明扼要,大体列出了这个理论的核心思想和实现方法
的例子,早期那个IEEE TNNLS文档可能太啰嗦了。
杂度的preconditioner在各个benchmark问题上的收敛曲线都整理出来了。对于你的例
子,3*3*64*64卷积层对应的物理含义为将3*3*64个features映射到64个features,
input features还augmented by 1(对应bias项),所以这个conv2d对应的矩阵变换的维
数为(3*3*64+1, 64),tf.conv2d的具体实现也是这样的矩阵乘法,如果用Kronecker-
product preconditioner,其形式为(3*3*64+1, 3*3*64+1)的矩阵和(64, 64)的矩阵的
Kronecker积。这里面并没有真正意义上的张量的运算,因此preconditioner的形式不
是3*3, 64*64等那些小矩阵的形式。
tf package https://github.com/lixilinx/psgd_tf和随附的文档https://arxiv.org/
abs/1803.09383比较提纲挈领,简明扼要,大体列出了这个理论的核心思想和实现方法
的例子,早期那个IEEE TNNLS文档可能太啰嗦了。
l*x
63 楼
PSGD, kron和Roger Grosse的K-FAC有什么差别:
Kronecker-product preconditioner近似是一种实现的例子,就像diagonal等形式的
preconditioner大家都可以用。不同的是看同一种形式的preconditioner是从什么准则
下拟合出来的,K-FAC拟合的近似和凸优化里的Levenberg-Marquardt,Gaussian-
Newton,truncated-Newton等方法相关;早期(fisher information metric度量下的)
自然梯度里也常有人用Kronecker-product来拟合梯度向量的外积;PSGD, kron拟合的
是另外一个可用于非凸和随机优化的准则。这个大概是主要区别吧。当然具体实现上的
差别很大,PSGD, kron用Lie群上的自然梯度学习到的,无需去调damping系数、line
search步长等一缸子东西,因为PSGD的设计本身已经考虑到了非凸和梯度噪声的问题。
Kronecker-product preconditioner近似是一种实现的例子,就像diagonal等形式的
preconditioner大家都可以用。不同的是看同一种形式的preconditioner是从什么准则
下拟合出来的,K-FAC拟合的近似和凸优化里的Levenberg-Marquardt,Gaussian-
Newton,truncated-Newton等方法相关;早期(fisher information metric度量下的)
自然梯度里也常有人用Kronecker-product来拟合梯度向量的外积;PSGD, kron拟合的
是另外一个可用于非凸和随机优化的准则。这个大概是主要区别吧。当然具体实现上的
差别很大,PSGD, kron用Lie群上的自然梯度学习到的,无需去调damping系数、line
search步长等一缸子东西,因为PSGD的设计本身已经考虑到了非凸和梯度噪声的问题。
w*g
64 楼
我理解的Kronecker确实有错。多谢指正。
你那个TF的arxiv没看到,多谢!
org/
【在 l******x 的大作中提到】
: wdong:我给的tf demos里conv2d, de-conv2d,mnist,cifar的例子都有啊,各种复
: 杂度的preconditioner在各个benchmark问题上的收敛曲线都整理出来了。对于你的例
: 子,3*3*64*64卷积层对应的物理含义为将3*3*64个features映射到64个features,
: input features还augmented by 1(对应bias项),所以这个conv2d对应的矩阵变换的维
: 数为(3*3*64+1, 64),tf.conv2d的具体实现也是这样的矩阵乘法,如果用Kronecker-
: product preconditioner,其形式为(3*3*64+1, 3*3*64+1)的矩阵和(64, 64)的矩阵的
: Kronecker积。这里面并没有真正意义上的张量的运算,因此preconditioner的形式不
: 是3*3, 64*64等那些小矩阵的形式。
: tf package https://github.com/lixilinx/psgd_tf和随附的文档https://arxiv.org/
: abs/1803.09383比较提纲挈领,简明扼要,大体列出了这个理论的核心思想和实现方法
你那个TF的arxiv没看到,多谢!
org/
【在 l******x 的大作中提到】
: wdong:我给的tf demos里conv2d, de-conv2d,mnist,cifar的例子都有啊,各种复
: 杂度的preconditioner在各个benchmark问题上的收敛曲线都整理出来了。对于你的例
: 子,3*3*64*64卷积层对应的物理含义为将3*3*64个features映射到64个features,
: input features还augmented by 1(对应bias项),所以这个conv2d对应的矩阵变换的维
: 数为(3*3*64+1, 64),tf.conv2d的具体实现也是这样的矩阵乘法,如果用Kronecker-
: product preconditioner,其形式为(3*3*64+1, 3*3*64+1)的矩阵和(64, 64)的矩阵的
: Kronecker积。这里面并没有真正意义上的张量的运算,因此preconditioner的形式不
: 是3*3, 64*64等那些小矩阵的形式。
: tf package https://github.com/lixilinx/psgd_tf和随附的文档https://arxiv.org/
: abs/1803.09383比较提纲挈领,简明扼要,大体列出了这个理论的核心思想和实现方法
g*t
65 楼
楼主的Qnew更新,是每带训练只走一次吗?还是Qnew
公式多次使用,以期达到更准确的Q
或者多次sample扰动平均下?
: PSGD, kron和Roger Grosse的K-FAC有什么差别:
: Kronecker-product preconditioner近似是一种实现的例子,就像
diagonal等形
式的
: preconditioner大家都可以用。不同的是看同一种形式的preconditioner
是从什
么准则
: 下拟合出来的,K-FAC拟合的近似和凸优化里的Levenberg-Marquardt,
Gaussian-
: Newton,truncated-Newton等方法相关;早期(fisher information
metric度量
下的)
: 自然梯度里也常有人用Kronecker-product来拟合梯度向量的外积;PSGD,
kron
拟合的
: 是另外一个可用于非凸和随机优化的准则。这个大概是主要区别吧。当然
具体实
现上的
: 差别很大,PSGD, kron用Lie群上的自然梯度学习到的,无需去调damping
系数、
line
: search步长等一缸子东西,因为PSGD的设计本身已经考虑到了非凸和梯度
噪声的
问题。
【在 l******x 的大作中提到】
: PSGD, kron和Roger Grosse的K-FAC有什么差别:
: Kronecker-product preconditioner近似是一种实现的例子,就像diagonal等形式的
: preconditioner大家都可以用。不同的是看同一种形式的preconditioner是从什么准则
: 下拟合出来的,K-FAC拟合的近似和凸优化里的Levenberg-Marquardt,Gaussian-
: Newton,truncated-Newton等方法相关;早期(fisher information metric度量下的)
: 自然梯度里也常有人用Kronecker-product来拟合梯度向量的外积;PSGD, kron拟合的
: 是另外一个可用于非凸和随机优化的准则。这个大概是主要区别吧。当然具体实现上的
: 差别很大,PSGD, kron用Lie群上的自然梯度学习到的,无需去调damping系数、line
: search步长等一缸子东西,因为PSGD的设计本身已经考虑到了非凸和梯度噪声的问题。
公式多次使用,以期达到更准确的Q
或者多次sample扰动平均下?
: PSGD, kron和Roger Grosse的K-FAC有什么差别:
: Kronecker-product preconditioner近似是一种实现的例子,就像
diagonal等形
式的
: preconditioner大家都可以用。不同的是看同一种形式的preconditioner
是从什
么准则
: 下拟合出来的,K-FAC拟合的近似和凸优化里的Levenberg-Marquardt,
Gaussian-
: Newton,truncated-Newton等方法相关;早期(fisher information
metric度量
下的)
: 自然梯度里也常有人用Kronecker-product来拟合梯度向量的外积;PSGD,
kron
拟合的
: 是另外一个可用于非凸和随机优化的准则。这个大概是主要区别吧。当然
具体实
现上的
: 差别很大,PSGD, kron用Lie群上的自然梯度学习到的,无需去调damping
系数、
line
: search步长等一缸子东西,因为PSGD的设计本身已经考虑到了非凸和梯度
噪声的
问题。
【在 l******x 的大作中提到】
: PSGD, kron和Roger Grosse的K-FAC有什么差别:
: Kronecker-product preconditioner近似是一种实现的例子,就像diagonal等形式的
: preconditioner大家都可以用。不同的是看同一种形式的preconditioner是从什么准则
: 下拟合出来的,K-FAC拟合的近似和凸优化里的Levenberg-Marquardt,Gaussian-
: Newton,truncated-Newton等方法相关;早期(fisher information metric度量下的)
: 自然梯度里也常有人用Kronecker-product来拟合梯度向量的外积;PSGD, kron拟合的
: 是另外一个可用于非凸和随机优化的准则。这个大概是主要区别吧。当然具体实现上的
: 差别很大,PSGD, kron用Lie群上的自然梯度学习到的,无需去调damping系数、line
: search步长等一缸子东西,因为PSGD的设计本身已经考虑到了非凸和梯度噪声的问题。
l*x
66 楼
谢谢大家的讨论,一起回复几个要点吧:
1,理论的核心: paper https://arxiv.org/abs/1803.09383 中preconditioner估计
准则式(7);preconditioner学习rule式(8);与Newton方法的联系式(9)。式(8)可以理
解为Amari的Lie group上的自然梯度,或Cardoso的relative gradient,或更直白的Lie
代数上的梯度下降(log(可逆矩阵)即是lie代数),或最直白的理解就是对log(矩阵)
的梯度。
2,RMSProp和Adams: 搞凸优化的人有一套理论来解释它们;如果硬把它们和
preconditioner联系起来,只能说它们用到了一个biased diagonal preconditioner;
我更愿意将它们和CRB定理联系起来。熟悉Cramér–Rao bound定理的证明的人知道,
对如likelihood目标函数的优化,在参数的最优值处,梯度的外积和Hessian是相等的
,RMSProp用到的是梯度的外积的对角线,这样一对比便很清楚RMSProp和Adams的含义
和局限。
3,guvest提到preconditioner估计中自然梯度下降为什么用max(abs(梯度))来
normalize步长: 理论上该用梯度的二范数来normalize步长;实际中可用二范数的近
似来normalize步长,二范数的近似有:你提的Frobenius norm;最大的row的绝对值的
和;最大的column的绝对值的和;梯度对角线绝对值的最大值(这个近似很risky,只有
在对角线都非零的情况下成立,因为这时对角线值便是特征值,如果有的对角线元素接
近0,这个近似便数值不稳定)等等等... 我用max(abs(梯度))只因为它最简单,也是一
个数值稳定的二范数近似。
4,preconditioner将迭代系统的特征值的绝对值都拉到1附近,这样可改善系统的条件
数来加快收敛,又便于选步长。
5,Preconditioner稀疏不一定就没用,关键是其操作的意义。对如神经网络的优化,
更稀疏的scaling-and-normalization preconditioner几乎总是比diagonal
preconditioner更优,因为后者没有利用到网络中affine transformation的参数结构。
6,Qnew的更新:可以选择每个iteration更新一次,或者每间隔几个iteration更新,
或者cache一些Hessian-vector products来更新(这时Q估计的batch_size>1,是会更
准的; 我的例子都是用一个Hessian-vector product来更新Q,batch_size为1)。可
行的选择可以很多很多。
1,理论的核心: paper https://arxiv.org/abs/1803.09383 中preconditioner估计
准则式(7);preconditioner学习rule式(8);与Newton方法的联系式(9)。式(8)可以理
解为Amari的Lie group上的自然梯度,或Cardoso的relative gradient,或更直白的Lie
代数上的梯度下降(log(可逆矩阵)即是lie代数),或最直白的理解就是对log(矩阵)
的梯度。
2,RMSProp和Adams: 搞凸优化的人有一套理论来解释它们;如果硬把它们和
preconditioner联系起来,只能说它们用到了一个biased diagonal preconditioner;
我更愿意将它们和CRB定理联系起来。熟悉Cramér–Rao bound定理的证明的人知道,
对如likelihood目标函数的优化,在参数的最优值处,梯度的外积和Hessian是相等的
,RMSProp用到的是梯度的外积的对角线,这样一对比便很清楚RMSProp和Adams的含义
和局限。
3,guvest提到preconditioner估计中自然梯度下降为什么用max(abs(梯度))来
normalize步长: 理论上该用梯度的二范数来normalize步长;实际中可用二范数的近
似来normalize步长,二范数的近似有:你提的Frobenius norm;最大的row的绝对值的
和;最大的column的绝对值的和;梯度对角线绝对值的最大值(这个近似很risky,只有
在对角线都非零的情况下成立,因为这时对角线值便是特征值,如果有的对角线元素接
近0,这个近似便数值不稳定)等等等... 我用max(abs(梯度))只因为它最简单,也是一
个数值稳定的二范数近似。
4,preconditioner将迭代系统的特征值的绝对值都拉到1附近,这样可改善系统的条件
数来加快收敛,又便于选步长。
5,Preconditioner稀疏不一定就没用,关键是其操作的意义。对如神经网络的优化,
更稀疏的scaling-and-normalization preconditioner几乎总是比diagonal
preconditioner更优,因为后者没有利用到网络中affine transformation的参数结构。
6,Qnew的更新:可以选择每个iteration更新一次,或者每间隔几个iteration更新,
或者cache一些Hessian-vector products来更新(这时Q估计的batch_size>1,是会更
准的; 我的例子都是用一个Hessian-vector product来更新Q,batch_size为1)。可
行的选择可以很多很多。
g*t
67 楼
谢谢回答。再次感谢楼主。
楼主后面的研究会是立足这个办法做应用领域,
还是找别的算法?
: 谢谢大家的讨论,一起回复几个要点吧:
: 1,理论的核心: paper https://arxiv.org/abs/1803.09383 中
preconditioner估计
: 准则式(7);preconditioner学习rule式(8);与Newton方法的联系式(9)
。式(8)
可以理
: 解为Amari的Lie group上的自然梯度,或Cardoso的relative gradient,
或更直
白的Lie
: 代数上的梯度下降(log(可逆矩阵)即是lie代数),或最直白的理解就是对
log(
矩阵)
: 的梯度。
: 2,RMSProp和Adams: 搞凸优化的人有一套理论来解释它们;如果硬把它
们和
: preconditioner联系起来,只能说它们用到了一个biased diagonal
preconditioner;
: 我更愿意将它们和CRB定理联系起来。熟悉Cramér–Rao
bound定理的证明的人
知道,
: 对如likelihood目标函数的优化,在参数的最优值处,梯度的外积和
Hessian是
相等的
【在 l******x 的大作中提到】
: 谢谢大家的讨论,一起回复几个要点吧:
: 1,理论的核心: paper https://arxiv.org/abs/1803.09383 中preconditioner估计
: 准则式(7);preconditioner学习rule式(8);与Newton方法的联系式(9)。式(8)可以理
: 解为Amari的Lie group上的自然梯度,或Cardoso的relative gradient,或更直白的Lie
: 代数上的梯度下降(log(可逆矩阵)即是lie代数),或最直白的理解就是对log(矩阵)
: 的梯度。
: 2,RMSProp和Adams: 搞凸优化的人有一套理论来解释它们;如果硬把它们和
: preconditioner联系起来,只能说它们用到了一个biased diagonal preconditioner;
: 我更愿意将它们和CRB定理联系起来。熟悉Cramér–Rao bound定理的证明的人知道,
: 对如likelihood目标函数的优化,在参数的最优值处,梯度的外积和Hessian是相等的
楼主后面的研究会是立足这个办法做应用领域,
还是找别的算法?
: 谢谢大家的讨论,一起回复几个要点吧:
: 1,理论的核心: paper https://arxiv.org/abs/1803.09383 中
preconditioner估计
: 准则式(7);preconditioner学习rule式(8);与Newton方法的联系式(9)
。式(8)
可以理
: 解为Amari的Lie group上的自然梯度,或Cardoso的relative gradient,
或更直
白的Lie
: 代数上的梯度下降(log(可逆矩阵)即是lie代数),或最直白的理解就是对
log(
矩阵)
: 的梯度。
: 2,RMSProp和Adams: 搞凸优化的人有一套理论来解释它们;如果硬把它
们和
: preconditioner联系起来,只能说它们用到了一个biased diagonal
preconditioner;
: 我更愿意将它们和CRB定理联系起来。熟悉Cramér–Rao
bound定理的证明的人
知道,
: 对如likelihood目标函数的优化,在参数的最优值处,梯度的外积和
Hessian是
相等的
【在 l******x 的大作中提到】
: 谢谢大家的讨论,一起回复几个要点吧:
: 1,理论的核心: paper https://arxiv.org/abs/1803.09383 中preconditioner估计
: 准则式(7);preconditioner学习rule式(8);与Newton方法的联系式(9)。式(8)可以理
: 解为Amari的Lie group上的自然梯度,或Cardoso的relative gradient,或更直白的Lie
: 代数上的梯度下降(log(可逆矩阵)即是lie代数),或最直白的理解就是对log(矩阵)
: 的梯度。
: 2,RMSProp和Adams: 搞凸优化的人有一套理论来解释它们;如果硬把它们和
: preconditioner联系起来,只能说它们用到了一个biased diagonal preconditioner;
: 我更愿意将它们和CRB定理联系起来。熟悉Cramér–Rao bound定理的证明的人知道,
: 对如likelihood目标函数的优化,在参数的最优值处,梯度的外积和Hessian是相等的
l*m
68 楼
谢谢。也谈一下目前使用二阶优化方法的两大难点。(我没有研究过,只是从去年底一
直关注。)
第一,还没有人给出用二阶优化方法可以在大数据集上能提高精度的例子。
第二,大家说二阶优化方法收敛快都是根据迭代次数,而不是wall time. 所以尝试的
人很少,也导致调参远没有优化
现在的主要吸引力在一阶有困难的时候。比如要在1000 GPU上撸image net。一阶优化
方法有较大的精度下降。
【在 l******x 的大作中提到】
: PSGD, kron和Roger Grosse的K-FAC有什么差别:
: Kronecker-product preconditioner近似是一种实现的例子,就像diagonal等形式的
: preconditioner大家都可以用。不同的是看同一种形式的preconditioner是从什么准则
: 下拟合出来的,K-FAC拟合的近似和凸优化里的Levenberg-Marquardt,Gaussian-
: Newton,truncated-Newton等方法相关;早期(fisher information metric度量下的)
: 自然梯度里也常有人用Kronecker-product来拟合梯度向量的外积;PSGD, kron拟合的
: 是另外一个可用于非凸和随机优化的准则。这个大概是主要区别吧。当然具体实现上的
: 差别很大,PSGD, kron用Lie群上的自然梯度学习到的,无需去调damping系数、line
: search步长等一缸子东西,因为PSGD的设计本身已经考虑到了非凸和梯度噪声的问题。
直关注。)
第一,还没有人给出用二阶优化方法可以在大数据集上能提高精度的例子。
第二,大家说二阶优化方法收敛快都是根据迭代次数,而不是wall time. 所以尝试的
人很少,也导致调参远没有优化
现在的主要吸引力在一阶有困难的时候。比如要在1000 GPU上撸image net。一阶优化
方法有较大的精度下降。
【在 l******x 的大作中提到】
: PSGD, kron和Roger Grosse的K-FAC有什么差别:
: Kronecker-product preconditioner近似是一种实现的例子,就像diagonal等形式的
: preconditioner大家都可以用。不同的是看同一种形式的preconditioner是从什么准则
: 下拟合出来的,K-FAC拟合的近似和凸优化里的Levenberg-Marquardt,Gaussian-
: Newton,truncated-Newton等方法相关;早期(fisher information metric度量下的)
: 自然梯度里也常有人用Kronecker-product来拟合梯度向量的外积;PSGD, kron拟合的
: 是另外一个可用于非凸和随机优化的准则。这个大概是主要区别吧。当然具体实现上的
: 差别很大,PSGD, kron用Lie群上的自然梯度学习到的,无需去调damping系数、line
: search步长等一缸子东西,因为PSGD的设计本身已经考虑到了非凸和梯度噪声的问题。
g*t
69 楼
1.
Adams本身可以看作二阶法吧。梯度前面的步长不固定。
g^2 的移动平均,大致对应于海赛。
但是比对角线近似更讲究速度。
Second moment和二阶导数是一致的物理意义。
也可以把过去的g的互相关算出来,然后
乔斯基分解计算海赛和向量点积。有人这么做过。
但如你所说,现在没有流传和确认出来效果。
所以从这个意义上来讲。二阶法在这次突破过程中很关键。
Btw, Alxnet用的是什么办法?
2.
之前我提到过。09年我已量产LSTM system on chip.
我走的路线是在实验室做定制的实验,提高数据质量.
数值算法方面不深究。
我个人认为AI必须向物理学一样,设计实验
和数值计算混合进行。实验发生在现实世界是无穷维度的。
不可被计算机的0,1运动代替。
只讲究给定数据和算法的AI也很重要,但是有边界。
我没有看过图像。但是假如有一个困难的图像数值问题,开发一个
自动抓更多定制的图像的系统,我觉得比算法研究可能更有效果。
: 谢谢。也谈一下目前使用二阶优化方法的两大难点。(我没有研究过,只
是从去
年底一
: 直关注。)
: 第一,还没有人给出用二阶优化方法可以在大数据集上能提高精度的例子。
: 第二,大家说二阶优化方法收敛快都是根据迭代次数,而不是wall time.
所以
尝试的
: 人很少,也导致调参远没有优化
: 现在的主要吸引力在一阶有困难的时候。比如要在1000 GPU上撸image
net。一
阶优化
: 方法有较大的精度下降。
【在 l*******m 的大作中提到】
: 谢谢。也谈一下目前使用二阶优化方法的两大难点。(我没有研究过,只是从去年底一
: 直关注。)
: 第一,还没有人给出用二阶优化方法可以在大数据集上能提高精度的例子。
: 第二,大家说二阶优化方法收敛快都是根据迭代次数,而不是wall time. 所以尝试的
: 人很少,也导致调参远没有优化
: 现在的主要吸引力在一阶有困难的时候。比如要在1000 GPU上撸image net。一阶优化
: 方法有较大的精度下降。
Adams本身可以看作二阶法吧。梯度前面的步长不固定。
g^2 的移动平均,大致对应于海赛。
但是比对角线近似更讲究速度。
Second moment和二阶导数是一致的物理意义。
也可以把过去的g的互相关算出来,然后
乔斯基分解计算海赛和向量点积。有人这么做过。
但如你所说,现在没有流传和确认出来效果。
所以从这个意义上来讲。二阶法在这次突破过程中很关键。
Btw, Alxnet用的是什么办法?
2.
之前我提到过。09年我已量产LSTM system on chip.
我走的路线是在实验室做定制的实验,提高数据质量.
数值算法方面不深究。
我个人认为AI必须向物理学一样,设计实验
和数值计算混合进行。实验发生在现实世界是无穷维度的。
不可被计算机的0,1运动代替。
只讲究给定数据和算法的AI也很重要,但是有边界。
我没有看过图像。但是假如有一个困难的图像数值问题,开发一个
自动抓更多定制的图像的系统,我觉得比算法研究可能更有效果。
: 谢谢。也谈一下目前使用二阶优化方法的两大难点。(我没有研究过,只
是从去
年底一
: 直关注。)
: 第一,还没有人给出用二阶优化方法可以在大数据集上能提高精度的例子。
: 第二,大家说二阶优化方法收敛快都是根据迭代次数,而不是wall time.
所以
尝试的
: 人很少,也导致调参远没有优化
: 现在的主要吸引力在一阶有困难的时候。比如要在1000 GPU上撸image
net。一
阶优化
: 方法有较大的精度下降。
【在 l*******m 的大作中提到】
: 谢谢。也谈一下目前使用二阶优化方法的两大难点。(我没有研究过,只是从去年底一
: 直关注。)
: 第一,还没有人给出用二阶优化方法可以在大数据集上能提高精度的例子。
: 第二,大家说二阶优化方法收敛快都是根据迭代次数,而不是wall time. 所以尝试的
: 人很少,也导致调参远没有优化
: 现在的主要吸引力在一阶有困难的时候。比如要在1000 GPU上撸image net。一阶优化
: 方法有较大的精度下降。
w*g
70 楼
同意。
也不用像imagenet那么大的数据。
能在caltech101上跑alexnet就可以了。
mnist和cifar10的图片太小,几乎没有实战意义。
用mnist评测的paper太多太多了,多到根本看不过来。
我倒不太关心迭代次数还是wall time。dataset小,train一晚上基本上也都收敛了。
如果有一个方法能保证最终精度>=SGD并且震动小于SGD,我就很满意了。
【在 l*******m 的大作中提到】
: 谢谢。也谈一下目前使用二阶优化方法的两大难点。(我没有研究过,只是从去年底一
: 直关注。)
: 第一,还没有人给出用二阶优化方法可以在大数据集上能提高精度的例子。
: 第二,大家说二阶优化方法收敛快都是根据迭代次数,而不是wall time. 所以尝试的
: 人很少,也导致调参远没有优化
: 现在的主要吸引力在一阶有困难的时候。比如要在1000 GPU上撸image net。一阶优化
: 方法有较大的精度下降。
也不用像imagenet那么大的数据。
能在caltech101上跑alexnet就可以了。
mnist和cifar10的图片太小,几乎没有实战意义。
用mnist评测的paper太多太多了,多到根本看不过来。
我倒不太关心迭代次数还是wall time。dataset小,train一晚上基本上也都收敛了。
如果有一个方法能保证最终精度>=SGD并且震动小于SGD,我就很满意了。
【在 l*******m 的大作中提到】
: 谢谢。也谈一下目前使用二阶优化方法的两大难点。(我没有研究过,只是从去年底一
: 直关注。)
: 第一,还没有人给出用二阶优化方法可以在大数据集上能提高精度的例子。
: 第二,大家说二阶优化方法收敛快都是根据迭代次数,而不是wall time. 所以尝试的
: 人很少,也导致调参远没有优化
: 现在的主要吸引力在一阶有困难的时候。比如要在1000 GPU上撸image net。一阶优化
: 方法有较大的精度下降。
l*x
71 楼
这个work纯属个人兴趣爱好,与工作关系不大,也没有打算进一步研究下去。
lightroom提到的wall time在tf demo伴随的report中有提及,这个与算法的设计和实
现相关。PSGD本身是支持大量并行的,你甚至可以在这里估计preconditioner,再copy
到别的地方来precondition gradient,因为一般情况下curvature比梯度变化慢得多。
如果只有一个GPU,可以选择update preconditioner less frequently,这样PSGD和
SGD的wall time per iteration就很接近,PSGD一般还是比SGD快和好。
对如实际大规模数据应用中能达到的性能,这是个很沉重的话题,优化算法的选择甚至
有可能变得无足轻重,至少data本身是非常重要的。总之,抛砖引玉吧。
lightroom提到的wall time在tf demo伴随的report中有提及,这个与算法的设计和实
现相关。PSGD本身是支持大量并行的,你甚至可以在这里估计preconditioner,再copy
到别的地方来precondition gradient,因为一般情况下curvature比梯度变化慢得多。
如果只有一个GPU,可以选择update preconditioner less frequently,这样PSGD和
SGD的wall time per iteration就很接近,PSGD一般还是比SGD快和好。
对如实际大规模数据应用中能达到的性能,这是个很沉重的话题,优化算法的选择甚至
有可能变得无足轻重,至少data本身是非常重要的。总之,抛砖引玉吧。
g*t
72 楼
你是真正的散户啊。单作者paper !
你可以把这个工作放到hack news,相信会有更多讨论
: 这个work纯属个人兴趣爱好,与工作关系不大,也没有打算进一步研究下
去。
: lightroom提到的wall time在tf demo伴随的report中有提及,这个与算
法的设
计和实
: 现相关。PSGD本身是支持大量并行的,你甚至可以在这里估计
preconditioner,
再copy
: 到别的地方来precondition gradient,因为一般情况下curvature比梯度
变化慢
得多。
: 如果只有一个GPU,可以选择update preconditioner less frequently,
这样
PSGD和
: SGD的wall time per iteration就很接近,PSGD一般还是比SGD快和好。
: 对如实际大规模数据应用中能达到的性能,这是个很沉重的话题,优化算
法的选
择甚至
: 有可能变得无足轻重,至少data本身是非常重要的。总之,抛砖引玉吧。
【在 l******x 的大作中提到】
: 这个work纯属个人兴趣爱好,与工作关系不大,也没有打算进一步研究下去。
: lightroom提到的wall time在tf demo伴随的report中有提及,这个与算法的设计和实
: 现相关。PSGD本身是支持大量并行的,你甚至可以在这里估计preconditioner,再copy
: 到别的地方来precondition gradient,因为一般情况下curvature比梯度变化慢得多。
: 如果只有一个GPU,可以选择update preconditioner less frequently,这样PSGD和
: SGD的wall time per iteration就很接近,PSGD一般还是比SGD快和好。
: 对如实际大规模数据应用中能达到的性能,这是个很沉重的话题,优化算法的选择甚至
: 有可能变得无足轻重,至少data本身是非常重要的。总之,抛砖引玉吧。
你可以把这个工作放到hack news,相信会有更多讨论
: 这个work纯属个人兴趣爱好,与工作关系不大,也没有打算进一步研究下
去。
: lightroom提到的wall time在tf demo伴随的report中有提及,这个与算
法的设
计和实
: 现相关。PSGD本身是支持大量并行的,你甚至可以在这里估计
preconditioner,
再copy
: 到别的地方来precondition gradient,因为一般情况下curvature比梯度
变化慢
得多。
: 如果只有一个GPU,可以选择update preconditioner less frequently,
这样
PSGD和
: SGD的wall time per iteration就很接近,PSGD一般还是比SGD快和好。
: 对如实际大规模数据应用中能达到的性能,这是个很沉重的话题,优化算
法的选
择甚至
: 有可能变得无足轻重,至少data本身是非常重要的。总之,抛砖引玉吧。
【在 l******x 的大作中提到】
: 这个work纯属个人兴趣爱好,与工作关系不大,也没有打算进一步研究下去。
: lightroom提到的wall time在tf demo伴随的report中有提及,这个与算法的设计和实
: 现相关。PSGD本身是支持大量并行的,你甚至可以在这里估计preconditioner,再copy
: 到别的地方来precondition gradient,因为一般情况下curvature比梯度变化慢得多。
: 如果只有一个GPU,可以选择update preconditioner less frequently,这样PSGD和
: SGD的wall time per iteration就很接近,PSGD一般还是比SGD快和好。
: 对如实际大规模数据应用中能达到的性能,这是个很沉重的话题,优化算法的选择甚至
: 有可能变得无足轻重,至少data本身是非常重要的。总之,抛砖引玉吧。
g*t
73 楼
有没人做过如下类似的尝试。按我前面的思路做实验,
数值计算足够但是不深究。
例如给定了一个猫狗分辨问题。让我提高现有技术。
我会走如下步骤
第一步:找人贴细化标签。
把猫狗分成黑猫白狗白猫黑狗四个标签。
这样不抓数据,也提高了数据质量。
第二步:coarse classifier 黑猫白狗四类
第三步: 合成猫狗分类
这样我感觉就好比矩阵求逆分成2^n块来求,
会比直接求快一个数量级。物理上也正确。细化标签
引入了新的信息。颜色和猫狗是正交属性,互相干扰少。
: 同意。
: 也不用像imagenet那么大的数据。
: 能在caltech101上跑alexnet就可以了。
: mnist和cifar10的图片太小,几乎没有实战意义。
: 用mnist评测的paper太多太多了,多到根本看不过来。
: 我倒不太关心迭代次数还是wall time。dataset小,train一晚上基本上
也都收
敛了。
: 如果有一个方法能保证最终精度
【在 w***g 的大作中提到】
: 同意。
: 也不用像imagenet那么大的数据。
: 能在caltech101上跑alexnet就可以了。
: mnist和cifar10的图片太小,几乎没有实战意义。
: 用mnist评测的paper太多太多了,多到根本看不过来。
: 我倒不太关心迭代次数还是wall time。dataset小,train一晚上基本上也都收敛了。
: 如果有一个方法能保证最终精度>=SGD并且震动小于SGD,我就很满意了。
数值计算足够但是不深究。
例如给定了一个猫狗分辨问题。让我提高现有技术。
我会走如下步骤
第一步:找人贴细化标签。
把猫狗分成黑猫白狗白猫黑狗四个标签。
这样不抓数据,也提高了数据质量。
第二步:coarse classifier 黑猫白狗四类
第三步: 合成猫狗分类
这样我感觉就好比矩阵求逆分成2^n块来求,
会比直接求快一个数量级。物理上也正确。细化标签
引入了新的信息。颜色和猫狗是正交属性,互相干扰少。
: 同意。
: 也不用像imagenet那么大的数据。
: 能在caltech101上跑alexnet就可以了。
: mnist和cifar10的图片太小,几乎没有实战意义。
: 用mnist评测的paper太多太多了,多到根本看不过来。
: 我倒不太关心迭代次数还是wall time。dataset小,train一晚上基本上
也都收
敛了。
: 如果有一个方法能保证最终精度
【在 w***g 的大作中提到】
: 同意。
: 也不用像imagenet那么大的数据。
: 能在caltech101上跑alexnet就可以了。
: mnist和cifar10的图片太小,几乎没有实战意义。
: 用mnist评测的paper太多太多了,多到根本看不过来。
: 我倒不太关心迭代次数还是wall time。dataset小,train一晚上基本上也都收敛了。
: 如果有一个方法能保证最终精度>=SGD并且震动小于SGD,我就很满意了。
w*g
74 楼
楼主还是找个地方发表了吧,只放arxiv太可惜了。
调dataset确实很枯燥。最近快一个月了,我啥都没干光调dataset了。
而且也没调啥牛x dataset,就是cifar10, voc, flower这些。
而且accuracy也没调多好。就是把tensorflow理顺了一点。
坑太多了。
copy
【在 l******x 的大作中提到】
: 这个work纯属个人兴趣爱好,与工作关系不大,也没有打算进一步研究下去。
: lightroom提到的wall time在tf demo伴随的report中有提及,这个与算法的设计和实
: 现相关。PSGD本身是支持大量并行的,你甚至可以在这里估计preconditioner,再copy
: 到别的地方来precondition gradient,因为一般情况下curvature比梯度变化慢得多。
: 如果只有一个GPU,可以选择update preconditioner less frequently,这样PSGD和
: SGD的wall time per iteration就很接近,PSGD一般还是比SGD快和好。
: 对如实际大规模数据应用中能达到的性能,这是个很沉重的话题,优化算法的选择甚至
: 有可能变得无足轻重,至少data本身是非常重要的。总之,抛砖引玉吧。
调dataset确实很枯燥。最近快一个月了,我啥都没干光调dataset了。
而且也没调啥牛x dataset,就是cifar10, voc, flower这些。
而且accuracy也没调多好。就是把tensorflow理顺了一点。
坑太多了。
copy
【在 l******x 的大作中提到】
: 这个work纯属个人兴趣爱好,与工作关系不大,也没有打算进一步研究下去。
: lightroom提到的wall time在tf demo伴随的report中有提及,这个与算法的设计和实
: 现相关。PSGD本身是支持大量并行的,你甚至可以在这里估计preconditioner,再copy
: 到别的地方来precondition gradient,因为一般情况下curvature比梯度变化慢得多。
: 如果只有一个GPU,可以选择update preconditioner less frequently,这样PSGD和
: SGD的wall time per iteration就很接近,PSGD一般还是比SGD快和好。
: 对如实际大规模数据应用中能达到的性能,这是个很沉重的话题,优化算法的选择甚至
: 有可能变得无足轻重,至少data本身是非常重要的。总之,抛砖引玉吧。
g*u
75 楼
修改一下 cvpr poster还是差不多的啊
l*x
76 楼
实际应用中当然人力的成本更高,Adam这样简单的东西也要调半天,还不知道好不好。
我工作中涉及到的也就是中等规模的时序数据的recurrent网络的训练,这套方法不怎
么调,效果也总比Adam好,就自个儿这么用着。
真的是纯粹个人兴趣的瞎折腾,Paper已经在arxiv上了,理论很清楚,就差不多了。什
么在一堆大数据上使劲调,和别人比performance等等,确实不是在下的兴趣所在,也
非在下的能力和精力所能及的工作。
我工作中涉及到的也就是中等规模的时序数据的recurrent网络的训练,这套方法不怎
么调,效果也总比Adam好,就自个儿这么用着。
真的是纯粹个人兴趣的瞎折腾,Paper已经在arxiv上了,理论很清楚,就差不多了。什
么在一堆大数据上使劲调,和别人比performance等等,确实不是在下的兴趣所在,也
非在下的能力和精力所能及的工作。
l*x
79 楼
写paper都很累的。IEEE Trans那个是犹豫了好长时间,才痛下决心在2015年Halloween
到圣诞节间整理出来的,投出去后,被4个reviewer折腾到2017年。最后一个reviewer
缠着要cite他的几篇不相关的papers,没理他,还好editor最终决定接收了。
到圣诞节间整理出来的,投出去后,被4个reviewer折腾到2017年。最后一个reviewer
缠着要cite他的几篇不相关的papers,没理他,还好editor最终决定接收了。
l*x
80 楼
感觉这个版上做memoryless的网络比较多。对如有memory的神经网络,Adam这种有梯度
moving average的容易发散,dropout,batch normalization等tricks对dynamic的系
统的训练也没有太大用处。
moving average的容易发散,dropout,batch normalization等tricks对dynamic的系
统的训练也没有太大用处。
g*t
81 楼
我是做RNN,LSTM 的。确实算法的approach很难有明显贡献。物理意义我觉得更重要些
。假如delay的阶数错了。无论如何也出不来结果。
假如一个电路有三个电容,用二阶系统fit,那么算法好的作用只是却发现错误的早些。
但是话说回来,算法可以帮助人发现物理知识,这点我觉得也是确定无疑的。现代DL系
统让试错更有效率。不掌握不行。
: 感觉这个版上做memoryless的网络比较多。对如有memory的神经网络,
Adam这种
有梯度
: moving average的容易发散,dropout,batch normalization等tricks对
dynamic的系
: 统的训练也没有太大用处。
【在 l******x 的大作中提到】
: 感觉这个版上做memoryless的网络比较多。对如有memory的神经网络,Adam这种有梯度
: moving average的容易发散,dropout,batch normalization等tricks对dynamic的系
: 统的训练也没有太大用处。
。假如delay的阶数错了。无论如何也出不来结果。
假如一个电路有三个电容,用二阶系统fit,那么算法好的作用只是却发现错误的早些。
但是话说回来,算法可以帮助人发现物理知识,这点我觉得也是确定无疑的。现代DL系
统让试错更有效率。不掌握不行。
: 感觉这个版上做memoryless的网络比较多。对如有memory的神经网络,
Adam这种
有梯度
: moving average的容易发散,dropout,batch normalization等tricks对
dynamic的系
: 统的训练也没有太大用处。
【在 l******x 的大作中提到】
: 感觉这个版上做memoryless的网络比较多。对如有memory的神经网络,Adam这种有梯度
: moving average的容易发散,dropout,batch normalization等tricks对dynamic的系
: 统的训练也没有太大用处。
g*t
82 楼
论文发表都有圈子的。散户先天吃亏。
: 写paper都很累的。IEEE Trans那个是犹豫了好长时间,才痛下决心在2015年
Halloween
: 到圣诞节间整理出来的,投出去后,被4个reviewer折腾到2017年。最后一个
reviewer
: 缠着要cite他的几篇不相关的papers,没理他,还好editor最终决定接收了。
【在 l******x 的大作中提到】
: 感觉这个版上做memoryless的网络比较多。对如有memory的神经网络,Adam这种有梯度
: moving average的容易发散,dropout,batch normalization等tricks对dynamic的系
: 统的训练也没有太大用处。
: 写paper都很累的。IEEE Trans那个是犹豫了好长时间,才痛下决心在2015年
Halloween
: 到圣诞节间整理出来的,投出去后,被4个reviewer折腾到2017年。最后一个
reviewer
: 缠着要cite他的几篇不相关的papers,没理他,还好editor最终决定接收了。
【在 l******x 的大作中提到】
: 感觉这个版上做memoryless的网络比较多。对如有memory的神经网络,Adam这种有梯度
: moving average的容易发散,dropout,batch normalization等tricks对dynamic的系
: 统的训练也没有太大用处。
相关阅读
"(char *)-1" 是什么意思?编程用的电脑问一下学习C,做题的资源。。。有没有open source的工具能生成code的white box tests?5/30-中国人北美甲骨文用户组IT新手入门第五讲 (转载)非科班出身的想做程序员,考一些证是否有助于找到工作。 (转载)用笔记本手总意外碰到触摸板怎么办?请教一个C++中function pointer的问题。《Latex 教程》(LaTeX and Friends)英文版[PDF]Java+SQL or C++/SQL (转载)有人用Boost.MPI吗?问一个关于serial port的问题 (转载)请大牛们帮忙小弟图形学capstone final project?在破解的iphone上,如何编程?两个线程异步通信是不是用信号最好?C++中如何数据文件一起build进exe文件中?PytDev: unresolved importtech question: how does oracle uses composite index?请教:如何把程序运行结果转给 bash variable ?javascript在浏览器里可以被disable,这个对javascript太不利了。