系列笔记 | 深度学习连载(4):优化技巧(上)

简介: 系列笔记 | 深度学习连载(4):优化技巧(上)

深度学习中我们总结出 5 大技巧:


image.png


1. Adaptive Learning Rate


我们先从Adaptive Learning Rate 谈起,我Gradient Decent 中我们已经讨论了:

AdaGrad :


image.png


紧着AdaGrad的步伐,我们进一步看:


RMSProp


神经网络训练的时候,Error Surface 很有可能非常复杂


image.png


RMSProp其实和AdaGrad 是一样的思路,但是具体求分母的时候,它考虑了历史gradient和新的g的权重a 。


image.pngimage.gif


Momentum


如何找到最优的网络参数呢?


optimize loss 的时候,很有可能就会遇到如下三大问题:


  • 慢 very slow
  • 局部最优 local minimal
  • 鞍点 saddle point


我们可以考虑在物理世界的场景进行映射:小球从山上滑落,在局部最低的时候,他的动量让它冲出局部。


image.png



我们复习一下梯度下降:Gradient的方向和Movement 的方向相反


image.png


当我们考虑运动的动量后:


  • 运动不在是基于梯度,而是基于以前的运动
  • Movement not just based on gradient, but previous movement.


image.png


其中 movement = laststep of movement - present gradient


image.png


Momentum 虽然不能保证走出“困境”,但是这是一个巨大的进步


image.png


Adam 算法


Adam 算法是结合 RMSProp 和 Momentum, 来寻找最优解。看起来比较复杂,

实际上懂 RMSProp 和 Momentum后,也就很快理解了。


image.png


2. New activation function


深度学习中我们总结出5大技巧:本节我们就从新的激活函数Relu谈起。


image.png


新的激活函数 new activation function


我们知道,激活函数在基于神经网络的深度学习中将线性变换,转换为非线性变换。是神经网络能够学到东西的重要一环。常用的激活函数有sigma, tanh 等。


从辛顿大神在2012年imagenet 中的CNN网络中引入relu,这个神奇的看上去是线性的激活函数进入我们的视野,以后扮演者非常重要的作用。


image.png


那为什么要引入relu,sigma、tanh 函数有什么缺点呢?


最主要的问题在于deep learning 无法真正deep:


image.png


如图所示,训练上8层之后,正确率急速下降。 这是为什么呢?


主要原因在于梯度消失Vanishing Gradient Problem


如图所示:传统的激活函数,数据变化后,输出的变化比输入小,而且根据ChainRule, 层数越深,梯度值相乘的结果越小,小到接近于0的时候,就无法学习了。


image.png


所以,我们引入Relu,他的特点是:


1. 计算快速(导数是1)

2. 生物学原理(貌似是大脑回路,不太了解)

3. linear piece 可以模拟任何函数(在以后的深度学习理论会讲)

4. 重点是:可以解决梯度消失的问题


image.png


Relu 可以简化神经网络:


image.png

image.png


虽然Relu看起来很好(有严格数学证明,以后会深入讲),但是在小于0的时候导数为0,对于参数学习是不利的:所以我们引入Relu的变种:leaky Relu, Parametirc Relu, 以后还会谈到 Selu

image.png

相关文章
|
21天前
|
机器学习/深度学习 数据采集 TensorFlow
使用Python实现智能食品加工优化的深度学习模型
使用Python实现智能食品加工优化的深度学习模型
124 59
|
2月前
|
机器学习/深度学习 算法 测试技术
深度学习环境搭建笔记(二):mmdetection-CPU安装和训练
本文是关于如何搭建深度学习环境,特别是使用mmdetection进行CPU安装和训练的详细指南。包括安装Anaconda、创建虚拟环境、安装PyTorch、mmcv-full和mmdetection,以及测试环境和训练目标检测模型的步骤。还提供了数据集准备、检查和网络训练的详细说明。
110 5
深度学习环境搭建笔记(二):mmdetection-CPU安装和训练
|
2月前
|
机器学习/深度学习 数据可视化 计算机视觉
目标检测笔记(五):详细介绍并实现可视化深度学习中每层特征层的网络训练情况
这篇文章详细介绍了如何通过可视化深度学习中每层特征层来理解网络的内部运作,并使用ResNet系列网络作为例子,展示了如何在训练过程中加入代码来绘制和保存特征图。
64 1
目标检测笔记(五):详细介绍并实现可视化深度学习中每层特征层的网络训练情况
|
2月前
|
机器学习/深度学习 数据采集 算法
深度学习之路径优化与车辆调度
基于深度学习的路径优化与车辆调度技术在交通管理、物流配送、公共交通、共享出行等领域具有重要应用价值。这些技术利用深度学习模型处理复杂的交通数据、实时信息以及用户需求,旨在提高运输效率、降低成本、减少拥堵并提升服务质量。
75 0
|
18天前
|
机器学习/深度学习 算法 数据可视化
使用Python实现深度学习模型:智能食品配送优化
使用Python实现深度学习模型:智能食品配送优化
36 2
|
20天前
|
机器学习/深度学习 算法
深度学习中的模型优化策略
【10月更文挑战第35天】在深度学习的海洋中,模型优化是那把能够引领我们抵达知识彼岸的桨。本文将从梯度下降法出发,逐步深入到动量、自适应学习率等高级技巧,最后通过一个实际代码案例,展示如何应用这些策略以提升模型性能。
|
2月前
|
机器学习/深度学习 并行计算 PyTorch
深度学习环境搭建笔记(一):detectron2安装过程
这篇博客文章详细介绍了在Windows环境下,使用CUDA 10.2配置深度学习环境,并安装detectron2库的步骤,包括安装Python、pycocotools、Torch和Torchvision、fvcore,以及对Detectron2和PyTorch代码的修改。
190 1
深度学习环境搭建笔记(一):detectron2安装过程
|
2月前
|
机器学习/深度学习 算法 PyTorch
深度学习笔记(十三):IOU、GIOU、DIOU、CIOU、EIOU、Focal EIOU、alpha IOU、SIOU、WIOU损失函数分析及Pytorch实现
这篇文章详细介绍了多种用于目标检测任务中的边界框回归损失函数,包括IOU、GIOU、DIOU、CIOU、EIOU、Focal EIOU、alpha IOU、SIOU和WIOU,并提供了它们的Pytorch实现代码。
206 1
深度学习笔记(十三):IOU、GIOU、DIOU、CIOU、EIOU、Focal EIOU、alpha IOU、SIOU、WIOU损失函数分析及Pytorch实现
|
7天前
|
机器学习/深度学习 数据采集 人工智能
探索人工智能中的深度学习模型优化策略
探索人工智能中的深度学习模型优化策略
|
2月前
|
机器学习/深度学习 自然语言处理 并行计算
深度学习笔记(十四):Transormer知识总结
关于深度学习中Transformer模型的知识总结,涵盖了Self-attention机制、QKV、Multi-head attention、位置编码和并行运算等关键概念,以及如何在PyTorch中实现Self-attention。
62 1