Vowpal Wabbit:神经网络的输入?

时间:2015-10-30 17:00:17

标签: neural-network vowpalwabbit

在机器学习工具vowpal wabbit(https://github.com/JohnLangford/vowpal_wabbit/)中,通常训练线性估计器y * = wx。但是,可以添加前向神经。

我的问题是:当我通过命令行选项“-nn x”使用神经网络时,线性估计器wx是否完全被神经网络取代了?

编辑:感谢Martin和arielf。所以不同的星座看起来很像:

enter image description here

带有“--nn”的模型的权重是通过反向传播估算的吗?

1 个答案:

答案 0 :(得分:4)

[编辑:更正后的答案:原来并不准确,谢谢马丁]

1层NN将输入要素输入NN层(所有可能的相互作用),然后将其输入到输出层。

为了按原样添加直通功能而不进行互动,您应该添加--inpass选项。

您可以查看使用--invert_hash创建的模型,以获得一个小例子的可读模型:

$ cat dat.vw
1 | a b
2 | a c

# default linear model, no NN:
$ vw --invert_hash dat.ih dat.vw
...

$ cat dat.ih
...
:0
Constant:116060:0.387717
a:92594:0.387717
b:163331:0.193097
c:185951:0.228943

# Now add --nn 2 (note double-dash in long option)
# to use a 1-layer NN with 2 nodes
$ vw --nn 2 --invert_hash dat-nn.ih dat.vw
...

$ cat dat-nn.ih
...
:0
Constant:202096:-0.270493
Constant[1]:202097:0.214776
a:108232:-0.270493
a[1]:108233:0.214776
b:129036:-0.084952
b[1]:129037:0.047303
c:219516:-0.196927
c[1]:219517:0.172029

看起来a[N]a对隐藏层NN节点N的贡献(从基数/索引零开始显然,独立a表示法有点混乱)。

当您添加--inpass时,您会获得每个功能的额外权重(索引[2]):

$ vw --nn 2 --inpass --invert_hash dat-nn-ip.ih dat.vw
...
$ cat dat-nn-ip.ih
...
:0
Constant:202096:-0.237726
Constant[1]:202097:0.180595
Constant[2]:202098:0.451169
a:108232:-0.237726
a[1]:108233:0.180595
a[2]:108234:0.451169
b:129036:-0.084570
b[1]:129037:0.047293
b[2]:129038:0.239481
c:219516:-0.167271
c[1]:219517:0.139488
c[2]:219518:0.256326