Redian新闻
>
自荐一套二阶随机优化的方法
avatar
自荐一套二阶随机优化的方法# Programming - 葵花宝典
i*a
1
增在排队等入场看wolverine. $18 一脏票好贵喔
[发表自未名空间手机版 - m.mitbbs.com]
avatar
p*y
2
乏善可陈,只有韩磊的《送别》觉得好听,其他无感。
《时间去哪儿》,周笔畅版本没有央视春晚那个好听。
喜欢邓紫棋,可除了开始几场惊艳,最近唱的歌都无感。
这个节目要是保持这个品质,以后就不追了。没劲。
avatar
u*p
3
请问, HP Touchpad看pdf能缩放吗?
avatar
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上。总之,感兴趣可以尝试一下。
avatar
P*e
5
这么火?

【在 i****a 的大作中提到】
: 增在排队等入场看wolverine. $18 一脏票好贵喔
: [发表自未名空间手机版 - m.mitbbs.com]

avatar
i*i
6
刚看到满文军,前两票投给张宇和韩磊。大叔说的一番话太对 我胃口了,心境。
avatar
a*d
7
应该可以,似乎是adobe的reader

【在 u*p 的大作中提到】
: 请问, HP Touchpad看pdf能缩放吗?
avatar
c*v
8
不错。你算完整的海塞赛吗?
ESGD指的是evolution stragety ?
avatar
i*a
9
坐下了. 送了件 wolverine t-shirt.
Dobly atom电影厅, 数了一下,墙上18个喇叭, 天花板12个. 不姿到前面有没有
central speakers看不到的

[发表自未名空间手机版 - m.mitbbs.com]

【在 P*******e 的大作中提到】
: 这么火?
avatar
i*i
10
给韩磊伴奏的小提琴小伙子是唐韵,小时候主演过陈凯歌的“某电影”,很帅气却连个
正面镜头也没拍着。
avatar
l*x
11
ESGD是大牛Yoshua Bengio组提出的equilibrated SGD,对应这一套理论的diagonal
preconditioner,其实其性能大概和RMSProp相当,其它的preconditioner,如更稀疏
的scaling-and-normalization,的性能会好很多。
avatar
P*e
12
imax? 多少银子? 只有首映有tshirt?

【在 i****a 的大作中提到】
: 坐下了. 送了件 wolverine t-shirt.
: Dobly atom电影厅, 数了一下,墙上18个喇叭, 天花板12个. 不姿到前面有没有
: central speakers看不到的
:
: [发表自未名空间手机版 - m.mitbbs.com]

avatar
l*i
13
我家那位在车上听一次哭一次,但是说对王唱的没感觉

【在 p****y 的大作中提到】
: 乏善可陈,只有韩磊的《送别》觉得好听,其他无感。
: 《时间去哪儿》,周笔畅版本没有央视春晚那个好听。
: 喜欢邓紫棋,可除了开始几场惊艳,最近唱的歌都无感。
: 这个节目要是保持这个品质,以后就不追了。没劲。

avatar
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中提取出来的。
avatar
i*a
15
不是,就是 arch light 的 dobly atom 厅, $18.
友情提醒,看到字幕不要走,电影还有几分钟的

[发表自未名空间手机版 - m.mitbbs.com]

【在 P*******e 的大作中提到】
: imax? 多少银子? 只有首映有tshirt?
avatar
i*i
16
第三票还是投给笔畅,好感分嘛
茜拉和邓声音华丽,但没什么感情成分
咱版要是也能同步搞投票就好玩了
不知道结果是否会与500大众听审相差多少

【在 i***i 的大作中提到】
: 刚看到满文军,前两票投给张宇和韩磊。大叔说的一番话太对 我胃口了,心境。
avatar
l*m
17
batch size要多大?


:一阶的方法(SGD,RMSProp,momentum,Adam等)其实区别都不太大;常用的二阶的方法往
avatar
P*e
18
总体评价如何?

【在 i****a 的大作中提到】
: 不是,就是 arch light 的 dobly atom 厅, $18.
: 友情提醒,看到字幕不要走,电影还有几分钟的
:
: [发表自未名空间手机版 - m.mitbbs.com]

