神经网络与深度学习——学习笔记

基础概念

(1)激活函数的概念

作用:指如何把“激活的神经元的特征”通过函数把特征保留并映射处来(保留特征,去除数据中的冗余)。
##饱和概念:
当一个激活函数 lim ⁡ x → + ∞ h ′ ( x ) = 0 \lim _{x \rightarrow+\infty} h^{\prime}(x)=0 limx+h(x)=0,为右饱和。
当一个激活函数 lim ⁡ x → − ∞ h ′ ( x ) = 0 \lim _{x \rightarrow-\infty} h^{\prime}(x)=0 limxh(x)=0,为左饱和。
左右饱和同时满足,称为饱和。
硬饱和:
右硬饱和:对于任意的x,存在常数c,当x>c时恒有   h ′ ( x ) = 0 \ h^{\prime}(x)=0  h(x)=0;
左硬饱和:对于任意的x,存在常数c,当x<c时恒有   h ′ ( x ) = 0 \ h^{\prime}(x)=0  h(x)=0,同时满足称为硬饱和。
软饱和:只有在极限状态下偏导为0 的函数。
#常用激活函数
1、Sigmoid函数: S ( x ) = 1 1 + e − x S(x)=\frac{1}{1+e^{-x}} S(x)=1+ex1,该函数及其反函数单调递增,常被用作神经网络的阈值函数,将变量映射到0,1之间。可以用在二分类问题中。
优点:
(1)函数输出值在(0,1)间,单调连续,输出范围有限,优化稳定,可以用作输出层。
(2)求导简单。
缺点:
(1)具有软包和性,容易产生梯度消失,导致训练出现问题,权重无法更新。
(2)函数输出并不是以0为中心。

// tensorflow表示方法
z=tf.sigmoid(y)

2、Tanh函数: S ( x ) = 1 − e − 2 x 1 + e − 2 x S(x)=\frac{1-\mathrm{e}^{-2 x}}{1+e^{-2 x}} S(x)=1+e2x1e2x,在分类物体特征相差明显时效果好,在循环过程中不断扩大特征,特征不明显时,效果不佳。
优点:
(1)输出均值为0,收敛速度比Sigmoid函数快。
(2)迭代次数相对较少,因为在循环过程中特征被不断扩大。
缺点:
(1)与Sigmoid函数一样,同样具有软包和特性,会产生梯度消失。

// tensorflow表示方法
z=tf.tanh(y)

