写出常用的激活函数和导数
- sigmod
- tanh
- relu
为什么sigmod和tanh会导致梯度消失现象
z很大或者很小时,梯度都会趋于0
relu相比其他有何优点,局限性有什么?怎么改进
优点:
- sigmod和tanh都需要计算指数,relu只需要阈值
- relu可以解决梯度消失
- relu单侧抑制提供了网络的稀疏表达能力
局限性: - 负梯度被置0,且之后也不被任何数据激活。实际训练中,若学习率较大,则会导致一定比例神经元不可逆死亡。
- 变种:LeaklyReLU,PReLU,RReLU
写出多层感知机的平方误差和交叉熵损失函数
推导各层参数的梯度计算公式
反向传播
平方误差损失函数和交叉熵损失函数分别适用什么场景
一个是回归,一个是分类
平方误差基于梯度的学习速度非常缓慢,交叉熵导数是线性的。
神经网络训练时是否可以将全部的网络参数初始化为0
不能,因为神经网络同层同构,拥有相同的输入,如果参数也完全相同则无论前向还是后向结果都是一样的,学习过程永远无法打破这种对称性,最终学习过的参数仍然相同。
为什么dropout可以抑制过拟合?
dropout作用于每份小批量数据,由于随机丢弃部分神经元抑制,相当于每次迭代都在训练不同的神经网络,类比于bagging。
批量归一化的基本动机与原理是什么?
网络训练的进行,每个隐层参数的变化使得后一层的输入发生变化,从而每一批训练数据的分布也随之改变,使得网络在每次迭代都要拟合不同的分布。
批量归一化可以看做每一层输入和上一层输出之间加了一个计算层(归一化处理),增强模型的泛化能力。
常用的池化操作有哪些?
- 均值池化:对背景的保留效果好
- 最大池化:更好的提取纹理信息