1. 超参数范围选择
- 学习率
α
\alpha
α
α = 1 0 r \alpha =10^r α=10r,其中 r ∈ [ a , b ] , r 为 随 机 数 r\in[a,b],r为随机数 r∈[a,b],r为随机数,因此 α ∈ [ 1 0 a , 1 0 b ] \alpha\in[10^a, 10^b] α∈[10a,10b]
即,在对数坐标下取值 -
β
\beta
β
期望 β ∈ [ 0.9 , 0.999 ] \beta\in[0.9, 0.999] β∈[0.9,0.999],则取 r ∈ [ − 3 , − 1 ] r\in[-3, -1] r∈[−3,−1],设 1 − β = 1 0 r 1-\beta=10^r 1−β=10r,所以 β = 1 − 1 0 r \beta=1-10^r β=1−10r
2. Batch归一化 (Batch Norm)
给定某一层隐藏单元值,从 z ( 1 ) z^{(1)} z(1)到 z ( m ) z^{(m)} z(m) ( Z [ l ] ( i ) Z^{[l](i)} Z[l](i),简化写法,省略了 [ l ] ^{[l]} [l]),归一化步骤如下:
- μ = 1 m ∑ i z ( i ) \mu=\frac{1}{m}\sum_iz^{(i)} μ=m1∑iz(i)
- σ 2 = 1 m ∑ i ( z ( i ) − μ ) 2 \sigma^2=\frac{1}{m}\sum_i(z^{(i)}-\mu)^2 σ2=m1∑i(z(i)−μ)2
- z norm ( i ) = z ( i ) − μ σ 2 + ε z_{\text{norm}}^{(i)} = \frac{z^{(i)} -\mu}{\sqrt{\sigma^{2} +\varepsilon}} znorm(i)=σ2+εz(i)−μ (为了使数值稳定,通常将 ε \varepsilon ε作为分母,以防 σ = 0 σ=0 σ=0的情况)
- z ~ ( i ) = γ z norm ( i ) + β {\tilde{z}}^{(i)}= \gamma z_{\text{norm}}^{(i)} +\beta z~(i)=γznorm(i)+β ( γ \gamma γ和 β \beta β是模型的学习参数,这里的 β \beta β与Momentum或Adam算法中的超参数 β \beta β毫无关系)
通过对 γ \gamma γ和 β \beta β合理设定,规范化过程。通过赋予 γ \gamma γ和 β \beta β其它值,可构造含其它平均值和方差的隐藏单元值。
探究框架,可写成一行代码,比如说,在TensorFlow框架中,你可以用这个函数(tf.nn.batch_normalization
)来实现Batch归一化。即在深度学习框架中,Batch归一化的过程,经常是类似一行代码的东西。
3. Softmax回归
Softmax激活函数实现过程:
假设,
z
[
L
]
z^{[L]}
z[L]这是最后一层的
z
z
z变量
- z [ L ] = W [ l ] a [ L − 1 ] + b [ l ] z^{[L]} = W^{[l]}a^{[L-1]} + b^{[l]} z[L]=W[l]a[L−1]+b[l]
- 计算临时变量 t = e z [ L ] t=e^{z^{[L]}} t=ez[L]
- a [ L ] = e z [ L ] ∑ j = 1 4 t i a^{[L]} = \frac{e^{z^{[L]}}}{\sum_{j =1}^{4}t_{i}} a[L]=∑j=14tiez[L],即 a i [ l ] = t i ∑ j = 1 4 t i a_{i}^{[l]} = \frac{t_{i}}{\sum_{j =1}^{4}t_{i}} ai[l]=∑j=14titi
Softmax激活函数与Sigmoid 和 ReLu 激活函数的区别
Sigmoid 和 ReLu 激活函数:输入一个实数,输出一个实数。
Softmax激活函数:由于需要将所有可能的输出归一化,所以就需要输入一个向量,最后输出一个向量。