深度学习中一些术语的解释
激活函数:用于去线性化,对于某些线性不可分的特征,加入激活函数后,神经元的输出不再仅仅是输入的线性表达式,为模型提供了非线性建模的能力,这样才有可能逼近任意的函数模型,从而可以更好的进行模型的拟合。激活函数本质是一种映射:R->R的映射,且函数几乎处处可导。
权重系数初始化:在进行训练之前,需要对待训练的参数(权重)进行初始化,从而为训练提供初始值。注意这里不能简单的将权重w设置为0矩阵,因为这样设置在进行正向传播时,所有的特征对损失函数的贡献将变为0。通常有两种初始化的方式:(1)使用较小的随机数,w = 0.01 * np.random.rand(D,H);该种方法对较小的网络可以获得较好的效果,但是对深度网络模型则会出现问题,原因是随着网络层数的加深,训练后权重参数将会变为零,同时反向传播时,梯度将变为零。(2)Xavier initialization(没看懂)大致的意思是对于非凸优化问题,谨慎的选择初试值对于最终结果的收敛性有重要的影响.应当指出的是,目前还没有一个标准来指导如何进行权重系数的初始化。
Bathc Normalization:BN的主要的作用是解决反向传播时梯度消失或者梯度爆炸的问题。随着神经网络的层数增加后,在进行反向传播时,由求导的链式法则,梯度会变得非常小或者非常大(梯度爆炸),加入BN后,可以避免这样的情况产生。BN通常放在全连接层后,激活函数前。
下面简单介绍模型训练的过程:
1,数据预处理,主要包括数据中心化,即将数据变换到坐标原点周围,然后对数据进行归一化;
2,选择合适的网络结构;比如确定网络的层数,神经元的个数,是否选择正则化以及正则化的方法
3,开始进行训练,在训练时允许在训练集上有一定的误差。然后根据损失函数是否减小来确定合适的学习率;随着训练次数的增加,损失函数若没有太大的变化,则表明学习率选择的稍小,应增大学习率;反之,若损失函数暴增,甚至变为无穷大,则表明学习率过大,应减小学习率。