首页 > 其他分享 >深度学习—神经网络优化

深度学习—神经网络优化

时间:2023-05-09 18:23:43浏览次数:32  
标签:初始化 函数 梯度 学习 神经网络 深度 激活 优化 神经元

激活函数

  

 

 

   

  作用:增加非线性因素

  Relu激活函数,含GELU

  

  softmax激活函数:优势和劣势都无限扩大,每个都是自然数次方

  

  sofrmax和sigmoid的区别:

    sigmoid激活函数:

      每个神经元激活时只看自己激活前的值,不满足各个神经元激活后的输出值相加等于1的性质,个神经元之间是独立的。

    softmax激活函数:

      每个神经元激活时要看其它同层神经元的值,分别指数次幂后再归一化,满足各个神经元激活后的输出值相加等于1的性质。个神经元之间是相互依赖的。

  MIsh激活函数:

  

  常用激活函数汇总:

  

  激活函数的选择策略:

    没有适用于所有情况的激活函数。综合考虑计算偏导值的难度、训练速度、平滑性、是否满足归一化;

    1、隐层:默认情况下,隐层的激活函数,广泛使用ReLU(或其变种的Leaky ReLU,PReLU等),或Mish;

    2、输出层:默认情况下,对分类任务,广泛使用softmax作为输出层的激活函数(得到的每一类输出的概率,这些概率的和相加为1)

    

  激活函数和损失函数:

    激活函数则用于引入非线性因素,增强模型的表达能力;而损失函数用于衡量模型预测结果与真实结果之间的差距。

    一般来说是先激活在计算损失。

 

权值初始化

  神经网络开始前,指定权值,在神经网络训练中不参与

  1、全零初始化和随机初始化(Zero Initialization and Random Initialization)

    全零初始化:所有中间层节点对应的参数值都置为零。第一次BP后,更新后的网络参数将相同。

    随机初始化:所有中间层节点对应的参数值都置为一个随机生成的比较小的值。

  2、针对Sigmoid等激活函数的Xavier初始化方法

    随机生成一个随机数后,乘以上述值。适用于Sigmoid()、Tanh()、Softsign()等激活函数。

  3、针对ReLU激活函数的He初始化方法   

  4、适用Pretrained模型中的参数

    例如再ImageNet数据集上预训练的ResNet50模型。

  5、Zer0初始化

    仅仅使用0和1进行初始化。

  Xavier和He权值初始化对比

    

 

 

 

批归一化(Batch Normalization)

    

    

  比较均匀,减少过大或过小的值,使网络更平稳,随着训练的进行不断地修改对应的神经元的值,即持续发生在后续迭代的训练中。

  BN优缺点:

    优点:

      1、BN允许在训练过程中使用更大的学习率,超参数的寻找更加容易,也更健壮;

      2、BN能够提升模型的预测准确率,减少学习模型过拟合风险;

      3、BN能够加快梯度更新过程的收敛度,从而加快了训练速度;

      4、BN能够减少对权值初始化的依赖(如He初始化)。

    缺点:

      BatchNorm对批大小比较敏感,对于较小的mini-batch,效果不好。

  BN变种:

    BatchNorm:分别计算所有样本在某个通道上的每个神经元上的均值及方差,适用于CNN;

    InstanceNorm:当前样本在一个通道上的均值和归一化,与通道无关,只与当前样本有关;

    以上属于同通道神经元跨样本。

 

    LayerNorm:一个样本在所有通道上神经元的均值和归一化,跟样本数量无关,使用于批小的情况下,其与样本数量无关,对RNN作用明显;

    GroupNorm:分组,每个组中等同于LayerNorm;

    以上属于跨通道神经元同样本。

    

 

梯度更新策略与超参优化

    1)梯度下降修正,每个参数梯度下降的值

    2) 对超参数合理调整,主要是学习率最终目标:以加速训练过程,取得更好的模型准确度

 

  1、梯度下降(Gradient Descent)的目的

  

 

  2、梯度下降的适用场景 

  

 

  3、缺点       

  

 

  4、不同变种类型    

   

 

  5、最基本的优化算法(SGD)和Momentum梯度下降法

    SDW累积的梯度的偏导

    SDB累积的权重的偏导   

  

    一般是W=W-lamda*Sdw 梯度的权重

       b=b-lamda*Sdb  偏置的权重

 

  6、自适应学习率

    需要给一个初始学习率,随着训练自主更新

    

      Adagrad自适应调整学习率

        1)需要预先设置一个全局学习率λ;

        2)增加一个二阶动量Sdw,以实现自适应学习率。二阶动量Sdw是迄今为止所有梯度值的平方和

                            

        3)上一轮迭代的学习率为λ,而本轮迭代中的学习率为

                            

      AdamDelta是Adagrad的改进,不再另外累积所有的历史梯度,而只计算一定时间段的梯度的平方和。

 

      RMSProp

      以上三种过去梯度的平方进行累加

 

      

 

      Adam

        其在某种程度上是Momentum(一阶)和RMSProp(二阶)的结合,自动的更新权值和学习率

      

 

   7、优化器总结

   

 

   8、默认优化器的选择 

   

 

