最近几天刚接触了深度学习方法的3D人脸识别,整个人懵懵的,好多名词初次见面,没有专业的课本定义,所以,也是从各位博主的总结中学习,一点点积累,方便日后查看。也就不拐弯抹角了,单刀直入主题。
epochs:当一个完整的数据集通过了神经网络一次并且返回了一次,这个过程称为一个 epoch。
然而,当一个 epoch 对于计算机而言太庞大的时候,就需要把它分成多个小块。
为什么要使用多于一个 epoch?
在神经网络中传递完整的数据集一次是不够的,而且我们需要将完整的数据集在同样的神经网络中传递多次。但是请记住,我们使用的是有限的数据集,并且我们使用一个迭代过程即梯度下降。因此仅仅更新权重一次或者说使用一个 epoch 是不够的。
batches:在不能将数据一次性通过神经网络的时候,就需要将数据集分成几个 batch。(类比一下mini-batch gradient descent)
dropout:网络结构中会有dropout layer,可以把dropout理解为 模型平均,或者可以这么理解,这n个网络,它们权值共享,并且具有相同的网络层数(这样可以大大减小计算量)。我们每次dropout后,网络模型都可以看成是整个网络的子网络。(需要注意的是如果采用dropout,训练时间大大延长,但是对测试阶段没影响)。
就目前所知,它可以防止过拟合,提高网络的泛化能力。
dropout就是下面的的过程欸,好吧,我们一起学习~~~