Andrew-Coursera-DL课程-笔记part2-3(Hyperparameter tuning,Batch Normalization)

本文探讨了超参数调优的最佳实践,包括如何选择合适的范围,并介绍了批量标准化(Batch Normalization)的作用及其在神经网络中的应用。文章还讨论了批量标准化在训练与测试阶段的不同处理方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Hyperparameter tuning

  1. Tuning process
    超参的选择顺序,红,黄,紫
  2. Using an appropriate scale to pick hyperparameters


    关于超参的选择,如果平均选择0-1之间,那么90%会选择0.1–1之间,10%会选择0-0.1之间,这不是我们想要的。 我们需要在[10^-5,10^-4,10^-3,10^-2,0.1,1]这个数量级范围内进行选择。
r=np.random.rand()%0.001*10000
beta = 10**(-r)
  1. Hyperparameters tuning in practice: Pandas vs Caviar

Batch Normalization

  1. Normalizing activations in a network
    对输入进行标准化处理,除了对input进行标准化处理外,中间每一层的z值也需要进行标准化处理,在激活函数之前标准化出来还是在激活函数之后进行处理一直存在争议,Andrew建议在activation之前进行。

  2. Fitting Batch Norm into a neural network

    在tf中可以直接使用tf.nn.batch_norm_with_global_normalization(t, m, v, beta, gamma, variance_epsilon, scale_after_normalization, name=None)

  3. Why does Batch Norm work?
    对输入进行标准化处理,除了对input进行标准化处理外,中间每一层的z值也需要进行标准化处理,在激活函数之前标准化出来还是在激活函数之后进行处理一直存在争议,Andrew建议在activation之前进行。为什么中间层也需要进行标准化处理,见下图

    因为中间层也是输入层,不仅是前面层的output,同样是后面层的input。

    批量标准化有一定的正则化效果
  4. Batch Norm at test time
    在训练过程中,我们每次都会将 batch_size 数目大小的训练样本 放入到CNN网络中进行训练,在BN层中自然可以得到计算输出所需要的 均值 和 方差 ;
    而在测试过程中,我们往往只会向CNN网络中输入一个测试样本,这是在BN层计算的均值和方差会均为 0,因为只有一个样本输入,因此BN层的输入也会出现很大的问题,从而导致CNN网络输出的错误。所以在测试过程中,我们需要借助训练集中所有样本在BN层归一化时每个维度上的均值和方差,当然为了计算方便,我们可以在 batch_num 次训练过程中,将每一次在BN层归一化时每个维度上的均值和方差进行相加,最后再进行求一次均值即可。

Multi-class classification

  1. Softmax Regression
  2. Training a softmax classifier

Introduction to programming frameworks

  1. Deep learning frameworks
  2. TensorFlow
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值