“ 在学习CNN的时候,我读到Dropout具有正则化的作用时,不明白正则化的意思,查看了很多资料,写的都很深奥,这里我用简单的语言来记录一下。。”
01
—
正则化定义
百度百科的定义写的非常的学术化,我用我的理解来叙述一遍:通俗的意义来讲就是我们想要通过一条光滑曲线(图中绿色的曲线)来最大程度的拟合另外一条歪七扭八的曲线(图中的蓝色曲线),这样我们就可以将这条歪七扭八存在诸多奇点的曲线通过方程的形式表达出来,这种做法就叫做正则化。
这样做后,我们通过曲线来预测或者表示原图像的时候,结果势必就会有误差,如果没有误差会是什么呢?那就是说我们找了一条和图中蓝色曲线一模一样的线来表示蓝色的线,也就是说我们把一些有噪音的点也表示出来了,这种行为放在卷积中就叫做 过拟合 ,而在卷积中,相比较于过拟合曲线,我们更希望有一条正则化的曲线。换句话说,正则化的作用就是为了防止过拟合。那么Dropout是怎么实现过拟合的呢?
02
—
Dropout怎么防止过拟合
在第一眼看到Dropout的时候,我本来认为只是简单地舍弃了一些神经元而已,经过研究,我发现其中的原理并没有我想的那么简单。
我们从图中看到,Dropout在每一层中通过概率来随机的舍弃一些神经元,注意!!!这些舍弃的神经元只是在这一次训练中被舍弃,而不是永久的被舍弃,也就是说,等到下一波数据到来的时候,其中一些神经元依然会参与训练,最后整个网络被训练完成后,图中所有的神经元都是被训练过的!那这么做有什么好处呢?
在左图的标准神经网络中,这只是一个神经网络在参与训练,而且容易发生过拟合。但是在右图中,每一次训练的时候,都是不同的神经元在参与训练,也就是说, 右图不仅仅是一个神经网络!!!而是具有数十个神经网络在一起训练!!!这就是Dropout的伟大之处! 这种方法就相当于,原来你是自己出谋划策,现在多了数十个军师为你出谋划策,每一次都只听取一个军师的意见,这种方法当然可以防止过拟合,而CNN的原理就是拟合一条曲线来表示每个输入,在我们解决了过拟合问题后,我们就认为Dropout具有正则化的作用!
全部0条评论
快来发表一下你的评论吧 !