Hyperparameter tuning
- Tuning process
超参的选择顺序,红,黄,紫
- 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)
- Hyperparameters tuning in practice: Pandas vs Caviar
Batch Normalization
Normalizing activations in a network
对输入进行标准化处理,除了对input进行标准化处理外,中间每一层的z值也需要进行标准化处理,在激活函数之前标准化出来还是在激活函数之后进行处理一直存在争议,Andrew建议在activation之前进行。
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)- Why does Batch Norm work?
对输入进行标准化处理,除了对input进行标准化处理外,中间每一层的z值也需要进行标准化处理,在激活函数之前标准化出来还是在激活函数之后进行处理一直存在争议,Andrew建议在activation之前进行。为什么中间层也需要进行标准化处理,见下图
因为中间层也是输入层,不仅是前面层的output,同样是后面层的input。
批量标准化有一定的正则化效果 - Batch Norm at test time
在训练过程中,我们每次都会将 batch_size 数目大小的训练样本 放入到CNN网络中进行训练,在BN层中自然可以得到计算输出所需要的 均值 和 方差 ;
而在测试过程中,我们往往只会向CNN网络中输入一个测试样本,这是在BN层计算的均值和方差会均为 0,因为只有一个样本输入,因此BN层的输入也会出现很大的问题,从而导致CNN网络输出的错误。所以在测试过程中,我们需要借助训练集中所有样本在BN层归一化时每个维度上的均值和方差,当然为了计算方便,我们可以在 batch_num 次训练过程中,将每一次在BN层归一化时每个维度上的均值和方差进行相加,最后再进行求一次均值即可。
Multi-class classification
- Softmax Regression
- Training a softmax classifier
Introduction to programming frameworks
- Deep learning frameworks
- TensorFlow