美文网首页
2019-09-17 吴恩达深度学习课堂笔记:Hyperpara

2019-09-17 吴恩达深度学习课堂笔记:Hyperpara

作者: Yuyao_b2c0 | 来源:发表于2019-10-05 13:44 被阅读0次

    Tunning Process:

    1.都有哪些超参数需要调试呢?

    learning_rate(最需要调的***), dropout概率,Momentum beta(一般0.9差不多,但是可以调**), Adam最优化的beta1,beta2(一般这两个分别取0.9,0.999) and \varepsilon 10^8),层数*,每一层的单元数(**),learning rate decay*,mini-batch size(**速度保证)

    2.Don't use a Grid but choose the points randomly

    and zoom in to a smaller area then sample more densely


    2.Using an appropriate SCALE to pick hyperparameters

    \times  Uniformly random(有些时候整数的如层数,num of hidden units 仍然可以用)

    \odot  Exponentially Uniformly random

    Uniformlly 抽取随机整数r , 然后 \alpha = 10^r  作为随机数(灵活使用,比如\beta 0.9~0.999之间就用这种方法抽取1-\beta

    不这么做影响大的地方抽取的太少,影响小的地方抽取的又太多(more efficient)


    3.Babysitting one model vs Training Many models in parallel

    Babysitting : When you have Limited resources 


    4.Batch Normalization

    \bullet Steps:

    1) 对于每一层的输出层进行归一化(减均值,然后除方差),得到Z_{norm} (注意除以方差的时候加个\varepsilon 防止除0)

    2) \tilde{Z}^l=Z_{norm}^l *\gamma ^l +\beta ^l  将归一化为N(0,1)的数据变成N(\beta ,\gamma ^2)分布的数据(仿佛是上一步的逆向操作一样,但是\gamma \beta 向量的取值可以是任意值,是梯度下降学习到的,只有当\beta =\mu \gamma = \sigma ^2的时候是跟原始输出数据是一样的)

    \bullet Implementing:

    1)\gamma \beta 都可以和W参数一样通过梯度下降学习,包括使用momentum和Adam等优化算法方法都是一样的

    2) Wx+b中的b在使用batch normalization 的时候不起作用,因为减均值的时候会被减掉,最后的均值由BN参数\beta 决定,所以如果使用了BN,可以不用优化b(b==0)

    \bullet 原理:BN为什么能够提高调参效率

    1) 最主要原因改善Covariate Sift 问题,先把分布拉回到一个N(0,1)分布,然后假设每一层的输出服从一个固定的均值为\beta 方差为\gamma ^2的分布,从而使每一层Independently学习(该层样本间独立同分布,且这个分布是假定不变的),减少前面层对本层的影响

    2) 如同特征输入层归一化一样,使数据从椭圆的分布变成圆的均匀的分布

    \bullet Testing的时候均值和方差的问题

    问题:训练的时候均值和方差是用每个batch的样本计算出来的,可是test的时候可能只有一个样本,没法计算均值和方差

    解决方法:BN训练的过程中,对于每个batch的计算的均值和方差求Exponentially Average,最后得到均值和方差的估计值


    5.Softmax

    1.多分类,generalized logistic regression

    最后一层输入层: Z^L=A^{l-1}*W^{l-1}(Z^L是(C * 1)维度的,C是多分类类别数量)

    softmax激活函数:A^L=\frac{e^{Z^L}}{sum(e^{Z^L})}

    就是说对每一个元素z_i,变换为e^{z_i} ,然后除以所有e^z_i的和(归一化为一个概率值)

    softmax回归的分类边界也是线性的,只不过有多条线,所以可以处理多分类问题

    对比hardmax: (0,0,1,0,0)非1即0,softmax每个元素都有值,只是大小不一样

    2.Training 

    损失函数:\sum\nolimits_{i=1}^C y^i*log(\hat{y} ^i)

    然后梯度下降就行了

    相关文章

      网友评论

          本文标题:2019-09-17 吴恩达深度学习课堂笔记:Hyperpara

          本文链接:https://www.haomeiwen.com/subject/wpuryqtx.html