• 深度神经网络调参经验


    • σ()=σ()(1σ())tanh=1tanh2
    • batch_size:将数据集划分为不同的 batch,是为了限制 RAM 的使用,防止内存溢出;
      • batch_size = 256;
    • 层的神经网络,对于着 1 个层间权值矩阵;

    0. 简单参数

    • hyperparameters:
      • learning rate:一般从 0.01 开始设起,变化的幅度为 10 倍;

    1. 激活函数:做非线性映射

    • Sigmoid 和 tanh 激活函数的问题在于,在函数的最左侧和最右侧,斜率为 0;

      • 这样当 BP 时,复合函数的求导(连乘) ==> 导致梯度消失;
      • ReLU 收敛的速度要比 tanh 的速度快 6 倍,其收敛速度足够快;
    • CNN 尽量不要用 sigmoid(RNN 会用到 Sigmoid 和 tanh)

      • 首先试 ReLU,因为快,但需要小心;
      • 如果 ReLU 失效,使用 Leaky ReLU 或者 Maxout
    • 当然神经网络的输出层一般还是 Sigmoid 函数,因为其值接近于概率输出分布;

    2. 池化层的选择

    池化层(Pooling Layer),downsampling,压缩数据和参数的量,减少过拟合;

    • 图像识别一般使用 maxpooling
    • neural style 使用 average pooling

    3. 深度模型的结构

    • CNN
      - Input
      • [ [CONV -> ReLU]*N -> Pool ?]*M
        • ? 表示可能会接池化层
      • [FC -> ReLU] * K
      • FC

    4. 从框架的角度

    • caffe:
      • 每一层都可以定义 learning rate,因此可以分段调整学习率(learning rate)
  • 相关阅读:
    vue : 无法加载文件 C:UsersXXXAppDataRoaming pmvue.ps1,因为在此系统上禁止运行脚本
    js全屏和退出全屏浏览器
    js 如何保存代码段并执行以及动态加载script
    计算年龄,精确到年月日
    js闭包问题
    构造函数和继承方法
    js 箭头函数不适用的场景
    获取一组数据的最大值和最小值
    地图
    json传输
  • 原文地址:https://www.cnblogs.com/mtcnn/p/9421993.html
Copyright © 2020-2023  润新知