标签:初始化,函数,梯度,学习,神经网络,深度,激活,优化,神经元
From: https://www.cnblogs.com/jevonChao/p/17271663.html

相关文章

  • 深度学习—损失函数专题
    损失函数概念1、对于监督学习:估量神经网络模型的预测值和真实值的不一致的程度,衡量的是:在神经网络训练阶段,某个或若干个输入样本,在输出层上的预测值和真实值之间不一致的程度。2、广义上(无监督):衡量两个特征向量之间的差异程度/不一致程度/距离3、作用:定义最终的损......
  • 俄大神 lopatkin Windows 精简优化系统 - 工具软件
          昨天有个网友邮件我,说是想找个Tiny7Rev2的ISO操作系统文件,但是我找了下,以前的那些文件有些已经删除了,所以就在网上搜到了俄大神lopatkinWindows精简优化系统,特此放到网盘上让大家能够下载。      链接:https://pan.baidu.com/s/1w6rsaLhNGI35tT6WX46ijA......
  • EasyPlayer播放H.265视频,播放器快照时间显示的问题优化
    我们的EasyPlayer流媒体播放器可支持H.264与H.265,能支持RTSP、RTMP、HLS、FLV、WebRTC等格式的视频流播放。TSINGSEE的视频平台均集成了EasyPlayer的播放器,实现了无插件网页直播,性能稳定。有用户反馈,EasyPlayer在播放H.265视频的通道时,播放器快照时间显示的是时间戳,并不是日期。......
  • MySQL百万数据深度分页优化思路分析
    业务场景一般在项目开发中会有很多的统计数据需要进行上报分析,一般在分析过后会在后台展示出来给运营和产品进行分页查看,最常见的一种就是根据日期进行筛选。这种统计数据随着时间的推移数据量会慢慢的变大,达到百万、千万条数据只是时间问题。瓶颈再现创建了一张user表,给create......
  • 【pytorch】土堆pytorch教程学习(六)神经网络的基本骨架——nn.module的使用
    torch.nn是pytorch的一个神经网络库(nn是neuralnetwork的简称)。Containerstorch.nn构建神经网络的模型容器(Containers,骨架)有以下六个:ModuleSequentialModuleListModuleDictParameterListParameterDict本博文将介绍神经网络的基本骨架——nn.module的使用。......
  • opencv图片内存占用过大优化
    //读取图片文件到内存std::ifstreamfile(img.toStdString(),std::ios::binary);std::vector<char>buffer((std::istreambuf_iterator<char>(file)),std::istreambuf_iterator<char>());cv::Matimage=cv::imdecode(cv::Ma......
  • Linux操作系统优化
    第18章Linux操作系统优化目录第18章Linux操作系统优化1.更改Yum源和添加epel源2.关闭SELinux3.关闭防火墙(Firewalld)4.关闭NetworkManager5.同步系统时间6.加大文件描述7.别名及环境变量优化8.内核优化9.配置SSH远程管理服务10.修改主机名和IP脚本11.安装常用软件12.......
  • 深度学习基础概念
    模型假设和参数是什么?模型假设和参数是什么:用一个函数关系去表示的一只样本的数据的后面存在的规律。参数的是用于表现的规律的特征参数。评价函数(损失)是什么?评价函数(损失):是与评价预测与目标的之间的一种关系函数。衡量模型预测值和真实值差距的评价函数也被称为损失函数(损......
  • QuerySet对象与查询优化
    QuerySet对象与查询优化一、QuerySet对象Django的ORM中存在查询集的概念。查询集,也称查询结果集,即QuerySet,表示从数据库中获取的对象集合。当调用如下过滤器方法时,Django会返回查询集(与列表类似,但不是简单的列表):all():返回所有数据。filter():返回满足条件的数据。exclude(......
  • 几个常用切比较流行的WpordPress缓存插件,提高用户体验,以及优化SEO。
    W3TotalCache:这是一个免费的插件,可以通过缓存页面、数据库查询和对象来提高网站的速度,减少加载时间。WPSuperCache:这也是一个免费的插件,其主要功能是在服务器端生成静态HTML文件,以减少动态页面的生成次数。WPFastestCache:这个插件可以缓存页面、最小化HTML和CSS、延......