神经网络中的一些常见概念


激活函数

为啥需要激活函数?在神经网络中,我们的输入层通过各个连接上的权值,进行加权求和后传递到下一层,这种处理方式往往是呈线性组合的状态,而我们知道一般线性函数的值域是负无穷到正无穷,也是就是说线性组合的模型缺乏逼近能力,而我们的神经网络的训练大多需要一个梯度下降即寻找最小误差的过程,很显然,这种线性组合的方式满足不了,于是我们需要一种非线性的函数将线性的组合进行非线性映射,增强网络的鲁棒性

激活函数通常有以下性质:

  1. 非线性
  2. 可微性
  3. 单调性
  4. ?(?)≈?
  5. 输出值有范围
  6. 计算简单
  7. 归一化

激活函数经常使用Sigmoid函数、tanh函数、ReLu 函数

Sigmoid函数

Sigmoid函数的优点在于输出范围有限,数据在传递的过程中不容易发散,并且其输出范围为(0,1),可以在输出层表示概率值,如图所示。Sigmoid函数的导数是非零的,很容易计算。

Sigmoid函数的主要缺点是梯度下降非常明显,且两头过于平坦,容易出现梯度消失的情况,输出的值域不对称,并非像tanh函数那样值域是-1到1。

在这里插入图片描述

双曲正切函

双曲正切函数将数据映射到[-1,1],解决了Sigmoid函数输出值域不对称问题。另外,它是完全可微分和反对称的,对称中心在原点。然而它的输出值域两头依旧过于平坦,梯度消失问题仍然存在。为了解决学习缓慢和梯度消失问题,可使用其更加平缓的变体,如log-log、Softsign、Symmetrical Sigmoid等
在这里插入图片描述

ReLU函数

ReLU函数是目前神经网络里常用的激活函数,由于ReLU函数是线性特点使其收敛速度比Sigmoid、Tanh更快,而且没有梯度饱和的情况出现。计算更加高效,相比于Sigmoid、Tanh函数,只需要一个阈值就可以得到激活值,不需要对输入归一化来防止达到饱和。
在这里插入图片描述


损失函数

损失函数评价的是模型对样本拟合度,预测结果与实际值越接近,说明模型的拟合能力越强,对应损失函数的结果就越小;反之,损失函数的结果越大。

损失函数结果比较大时,对应的梯度下降比较快。为了计算方便,可以采用欧式距离作损失度量标准,通过最小化实际值与估计值之间的均方误差作为损失函数,即最小平方误差准则(MSE):
在这里插入图片描述
其中?(?)是模型根据输入矩阵X输出一个预测向量,预测值?(?)和真值?的欧式距离越大、损失就越大,反之就越小,即求〖||?(?)−?||〗^2的极小值。

如果是批量数据,则将所有数据对应模型结果与其真实值之间的差的平方进行求和。合适的损失函数能够确保深度学习模型更好地收敛,常见的损失函数有Softmax、欧式损失、Sigmoid交叉时损失、Triplet Loss、Moon Loss、Contrastive Loss等。


学习率

学习率其实就是误差下降(梯度下降)时,函数旋转的角度,它控制每次更新参数的幅度,过高和过低的学习率都可能对模型结果带来不良影响,合适的学习率可以加快模型的训练速度。过高的话,可能会使得模型的训练忽略了细节,从而不能达到误差的最小值,过低的话,会使得整个训练的过程变得异常慢。


过拟合

这个概念过拟合是指模型在训练集上预测效果好,但在测试集上预测效果差。而欠拟合则是训练集和效果差,但泛化能力不错。

常用的防止过拟合的方法有:

  1. 参数范数惩罚
  2. 数据增强
  3. 提前终止
  4. Bagging等集成方法
  5. Dropout
  6. 批正则化
  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

legendaryhaha

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值