1. 反向传播算法推导
2. 激活函数主要使用哪一些函数?
- sigmoid函数
- softmax函数
- Relu函数
- Gelu函数
- Elu函数
- Tanh函数
———————————————————————————
3.Relu函数可导吗?如果不可导,用什么解决?
Relu函数在零点不可导,Relu的函数曲线如下图所示。可导的定义是,首先在该点有定义,当且仅当左导数和右导数相等,才可导。如果在零点不可导,解决方法一般采用左导数,也就是在零点时的导数为0。采用0.5或1也可以,个例不影响整体效果,所以采取3个值都可以。
———————————————————————————
4.Relu函数的优缺点是什么?
优点:
- 解决梯度消失和梯度爆炸的问题
- 求导方便
- 加速网络训练
缺点:
- 负数部分恒为0
———————————————————————————
5.神经网络中的过拟合问题如何处理?
当出现过拟合的时候,模型在训练集上的损失会比较小,准确度较高,但是泛化能力会比较差,在测试集或者验证集上的损失比较大,且准确率低。为了防止过拟合问题,主要通过增加数据量、增加训练次数、正则化惩罚项来实现目标。
应用比较广泛的主要为
- L1/L2正则化
- dropout
- data argumentation
- early stop
cost function(损失函数)为:
1. L1/L2正则化
L1/L2正则化是为了惩罚权重的,让权重不能过于自信,若权重小,惩罚就小,权重过大,惩罚就会更大。
L1正则化和L2正则化首先要涉及L1范数和L2范数的概念,范数一般拿来表示距离关系,P的数值决定表示的是什么距离。例如P=1,则表示曼哈顿距离,若p=2,表示欧氏距离。
L1 和 L2 范数在机器学习上最主要的应用包括:作为损失函数使用,作为正则项使用也即所谓 L1-regularization 和 L2-regularization。
以下展开作为正则项的应用
(1)L1范数公式如下
- L1正则化公式如下,λ为正则化系数
(2)L2范数
- L2正则公式
2. dropout
随机失活,通过对输入的参数值乘以采用指定概率的伯努利分布随机数,实现随机将部分值设置为0,同时其导数也会为0,称之为失活,是一种模型约束的方法。
———————————————————————————
神经网络中的权重初始化?
在训练神经网络之前,必须对其全值和偏置进行初始化。常用的初始化方法有四种,分别是高斯初始化、Xavier初始化和MSRA初始化。它们一般都把偏置初始化为0,但对权值进行随机初始化,以打破对称性。
(1) 高斯初始化
高斯初始化就是根据某个高斯分布来初始化权值,但均值通常选0,方差需要按经验人工选择。
(2)凯明初始化
Kaiming初始化,也称之为he初始化,也称之为msra初始化,出自大神何凯明。凯明初始化比较适用于Relu函数,Pytorch中默认使用凯明初始化。
**- 正态化初始化**
它从以 0 为中心,标准差为 stddev = sqrt(2 / fan_in) 的截断正态分布中抽取样本, 其中 fan_in是权值张量中的输入单位的数量
**- 标准化初始化**
它从 [-limit,limit] 中的均匀分布中抽取样本, 其中 limit 是 sqrt(6 / fan_in), 其中 fan_in 是权值张量中的输入单位的数量。
(3)Xavier初始化
Xavier初始化在Relu激活函数中的表现一般。
———————————————————————————