1 调参
今天我们以著名的Tensorflow游乐场
为例,体验“调参侠”的“快乐”!
参考链接:Tensflow游乐场
码住,我们先了解一下网站是干嘛的:
我们先选择第三个数据集,调参模拟训练一下:
训练结果:
我们再试一个圈圈数据集:
我们思考,它需要几个神经元呢?
我们定性分析一下,还是看图说话,一个神经元是一条直线,三个神经元形成三条直线刚好形成闭合的形状。
如此看来,我们需要三个神经元作为一层隐藏层,然后把三个神经元的计算结果通过一个输出层神经元汇合,通过sigmoid函数
修饰一下,就可以了。
果然,最后的输出结果:等高线
完美的分割了这两类豆豆
我们再来试试第二个数据集:
这个数据集其实是感知器最初发展阶段,困扰研究人员很多年的一个问题:
但现在我们知道只需要三个神经元即可分割:
我们再来看最后一个蚊香
一样的螺旋形数据集:
很明显,只有一层三个神经元的隐藏层的神经网络,在这种复杂的数据集上表现十分疲软,那我们就用更深、神经元数量也更多的网络来尝试一下。
我们增加到三层隐藏层,每层有四个神经元:
然而训练结果,动也不动,这是因为我们的老伙计“sigmoid”激活函数的问题。
我们之前说过之所以选择sigmoid函数作为激活函数,那是因为相比于阶跃函数处处可导,且导数处处不为0,这样我们反向传播算法,梯度下降求导很是方便
但我们发现一旦原离中心点,虽然仍旧可导,导数不为0,但是导数却及其的小,这样梯度下降就很难进行。
所以我们一般使用relu算法
: