深度学习疑难面经整理

目录

1.神经网络输出均值为0的好处

2.softmax输入很小时,导致概率接近于0,可能产生数值不稳定的问题,怎么解决?

3.为什么交叉熵损失函数要对概率加一个log?

4.训练神经网络时,选择激活函数需要考虑什么?

5.神经网络有哪些初始化方法?

6.将网络参数全部初始化为0可以吗?

7.深度学习评价指标


1.神经网络输出均值为0的好处

这样可以使模型收敛的更加稳定,因为输出在0附近,可以控制梯度的变化幅度,防止梯度爆炸和梯度消失。tanh。

2.softmax输入很小时,导致概率接近于0,可能产生数值不稳定的问题,怎么解决?

这个问题可能有些小朋友不是很理解,我来详细说一下,比如三分类问题,网络输出为500,0.1,0.002,那么计算完softmax,第一个无限接近于1,最后一个无限接近于0,比如0.000000000001,这时就可能导致数值下溢的情况(超过计算机的表达位数),所以他会对softmax的结果取一个log,这样无限接近0的值会被映射为负无穷,从而提高了最小值的表示精度。那么后面就可以和交叉熵损失函数结合。只需要将log-softmax结果与GT相乘加个负号就行。

3.为什么交叉熵损失函数要对概率加一个log?

为了将概率转换为对数空间,方便计算和优化,同时log可以将乘法变为加法,除法变为减法,降低计算复杂度。同时概率的输出在0-1,取完对数之后的输出更适合表示损失,同时还可以避免数值下溢的问题。

4.训练神经网络时,选择激活函数需要考虑什么?

非线性特性,避免梯度消失梯度爆炸,选择计算复杂度低的,提高训练推理效率。避免饱和区域。

5.神经网络有哪些初始化方法?

随机初始化,从一个均匀分布或高斯分布中随机抽取初始化权重和偏置,适用于大多数情况。 

xavier初始化,使得输入和输出的方差保持一致,在一定程度上缓解了梯度消失和梯度爆炸,原理就是使用均匀分布或高斯分布,边界或方差由输入和输出的平均值的倒数决定。 

何凯明初始化:考虑RELU激活函数的负半区特性,只需要在上面的基础上除以一个2.

预训练初始化:使用预训练模型权重来初始化。

6.将网络参数全部初始化为0可以吗?

不可以,这样引入对称性,导致所有的神经元梯度都是一样的,无法有效的学习。

7.深度学习评价指标

准确率:是指模型预测正确的样本占全部样本的比例。但当数据存在类别不均衡问题时,准确率可能会失真。比如某一类的预测很差,但是准确率还是很高。

精确率:是指模型预测为正样本的里面,哪些真的为正样本。

召回率:全部的正样本里面,有哪些被模型检出。

混淆矩阵:

  • True Positive(真正例,TP):实际为正例且被预测为正例的样本数量。
  • False Positive(假正例,FP):实际为负例但被预测为正例的样本数量。
  • True Negative(真负例,TN):实际为负例且被预测为负例的样本数量。
  • False Negative(假负例,FN):实际为正例但被预测为负例的样本数量。

ROC曲线:纵坐标为召回率。横坐标为总的负样本里面,被模型预测为正样本的比例。根据一些列不同的阈值,得到很多坐标点,将这些点连接成曲线。曲线下方的面积称为AUC.

关于正负样本比例对AUC的影响,AUC本身并不直接受正负样本比例的影响。AUC是基于排序概率或分数来计算的,因此在不同的正负样本比例下,AUC的值是保持不变的。这是因为ROC曲线的绘制只依赖于模型在不同阈值下的真正例率和假正例率,而不受样本数量的影响。

然而,正负样本比例可能会影响其他指标如准确率、召回率和精确率等,因为这些指标是基于具体的阈值来计算的。在不同的正负样本比例下,调整阈值可能会对这些指标产生影响。

AUC的具体意义可以解释为:随机选择一个正样本和一个负样本,模型预测正样本的概率高于负样本的概率的概率。用于评估二分类模型的性能。

F1score:是一个综合考虑了精确率和召回率的评估指标,用于评估二分类模型的性能。F1分数是精确率和召回率的调和平均值。可以在精确率和召回率之间取得一个折中的平衡。调和平均值相对于算术平均值更加重视较小的值,因此当精确率和召回率有一个较低时,F1分数将得到较低的值。

MAP:对于每个类别,计算其在不同阈值下的精确率和召回率。然后连成曲线,可以用插值的方法。然后对曲线进行积分,得到这个类别的ap,求所有类别的ap,然后求平均值。

猜你喜欢

转载自blog.csdn.net/slamer111/article/details/131591205