avatar
i*i
19
张杰的脸型越来越奇怪了,耳朵以下的部分俨然一个八角型的下半边。
avatar
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中提取出来的。

avatar
i*a
21
哦,还是3d 的. Active shutter 眼镜,效果很好,但是眼睛还是很累. 以后我还是继
续避开3d

[发表自未名空间手机版 - m.mitbbs.com]

【在 i****a 的大作中提到】
: 不是,就是 arch light 的 dobly atom 厅, $18.
: 友情提醒,看到字幕不要走,电影还有几分钟的
:
: [发表自未名空间手机版 - m.mitbbs.com]

avatar
n*d
22
韩磊唱的挺好。小邓越来越平淡了。
avatar
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算出来的矩阵只有在对于

avatar
l*a
24
怎么才能拿到tshirt?
avatar
i*i
25
那是听谁的哭的?
王难道还不是原唱?

【在 l****i 的大作中提到】
: 我家那位在车上听一次哭一次,但是说对王唱的没感觉
avatar
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中提取出来的。

avatar
i*a
27
10 分满分,我给7.5分吧
故事主线有点压抑,连滋线故事都挺杯情的

[发表自未名空间手机版 - m.mitbbs.com]

【在 P*******e 的大作中提到】
: 总体评价如何?
avatar
b*n
28
这期我投张宇 磊哥 感情票给周笔。说实话小周这期我觉得一般,也可能是我对这类歌
无感。我最喜欢的三次 别爱我 黑色柳丁 爱火花 好像排名都很后。
话说磊哥是真牛。这么一首旋律简单和大家都听到烂熟的歌,能唱出这么多细节和变化
。当然编曲也厉害。
avatar
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就可收敛了。
avatar
i*a
30
Arch light promotion. Dolby atom 厅第一场. 很廉价的 t shirt, 没甚么的

[发表自未名空间手机版 - m.mitbbs.com]

【在 l***a 的大作中提到】
: 怎么才能拿到tshirt?
avatar
s*n
31
周唱的过了,不喜欢。前两个同意,第三个我选西拉

【在 b******n 的大作中提到】
: 这期我投张宇 磊哥 感情票给周笔。说实话小周这期我觉得一般,也可能是我对这类歌
: 无感。我最喜欢的三次 别爱我 黑色柳丁 爱火花 好像排名都很后。
: 话说磊哥是真牛。这么一首旋律简单和大家都听到烂熟的歌,能唱出这么多细节和变化
: 。当然编曲也厉害。

avatar
l*x
32
就是常用的软件pyplot、octave等画图看图,我不是做CS的,对这些不挑也不在行。是
文章作者。
avatar
c*h
33
擦。。。我看到字幕就走了。。。郁闷

【在 i****a 的大作中提到】
: 不是,就是 arch light 的 dobly atom 厅, $18.
: 友情提醒,看到字幕不要走,电影还有几分钟的
:
: [发表自未名空间手机版 - m.mitbbs.com]

avatar
b*n
34
希拉唱中文歌接受无能。听流行歌曲,我对咬字和口气是十分在意的。我还是等她唱英
文歌吧。

【在 s******n 的大作中提到】
: 周唱的过了,不喜欢。前两个同意,第三个我选西拉
avatar
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
avatar
i*a
36
就是下部电影预告而已

[发表自未名空间手机版 - m.mitbbs.com]

【在 c******h 的大作中提到】
: 擦。。。我看到字幕就走了。。。郁闷
avatar
s*n
37
她这次是没有第一次的好,可能学的时间不够长什么的,感情表达
也比较欠缺。可是其他人更不怎么样。小邓的看着就个空架子唬人

【在 b******n 的大作中提到】
: 希拉唱中文歌接受无能。听流行歌曲,我对咬字和口气是十分在意的。我还是等她唱英
: 文歌吧。

avatar
w*r
38
这是牛人啊,这个id不熟啊。。。
avatar
f*y
39
观众们掌声一片

【在 i****a 的大作中提到】
: 就是下部电影预告而已
:
: [发表自未名空间手机版 - m.mitbbs.com]

