从极大似然估计的角度理解深度学习中loss函数
为了理解这一概念,首先回顾下最大似然估计的概念:
最大似然估计常用于利用已知的样本结果,反推最有可能导致这一结果产生的参数值,往往模型结果已经确定,用于反推模型中的参数.即在参数空间中选择最有可能导致样本结果发生的参数.因为结果已知,则某一参数使得结果产生的概率最大,则该参数为最优参数.
似然函数:$$ l( heta) = p(x_1,x_2,...,x_N| heta) = prod_{i=1}^{N}{p(x_i| heta)}$$
为了便于分析和计算,常使用对数似然函数:$$ H( heta) = ln[l( heta)]$$
1. logistics regression中常用的loss function:
在logistic regression中常定义的loss function为:$$ l(w) = -(yloghat y+(1-y)log(1-hat y))$$
为什么选择这个函数作为loss function? 一个原因是相比于误差平方和函数的非凸性,交叉熵函数是凸的,因此可以通过梯度下降法求得全局最优点,详细原理请参考凸优化相关理论.
此处重点介绍另一个原因,即从最大似然估计得的角度来理解loss function的选择,Andrew Ng 也是从这个角度进行解释的.对于logsitic regression问题,我们实际上做出了如下假设,即训练样本(x,y)服从以下分布:
其中,(z = w^Tx+b),意思是,在参数( heta)下,训练样本(x,y)出现的概率为(P(x,y| heta)).
上面的概率分布函数也可以写为整体的形式:
对于极大似然估计而言,我们的目的就是在参数空间中,寻找使得(p(x,y| heta))取得最大的w和b,因为因为训练样本(x,y)已经经过采样得到了,所以使得他们出现概率最大(越接近1)的参数就是最优的参数.
- 对于单个样本((x_i,y_i)),其对应的对数似然函数为(ln[p(x_i,y_i| heta)]= y_iln(sigma(z_i))+(1-y_i)ln(1-sigma(z_i)))(即在参数( heta(w,b))下,((x_i,y_i))出现的概率),其中,(sigma(z_i)=w^Tx_i+b).
因为cost function 一般向小的方向优化,所以在似然函数前加上负号,就变为loss function - 对于整个样本集来说,对应的似然函数为$$ln(prod_{i=1}^{N} p(x_i,y_i| heta)) = sum_{i=1}^N{y_iln(sigma(z_i))+(1-y_i)ln(1-sigma(z_i))}$$
2. softmax regression中常用的loss function:
softmax regression中常使用如下loss函数:
此处,C指的是样本y的维度(分类的数目),(y_i)指的是样本标签第i个分量,(hat y_i)同义.
接下来,同样从最大似然估计的角度进行理解.对于softmax regression,我们实际上也做出了假设,即训练样本(x,y)服从以下分布:$$P(x,y| heta) = hat y_l = sum_{i=1}^{C}y_ihat y_i$$,其中l是样本标签y中唯一为1的序号
- 对于单个训练样本,其对数似然函数为(ln[p(x_i,y_i| heta)] = ln(sum_{i=1}^{C}y_ihat y_i)),可以进一步写为(ln[p(x_i,y_i| heta)] = sum_{i=1}^{C}y_iln(hat y_i)),因为y中只有唯一的一个维度等于1,其余全为0,通过简单的推理就可以得到化简后的结果.取负号后,得到单样本的loss函数.
- 对于整个训练样本集而言,其对数似然函数为$$ln(prod_{i=1}^{N} p(x_i,y_i| heta)) =sum_{j=1}{m}sum_{i=1}{C}y_i^{(j)}ln(hat y_i^{(j)})$$
其中,(y_i^{(j)})指的是训练样本集中第j个训练样本标签的第i个维度的值,(hat y_i^{(j)})同理.取负号求平均后,得到整个训练样本集的coss函数.