记录研究生封校生活的学习day12(第三篇)神经网络归一化与优化概念解析(纯概念)

57 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第12天,点击查看活动详情

总计:今天是十月更文计划第十二天,第二十五篇

逐层归一化

深层神经网络中,中间某一层的输入是其之前的神经层的输出。因此,其之前的神经层的参数变化会导致其输入的分布发生较大的差异。利用随机梯度下降更新参数时,每次参数更新都会导致网络中间每一层的输入的分布发生改变。

为了使得每个层的输入分布在训练过程中一致,可以采用逐层归一化的方法。主要有以下方法:

(1)批量归一化(Batch Normalization,BN)

批量归一化是对净输入进行归一化,使输入保持同分布,一般采用正态分布进行批量归一化,其归一化的方式为:

(z^(i)) ̂=z^(i)−E(z^(i))/√var(z^(i))+ℇ

(2)层归一化(Layer Normalization,LN)

层归一化和批归一化不同的是,层归一化是对一个中间层的所有神经元进行归一化。

对于第i层神经元的均值和方差的计算方式为:

μ^(i)=1/n_i∑_i=1^n_i▒z^(i)

σ^(i)^2=1/n_i∑_i=1^n_i▒(z^(i)−μ^(i))^2

采用层归一化方法可以将其应用到循环神经网络中,可以有效的缓解梯度爆炸或者梯度消失的问题。

常用的超参数:

(1)隐层的个数

隐层越多神经网络的模型越复杂,通常可以通过增加隐层来提高性能,但并不是只要增加隐层就会提升,能提升的程度也和具体的问题相关。

(2)丢弃率(Dropout)

Dropout是为了防止过度拟合随机抑制神经元使用的比率。

(3)学习率

在反向传播过程中,学习率和收敛速度相关。高的学习率,可以提升学习速度但是可能会错过最优值。

(4)批量大小

优化算法

常用的优化算法有:

(1)随机梯度下降(Stochastic Gradient Descent,SGD)

(2)动量(Momentum)

m_t=γm_t−1+ηg_t

其中g_t为梯度、γ为动量因子通常取值为0.9。参数更新的方式为:

θ=θ−m_t

(3)Adagrad

n_t=n_t−1+g_t^2
g_t=−1/√∑_r=1^t▒(g_r)^2+ϵ

其中ϵ为一个比较小的数保证分母不为0。

关于评价指标:

评价

一、分类

1、混淆矩阵

2、准确率(Accuracy)

3、错误率(Error rate)

4、精确率(Precision)

5、召回率(Recall)

6、F1 score

7、ROC曲线

8、AUC

9、PR曲线

10、对数损失(log_loss)

二、回归

1、平均绝对误差(MAE)

2、均方误差(MSE)

3、均方根误差(RMSE)

4、归一化均方根误差(NRMSE)

5、决定系数(R2)