2.3超参数调试,batch正则化以及Softmax回归
1.调试处理
1.1常见的超参数
\alpha,\beta,β1,β2,\varepsilon
其中,学习率a最重要
如果需要调整超参数,应该如何选择调试值呢?
早期的深度学习通常是用网格的形式来选择调试值的,即尝试所有的25个点,然后选择参数效果最好的那个点。
1.现在,推荐使用随机选择点的方法来调试超参。随机选取25个点,然后去试一试那个点最优,因为对于要解决的问题,很难知道哪个超参数最重要。所以,用左边的方法去调试a时,只有五种结果,而用右边的方法去调试,会有25个结果。
所以说,随机取值可以探究更多重要超参数的潜在值
2另一个原则是由粗到精。如果已经发现了某个点处调试结果很好,那么可以在这个点周围的某个区域去更密集的点进行调试,找到更精细的点。
1.2为超参数选取合适的范围
以学习率为例,a=0.0001,在0.0001之间如果是随机取值的话,那么0.1~1之间的值一般都是不需要的,即浪费了90%的资源。
所以,这里采用非线性取值的方法,使资源利用最大化。即0.00010.0010.010.11
python中,为满足此要求,可以这样设置:
r = -4*np.random.rand()
a = math.power(10,r)
对于指数加权平均系数β,假设它是一个0.9—0.999之间的某个值,所以,转换一下思路,1-β即为0.10.001之间,按照上面的非线性取值的思路,可以设置轴上的数字从左到右依次为0.10.01~0.001.
当β趋近于1时,可以更加有效的分布取样点,更有效率的探究可能的结果。
2.正则化网络的激活函数
2.1Batch归一化
对于输入层,一般会进行归一化处理,但是如果对隐藏层a[2]进行归一化,高效的帮我们训练好w[3]和b[3]的值。而在实际中,通常将Z[2]归一化来进行训练,这就是Batch归一化
Batch归一化的公式流程
γ和β是模型中要学习的两个参数,通过调整这两个参数,可以让归一化后的Z为你任意想要的值,从而更好的满足训练要求
2.2.将Batch Norm拟合神经网络
1.拟合的基本流程:
记住:Batch Norm介于Z和a之间,对于参数β,可以用学习率公式更新,也可以用Adam,RSM prop,momentum优化法进行更新,这个看个人需求
2.通常,BN会与mini-batch连用,那么:
由于在BN过程中,需要求均值μ,显然μ中包含了参数b,而后面归一化的过程中有Z(i)-μ,所以,BN过后的输入Z是不含有b的,故可直接设置参数b为0,且一般用β[L]来替代,所以这里起作用的参数为w,γ和β
3.BN能够有效训练参数的原因。
- BN能够对隐藏层进行拟合归一
- BN可以使权重比网络更加滞后或更深层,能够使模型更加稳定。——如果不进行BN的话,如果w和b产生变化,那么z的值将会产生比较大的变化。而如果对隐藏层的Z进行BN之后,那么Z的值将只能在[0,1]之间或者根据γ和β来确定Z的范围,这样即使w和b产生变化,对隐藏层的Z也不会有太大的影响,减弱了前层参数对后层的影响,换句话说就是BN可以使得网络每层都可以自己学习,这就使得模型更加稳定。
3.Softmax回归
对于二分分类问题,只能识别是或者不是,如果需要识别多个类别的话,就需要用到Softmax回归了。
实现流程:
假如要做一个四分分类的问题:
对于softmax层,计算线性化部分得:
Z
L
=
w
L
∗
a
L
+
b
L
Z^L=w^L*a^L+b^L
ZL=wL∗aL+bL
这里Z^L的维度为(4,1)
然后,将Z^L带入到激活函数中,激活函数为:
t
=
e
Z
t=e^Z
t=eZ
a L = e Z ∑ i = 1 L t i a^L=\frac{e^Z}{\sum_{i=1}^{L}{t^i}} aL=∑i=1LtieZ
即:
a
L
=
t
i
∑
i
=
1
L
t
i
a^L=\frac{t^i}{\sum_{i=1}^L{t^i}}
aL=∑i=1Ltiti
最终,再进行归一化即可:
如果我们利用激活函数计算得到t,假如t等于:
[
148.4
3.4
0.4
20.1
]
\left[ \begin{matrix} 148.4 \\ 3.4 \\ 0.4 \\ 20.1 \end{matrix} \right]
⎣⎢⎢⎡148.43.40.420.1⎦⎥⎥⎤
那么归一化后,softmax层输出为:
[
0.842
0.042
0.002
0.114
]
\left[ \begin{matrix} 0.842\\ 0.042 \\ 0.002 \\ 0.114\end{matrix} \right]
⎣⎢⎢⎡0.8420.0420.0020.114⎦⎥⎥⎤
所以,第一类的可能性为0.842,故其对应为第一类,其他三个都不是第一类。