data augmentation and dropout

来源:互联网 发布:java做爬虫 编辑:程序博客网 时间:2024/06/09 22:33

在深度学习方法中,更多的训练数据,意味着可以用更深的网络,训练出更好的模型。
方法:
(1)将原始图片旋转一个小角度

(2)添加随机噪声

(3)一些有弹性的畸变(elastic distortions)

(4)截取(crop)原始图片的一部分。

Dropout则是通过修改神经网络本身来实现的,它是在训练网络时用的一种技巧(trike)。它的流程如下

这里写图片描述

假设我们要训练上图这个网络,在训练开始时,我们随机地“删除”一半的隐层单元,视它们为不存在,得到如下的网络:

这里写图片描述

保持输入输出层不变,按照BP算法更新上图神经网络中的权值

以上就是一次迭代的过程,在第二次迭代中,也用同样的方法,只不过这次删除的那一半隐层单元,跟上一次删除掉的肯定是不一样的,因为我们每一次迭代都是“随机”地去删掉一半。第三次、第四次……都是这样,直至训练结束。

以上就是Dropout,它为什么有助于防止过拟合呢?可以简单地这样解释,运用了dropout的训练过程,相当于训练了很多个只有半数隐层单元的神经网络(后面简称为“半数网络”),每一个这样的半数网络,都可以给出一个分类结果,这些结果有的是正确的,有的是错误的。随着训练的进行,大部分半数网络都可以给出正确的分类结果,那么少数的错误分类结果就不会对最终结果造成大的影响。

原创粉丝点击