深度学习编程笔记:kears基础4:过拟合

一.数据集划分

一般的划分,训练集,验证集加测试集

深度学习编程笔记:kears基础4:过拟合
深度学习编程笔记:kears基础4:过拟合

每一次epoch都对训练集和验证集进行重新划分

深度学习编程笔记:kears基础4:过拟合

  • 下面的这个程序可以替代上面这个

  • 深度学习编程笔记:kears基础4:过拟合

  • db_train_val是总的数据集,validation_split=0.1表示以训练集0.9,验证集0.1的比例对数据集进行动态切割

二.正则化

深度学习编程笔记:kears基础4:过拟合

深度学习编程笔记:kears基础4:过拟合

  • 这里的θi代表的是各层的参数如w和b。

深度学习编程笔记:kears基础4:过拟合

  • 这里的0.001就是λ,是正则项的权值。

第二种添加正则化的方式

深度学习编程笔记:kears基础4:过拟合

  • 可以更灵活的对网络层里面的参数做调整。

三.动量和学习率

深度学习编程笔记:kears基础4:过拟合

  • 下面是几种优化器权值超参数
    深度学习编程笔记:kears基础4:过拟合

  • 学习率的动态调整,刚开始可以大一的,慢慢变小
    深度学习编程笔记:kears基础4:过拟合

四.early stopping, dropout

early stopping

深度学习编程笔记:kears基础4:过拟合
深度学习编程笔记:kears基础4:过拟合

dropout

深度学习编程笔记:kears基础4:过拟合

  • 代码中添加dropout,在层与层之间加个dropout层
    下面代码表示每根线有0.5的概率断掉
    深度学习编程笔记:kears基础4:过拟合

  • 在训练集和测试集中的不同,下面training表示当前状态是train还是test,不然会默认一样,dropout用于train。
    深度学习编程笔记:kears基础4:过拟合

stochastic gradient descet(随机都是不是胡乱随机,是符合一种分布)

深度学习编程笔记:kears基础4:过拟合

  • 在求loss对w求偏导时不再是对所有样本进行求偏导,而是对一个batch求偏导。
  • 把在数据集上的所以的梯度的均值变成一个在batch上所有梯度的均值