avatar
k*z
40
希拉吐字完全错位啊,听得好别扭。
avatar
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
: 。

avatar
i*a
42
avatar
l*i
43
类推之,很多国人唱英文歌给老外感觉也就这样。所以说如果标准统一,中国比赛自然
就不应该选唱英文歌。无奈国人太多崇洋媚外心态。

【在 k*z 的大作中提到】
: 希拉吐字完全错位啊,听得好别扭。
avatar
x*i
44
请问怎么用呢?就是tensorflow选optimizer 的时候用你的这个psgd , 而不是Adam或
者其它?
avatar
w*2
45
厉害。
看人多就只好等这个冷下来再看了。实在懒得排队了。
avatar
l*i
46
听周的。弄得下车只能带墨镜。王的版本听过,没那么强烈,估计是男女版本感觉不一
样。 不是连王都说第一次听女的哭了。

【在 i***i 的大作中提到】
: 那是听谁的哭的?
: 王难道还不是原唱?

avatar
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
: 。

avatar
l*a
48
竟然是白色的T 太土了 我以为肯定黑色呢
avatar
f*k
49
《和你在一起》,我觉的那是陈凯歌拍的最好的电影。
不过他应该很年轻。提琴手的职业寿命很长。

【在 i***i 的大作中提到】
: 给韩磊伴奏的小提琴小伙子是唐韵,小时候主演过陈凯歌的“某电影”,很帅气却连个
: 正面镜头也没拍着。

avatar
g*t
50
鞍点什么的会不正不负。导数不可交换的情况一般不考虑


: 一般用的啥nn会出现hessian不正定呢

: 好像基本都是一致连续的

: 啥时候会碰到导数不可交换的

: noise



【在 h**********e 的大作中提到】
: 一般用的啥nn会出现hessian不正定呢
: 好像基本都是一致连续的
: 啥时候会碰到导数不可交换的
:
: noise

avatar
f*c
51
原来是他啊! 《和你在一起》的男主演,当时还是一个少年哦,以前很爱看的电影。

【在 i***i 的大作中提到】
: 给韩磊伴奏的小提琴小伙子是唐韵,小时候主演过陈凯歌的“某电影”,很帅气却连个
: 正面镜头也没拍着。

avatar
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。
avatar
l*o
53
你是持续跟进期望逐步增高而导致审美疲劳
我就看了前三期就没看了 今天突然一看 不错啊 比刚开始强多了
avatar
l*x
54
稍微复杂一点的网络都会存在大量的鞍点,初值附件的Hessian大概都是不定的,SGD在
经过这些鞍点时会收敛很慢或者干脆过不去,一旦经过了鞍点,进入attraction basin
,几乎所有的优化方法都是一样好用的。
谢谢wflower的恭维,如果这个方法对大家有帮助,就非常好;否则这套理论也就是烂
在我肚子里了。
avatar
i*i
55
刚注意到韩大叔也要求观众在演唱过程中不要鼓掌了。这难道不应当成为一种常规?

【在 l*******o 的大作中提到】
: 你是持续跟进期望逐步增高而导致审美疲劳
: 我就看了前三期就没看了 今天突然一看 不错啊 比刚开始强多了

avatar
d*m
56
楼主很牛逼。以前学分析的时候顺便学过点optimization,都还给书本了
avatar
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上。总之,感兴趣可以尝试一下。

avatar
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,我觉得很可能也需要

avatar
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,但张量神经网络不是很流行,也没有底层包的支

avatar
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实验结果

avatar
w*g
61
我也打算研究一下优化算法了。好像挺有意思。

【在 g****t 的大作中提到】
: 方程42,43等于又用了一次梯度法求一个
: 方程或者二次型问题。这样避免求逆。
: 我想这是作者算法设计最关键的步骤。
: (如果说错,勿怪)
: 这个思路平和中正。实用性很强。
: 物理意义也清楚。
:
:
: 如果我写review会这么写。
:
: 1.
:
: 楼主的算法和Adams 等自适应步长的梯度法有类似之处。

avatar
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文档可能太啰嗦了。
avatar
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的设计本身已经考虑到了非凸和梯度噪声的问题。
avatar
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比较提纲挈领,简明扼要,大体列出了这个理论的核心思想和实现方法

