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

【j2开奖】教程 | 没有博士学位,照样玩转TensorFlow深度学习(7)

时间:2017-01-24 21:36来源:668论坛 作者:本港台直播 点击:
这里是一个指数级衰减的方程:lr = lrmin+(lrmax-lrmin)*exp(-i/2000) 答案可以在这个文件里找到:mnist_2.1_five_layers_relu_lrdecay.py。如果你被卡住了可以用它。 10、实

这里是一个指数级衰减的方程:lr = lrmin+(lrmax-lrmin)*exp(-i/2000) 答案可以在这个文件里找到:mnist_2.1_five_layers_relu_lrdecay.py。如果你被卡住了可以用它。

【j2开奖】教程 | 没有博士学位,照样玩转TensorFlow深度学习

  10、实验:dropout、过拟合

【j2开奖】教程 | 没有博士学位,照样玩转TensorFlow深度学习

你可能已经注意到在数千次迭代之后,测试和训练数据的交叉熵曲线开始不相连。学习算法只是在训练数据上做工作并相应地优化训练的交叉熵。它再也看不到测试数据了,所以这一点也不奇怪:过了一会儿它的工作不再对测试交叉熵产生任何影响,交叉熵停止了下降,有时甚至反弹回来。

  

【j2开奖】教程 | 没有博士学位,照样玩转TensorFlow深度学习

它不会立刻影响你模型对于真实世界的识别能力,但是它会使你运行的众多迭代毫无用处,而且这基本上是一个信号——告诉我们训练已经不能再为模型提供进一步改进了。这种无法连接通常会被标明「过拟合(overfitting)」,而且当你看到这个的时候,你可以尝试采用一种规范化(regularization)技术,称之为「dropout」。

  

【j2开奖】教程 | 没有博士学位,照样玩转TensorFlow深度学习

在 dropout 里,在每一次训练迭代的时候,你可以从网络中随机地放弃一些神经元。你可以选择一个使神经元继续保留的概率 pkeep,通常是 50% 到 75% 之间,然后在每一次训练的迭代时,随机地把一些神经元连同它们的权重和偏置一起去掉。在一次迭代里,不同的神经元可以被一起去掉(而且你也同样需要等比例地促进剩余神经元的输出,以确保下一层的激活不会移动)。当测试你神经网络性能的时候,你再把所有的神经元都装回来 (pkeep=1)。

TensorFlow 提供一个 dropout 函数可以用在一层神经网络的输出上。它随机地清零一些输出并且把剩下的提升 1/pkeep。这里是如何把它用在一个两层神经网络上的例子。

  # feed in 1 when testing, 0.75 when training

  pkeep = tf.placeholder(tf.float32)

  Y1 = tf.nn.relu(tf.matmul(X, W1) + B1)

  Y1d = tf.nn.dropout(Y1, pkeep)

  Y = tf.nn.softmax(tf.matmul(Y1d, W2) + B2)

  你现在可以在网络中每个中间层以后插入 dropout。如果你没时间深入阅读的话,这是本项目里的可选步骤。

  该解决方案可以在 mnist_2.2_five_layers_relu_lrdecay_dropout.py:

  (https://github.com/martin-gorner/tensorflow-mnist-tutorial/blob/master/mnist_2.2_five_layers_relu_lrdecay_dropout.py)

  里找到。如果你被难住了,可以用它。

【j2开奖】教程 | 没有博士学位,照样玩转TensorFlow深度学习

你会看到测试损失已经被搞回来了,已经在可控范围内了,不过至少在这个例子中噪声重新出现了(如果你知道 dropout 的工作原理的话,这一点也不奇怪)。测试的准确度依然没变,这倒是有点小失望。这个「过拟合」一定还有其它原因。在我们继续进行下一步之前,我们先扼要重述一下我们到目前为止用过的所有工具:

【j2开奖】教程 | 没有博士学位,照样玩转TensorFlow深度学习

无论我们做什么,我们看上去都不可能很显著地解决 98% 的障碍,而且我们的损失曲线依然显示「过拟合」无法连接。什么是真正的「过拟合」?过拟合发生在该神经网络学得「不好」的时候,在这种情况下该神经网络对于训练样本做得很好,对真实场景却并不是很好。有一些像 dropout 一样的规范化技术能够迫使它学习得更好,不过过拟合还有更深层的原因。

  

【j2开奖】教程 | 没有博士学位,照样玩转TensorFlow深度学习

基本的过拟合发生在一个神经网络针对手头的问题有太多的自由度的时候。想象一下我们有如此多的神经元以至于所组成的网络可以存储我们所有的训练图像并依靠特征匹配来识别它们。它会在真实世界的数据里迷失。一个神经网络必须有某种程度上的约束以使它能够归纳推理它在学习中所学到的东西。

如果你只有很少的训练数据,甚至一个很小的网络都能够用心学习它。一般来说,你总是需要很多数据来训练神经网络。

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