神经网络模型训练笔记
在李宏毅老师的课程中,笔记如下:
训练模型会出现梯度不在下降的问题,但多有可能不是最低值引起的,而是critical point ,包括鞍点和最低点,;另外,在梯度左右晃动时,可能是出现在了峡谷里,而且learning rate设置不太妥当,导致。
overfitting一般是由于模型弹性较大,而数据较少引起的,观察的方式比较train data的loss和test data的loss,如果trainloss下降而testloss上升,则说明是overfitting了,可以采取增加数据集或者改变模型架构,比如self——attention换成CNN,full-connect 换成self-attention
在模型中activation、pool功能是采取固定的模板对数据处理,所以,只要指定数据处理方式,不需要机器学习任何参数就可以完成,sigmoid函数是曲线在0,1直接,relu函数是半直线,在0,max之间,gradient=1,pool是为了减少数据特征,一般有maxpool、average pool,它的理解是删去了部分行和列,仍保持数据的重要特征(如果机器性能好的话,pooling过程可以不必进行)
CNN模型:一般用于图像处理,将数据每个维度分为perspective field,利用kenneral size,提取主要的特征,channel的维度与图像数据保持一致,filter的数量是卷积后的channel size。比如,一个彩色图像是663维的Tensor,通过第一个卷积,设计卷积核为33,filter数量为64,filter的维度是333,卷积后的hiddenlayer维度是55*64。可以理解为CNN是self-attention的简化版,因为他不是考虑整张图片的信息,知识考虑一个field里面的信息得到Tensor。
self-attention:考虑前后的信息,一般可以用于文本处理任务。多数情况下比RNN效果要好。
optimize:一般是选用Adam、SGDM,其中,Adam速度快,但可能不稳定,SGDM收敛慢,但一般比较稳定,文本语言、翻译、语音一般是用Adam,图像是选用SGDM。