caffe study(3) 关于激活函数以及loss function

loss 是估计值和真实值之映射到某一空间的误差,而loss function就是这种误差的描述形式,loss function反映出了对于问题的定义。在caffe中,包含了常用的loss function,主要有以下几种:

MULTINOMIAL_LOGISTIC_LOSS
SIGMOID_CROSS_ENTROPY_LOSS
SOFTMAX_LOSS
EUCLIDEAN_LOSS
HINGE_LOSS
INFOGAIN_LOSS

下面来看一下他们的具体形式(公式和世界的代码有些出入,下面材料的绝大部分来自于wiki)

1. EUCLIDEAN_LOSS

这个loss的具体含义就是所有样本估计值和预测值的欧式距离平方的均值,也就是均方根误差(MSE)。

caffe <wbr>study(3) <wbr>关于激活函数以及loss <wbr>function

假设模型结果与测量值 误差满足,均值为0的高斯分布,即正态分布。这个假设是靠谱的,符合一般客观统计规律。
数据x与y的条件概率:

caffe <wbr>study(3) <wbr>关于激活函数以及loss <wbr>function
若使 模型与测量数据最接近,那么其概率积就最大。概率积,就是概率密度函数的连续积,这样,就形成了一个最大似然函数估计。对最大似然函数估计进行推导,就得出了求导后结果: 平方和最小公式


MSE误差的优点是执行简单,较容易理解,缺点就是强制预测和标注要exactly的匹配,也就是一个非0即1的概念,本节点和其他节点是独立的,这样带来的问题是会导致最后的train出来的model有可能并不是那么准确。

2. MULTINOMIAL_LOGISTIC_LOSS

如果一个事件发生的概率为:
caffe <wbr>study(3) <wbr>关于激活函数以及loss <wbr>function

那么事件几率的概念是指的发生的概率与不发生的概率的比值,取对数则称为对数几率(log odds)。
the logit 
caffe <wbr>study(3) <wbr>关于激活函数以及loss <wbr>function

对于对元的分布,采用base-line logit,如下所示。(从某种意义上二元的logit是多元的一个特例)

caffe study(3) 关于激活函数以及loss function_第1张图片

通过概率和为1这样一个约束,可以得到Pr(Y=K)的表示,从而推导出K-1个分布的公式,如下所示:

caffe study(3) 关于激活函数以及loss function_第2张图片

所有样本的概率和就是最后使用到的 MULTINOMIAL_LOGISTIC_LOSS


3.  SOFTMAX_LOSS

caffe <wbr>study(3) <wbr>关于激活函数以及loss <wbr>function


下面看一下基本的softmax的推导过程

 在概率论中,一个归一化常数的的作用让所有的密度函数满足和为1这样一个条件
caffe <wbr>study(3) <wbr>关于激活函数以及loss <wbr>function

此处采用log的形式描述,其中Z为归一化的常数

caffe study(3) 关于激活函数以及loss function_第3张图片

caffe <wbr>study(3) <wbr>关于激活函数以及loss <wbr>function

得到
caffe study(3) 关于激活函数以及loss function_第4张图片
根据和为1这样的约束可以得到

caffe <wbr>study(3) <wbr>关于激活函数以及loss <wbr>function

softmax 则采用了连续函数来进行函数的逼近,最后采用概率的形式进行输出,这样就弱化了EUCLIDEAN_LOSS中带来的问题。

caffe <wbr>study(3) <wbr>关于激活函数以及loss <wbr>function


softmax中,各个节点的输出是一个归一化后的概率值,这个值随着每次迭代是动态变化的。

4. softmax和multinomial logistic的统一性

最后得到softmax的形式,在所有的beta参数中,只有K-1个是独立的,对于所有添加一个常量C不改变softmax的值,证明如下:

caffe study(3) 关于激活函数以及loss function_第5张图片

如果这个把最后一个第K个样本的beta设置为常数,得到如下的变换

caffe study(3) 关于激活函数以及loss function_第6张图片



带入原来的公式,可以得到:

caffe study(3) 关于激活函数以及loss function_第7张图片

这个输出就是multinomial logistic.

5. INFOGAIN_LOSS

信息熵是对于信息的一种量化,是对于某种系统信息的一种量度,熵就是系统的平均信息量,也可以理解为某种信息出现的概率。

caffe <wbr>study(3) <wbr>关于激活函数以及loss <wbr>function

信息增益是在加入一个条件后,所得到的熵和原来的熵的差,具体形式如下:

caffe study(3) 关于激活函数以及loss function_第8张图片


6. SIGMOID_CROSS_ENTROPY_LOSS

caffe <wbr>study(3) <wbr>关于激活函数以及loss <wbr>function



7. HINGE_LOSS

caffe <wbr>study(3) <wbr>关于激活函数以及loss <wbr>function

求和后便成了Hinge loss
   
这个loss就是SVM用到的loss。Hinge loss就是0-1 loss的改良版,这个改良主要在两个方面,一个是在t.y在【0 1】之间不再是采用hard的方式,而是一个soft的方式。另外一个就是在【-inf,0】之间不再采用固定的1来定义能量的损失,而是采用一个线性函数对于错误分类的情况进行惩罚。


下面是两个常用的激活函数


8. TANH


caffe <wbr>study(3) <wbr>关于激活函数以及loss <wbr>function

caffe study(3) 关于激活函数以及loss function_第9张图片


9. ReLU

relu是rectified linear unit的简写

caffe <wbr>study(3) <wbr>关于激活函数以及loss <wbr>function

对于ReLU函数的近soft-plus函数

caffe <wbr>study(3) <wbr>关于激活函数以及loss <wbr>function

他们的函数曲线如下图所示

caffe study(3) 关于激活函数以及loss function_第10张图片

和其他的函数比较起来,ReLU函数更符合生物学的激活模型。

a.ReLU是单方向的
b.在激活方面,这个函数强制阈值下的值为0,因此可以不使用l1正则就可以达到稀疏的目的。
c.可以有效的缓解vanishing gradient problem,原来的vanishing gradient problem主要因为在backward过程中gradient随着深度的增加不断的连乘,如果每部分都小于1的话,随着层数的增加这个值会越来越小,从而导致vanishing gradient的问题。而ReLU函数由于没有上限,因此其导数在很大层度上缓解了这个问题。而sigmod以及tanh函数都没有这样的一个性质。
d.计算速度快。

因此ReLU是现在DNN模型中比较常用的激活函数。

你可能感兴趣的:(caffe study(3) 关于激活函数以及loss function)