3、ReLU函数 S ( x ) = max ⁡ ( 0 , x ) S(x)=\max (0, x) S(x)=max(0,x)
x<0时,存在硬包和现象,导致无法更新权重,改进形式: S ( x ) = { x , x ≥ 0 a x , x < 0 S(x)=\left\{\begin{array}{l}x, x \geq 0 \\ a x, x<0\end{array}\right. S(x)={x,x0ax,x<0,a的值很小,a的存在既修正了数据,又保留了部分负轴的值,使得负轴的值不会消失。
优点:
(1)与Sigmoid函数和Tanh函数相比,收敛速度快。
(2)可以缓解梯度消失的问题。
(3)在无监督训练时也有较好的表现。
缺点:
(1)随着训练的进行,可能会出现神经元死亡,权重无法更新的情况。(如果数据为负值,那么就会出现这种情况)
(2)偏移现象和神经元死亡会大大影响收敛性。

// tensorflow表示方法
z=tf.nn.relu(y)

4、Softplus函数, ∣ S ( x ) = log ⁡ ( 1 + e x ) \mid S(x)=\log \left(1+e^{x}\right) S(x)=log(1+ex),ReLU函数的平滑形式,比ReLU函数更接近脑神经元的激活模型。
优点:
(1)相比Sigmoid函数,计算量较少。
(2)反向传播求误差梯度时,计算量相对较少。
(3)不会像Sigmoid函数那样出现梯度消失问题。

// tensorflow表示方法
z=tf.nn.softplus(y)

5,Softmax函数: S ( x ) = exp ⁡ ( x i ) ∑ i exp ⁡ ( x i ) S(x)=\frac{\exp \left(x_{i}\right)}{\sum_{i} \exp \left(x_{i}\right)} S(x)=iexp(xi)exp(xi)
模型等价为y=Softmax(Wx+b),W为权重,b为偏置。
与Sigmoid函数相比:
优点:
(1)Sigmoid函数主要针对二分类问题,而Softmax函数可以解决多分类问题。
(2)Softmax函数回归进行分类时,类与类之间是互斥的,而Sigmoid函数叔叔的类别并不互斥。

// tensorflow表示方法
z=tf.nn.softmax(y)

(2)损失函数的概念

#损失函数:估算预测值和实际值不一样的程度的函数,即针对单个具体样本而言,表示的是模型预测值和真实值之间的差距 L ( f ( x i ) , y ) L(f(xi),y) L(f(xi),y)

#经验风险:即让 S ( x ) = 1 N ∑ i = 1 N L ( f ( X i ) , y ) S(x)=\frac{1}{N} \sum_{i=1}^{N} L\left(f\left(X_{i}\right), y\right) S(x)=N1i=1NL(f(Xi),y)(模型对所有样本的损失函数,即预测能力之和的均值)最小。经验风险越小,说明模型对训练样本的拟合度越好。

#期望风险:经验风险针对训练样本的预测能力,所以提出期望风险,即假设X和Y均服从联合分布 P ( X , Y ) P(X,Y) P(X,Y),则期望风险表示为: R exp ⁡ ( f ) = E P [ L ( Y , f ( x ) ) ] = ∫ L ( f ( x ) , y ) P ( x , y ) d x d y R_{\exp }(f)=E_{P}[L(Y, f(x))]=\int L(f(x), y) P(x, y) d x d y Rexp(f)=EP[L(Y,f(x))]=L(f(x),y)P(x,y)dxdy
期望风险是全局的概念,表示模型对所以样本的预测能力的大小,而经验风险是局部概念,仅仅表示模型对训练样本的预测能力。但在实际情况下很难计算出期望风险,即X,Y的分布很难计算出,所以通常使用经验风险来代替期望风险。

#结构风险:是对期望风险和经验风险的折中。(=经验风险+置信风险)

#置信风险:指对未知样本进行预测得到的误差。与训练样本数和模型的维数有关(这里模型维数我自己理解为隐藏层神经元的个数)
经验风险后加一个正则化项就是置信风险,即
∣ S ( x ) = 1 N ∑ i = 1 N L ( f ( X i ) , y ) + λ J ( f ) \mid S(x)=\frac{1}{N} \sum_{i=1}^{N} L\left(f\left(X_{i}\right), y\right)+\lambda J(f) S(x)=N1i=1NL(f(Xi),y)+λJ(f)
其中 λ \lambda λ是一个大于0的系数,控制惩罚力度, λ \lambda λ较小或者为0,就可能导致过拟合, λ \lambda λ较大可能导致欠拟合,实际情况下多试试,找到合适的值。
J ( f ) J(f) J(f)代表模型f的复杂度

(3) 拟合

(1)过拟合:指模型对训练数据拟合的太彻底,以至于将训练数据的细节和噪声都学习到了,导致在新的数据上表现很差。简单来说模型在训练数据和测试数据上的误差都较大,就是过拟合。
(2)欠拟合:指模型没有很好的捕捉到数据的特征,不能很好的拟合数据。也就是说模型对训练数据和测试数据表现都差,误差较大。
(3)适中拟合:就是模型对训练数据和测试数据上误差较小。

(4)小结

(1)损失函数度量一次预测的好坏,风险函数度量平均意义下模型的好坏。
(2)经验风险是局部的,基于训练集所有样本点的损失函数最小化是可求得。
(3)期望风险是全局的,基于所有样本点的损失函数最小化是不可求的。
(4)置信风险是基于位置样本点的损失函数最小化,一般通过增加训练样本数和降低模型复杂度来实现。
(5)结构风险是经验风险+置信风险的折中,即经验风险加上一个惩罚项。

损失函数的分类

常见损失函数有均方误差,最大似然估计、最大后验概率和交叉熵损失函数。
选择标准:(1)非负性。(2)当预测值和真实值接近时。损失函数趋近于0。
(1)log损失函数
tensorflow表示形式

// Softmax交叉熵

// An highlighted block
tf.nn.sigmoid_cross_entropy_with_logist(logaist,targets)

输入logist是神经网络模型中的W*X矩阵,不需要经过Sigmoid,函数内部会对其进行Sigmoid激活。
targets的sheape和logist相同,就是正确的label值。

// Softmax交叉熵

// An highlighted block
tf.nn.softmax_cross_entropy_with_logist(logaist,targets)

其将Softmax和交叉熵计算放在一起。
!!!其每个样本只能属于一个类别,即要求分类结果是互斥的,适合二分类或多分类问题。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值