avatar
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的设计本身已经考虑到了非凸和梯度噪声的问题。

avatar
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)。可
行的选择可以很多很多。
avatar
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是相等的

avatar
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的设计本身已经考虑到了非凸和梯度噪声的问题。

avatar
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。一阶优化
: 方法有较大的精度下降。

avatar
w*g
70
同意。
也不用像imagenet那么大的数据。
能在caltech101上跑alexnet就可以了。
mnist和cifar10的图片太小,几乎没有实战意义。
用mnist评测的paper太多太多了,多到根本看不过来。
我倒不太关心迭代次数还是wall time。dataset小,train一晚上基本上也都收敛了。
如果有一个方法能保证最终精度>=SGD并且震动小于SGD,我就很满意了。

【在 l*******m 的大作中提到】
: 谢谢。也谈一下目前使用二阶优化方法的两大难点。(我没有研究过,只是从去年底一
: 直关注。)
: 第一,还没有人给出用二阶优化方法可以在大数据集上能提高精度的例子。
: 第二,大家说二阶优化方法收敛快都是根据迭代次数,而不是wall time. 所以尝试的
: 人很少,也导致调参远没有优化
: 现在的主要吸引力在一阶有困难的时候。比如要在1000 GPU上撸image net。一阶优化
: 方法有较大的精度下降。

avatar
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本身是非常重要的。总之,抛砖引玉吧。
avatar
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本身是非常重要的。总之,抛砖引玉吧。

avatar
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,我就很满意了。

avatar
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本身是非常重要的。总之,抛砖引玉吧。

avatar
g*u
75
修改一下 cvpr poster还是差不多的啊
avatar
l*x
76
实际应用中当然人力的成本更高,Adam这样简单的东西也要调半天,还不知道好不好。
我工作中涉及到的也就是中等规模的时序数据的recurrent网络的训练,这套方法不怎
么调,效果也总比Adam好,就自个儿这么用着。
真的是纯粹个人兴趣的瞎折腾,Paper已经在arxiv上了,理论很清楚,就差不多了。什
么在一堆大数据上使劲调,和别人比performance等等,确实不是在下的兴趣所在,也
非在下的能力和精力所能及的工作。
avatar
c*v
77
make sense.
和我感觉差不多。中等规模比adam强的可能性很大。

【在 l******x 的大作中提到】
: 实际应用中当然人力的成本更高,Adam这样简单的东西也要调半天,还不知道好不好。
: 我工作中涉及到的也就是中等规模的时序数据的recurrent网络的训练,这套方法不怎
: 么调,效果也总比Adam好,就自个儿这么用着。
: 真的是纯粹个人兴趣的瞎折腾,Paper已经在arxiv上了,理论很清楚,就差不多了。什
: 么在一堆大数据上使劲调,和别人比performance等等,确实不是在下的兴趣所在,也
: 非在下的能力和精力所能及的工作。

avatar
l*m
78
LZ已经在IEEE TRANS发表了。投CS top conf太tmd累了,命中率还低

【在 w***g 的大作中提到】
: 楼主还是找个地方发表了吧,只放arxiv太可惜了。
: 调dataset确实很枯燥。最近快一个月了,我啥都没干光调dataset了。
: 而且也没调啥牛x dataset,就是cifar10, voc, flower这些。
: 而且accuracy也没调多好。就是把tensorflow理顺了一点。
: 坑太多了。
:
: copy

avatar
l*x
79
写paper都很累的。IEEE Trans那个是犹豫了好长时间,才痛下决心在2015年Halloween
到圣诞节间整理出来的,投出去后,被4个reviewer折腾到2017年。最后一个reviewer
缠着要cite他的几篇不相关的papers,没理他,还好editor最终决定接收了。
avatar
l*x
80
感觉这个版上做memoryless的网络比较多。对如有memory的神经网络,Adam这种有梯度
moving average的容易发散,dropout,batch normalization等tricks对dynamic的系
统的训练也没有太大用处。
avatar
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的系
: 统的训练也没有太大用处。

avatar
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的系
: 统的训练也没有太大用处。

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。