本港台开奖现场直播 j2开奖直播报码现场
当前位置: 新闻频道 > IT新闻 >

数据不够大时,要不要玩深度学习?正反方撕起(2)

时间:2017-06-11 15:37来源:天下彩论坛 作者:118开奖 点击:
我们尽我们最大的努力重写了原贴中的Leekasso和MLP代码的python版本。你可以在这里获得源码。下面就是每个模型在所抽取的样本上的准确率。通过最下面的

我们尽我们最大的努力重写了原贴中的Leekasso和MLP代码的python版本。你可以在这里获得源码。下面就是每个模型在所抽取的样本上的准确率。通过最下面的放大图,你能够很容易的知道哪个模型表现最好。

数据不够大时,<a href=atv,要不要玩深度学习?正反方撕起" src="http://img.mp.itc.cn/upload/20170611/ed345f05ab6e481d99744052517104e9_th.jpg" />

是不是很惊奇?这看上去和原帖的分析完全不同!原帖中所分析的MLP,在我们的试验中,依然是在少量数据集中表现很差。但是我所设计的神经网络在所使用的样本中,却有很好的表现。那么这就引出了一个问题……

到底在我们的实验中发生了什么?

众所周知,深度学习模型的训练过程是一个精细活,知道如何“照顾”我们的网络是一个很重要的技能。过多的参数会导致某些特定的问题(尤其是涉及到SGD),倘若没有选择好的话,那么将会导致很差的性能,以及误导性。当你在进行深度学习相关工作的时候,你需要谨记下面的话:

模型的细节很重要,你需要当心黑箱调用那些任何看起来都像是deeplearning()的东西。

下面是我对原帖中问题的一些猜想:

激励函数很重要,使用tanh作为激励函数的神经网络很难训练。这就是为什么当我们使用Relu函数作为我们的激活函数,会有很大进步的原因了。

确保随机梯度下降能够收敛。在原始实验对照中,作者仅仅训练了20轮,这样的话,可能是训练的次数不够。仅仅有10个样本,仅仅训练了20轮,那么结果是我们仅仅进行了200次的梯度更新。然而要想完整的训练一遍我们所有的数据,我们需要6000次的梯度更新。进行上百轮、上千轮训练是很正常的。我们大概会有1000000梯度更新。假若你仅仅打算进行200次的梯度更新,那么你可能需要很大的学习速率,否则的话,你的模型不太可能会收敛。h2o.deeplearning()默认的学习速率是0.005。假若你仅仅是更新几次的话,这个学习速率就太小了。我们使用训练200轮的模型,我们会看到在前50轮,模型在样本上的准确率会有很大的波动。所以,我觉得模型没有收敛在很大程度上能够解释原贴中所观察到的差异。

需要一直检查参数的默认值。Keras是一个很好的工具。因为Keras会将参数设置成它觉得代表当前训练的最好的默认值。但是,你仍然需要确保你所选择的参数的值匹配你的问题。

不同的框架会导致不同的结果。我曾尝试回到原始的R代码,以期望得到最后的结果。然而,我无法从h2o.deeplearning()函数中得到好的结果。我觉得原因可能涉及到优化过程。它所使用的可能是Elastic Averaging SGD,这种方法会将计算安排到多个节点上,这样就会加速训练速度。我不清楚在仅有少量数据的情况下,这种方法是否会失效。我只是有这个猜测而已。对于h2o我并没有太多的使用经验,其他人也许知道原因。

幸运的是,Rstudio的好人们刚刚发布了针对于Keras的R的接口。因此我可以在R的基础上,创建我的python代码了。我们之前使用的MLP类似于这个样子,现在我们用R语言将其实现。

数据不够大时,要不要玩深度学习?正反方撕起

我将这个代码改成了Jeff的R代码,并重新生成了原始的图形。我同样稍微修改了下Leekasso的代码。我发现原先的代码使用的是lm() (线性回归),我认为不是很好。所以我改成了glm()(逻辑回归)。新的图形如下图所示:

数据不够大时,要不要玩深度学习?正反方撕起

深度学习胜利了!类似的现象可能表明python与R版本的Leekasso算法不同之处。Python版本的逻辑回归使用的是liblinear来实现,我觉得这样做的话,会比R默认的实现方式更加的健壮,有更强的鲁棒性。因为Leekasso选择的变量是高度共线的,这样做也许会更好。

这个问题意义非凡:我重新运行了Leekasso,但是仅使用最高的预测值,最终的结果和完整的Leekasso的结果一致。事实上,我认为我可以做出一个不需要数据的分类器,这个分类器会有很高的准确率。我们仅仅需要选择中心的像素,假若它是黑色的话,我们就可以认为它是1,否则的话就预测是0。正如David Robinson所指出的:

数据不够大时,要不要玩深度学习?正反方撕起

(责任编辑:本港台直播)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
栏目列表
推荐内容