1、损失函数loss
用于定义网络输出结果与正确结果之间的误差的函数,常用损失函数为均方差(MSE)和交叉熵(Cross Entropy)。一般均方差用于回归问题,交叉熵用于分类问题。
2、梯度
梯度下降:让损失函数沿着负梯度方向更新神经网络参数,使得损失函数不断减小,达到优化网络模型的目的。梯度下降方法有全局梯度下降、随机梯度下降和小批量梯度下降,常用小批量梯度下降方法。
梯度消失:神经网络训练过程中,loss非常小,导致参数难以更新,即梯度消失问题。
梯度爆炸:神经网络训练过程中,参数更新不起作用,loss无法收敛,即梯度消失爆炸问题。
3、反向传播
误差是从输入层-隐藏层-输出层逐渐积累的,通过反向传播对每一层误差进行展开。使用链式法则逐层求导,求出目标函数对各神经元权值的偏导数,进行参数更新。
4、激活函数
激活函数将非线性特征引入可神经网络,让模型可以更好的拟合复杂的非线性问题。常见激活函数有sigmoid、tanh、relu、leakyrelu、softmax等。sigmoid出现较早,常用于二分类问题,但容易出现梯度消失问题;深度学习中常用relu作为激活函数,relu计算量小,同时可避免出现梯度消失问题;softmax函数可将任意实数向量映射到(0,1)之间,且总和为1,可用于表示每个类别的概率,因此常用于多分类问题输出层。
5、正则化
正则化用于在深度学习中为防止过拟合,减少泛化误差。常用的正则化方法包括:参数约束(限制模型学习能力,L1、L2范数)、数据增强(训练数据添加噪声等)、Dropout、早停法(earlystopping)等。
6、优化器
在模型训练过程中优化器用于加快算法收敛速度,避免局部极值,减少超参设置等。常见的优化器有动量优化器、Adam、Adagrid等,常用优化器Adam。
7、过拟合
模型在训练集上表现优异,但在测试集表现不理想。造成的原因可能有训练数据太少,噪声过多,模型参数过多、训练过度等。可以通过数据增强、限制训练次数(earlystopping)、降低参数(Dropout)等方法解决。
8、不同类型神经网络
卷积神经网络(CNN):包括卷积层、池化层、全连接层,主要用于视觉方向。卷积层用于特征提取,池化层进行重采样增加感受野,全连接层将卷积层和池化层提取的特征进行分类。卷积神经网络主要用于图像分类,目标检测、分割等场景。
循环神经网络(RNN):是一种通过隐藏层节点周期性连接,捕捉序列化数据中动态信息,对序列化数据进行分类的神经网络。RNN 可应用于视频、音频、文本分类等场景。
长短记忆网络(LSTM):解决RNN对长时间记忆信息衰减问题。
生成对抗网络(GAN):由生成器和判别器构成,通过对抗过程训练生成器和判别器,使得判别器最终无法区分真实样本和伪造样本。生成对抗网络可用于图像生成、语义分割、数据增强等场景。