超参数 调优、批量归一化、编程框架

2018-10-13  本文已影响0人  Simple_isBeauty

Hyperparameter tuning

  1. Tuning process


    image.png

    对于大多数学习算法应用 学习速率α 是需要调优的超参数中最重要的一个 没有之一 除了α 我接下来会调整的一些超参数 也许是动量项 0.9是一个不错的默认值 还会调整Mini-Batch的大小 来保证最优化算法的运行效率 我还经常调试隐藏单元数量 就是那些用橙色圈起来的参数 这三个是我认为重要性仅次于 学习速率α的超参数 在调整好这些超参数后 接下来是重要性排在第三的超参数 网络层数有时候对结果起到重要作用 学习率衰减有时也一样 当使用Adam优化算法时 几乎不调节β1 β2和epsilon 我几乎都是用0.9 0.999和10^(-8)

image.png
  1. Using an appropriate scale to pick hyperparameters
    超参数值域的随机抽样 能让你更有效地搜索超参数空间 但实际上,随机抽样并不意味着在有效值范围内的 均匀随机抽样(sampleing uniformly at random) 相反,更重要的是选取适当的尺度(scale) 用以研究这些超参数


    image.png

那么你要做的就是在a~b的范围内均匀随机取样 这个例子中的范围为-4~0 然后为alpha赋值为 10^r,r为随机取样的基于10的对数 整理一下,要基于对数尺度取样,首先取得下限值 取其对数得到a 再取上限值,取其对数得到b 然后在对数尺度上在10a~10b范围内取样 即在a~b的范围内均匀随机的取r值 最后得到超参数值为10^r 这就是对数尺度上取样方法的实现

  1. Hyperparameters tuning in practice: Pandas vs. Caviar
image.png

将它们分别称之为熊猫模式和鱼子酱模式 那么如何挑选适合你的模式呢? 这取决于有足够de计算资源来并行训练很多模型

Batch Normalization

在深度学习不断兴起的过程中 最重要的创新之一是一种 叫批量归一化 (Batch Normalization) 的算法 它由Sergey Ioffe 和 Christian Szegedy提出 可以让你的超参搜索变得很简单 让你的神经网络变得更加具有鲁棒性 可以让你的神经网络对于超参数的选择上不再那么敏感 而且可以让你更容易地训练非常深的网络 让我们来看看批量归一化是如何工作的

  1. Normalizing activations in a network


    image.png
  1. Fitting Batch Norm into a neural network


    image.png

注意z是由下面的步骤计算得出的 也就是zL=wL * a(L-1)+bL但是BN算法所做的 就是使用mini-batch并且归一化zL 来满足均值为0以及标准方差 然后通过参数Beta和Gamma来重新调整 这意味着 不管bL的值为多少 实际上都要被减去 因为经过BN这一步 我们将计算zL的均值并将其减去 所以在mini-batch中对所有例子加上一个常量 并不会改变什么 因为无论我们加上什么常量 它都会被 减均值 这一步给去除 所以如果你使用BN算法 你可以忽略该参数b 或者可以认为它永远等于0 所以参数就变为了 zL=wL * a(L-1) 然后我们计算归一化zL 并且计算(带波浪号的)z等于Gamma乘以zL加上Beta 我们最终使用该参数Beta L来决定 (带波浪号的)zL的均值 它将在下一层中得到转发

image.png image.png
  1. Why does Batch Norm work?
image.png
  1. Batch Norm at test tiem
    如果你只有一个实例 那么计算这一个实例的平均值和标准差显然是不合理的 所以实际上该如何做呢? 以便于我们在测试时使用我们的神经网络 我们需要一种单独的方式来估算mu和sigma平方 在批标准化的通常实现中 我们是通过 指数加权平均数来估算的
image.png

但是在测试时 我们可能会需要处理单个测试实例 那么 处理的方式就是通过训练集来估算mu和sigma平方 我们有很多方式来做估算 理论上 我们可以用我们最后的网络运行整个训练集 来得到mu和sigma平方 但是实际上 人们通常会实现某种指数加权平均 来记住在训练时见到的mu和sigma平方的值 然后用这个指数加权平均数 有时也被称作移动均值 来得到mu和sigma平方的粗略的估算 然后我们用这些mu和sigma平方的估算值 在测试时进行比例缩放来获取隐藏神经元的Z值

Multi-class classification

  1. Softmax Regression


    image.png
image.png
  1. Training a software classifier
image.png

intrduction to programming frameworks

  1. Deep learning frameworks


    image.png
  2. Tensorflow

image.png
上一篇下一篇

猜你喜欢

热点阅读