深度学习——模型调整
发布日期:2021-07-03 20:40:54 浏览次数:1 分类:技术文章

本文共 1858 字,大约阅读时间需要 6 分钟。

模型调整

文章目录

前言

在的3.3部分,给大家贴了一幅图:

在这里插入图片描述
这幅图,很好的说明了模型调整的一个大致的框架。那么,具体怎么调整,其实在这幅图的左侧已经说明了。下面,我们就分别说一下这几个东西。

一.学习率调整(Adaptive Learning Rate)

这个,其实我们已经有很详细的介绍,参考这篇文章:

二.提前停止(Early Stopping)

关于这个,一幅图就可以说明问题:

在这里插入图片描述
这里需要注意一下验证集,训练集,测试集的区别:

  • 训练集(training set): 用来训练模型
  • 验证集(validation set) : 用来做模型选择(这个,正好对应SKlearn当中的model_selection)因此,所谓的验证集,其实是你从测试集当中切出来的。
  • 测试集(test set) : 用来评估所选出来的模型的性能

三.正则化(Regularization)

这个,早些的时候也说过,比如我们说的Lasso回归,Ridge回归,Elastic-Net等(见)第三部分。以及借鉴正则化思想的AdamW(见6.3部分)等

四.构建Activiation function

之所以要这么做,跟一个问题有关:梯度消失。我们还是以老生常谈的逻辑回归为例:

在这里插入图片描述
在神经网络当中,我们是按照的方式,进行梯度下降。熟悉Sigmoid函数的,应该都知道一个事情。Sigmoid函数,越往两边,越平缓。越平缓,也就意味着其导数越来越接近0,导数一旦接近0,那么就“走不动”了。神经网络当中,随着深度的增加,往往就会导致属性值越来越往两边走(分类趋于准确),但同时也意味着,sigmoid函数的导数越发的趋近于0,整体模型的收敛速度越来越慢,甚至导致梯度消失。

如何解决这个问题呢?最容易想到的就是:加权。而加的这个“权”就是Activiation function(甚至可以放弃使用Sigmoid,直接用Activiation function)

那么,经过不断探索和总结,人们发现:训练深度学习网络尽量使用zero-centered数据 (可以经过数据预处理实现) 和zero-centered输出。

在这种前提下,最简单的Activiation Function就是ReLu函数,这个函数如下所示:

在这里插入图片描述

ReLu函数形式上简单,计算也容易。不过,这个函数在自变量小于0的时候,恒为0,也就意味着,如果一个模型当中,当算出来的线性方程z小于0的时候,ReLU是不起任何作用的。如果一个模型当中,碰巧就这么邪门,那么有它没它都一样。

于是,又有人提出了许多“变种”,比如:tanh函数,这个函数如下所示:

在这里插入图片描述
不过,这个图像是不是和Sigmoid函数高度相似呢?因此Sigmoid函数的问题,它也一样会出现。

除了上述两个函数,基于ReLu的变种,还有Leaky ReLu,Parametric ReLU等

在这里插入图片描述
总的来说,Activiation function当中,建议使用ReLU函数,但是要注意初始化和learning rate的设置;可以尝试使用Leaky ReLU或ELU函数;不建议使用tanh。必要的时候,甚至可以放弃Sigmoid

五.DropOut

英语好的,应该都知道Drop out这个词有“辍学,丢弃”的意思,DropOut的一个核心思想就是:丢弃。

之所以要丢弃,原因在于:过拟合。DropOut就是为了解决过拟合,尤其是对于那种模型参数太多,但训练集数据有不够的情况。

我们知道,在神经网络当中,没经过一个隐藏层(Hidden Layer),就会产生新的z值。而每一层的隐藏层都有若干个神经元。DropOut采用的方法是:每经过一个Layer,按照一定的概率p,让某些神经元不进行运算(也就是“丢弃”了这些神经元),如下所示(右侧为DropOut之后的结果):

在这里插入图片描述
曾经看到过一篇文章,拿识别杨幂来举例子,文章链接如下:

杨幂的照片是这样子:

在这里插入图片描述

我构建的神经网络可以是这样子:
在这里插入图片描述
然后,我进行四次DropOut,如下图所示:
在这里插入图片描述
认人主要是看脸,最后这个图,把脸给drop out,于是训练的时候,很容易出现过拟合。

如此一组合,其实不就相当于如下所示嘛:

在这里插入图片描述
这就相当于,明明是一个模型,但是却起到了四个模型的效果。虽然最后一个模型过拟合了,但是有另外三个制约,过拟合的风险大大缩小。

这种方法颇有一种这样的感觉:练跑步的时候,我平时训练的时候把双脚绑上沙袋,但是在体育考试测试的时候,我把沙袋给卸掉,这样我就会跑的非常轻松。

转载地址:https://blog.csdn.net/johnny_love_1968/article/details/117619480 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:深度学习——卷积神经网络(CNN)简介
下一篇:深度学习——反向传播(Backpropagation)

发表评论

最新留言

哈哈,博客排版真的漂亮呢~
[***.90.31.176]2024年04月12日 15时45分37秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章