zoukankan      html  css  js  c++  java
  • 深度神经网络调参经验

    • σ()=σ()(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)
  • 相关阅读:
    linux 下安装web开发环境
    Nginx服务器之 Nginx的基本配置
    Nginx服务器之基础学习
    java反射 之 反射基础
    java IO流 之 其他流
    java IO流 之 字符流
    java IO流 之 字节流
    java 线程 Lock 锁使用Condition实现线程的等待(await)与通知(signal)
    java线程 公平锁 ReentrantLock(boolean fair)
    MarkdownPad 2破解
  • 原文地址:https://www.cnblogs.com/mtcnn/p/9421992.html
Copyright © 2011-2022 走看看